From 267b997abf11fa4ef02d9ee11c1f2fc39f86c1c7 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Mon, 11 Sep 2023 11:30:35 -0400 Subject: [PATCH] zink: propagate rp_tc_info_updated across unordered blits this otherwise breaks rp optimizing Fixes: 3a9f7d70383 ("zink: implement unordered u_blitter calls") Part-of: --- src/gallium/drivers/zink/zink_blit.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/gallium/drivers/zink/zink_blit.c b/src/gallium/drivers/zink/zink_blit.c index e471ff06a16..85c18411f07 100644 --- a/src/gallium/drivers/zink/zink_blit.c +++ b/src/gallium/drivers/zink/zink_blit.c @@ -409,6 +409,7 @@ zink_blit(struct pipe_context *pctx, bool queries_disabled = ctx->queries_disabled; bool rp_changed = ctx->rp_changed || (!ctx->fb_state.zsbuf && util_format_is_depth_or_stencil(info->dst.format)); unsigned ds3_states = ctx->ds3_states; + bool rp_tc_info_updated = ctx->rp_tc_info_updated; if (ctx->unordered_blitting) { /* for unordered blit, swap the unordered cmdbuf for the main one for the whole op to avoid conditional hell */ ctx->batch.state->cmdbuf = ctx->batch.state->barrier_cmdbuf; @@ -458,6 +459,7 @@ zink_blit(struct pipe_context *pctx, ctx->batch.in_rp = in_rp; ctx->gfx_pipeline_state.rp_state = zink_update_rendering_info(ctx); ctx->rp_changed = rp_changed; + ctx->rp_tc_info_updated |= rp_tc_info_updated; ctx->queries_disabled = queries_disabled; ctx->dynamic_fb.tc_info.data = tc_data; ctx->batch.state->cmdbuf = cmdbuf;