[Mesa-dev] [PATCH] trace: Fix trace_context_transfer_unmap methods.

Jose Fonseca jfonseca at vmware.com
Mon Jun 4 13:01:56 UTC 2018


The emitted buffer_subdata/texture_subdata call didn't match the
respective signatures.

v2: Actually emit buffer_subdata call.
---
 .../auxiliary/driver_trace/tr_context.c       | 60 +++++++++++++------
 1 file changed, 42 insertions(+), 18 deletions(-)

diff --git a/src/gallium/auxiliary/driver_trace/tr_context.c b/src/gallium/auxiliary/driver_trace/tr_context.c
index 6d918d42a38..dc091aee2e9 100644
--- a/src/gallium/auxiliary/driver_trace/tr_context.c
+++ b/src/gallium/auxiliary/driver_trace/tr_context.c
@@ -1430,35 +1430,59 @@ trace_context_transfer_unmap(struct pipe_context *_context,
        */
 
       struct pipe_resource *resource = transfer->resource;
-      unsigned level = transfer->level;
       unsigned usage = transfer->usage;
       const struct pipe_box *box = &transfer->box;
       unsigned stride = transfer->stride;
       unsigned layer_stride = transfer->layer_stride;
 
-      if (resource->target == PIPE_BUFFER)
+      if (resource->target == PIPE_BUFFER) {
+         unsigned offset = box->x;
+         unsigned size = box->width;
+
          trace_dump_call_begin("pipe_context", "buffer_subdata");
-      else
+
+         trace_dump_arg(ptr, context);
+         trace_dump_arg(ptr, resource);
+         trace_dump_arg(uint, usage);
+         trace_dump_arg(uint, offset);
+         trace_dump_arg(uint, size);
+
+         trace_dump_arg_begin("data");
+         trace_dump_box_bytes(tr_trans->map,
+                              resource,
+                              box,
+                              stride,
+                              layer_stride);
+         trace_dump_arg_end();
+
+         trace_dump_arg(uint, stride);
+         trace_dump_arg(uint, layer_stride);
+
+         trace_dump_call_end();
+      } else {
+         unsigned level = transfer->level;
+
          trace_dump_call_begin("pipe_context", "texture_subdata");
 
-      trace_dump_arg(ptr, context);
-      trace_dump_arg(ptr, resource);
-      trace_dump_arg(uint, level);
-      trace_dump_arg(uint, usage);
-      trace_dump_arg(box, box);
+         trace_dump_arg(ptr, context);
+         trace_dump_arg(ptr, resource);
+         trace_dump_arg(uint, level);
+         trace_dump_arg(uint, usage);
+         trace_dump_arg(box, box);
 
-      trace_dump_arg_begin("data");
-      trace_dump_box_bytes(tr_trans->map,
-                           resource,
-                           box,
-                           stride,
-                           layer_stride);
-      trace_dump_arg_end();
+         trace_dump_arg_begin("data");
+         trace_dump_box_bytes(tr_trans->map,
+                              resource,
+                              box,
+                              stride,
+                              layer_stride);
+         trace_dump_arg_end();
 
-      trace_dump_arg(uint, stride);
-      trace_dump_arg(uint, layer_stride);
+         trace_dump_arg(uint, stride);
+         trace_dump_arg(uint, layer_stride);
 
-      trace_dump_call_end();
+         trace_dump_call_end();
+      }
 
       tr_trans->map = NULL;
    }
-- 
2.17.0



More information about the mesa-dev mailing list