diff --git a/src/gallium/drivers/zink/zink_batch.c b/src/gallium/drivers/zink/zink_batch.c index a469c565bba..bcef5b9a00f 100644 --- a/src/gallium/drivers/zink/zink_batch.c +++ b/src/gallium/drivers/zink/zink_batch.c @@ -87,7 +87,7 @@ zink_reset_batch_state(struct zink_context *ctx, struct zink_batch_state *bs) _mesa_set_remove(bs->fbs, entry); } - bs->flush_res = NULL; + pipe_resource_reference(&bs->flush_res, NULL); ctx->resource_size -= bs->resource_size; bs->resource_size = 0; @@ -370,7 +370,7 @@ submit_queue(void *data, void *gdata, int thread_index) }; if (bs->flush_res && screen->needs_mesa_flush_wsi) { - struct zink_resource *flush_res = bs->flush_res; + struct zink_resource *flush_res = zink_resource(bs->flush_res); mem_signal.memory = flush_res->scanout_obj ? flush_res->scanout_obj->mem : flush_res->obj->mem; si.pNext = &mem_signal; } @@ -543,7 +543,7 @@ void zink_end_batch(struct zink_context *ctx, struct zink_batch *batch) { if (batch->state->flush_res) - copy_scanout(batch->state, batch->state->flush_res); + copy_scanout(batch->state, zink_resource(batch->state->flush_res)); if (!ctx->queries_disabled) zink_suspend_queries(ctx, batch); diff --git a/src/gallium/drivers/zink/zink_batch.h b/src/gallium/drivers/zink/zink_batch.h index 0baed1c5da7..90ab7d3746c 100644 --- a/src/gallium/drivers/zink/zink_batch.h +++ b/src/gallium/drivers/zink/zink_batch.h @@ -73,7 +73,7 @@ struct zink_batch_state { struct util_queue_fence flush_completed; unsigned compute_count; - struct zink_resource *flush_res; + struct pipe_resource *flush_res; struct set *fbs; struct set *programs; diff --git a/src/gallium/drivers/zink/zink_context.c b/src/gallium/drivers/zink/zink_context.c index 9a3fa4a2836..3b444b2c219 100644 --- a/src/gallium/drivers/zink/zink_context.c +++ b/src/gallium/drivers/zink/zink_context.c @@ -2771,7 +2771,7 @@ zink_flush_resource(struct pipe_context *pctx, * WSI support is added */ if (pres->bind & (PIPE_BIND_SHARED | PIPE_BIND_SCANOUT)) - ctx->batch.state->flush_res = zink_resource(pres); + pipe_resource_reference(&ctx->batch.state->flush_res, pres); } void