From 9161e3e14ace05109b26efbe29347e46cf439046 Mon Sep 17 00:00:00 2001 From: Matt Borgerson Date: Sat, 27 Jul 2024 14:44:38 -0700 Subject: [PATCH] nv2a/vk: Create surface if one not currently bound --- hw/xbox/nv2a/pgraph/vk/surface.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/hw/xbox/nv2a/pgraph/vk/surface.c b/hw/xbox/nv2a/pgraph/vk/surface.c index f6d69881e4..1159cb53c0 100644 --- a/hw/xbox/nv2a/pgraph/vk/surface.c +++ b/hw/xbox/nv2a/pgraph/vk/surface.c @@ -1178,7 +1178,11 @@ static void update_surface_part(NV2AState *d, bool upload, bool color) d->vram, target.vram_addr, target.size, DIRTY_MEMORY_NV2A); - if (upload && (pg_surface->buffer_dirty || mem_dirty)) { + SurfaceBinding *current_binding = color ? r->color_binding + : r->zeta_binding; + + if (!current_binding || + (upload && (pg_surface->buffer_dirty || mem_dirty))) { // FIXME: We don't need to be so aggressive flushing the command list // pgraph_vk_finish(pg, VK_FINISH_REASON_SURFACE_CREATE); pgraph_vk_ensure_not_in_render_pass(pg);