device.get_transfer_queue().dispatch_transfers(current_buffer);
+ Synchronizer &sync = device.get_synchronizer();
+ sync.reset();
+ sync.barrier(current_buffer);
+
bool to_present = false;
unsigned n_attachments = framebuffer->get_format().size();
for(unsigned i=0; i<n_attachments; ++i)
- if(dynamic_cast<const SwapChainTexture *>(framebuffer->VulkanFramebuffer::get_attachment(i)))
+ if(dynamic_cast<const SwapChainTexture *>(framebuffer->get_attachment(i)))
to_present = true;
VkRenderPass render_pass = device.get_pipeline_cache().get_render_pass(framebuffer->get_format(), clear, !clear_values, to_present);
end_render_pass();
pipeline_state = ps;
- if(pipeline_state)
- pipeline_state->refresh();
}
void VulkanCommands::clear(const ClearValue *values)
if(!framebuffer)
begin_render_pass(false, 0);
+ pipeline_state->refresh();
pipeline_state->apply(current_buffer);
unsigned first_index = batch.get_offset()/batch.get_index_size();
vk.CmdDrawIndexed(current_buffer, batch.size(), count, first_index, 0, 0);