Mesa (master): lavapipe: use the passed offset for CmdCopyQueryPoolResults

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Mar 25 00:17:57 UTC 2021


Module: Mesa
Branch: master
Commit: e20aebb83c5af9ddf11167c39f9b76434e1e7083
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=e20aebb83c5af9ddf11167c39f9b76434e1e7083

Author: Mike Blumenkrantz <michael.blumenkrantz at gmail.com>
Date:   Wed Mar 24 18:12:03 2021 -0400

lavapipe: use the passed offset for CmdCopyQueryPoolResults

this avoids overwriting buffer[0] on every copy

Fixes: b38879f8c5f ("vallium: initial import of the vulkan frontend")

Reviewed-by: Dave Airlie <airlied at redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9813>

---

 src/gallium/frontends/lavapipe/lvp_execute.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/gallium/frontends/lavapipe/lvp_execute.c b/src/gallium/frontends/lavapipe/lvp_execute.c
index 384a6658c0f..19a743e68d3 100644
--- a/src/gallium/frontends/lavapipe/lvp_execute.c
+++ b/src/gallium/frontends/lavapipe/lvp_execute.c
@@ -2333,7 +2333,7 @@ static void handle_copy_query_pool_results(struct lvp_cmd_buffer_entry *cmd,
    struct lvp_query_pool *pool = copycmd->pool;
 
    for (unsigned i = copycmd->first_query; i < copycmd->first_query + copycmd->query_count; i++) {
-      unsigned offset = copycmd->dst->offset + (copycmd->stride * (i - copycmd->first_query));
+      unsigned offset = copycmd->dst_offset + copycmd->dst->offset + (copycmd->stride * (i - copycmd->first_query));
       if (pool->queries[i]) {
          if (copycmd->flags & VK_QUERY_RESULT_WITH_AVAILABILITY_BIT)
             state->pctx->get_query_result_resource(state->pctx,
@@ -2370,7 +2370,8 @@ static void handle_copy_query_pool_results(struct lvp_cmd_buffer_entry *cmd,
             uint32_t *map;
 
             struct pipe_box box = {0};
-            box.width = copycmd->stride * copycmd->query_count;
+            box.x = offset;
+            box.width = copycmd->stride;
             box.height = 1;
             box.depth = 1;
             map = state->pctx->transfer_map(state->pctx,



More information about the mesa-commit mailing list