diff --git a/src/gallium/drivers/zink/zink_draw.c b/src/gallium/drivers/zink/zink_draw.c index 6feae5f3057..21f47caf966 100644 --- a/src/gallium/drivers/zink/zink_draw.c +++ b/src/gallium/drivers/zink/zink_draw.c @@ -512,10 +512,6 @@ update_descriptors(struct zink_context *ctx, struct zink_screen *screen, bool is } if (!cache_hit) vkUpdateDescriptorSets(screen->dev, num_wds, wds, 0, NULL); - for (int i = 0; i < num_surface_refs; i++) { - if (surface_refs[i]) - zink_batch_reference_surface(batch, surface_refs[i]); - } } if (is_compute) @@ -546,6 +542,10 @@ update_descriptors(struct zink_context *ctx, struct zink_screen *screen, bool is zink_resource_barrier(ctx, NULL, transitions[i].res, transitions[i].layout, transitions[i].access, transitions[i].stage); } + for (int i = 0; i < num_surface_refs; i++) { + if (surface_refs[i]) + zink_batch_reference_surface(batch, surface_refs[i]); + } if (!need_flush) return;