diff --git a/.pick_status.json b/.pick_status.json index c7ccf917abd..0f2305a69be 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -3644,7 +3644,7 @@ "description": "v3d: Avoid fast TLB blit if reused job doesn't store the color buffer", "nominated": true, "nomination_type": 2, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "66de8b4b5cbbb317130dde765201b5720394ed00", "notes": null diff --git a/src/gallium/drivers/v3d/v3d_blit.c b/src/gallium/drivers/v3d/v3d_blit.c index 33b464de302..5f8b5d100f0 100644 --- a/src/gallium/drivers/v3d/v3d_blit.c +++ b/src/gallium/drivers/v3d/v3d_blit.c @@ -436,6 +436,10 @@ v3d_tlb_blit_fast(struct pipe_context *pctx, struct pipe_blit_info *info) if (idx < 0) return; + /* We can't use this blit path if the color buffer is not stored */ + if (!(job->store & (PIPE_CLEAR_COLOR0 << idx))) + return; + struct pipe_surface *dbuf = v3d_get_blit_surface(pctx, info->dst.resource, info->dst.format, info->dst.level,