+ VulkanCommandRecorder vkCmd(vk, primary_buffer);
+
+ vk.EndCommandBuffer(pass_buffer);
+
+ device.get_transfer_queue().dispatch_transfers(vkCmd);
+
+ Synchronizer &sync = device.get_synchronizer();
+ sync.reset();
+ if(!fb_is_swapchain)
+ framebuffer->prepare_image_layouts(discard_fb_contents);
+ sync.barrier(vkCmd);
+
+ const VkRenderPassBeginInfo &begin_info = *reinterpret_cast<const VkRenderPassBeginInfo *>(pass_begin_info.data());
+ vkCmd.BeginRenderPass(begin_info, VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS);
+ vkCmd.ExecuteCommands(1, &pass_buffer);
+ vkCmd.EndRenderPass();