From 4461a871b8a13c53aad14072161dce0b28fcd0e7 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Fri, 18 Sep 2020 10:26:02 -0400 Subject: [PATCH] zink: remove flushes for batch descriptor use now that we do all our tracking and flushing per-program, we can throw out the batch-based flushing and let our descriptors free-range Reviewed-by: Bas Nieuwenhuizen Part-of: --- src/gallium/drivers/zink/zink_batch.h | 2 -- src/gallium/drivers/zink/zink_draw.c | 6 ------ src/gallium/drivers/zink/zink_program.c | 1 + 3 files changed, 1 insertion(+), 8 deletions(-) diff --git a/src/gallium/drivers/zink/zink_batch.h b/src/gallium/drivers/zink/zink_batch.h index 15b1b3e041f..989a50473a3 100644 --- a/src/gallium/drivers/zink/zink_batch.h +++ b/src/gallium/drivers/zink/zink_batch.h @@ -41,8 +41,6 @@ struct zink_resource; struct zink_sampler_view; struct zink_surface; -#define ZINK_BATCH_DESC_SIZE 1000 - struct zink_batch { unsigned batch_id : 3; VkCommandPool cmdpool; diff --git a/src/gallium/drivers/zink/zink_draw.c b/src/gallium/drivers/zink/zink_draw.c index 3ed920a3d04..a94317f1ffa 100644 --- a/src/gallium/drivers/zink/zink_draw.c +++ b/src/gallium/drivers/zink/zink_draw.c @@ -228,12 +228,6 @@ get_descriptor_set(struct zink_context *ctx, bool is_compute) { struct zink_program *pg = is_compute ? (struct zink_program *)ctx->curr_compute : (struct zink_program *)ctx->curr_program; struct zink_batch *batch = is_compute ? &ctx->compute_batch : zink_curr_batch(ctx); - unsigned num_descriptors = pg->num_descriptors; - - /* if we're about to exceed our limit, flush until we're back under */ - while (batch->descs_used + num_descriptors >= ZINK_BATCH_DESC_SIZE) { - batch = zink_flush_batch(ctx, batch); - } zink_batch_reference_program(batch, pg); return zink_program_allocate_desc_set(ctx, batch, pg); } diff --git a/src/gallium/drivers/zink/zink_program.c b/src/gallium/drivers/zink/zink_program.c index 2c1335c0ab1..c0653aa54a8 100644 --- a/src/gallium/drivers/zink/zink_program.c +++ b/src/gallium/drivers/zink/zink_program.c @@ -691,6 +691,7 @@ zink_program_allocate_desc_set(struct zink_context *ctx, unsigned descs_used = pg->descs_used; if (descs_used + pg->num_descriptors > ZINK_DEFAULT_MAX_DESCS) { batch = zink_flush_batch(ctx, batch); + zink_batch_reference_program(batch, pg); return zink_program_allocate_desc_set(ctx, batch, pg); }