renderer_vulkan: Fix dynamic state being lost
This commit is contained in:
@@ -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;
|
||||||
}
|
}
|
||||||
|
@@ -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) {
|
||||||
|
Reference in New Issue
Block a user