From 29e51b6eb015ced280a496e2b05a92dad04fd595 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Mon, 30 Aug 2021 10:31:15 -0400 Subject: [PATCH] radv: use pool stride when copying single query results the specified stride is irrelevant for this case since there's only one result to write Cc: mesa-stable Reviewed-by: Bas Nieuwenhuizen Reviewed-by: Samuel Pitoiset Part-of: (cherry picked from commit 90a0556c27c40e3520d645f2512d4596a109c55c) --- .pick_status.json | 2 +- src/amd/vulkan/radv_query.c | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index c023dfce531..3c43c3f8c4a 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -211,7 +211,7 @@ "description": "radv: use pool stride when copying single query results", "nominated": true, "nomination_type": 0, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": null }, diff --git a/src/amd/vulkan/radv_query.c b/src/amd/vulkan/radv_query.c index b0b8453cf4c..f5353e8dacb 100644 --- a/src/amd/vulkan/radv_query.c +++ b/src/amd/vulkan/radv_query.c @@ -854,7 +854,8 @@ radv_query_shader(struct radv_cmd_buffer *cmd_buffer, VkPipeline *pipeline, old_predicating = cmd_buffer->state.predicating; cmd_buffer->state.predicating = false; - struct radv_buffer dst_buffer = {.bo = dst_bo, .offset = dst_offset, .size = dst_stride * count}; + uint64_t dst_buffer_size = count == 1 ? src_stride : dst_stride * count; + struct radv_buffer dst_buffer = {.bo = dst_bo, .offset = dst_offset, .size = dst_buffer_size}; struct radv_buffer src_buffer = { .bo = src_bo,