diff --git a/.pick_status.json b/.pick_status.json index a8f4921a006..00b96f694f1 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -1984,7 +1984,7 @@ "description": "zink: reapply zsbuf state after unordered blits", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": null, "notes": null diff --git a/src/gallium/drivers/zink/zink_blit.c b/src/gallium/drivers/zink/zink_blit.c index 274ca923bb2..626d5029a23 100644 --- a/src/gallium/drivers/zink/zink_blit.c +++ b/src/gallium/drivers/zink/zink_blit.c @@ -491,6 +491,8 @@ zink_blit(struct pipe_context *pctx, if (whole) pctx->invalidate_resource(pctx, info->dst.resource); + bool zsbuf_unused = ctx->zsbuf_unused; + bool zsbuf_readonly = ctx->zsbuf_readonly; ctx->unordered_blitting = !(info->render_condition_enable && ctx->render_condition_active) && !needs_present_readback && zink_get_cmdbuf(ctx, src, dst) == ctx->bs->reordered_cmdbuf; @@ -571,6 +573,8 @@ zink_blit(struct pipe_context *pctx, ctx->gfx_pipeline_state.pipeline = pipeline; ctx->pipeline_changed[ZINK_PIPELINE_GFX] = true; ctx->ds3_states = ds3_states; + ctx->zsbuf_readonly = zsbuf_readonly; + ctx->zsbuf_unused = zsbuf_unused; zink_select_draw_vbo(ctx); } ctx->unordered_blitting = false;