radv: use pool stride when copying single query results
authorMike Blumenkrantz <michael.blumenkrantz@gmail.com>
Mon, 30 Aug 2021 14:31:15 +0000 (10:31 -0400)
committerMarge Bot <eric+marge@anholt.net>
Mon, 30 Aug 2021 19:02:40 +0000 (19:02 +0000)
the specified stride is irrelevant for this case since there's only one
result to write

Cc: mesa-stable
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12619>

src/amd/vulkan/radv_query.c

index b0b8453..f5353e8 100644 (file)
@@ -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,