From 5144c8a85874ea7b2aa9b2cdc214cc60a4650930 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Wed, 1 Mar 2023 09:34:01 -0500 Subject: [PATCH] zink: track whether a primgen query is suspended and needing color write hacks Part-of: --- src/gallium/drivers/zink/zink_query.c | 6 ++++++ src/gallium/drivers/zink/zink_types.h | 1 + 2 files changed, 7 insertions(+) diff --git a/src/gallium/drivers/zink/zink_query.c b/src/gallium/drivers/zink/zink_query.c index a0c536a..5b4599d 100644 --- a/src/gallium/drivers/zink/zink_query.c +++ b/src/gallium/drivers/zink/zink_query.c @@ -959,6 +959,8 @@ zink_begin_query(struct pipe_context *pctx, /* never directly start queries out of renderpass, always defer */ list_addtail(&query->active_list, &ctx->suspended_queries); query->suspended = true; + if (query->type == PIPE_QUERY_PRIMITIVES_GENERATED) + ctx->primitives_generated_suspended = query->needs_rast_discard_workaround; } return true; @@ -1125,6 +1127,8 @@ suspend_queries(struct zink_context *ctx, bool rp_only) */ list_addtail(&query->active_list, &ctx->suspended_queries); query->suspended = true; + if (query->type == PIPE_QUERY_PRIMITIVES_GENERATED) + ctx->primitives_generated_suspended = query->needs_rast_discard_workaround; } suspend_query(ctx, query); } @@ -1143,6 +1147,8 @@ zink_resume_queries(struct zink_context *ctx, struct zink_batch *batch) LIST_FOR_EACH_ENTRY_SAFE(query, next, &ctx->suspended_queries, active_list) { list_delinit(&query->active_list); query->suspended = false; + if (query->type == PIPE_QUERY_PRIMITIVES_GENERATED) + ctx->primitives_generated_suspended = false; if (query->needs_update && !ctx->batch.in_rp) update_qbo(ctx, query); begin_query(ctx, batch, query); diff --git a/src/gallium/drivers/zink/zink_types.h b/src/gallium/drivers/zink/zink_types.h index 74e2d8d..e874578 100644 --- a/src/gallium/drivers/zink/zink_types.h +++ b/src/gallium/drivers/zink/zink_types.h @@ -1739,6 +1739,7 @@ struct zink_context { bool disable_color_writes; bool was_line_loop; bool primitives_generated_active; + bool primitives_generated_suspended; bool queries_disabled, render_condition_active; bool queries_in_rp; struct { -- 2.7.4