initial commit

This commit is contained in:
Johanness
2026-05-18 00:03:06 +03:00
commit ea7e73d6a4
183 changed files with 34479 additions and 0 deletions
+78
View File
@@ -0,0 +1,78 @@
#pragma once
#include <vulkan/vulkan.h>
#include <cstdint>
#include <vector>
struct V210ComputeFeed
{
VkBuffer v210Buffer = VK_NULL_HANDLE;
VkDeviceMemory v210BufferMemory = VK_NULL_HANDLE;
void* v210MappedData = nullptr;
VkImage image = VK_NULL_HANDLE;
VkDeviceMemory imageMemory = VK_NULL_HANDLE;
VkImageView imageView = VK_NULL_HANDLE;
VkSampler sampler = VK_NULL_HANDLE;
VkDescriptorSet descriptorSet = VK_NULL_HANDLE;
uint32_t srcWidth = 0;
uint32_t srcHeight = 0;
uint32_t srcStride = 0;
};
class V210ComputeDecoder
{
public:
void init(
VkDevice device,
uint32_t feedCount,
uint32_t dstWidth,
uint32_t dstHeight);
void destroy();
void createFeedResources(
VkPhysicalDevice physicalDevice,
VkCommandPool commandPool,
VkQueue graphicsQueue,
uint32_t feedIndex,
uint32_t srcWidth,
uint32_t srcHeight,
uint32_t srcStride,
uint32_t dstWidth,
uint32_t dstHeight,
V210ComputeFeed& feed);
void destroyFeedResources(V210ComputeFeed& feed);
void updateDescriptorSet(
uint32_t feedIndex,
const V210ComputeFeed& feed);
void recordDecode(
VkCommandBuffer cmdBuf,
uint32_t feedIndex,
uint32_t srcWidth,
uint32_t srcHeight,
uint32_t srcStride,
uint32_t dstWidth,
uint32_t dstHeight) const;
void recordOutputReadyForSampling(
VkCommandBuffer cmdBuf,
const V210ComputeFeed& feed) const;
private:
VkDevice m_device = VK_NULL_HANDLE;
VkDescriptorSetLayout m_descriptorSetLayout = VK_NULL_HANDLE;
VkPipelineLayout m_pipelineLayout = VK_NULL_HANDLE;
VkPipeline m_pipeline = VK_NULL_HANDLE;
VkDescriptorPool m_descriptorPool = VK_NULL_HANDLE;
uint32_t m_dstWidth = 0;
uint32_t m_dstHeight = 0;
std::vector<VkDescriptorSet> m_descSets;
};