diff --git a/src/gallium/drivers/zink/zink_query.c b/src/gallium/drivers/zink/zink_query.c index cb8461fa375..132eaa04023 100644 --- a/src/gallium/drivers/zink/zink_query.c +++ b/src/gallium/drivers/zink/zink_query.c @@ -1066,6 +1066,10 @@ zink_end_query(struct pipe_context *pctx, if (query->type == PIPE_QUERY_PIPELINE_STATISTICS_SINGLE && query->index == PIPE_STAT_QUERY_PS_INVOCATIONS) ctx->fs_query_active = true; + bool unset_null_fs = query->type == PIPE_QUERY_PRIMITIVES_GENERATED && (ctx->primitives_generated_suspended || ctx->primitives_generated_active); + if (query->type == PIPE_QUERY_PRIMITIVES_GENERATED) + ctx->primitives_generated_suspended = false; + if (list_is_linked(&query->stats_list)) list_delinit(&query->stats_list); if (query->suspended) { @@ -1090,6 +1094,9 @@ zink_end_query(struct pipe_context *pctx, end_query(ctx, batch, query); } + if (unset_null_fs) + zink_set_color_write_enables(ctx); + return true; }