24 virtual void bind_pipeline(VkPipelineBindPoint pipeline_bind_point, VkPipeline pipeline) = 0;
26 VkPipelineLayout layout,
29 const VkDescriptorSet *p_descriptor_sets,
31 const uint32_t *p_dynamic_offsets) = 0;
32 virtual void bind_index_buffer(VkBuffer buffer, VkDeviceSize offset, VkIndexType index_type) = 0;
35 const VkBuffer *p_buffers,
36 const VkDeviceSize *p_offsets) = 0;
59 VkDeviceSize dst_offset,
60 VkDeviceSize data_size,
61 const void *p_data) = 0;
65 const VkBufferCopy *p_regions) = 0;
67 VkImageLayout src_image_layout,
69 VkImageLayout dst_image_layout,
71 const VkImageCopy *p_regions) = 0;
73 VkImageLayout src_image_layout,
75 VkImageLayout dst_image_layout,
77 const VkImageBlit *p_regions,
81 VkImageLayout dst_image_layout,
83 const VkBufferImageCopy *p_regions) = 0;
85 VkImageLayout src_image_layout,
88 const VkBufferImageCopy *p_regions) = 0;
90 VkDeviceSize dst_offset,
94 VkImageLayout image_layout,
95 const VkClearColorValue *p_color,
97 const VkImageSubresourceRange *p_ranges) = 0;
99 VkImageLayout image_layout,
100 const VkClearDepthStencilValue *p_depth_stencil,
102 const VkImageSubresourceRange *p_ranges) = 0;
104 const VkClearAttachment *p_attachments,
106 const VkClearRect *p_rects) = 0;
108 VkPipelineStageFlags dst_stage_mask,
109 VkDependencyFlags dependency_flags,
111 const VkMemoryBarrier *p_memory_barriers,
112 uint32_t buffer_memory_barrier_count,
113 const VkBufferMemoryBarrier *p_buffer_memory_barriers,
114 uint32_t image_memory_barrier_count,
115 const VkImageMemoryBarrier *p_image_memory_barriers) = 0;
117 VkShaderStageFlags stage_flags,
120 const void *p_values) = 0;
123 VkQueryControlFlags vk_query_control_flags) = 0;
139 VkCommandPoolCreateInfo vk_command_pool_create_info_;
140 VkCommandBufferAllocateInfo vk_command_buffer_allocate_info_;
141 VkCommandBufferBeginInfo vk_command_buffer_begin_info_;
142 VkFenceCreateInfo vk_fence_create_info_;
143 VkSubmitInfo vk_submit_info_;
145 VkCommandPool vk_command_pool_ = VK_NULL_HANDLE;
146 VkCommandBuffer vk_command_buffer_ = VK_NULL_HANDLE;
147 VkFence vk_fence_ = VK_NULL_HANDLE;
158 void bind_pipeline(VkPipelineBindPoint pipeline_bind_point, VkPipeline pipeline)
override;
160 VkPipelineLayout layout,
163 const VkDescriptorSet *p_descriptor_sets,
165 const uint32_t *p_dynamic_offsets)
override;
166 void bind_index_buffer(VkBuffer buffer, VkDeviceSize offset, VkIndexType index_type)
override;
169 const VkBuffer *p_buffers,
170 const VkDeviceSize *p_offsets)
override;
191 VkDeviceSize dst_offset,
192 VkDeviceSize data_size,
193 const void *p_data)
override;
197 const VkBufferCopy *p_regions)
override;
199 VkImageLayout src_image_layout,
201 VkImageLayout dst_image_layout,
203 const VkImageCopy *p_regions)
override;
205 VkImageLayout src_image_layout,
207 VkImageLayout dst_image_layout,
209 const VkImageBlit *p_regions,
210 VkFilter filter)
override;
213 VkImageLayout dst_image_layout,
215 const VkBufferImageCopy *p_regions)
override;
217 VkImageLayout src_image_layout,
220 const VkBufferImageCopy *p_regions)
override;
222 VkDeviceSize dst_offset,
226 VkImageLayout image_layout,
227 const VkClearColorValue *p_color,
229 const VkImageSubresourceRange *p_ranges)
override;
231 VkImageLayout image_layout,
232 const VkClearDepthStencilValue *p_depth_stencil,
234 const VkImageSubresourceRange *p_ranges)
override;
236 const VkClearAttachment *p_attachments,
238 const VkClearRect *p_rects)
override;
240 VkPipelineStageFlags dst_stage_mask,
241 VkDependencyFlags dependency_flags,
243 const VkMemoryBarrier *p_memory_barriers,
244 uint32_t buffer_memory_barrier_count,
245 const VkBufferMemoryBarrier *p_buffer_memory_barriers,
246 uint32_t image_memory_barrier_count,
247 const VkImageMemoryBarrier *p_image_memory_barriers)
override;
249 VkShaderStageFlags stage_flags,
252 const void *p_values)
override;
255 VkQueryControlFlags vk_query_control_flags)
override;
258 void begin_rendering(
const VkRenderingInfo *p_rendering_info)
override;
virtual ~VKCommandBufferInterface()=default
virtual void fill_buffer(VkBuffer dst_buffer, VkDeviceSize dst_offset, VkDeviceSize size, uint32_t data)=0
virtual void end_recording()=0
virtual void bind_pipeline(VkPipelineBindPoint pipeline_bind_point, VkPipeline pipeline)=0
virtual void wait_for_cpu_synchronization(VkFence vk_fence=VK_NULL_HANDLE)=0
virtual void draw_indexed(uint32_t index_count, uint32_t instance_count, uint32_t first_index, int32_t vertex_offset, uint32_t first_instance)=0
virtual void bind_vertex_buffers(uint32_t first_binding, uint32_t binding_count, const VkBuffer *p_buffers, const VkDeviceSize *p_offsets)=0
virtual void clear_color_image(VkImage image, VkImageLayout image_layout, const VkClearColorValue *p_color, uint32_t range_count, const VkImageSubresourceRange *p_ranges)=0
virtual void copy_buffer(VkBuffer src_buffer, VkBuffer dst_buffer, uint32_t region_count, const VkBufferCopy *p_regions)=0
virtual void bind_descriptor_sets(VkPipelineBindPoint pipeline_bind_point, VkPipelineLayout layout, uint32_t first_set, uint32_t descriptor_set_count, const VkDescriptorSet *p_descriptor_sets, uint32_t dynamic_offset_count, const uint32_t *p_dynamic_offsets)=0
virtual void begin_query(VkQueryPool vk_query_pool, uint32_t query_index, VkQueryControlFlags vk_query_control_flags)=0
virtual void end_query(VkQueryPool vk_query_pool, uint32_t query_index)=0
virtual void clear_attachments(uint32_t attachment_count, const VkClearAttachment *p_attachments, uint32_t rect_count, const VkClearRect *p_rects)=0
virtual void clear_depth_stencil_image(VkImage image, VkImageLayout image_layout, const VkClearDepthStencilValue *p_depth_stencil, uint32_t range_count, const VkImageSubresourceRange *p_ranges)=0
virtual void end_rendering()=0
virtual void submit_with_cpu_synchronization(VkFence vk_fence=VK_NULL_HANDLE)=0
virtual void draw(uint32_t vertex_count, uint32_t instance_count, uint32_t first_vertex, uint32_t first_instance)=0
virtual void copy_image(VkImage src_image, VkImageLayout src_image_layout, VkImage dst_image, VkImageLayout dst_image_layout, uint32_t region_count, const VkImageCopy *p_regions)=0
virtual void blit_image(VkImage src_image, VkImageLayout src_image_layout, VkImage dst_image, VkImageLayout dst_image_layout, uint32_t region_count, const VkImageBlit *p_regions, VkFilter filter)=0
virtual void copy_buffer_to_image(VkBuffer src_buffer, VkImage dst_image, VkImageLayout dst_image_layout, uint32_t region_count, const VkBufferImageCopy *p_regions)=0
virtual void begin_debug_utils_label(const VkDebugUtilsLabelEXT *vk_debug_utils_label)=0
virtual void copy_image_to_buffer(VkImage src_image, VkImageLayout src_image_layout, VkBuffer dst_buffer, uint32_t region_count, const VkBufferImageCopy *p_regions)=0
virtual void reset_query_pool(VkQueryPool vk_query_pool, uint32_t first_query, uint32_t query_count)=0
VKCommandBufferInterface()
virtual void bind_index_buffer(VkBuffer buffer, VkDeviceSize offset, VkIndexType index_type)=0
virtual void push_constants(VkPipelineLayout layout, VkShaderStageFlags stage_flags, uint32_t offset, uint32_t size, const void *p_values)=0
virtual void begin_recording()=0
virtual void begin_rendering(const VkRenderingInfo *p_rendering_info)=0
virtual void dispatch_indirect(VkBuffer buffer, VkDeviceSize offset)=0
virtual void update_buffer(VkBuffer dst_buffer, VkDeviceSize dst_offset, VkDeviceSize data_size, const void *p_data)=0
virtual void pipeline_barrier(VkPipelineStageFlags src_stage_mask, VkPipelineStageFlags dst_stage_mask, VkDependencyFlags dependency_flags, uint32_t memory_barrier_count, const VkMemoryBarrier *p_memory_barriers, uint32_t buffer_memory_barrier_count, const VkBufferMemoryBarrier *p_buffer_memory_barriers, uint32_t image_memory_barrier_count, const VkImageMemoryBarrier *p_image_memory_barriers)=0
virtual void draw_indexed_indirect(VkBuffer buffer, VkDeviceSize offset, uint32_t draw_count, uint32_t stride)=0
virtual void draw_indirect(VkBuffer buffer, VkDeviceSize offset, uint32_t draw_count, uint32_t stride)=0
virtual void end_debug_utils_label()=0
virtual void dispatch(uint32_t group_count_x, uint32_t group_count_y, uint32_t group_count_z)=0
void begin_debug_utils_label(const VkDebugUtilsLabelEXT *vk_debug_utils_label) override
void bind_descriptor_sets(VkPipelineBindPoint pipeline_bind_point, VkPipelineLayout layout, uint32_t first_set, uint32_t descriptor_set_count, const VkDescriptorSet *p_descriptor_sets, uint32_t dynamic_offset_count, const uint32_t *p_dynamic_offsets) override
void clear_attachments(uint32_t attachment_count, const VkClearAttachment *p_attachments, uint32_t rect_count, const VkClearRect *p_rects) override
void begin_recording() override
void clear_depth_stencil_image(VkImage image, VkImageLayout image_layout, const VkClearDepthStencilValue *p_depth_stencil, uint32_t range_count, const VkImageSubresourceRange *p_ranges) override
void draw_indexed(uint32_t index_count, uint32_t instance_count, uint32_t first_index, int32_t vertex_offset, uint32_t first_instance) override
void fill_buffer(VkBuffer dst_buffer, VkDeviceSize dst_offset, VkDeviceSize size, uint32_t data) override
void wait_for_cpu_synchronization(VkFence vk_fence) override
void copy_image_to_buffer(VkImage src_image, VkImageLayout src_image_layout, VkBuffer dst_buffer, uint32_t region_count, const VkBufferImageCopy *p_regions) override
void bind_pipeline(VkPipelineBindPoint pipeline_bind_point, VkPipeline pipeline) override
void end_recording() override
void begin_query(VkQueryPool vk_query_pool, uint32_t query_index, VkQueryControlFlags vk_query_control_flags) override
void draw_indirect(VkBuffer buffer, VkDeviceSize offset, uint32_t draw_count, uint32_t stride) override
void dispatch_indirect(VkBuffer buffer, VkDeviceSize offset) override
void pipeline_barrier(VkPipelineStageFlags src_stage_mask, VkPipelineStageFlags dst_stage_mask, VkDependencyFlags dependency_flags, uint32_t memory_barrier_count, const VkMemoryBarrier *p_memory_barriers, uint32_t buffer_memory_barrier_count, const VkBufferMemoryBarrier *p_buffer_memory_barriers, uint32_t image_memory_barrier_count, const VkImageMemoryBarrier *p_image_memory_barriers) override
void clear_color_image(VkImage image, VkImageLayout image_layout, const VkClearColorValue *p_color, uint32_t range_count, const VkImageSubresourceRange *p_ranges) override
void copy_buffer_to_image(VkBuffer src_buffer, VkImage dst_image, VkImageLayout dst_image_layout, uint32_t region_count, const VkBufferImageCopy *p_regions) override
void draw_indexed_indirect(VkBuffer buffer, VkDeviceSize offset, uint32_t draw_count, uint32_t stride) override
void begin_rendering(const VkRenderingInfo *p_rendering_info) override
void draw(uint32_t vertex_count, uint32_t instance_count, uint32_t first_vertex, uint32_t first_instance) override
void end_rendering() override
void end_debug_utils_label() override
virtual ~VKCommandBufferWrapper()
void submit_with_cpu_synchronization(VkFence vk_fence) override
void copy_image(VkImage src_image, VkImageLayout src_image_layout, VkImage dst_image, VkImageLayout dst_image_layout, uint32_t region_count, const VkImageCopy *p_regions) override
void update_buffer(VkBuffer dst_buffer, VkDeviceSize dst_offset, VkDeviceSize data_size, const void *p_data) override
void push_constants(VkPipelineLayout layout, VkShaderStageFlags stage_flags, uint32_t offset, uint32_t size, const void *p_values) override
void end_query(VkQueryPool vk_query_pool, uint32_t query_index) override
void copy_buffer(VkBuffer src_buffer, VkBuffer dst_buffer, uint32_t region_count, const VkBufferCopy *p_regions) override
void reset_query_pool(VkQueryPool, uint32_t first_query, uint32_t query_count) override
void blit_image(VkImage src_image, VkImageLayout src_image_layout, VkImage dst_image, VkImageLayout dst_image_layout, uint32_t region_count, const VkImageBlit *p_regions, VkFilter filter) override
void dispatch(uint32_t group_count_x, uint32_t group_count_y, uint32_t group_count_z) override
void bind_index_buffer(VkBuffer buffer, VkDeviceSize offset, VkIndexType index_type) override
void bind_vertex_buffers(uint32_t first_binding, uint32_t binding_count, const VkBuffer *p_buffers, const VkDeviceSize *p_offsets) override