renderer_vulkan: Fix dynamic state being lost

This commit is contained in:
GPUCode
2023-08-25 20:17:07 +03:00
parent a608e33593
commit bcbce50120
2 changed files with 5 additions and 4 deletions

View File

@@ -286,6 +286,7 @@ bool PipelineCache::BindPipeline(const PipelineInfo& info, bool wait_built) {
current_info = info; current_info = info;
current_pipeline = pipeline; current_pipeline = pipeline;
scheduler.MarkStateNonDirty(StateFlags::Pipeline);
return true; return true;
} }

View File

@@ -501,8 +501,11 @@ bool RasterizerVulkan::Draw(bool accelerate, bool is_indexed) {
SyncAndUploadLUTsLF(); SyncAndUploadLUTsLF();
UploadUniforms(accelerate); UploadUniforms(accelerate);
// Configure viewport and scissor // Begin rendering
const auto draw_rect = fb_helper.DrawRect(); const auto draw_rect = fb_helper.DrawRect();
renderpass_cache.BeginRendering(framebuffer, draw_rect);
// Configure viewport and scissor
const auto viewport = fb_helper.Viewport(); const auto viewport = fb_helper.Viewport();
scheduler.Record([viewport, draw_rect](vk::CommandBuffer cmdbuf) { scheduler.Record([viewport, draw_rect](vk::CommandBuffer cmdbuf) {
const vk::Viewport vk_viewport = { const vk::Viewport vk_viewport = {
@@ -529,9 +532,6 @@ bool RasterizerVulkan::Draw(bool accelerate, bool is_indexed) {
cmdbuf.setScissor(0, scissor); cmdbuf.setScissor(0, scissor);
}); });
// Begin rendering
renderpass_cache.BeginRendering(framebuffer, draw_rect);
// Draw the vertex batch // Draw the vertex batch
bool succeeded = true; bool succeeded = true;
if (accelerate) { if (accelerate) {