2
3
4
5
27 m_GraphicQueues.Push(std::make_shared<VulkanThreadQueue>(vulkanState, queue));
34 m_ComputeQueues.Push(std::make_shared<VulkanThreadQueue>(vulkanState, queue));
41 return m_GraphicQueues.Pop();
48 return m_ComputeQueues.Pop();
55 m_GraphicQueues.Push(std::move(queue));
62 m_ComputeQueues.Push(std::move(queue));
69 m_GraphicQueues.Clear();
70 m_ComputeQueues.Clear();
78
79
80 VkSubmitInfo submitInfo{};
81 submitInfo.sType = VK_STRUCTURE_TYPE_SUBMIT_INFO;
82 submitInfo.commandBufferCount = 1;
83 submitInfo.pCommandBuffers = &commandBuffer;
85 VK_CHECK(vkQueueSubmit(m_Queue, 1, &submitInfo, VK_NULL_HANDLE))
#define SPICES_PROFILE_ZONE
#define VK_CHECK(expr)
Vulkan Check macro. Verify Vulkan API Effectiveness.
VulkanObject(VulkanState &vulkanState)
Constructor Function. Init member variables.
VulkanObject Class. This class defines the basic behaves of VulkanObject. When we create an new Vulka...
static void Destroy()
Destroy all ThreadQueue.
static scl::thread_queue< std::shared_ptr< VulkanThreadQueue > > m_ComputeQueues
Compute VulkanThreadQueue.
void Submit(VkCommandBuffer commandBuffer) const
Submit the CommandBuffer in this Queue.
void Wait() const
Wait for queue execute.
static void PushToGraphic(std::shared_ptr< VulkanThreadQueue > &queue)
Push queue to Graphic ThreadQueue.
static std::shared_ptr< VulkanThreadQueue > FetchGraphicQueue()
Fetch valid Graphic Queue.
static std::shared_ptr< VulkanThreadQueue > FetchComputeQueue()
Fetch valid Compute Queue.
virtual ~VulkanThreadQueue() override
Destructor Function.
static void PushToCompute(std::shared_ptr< VulkanThreadQueue > &queue)
Push queue to Compute ThreadQueue.
static scl::thread_queue< std::shared_ptr< VulkanThreadQueue > > m_GraphicQueues
Graphic VulkanThreadQueue.
VulkanThreadQueue(VulkanState &vulkanState, VkQueue queue)
Constructor Function.
VulkanThreadQueue Class. This class is a wrapper of Thread VkQueue.
This struct contains all Vulkan object in used global.