From 6aa791f626db536a57fb17316d074b29ee7b90ea Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Thu, 5 Nov 2020 12:05:15 -0500 Subject: [PATCH] zink: split out batch resource-set clearing into separate function Reviewed-by: Dave Airlie Part-of: --- src/gallium/drivers/zink/zink_batch.c | 18 ++++++++++++------ src/gallium/drivers/zink/zink_batch.h | 4 ++++ 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/src/gallium/drivers/zink/zink_batch.c b/src/gallium/drivers/zink/zink_batch.c index 2f55fc4..15bcb59 100644 --- a/src/gallium/drivers/zink/zink_batch.c +++ b/src/gallium/drivers/zink/zink_batch.c @@ -17,6 +17,17 @@ #include "wsi_common.h" void +zink_batch_clear_resources(struct zink_screen *screen, struct zink_batch *batch) +{ + /* unref all used resources */ + set_foreach(batch->resources, entry) { + struct zink_resource_object *obj = (struct zink_resource_object *)entry->key; + zink_resource_object_reference(screen, &obj, NULL); + _mesa_set_remove(batch->resources, entry); + } +} + +void zink_reset_batch(struct zink_context *ctx, struct zink_batch *batch) { struct zink_screen *screen = zink_screen(ctx->base.screen); @@ -26,12 +37,7 @@ zink_reset_batch(struct zink_context *ctx, struct zink_batch *batch) if (batch->submitted) zink_fence_finish(screen, &ctx->base, batch->fence, PIPE_TIMEOUT_INFINITE); - /* unref all used resources */ - set_foreach(batch->resources, entry) { - struct zink_resource_object *obj = (struct zink_resource_object *)entry->key; - zink_resource_object_reference(screen, &obj, NULL); - _mesa_set_remove(batch->resources, entry); - } + zink_batch_clear_resources(screen, batch); set_foreach(batch->surfaces, entry) { struct zink_surface *surf = (struct zink_surface *)entry->key; diff --git a/src/gallium/drivers/zink/zink_batch.h b/src/gallium/drivers/zink/zink_batch.h index 3bec402..5fe27ab 100644 --- a/src/gallium/drivers/zink/zink_batch.h +++ b/src/gallium/drivers/zink/zink_batch.h @@ -40,6 +40,7 @@ struct zink_program; struct zink_render_pass; struct zink_resource; struct zink_sampler_view; +struct zink_screen; struct zink_surface; enum zink_queue { @@ -108,4 +109,7 @@ zink_batch_reference_image_view(struct zink_batch *batch, bool zink_batch_add_desc_set(struct zink_batch *batch, struct zink_descriptor_set *zds); + +void +zink_batch_clear_resources(struct zink_screen *screen, struct zink_batch *batch); #endif -- 2.7.4