diff --git a/.pick_status.json b/.pick_status.json index 78f197a8557..c2ee6de4754 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -844,7 +844,7 @@ "description": "zink: also refcount needs_present from frontbuffer flush", "nominated": true, "nomination_type": 2, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "4b0f2d1a2b30e5a288f909683203bfa3bbfacf50", "notes": null diff --git a/src/gallium/drivers/zink/zink_screen.c b/src/gallium/drivers/zink/zink_screen.c index e4e63f7a35c..1cc8e44a2da 100644 --- a/src/gallium/drivers/zink/zink_screen.c +++ b/src/gallium/drivers/zink/zink_screen.c @@ -1820,7 +1820,7 @@ zink_flush_frontbuffer(struct pipe_screen *pscreen, if (!zink_kopper_acquired(res->obj->dt, res->obj->dt_idx)) { /* swapbuffers to an undefined surface: acquire and present garbage */ zink_kopper_acquire(ctx, res, UINT64_MAX); - ctx->needs_present = res; + zink_resource_reference(&ctx->needs_present, res); /* set batch usage to submit acquire semaphore */ zink_batch_resource_usage_set(ctx->bs, res, true, false); /* ensure the resource is set up to present garbage */