X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fbackends%2Fvulkan%2Fcommands_backend.h;h=f96a441c434c5375cc8d0af4df25232ee39a128f;hp=994acca2df342cea6724c4812cd923f3ed34bd3f;hb=ce9cd2d34cbcbd772c9fa753b48b8e6a4d80f1e3;hpb=4f24fdd97b1845ebfcd74913fbf076faf7984902 diff --git a/source/backends/vulkan/commands_backend.h b/source/backends/vulkan/commands_backend.h index 994acca2..f96a441c 100644 --- a/source/backends/vulkan/commands_backend.h +++ b/source/backends/vulkan/commands_backend.h @@ -21,12 +21,18 @@ class SwapChain; class VulkanCommands { protected: + struct CommandBuffers + { + std::vector buffers; + unsigned next_buffer = 0; + }; + struct CommandPool { Device &device; VkCommandPool pool = 0; - std::vector buffers; - unsigned next_buffer = 0; + CommandBuffers primary; + CommandBuffers secondary; Fence fence; bool in_use = false; @@ -38,16 +44,18 @@ protected: Device &device; std::vector command_pools; CommandPool *current_pool = 0; - VkCommandBuffer current_buffer = 0; + VkCommandBuffer primary_buffer = 0; + VkCommandBuffer pass_buffer = 0; const PipelineState *pipeline_state = 0; const Framebuffer *framebuffer = 0; const Rect *viewport = 0; bool fb_is_swapchain = false; + std::vector pass_begin_info; VulkanCommands(); ~VulkanCommands(); - void begin_buffer(); + void begin_buffer(VkRenderPass); void begin_render_pass(bool, const ClearValue *); void end_render_pass();