From 48174fea161676f9b2fe1712708c9f1477fb05f7 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Tue, 4 Jan 2022 13:04:07 -0500 Subject: [PATCH] zink: skip readback of qbos with no results this is a no-op and also crashes Fixes: 93190be1b99 ("zink: rewrite query internals") Reviewed-by: Hoe Hao Cheng Part-of: (cherry picked from commit b7a4faea9b4191e66aaa3bbf43c763aab5678ce3) --- .pick_status.json | 2 +- src/gallium/drivers/zink/zink_query.c | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.pick_status.json b/.pick_status.json index f7019a48f9a..7c67f8e8707 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -5206,7 +5206,7 @@ "description": "zink: skip readback of qbos with no results", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "93190be1b990d61df329ca0cbce9bd0fb31c7607" }, diff --git a/src/gallium/drivers/zink/zink_query.c b/src/gallium/drivers/zink/zink_query.c index dc28073d91e..f06e94692a6 100644 --- a/src/gallium/drivers/zink/zink_query.c +++ b/src/gallium/drivers/zink/zink_query.c @@ -459,6 +459,8 @@ get_query_result(struct pipe_context *pctx, uint64_t *xfb_results = NULL; uint64_t *results; bool is_timestamp = query->type == PIPE_QUERY_TIMESTAMP || query->type == PIPE_QUERY_TIMESTAMP_DISJOINT; + if (!qbo->num_results) + continue; results = pipe_buffer_map_range(pctx, qbo->buffer, 0, (is_timestamp ? 1 : qbo->num_results) * result_size, flags, &xfer); if (!results) {