25 explicit VulkanQueue(
const VulkanDevice& device, QueueType type, QueuePriority priority,
unsigned family_id,
unsigned queue_id);
37 [[nodiscard]]
const VulkanDevice& device()
const noexcept;
45 [[nodiscard]]
const VkCommandPool& commandPool()
const noexcept;
51 [[nodiscard]]
unsigned familyId()
const noexcept;
57 [[nodiscard]]
unsigned queueId()
const noexcept;
63 [[nodiscard]]
const VkSemaphore& timelineSemaphore()
const noexcept;
66 [[nodiscard]]
bool isBound()
const noexcept override;
69 [[nodiscard]] QueuePriority priority()
const noexcept override;
72 [[nodiscard]] QueueType type()
const noexcept override;
75 void bind()
const noexcept override;
78 void release()
const noexcept override;
81 void waitFor(std::size_t fence)
const noexcept override;
84 [[nodiscard]] std::size_t currentFence()
const noexcept override;
87 [[nodiscard]] std::shared_ptr<VulkanCommandBuffer> createCommandBuffer(
bool begin_recording,
bool secondary)
const noexcept override;
102 [[nodiscard]] std::size_t submit(std::shared_ptr<const VulkanCommandBuffer> command_buffer,
103 std::span<VkSemaphore> wait_for_semaphores,
104 std::span<VkPipelineStageFlags> wait_for_stages,
105 std::span<VkSemaphore> signal_semaphores = {})
const;
120 [[nodiscard]] std::size_t submit(
const std::vector<std::shared_ptr<const VulkanCommandBuffer>>& command_buffers,
121 std::span<VkSemaphore> wait_for_semaphores,
122 std::span<VkPipelineStageFlags> wait_for_stages,
123 std::span<VkSemaphore> signal_semaphores = {})
const;
126 [[nodiscard]] std::size_t submit(std::shared_ptr<VulkanCommandBuffer> command_buffer)
const noexcept override;
129 [[nodiscard]] std::size_t
submit(std::shared_ptr<const VulkanCommandBuffer> command_buffer)
const noexcept override;
132 [[nodiscard]] std::size_t submit(
const std::vector<std::shared_ptr<const VulkanCommandBuffer>>& command_buffers)
const noexcept override;
135 [[nodiscard]] std::size_t submit(
const std::vector<std::shared_ptr<VulkanCommandBuffer>>& command_buffers)
const noexcept override;
139 std::unique_ptr<Impl> m_impl;