freedreno/perfetto: Add shader_id for compute stages
authorRob Clark <robdclark@chromium.org>
Sun, 2 Apr 2023 15:11:32 +0000 (08:11 -0700)
committerMarge Bot <emma+marge@anholt.net>
Mon, 24 Apr 2023 22:42:04 +0000 (22:42 +0000)
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22646>

src/gallium/drivers/freedreno/a6xx/fd6_compute.cc
src/gallium/drivers/freedreno/freedreno_perfetto.cc
src/gallium/drivers/freedreno/freedreno_perfetto.h
src/gallium/drivers/freedreno/freedreno_tracepoints.py

index 8dcfe92..0306e70 100644 (file)
@@ -126,7 +126,8 @@ fd6_launch_grid(struct fd_context *ctx, const struct pipe_grid_info *info) in_dt
 
    trace_start_compute(&ctx->batch->trace, ring, !!info->indirect, info->work_dim,
                        info->block[0], info->block[1], info->block[2],
-                       info->grid[0],  info->grid[1],  info->grid[2]);
+                       info->grid[0],  info->grid[1],  info->grid[2],
+                       cs->v->shader_id);
 
    if (ctx->batch->barrier)
       fd6_barrier_flush(ctx->batch);
index 95612ae..89e22e4 100644 (file)
@@ -265,6 +265,13 @@ stage_end(struct pipe_context *pctx, uint64_t ts_ns, enum fd_stage_id stage)
             data->set_name("num_groups_z");
             data->set_value(std::to_string(p->num_groups_z));
          }
+
+         {
+            auto data = event->add_extra_data();
+
+            data->set_name("shader_id");
+            data->set_value(std::to_string(p->shader_id));
+         }
       }
    });
 }
@@ -445,6 +452,7 @@ fd_start_compute(struct pipe_context *pctx, uint64_t ts_ns,
    p->num_groups_x = payload->num_groups_x;
    p->num_groups_y = payload->num_groups_y;
    p->num_groups_z = payload->num_groups_z;
+   p->shader_id    = payload->shader_id;
 }
 
 void
index 5216bb4..7d0948b 100644 (file)
@@ -118,6 +118,7 @@ struct fd_perfetto_state {
    uint32_t num_groups_x;
    uint32_t num_groups_y;
    uint32_t num_groups_z;
+   uint32_t shader_id;
 };
 
 void fd_perfetto_init(void);
index 215d215..30bc816 100644 (file)
@@ -157,7 +157,8 @@ begin_end_tp('compute',
           TracepointArg(type='uint16_t', var='local_size_z', c_format='%u'),
           TracepointArg(type='uint32_t', var='num_groups_x', c_format='%u'),
           TracepointArg(type='uint32_t', var='num_groups_y', c_format='%u'),
-          TracepointArg(type='uint32_t', var='num_groups_z', c_format='%u')]
+          TracepointArg(type='uint32_t', var='num_groups_z', c_format='%u'),
+          TracepointArg(type='uint32_t', var='shader_id',    c_format='%u')]
 )
 
 utrace_generate(cpath=args.src,