diff --git a/.pick_status.json b/.pick_status.json index c11fd7fa3aa..cdfef111131 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -679,7 +679,7 @@ "description": "zink: unset primgen suspended flag when ending a primgen query", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "7f956435a039f4729c776a0172bffe7c8b6207b7" }, diff --git a/src/gallium/drivers/zink/zink_query.c b/src/gallium/drivers/zink/zink_query.c index 5a01a33a387..efcfe301e52 100644 --- a/src/gallium/drivers/zink/zink_query.c +++ b/src/gallium/drivers/zink/zink_query.c @@ -1048,6 +1048,10 @@ zink_end_query(struct pipe_context *pctx, /* FIXME: this can be called from a thread, but it needs to write to the cmdbuf */ threaded_context_unwrap_sync(pctx); + 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) { @@ -1072,6 +1076,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; }