27 bool initialize(vk::Device
device, uint32_t graphics_queue_family, uint32_t compute_queue_family);
39 vk::CommandBuffer allocate_command_buffer(
40 vk::CommandBufferLevel level = vk::CommandBufferLevel::ePrimary);
45 void free_command_buffer(vk::CommandBuffer command_buffer);
51 vk::CommandBuffer begin_single_time_commands();
58 void end_single_time_commands(vk::CommandBuffer command_buffer, vk::Queue queue);
68 [[nodiscard]] vk::CommandPool
get_pool()
const {
return m_command_pool; }
74 [[nodiscard]] vk::CommandBuffer begin_single_time_commands_compute();
87 void record_deferred_commands(
const std::function<
void(vk::CommandBuffer)>& recorder);
98 void reset_deferred();
104 uint32_t m_graphics_queue_family {};
105 uint32_t m_compute_queue_family {};
107 vk::CommandBuffer m_deferred_cmd {};
108 bool m_deferred_pending {};