Module: Mesa
Branch: main
Commit: 1c077ca9c009b1045ffdd0a5764643e4959e288a
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=1c077ca9c009b1045ffdd0a5764643e4959e288a

Author: Lionel Landwerlin <lionel.g.landwer...@intel.com>
Date:   Thu May 19 13:09:25 2022 +0300

u_trace/anv/iris: drop cs argument for recording traces

Signed-off-by: Lionel Landwerlin <lionel.g.landwer...@intel.com>
Reviewed-by: Danylo Piliaiev <dpilia...@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16605>

---

 src/gallium/drivers/iris/iris_batch.c  |  2 +-
 src/gallium/drivers/iris/iris_batch.h  |  2 +-
 src/gallium/drivers/iris/iris_blorp.c  |  4 +--
 src/gallium/drivers/iris/iris_state.c  | 18 +++++------
 src/gallium/drivers/iris/iris_utrace.c |  4 +--
 src/intel/ds/intel_tracepoints.py      |  3 +-
 src/intel/vulkan/anv_utrace.c          |  6 ++--
 src/intel/vulkan/genX_blorp_exec.c     |  4 +--
 src/intel/vulkan/genX_cmd_buffer.c     | 57 ++++++++++++++++------------------
 src/util/perf/u_trace.py               | 30 ++++++++++++++----
 10 files changed, 74 insertions(+), 56 deletions(-)

diff --git a/src/gallium/drivers/iris/iris_batch.c 
b/src/gallium/drivers/iris/iris_batch.c
index f4a52f04ce6..71cb2096ad1 100644
--- a/src/gallium/drivers/iris/iris_batch.c
+++ b/src/gallium/drivers/iris/iris_batch.c
@@ -708,7 +708,7 @@ iris_finish_batch(struct iris_batch *batch)
 
    finish_seqno(batch);
 
-   trace_intel_end_batch(&batch->trace, batch, batch->name);
+   trace_intel_end_batch(&batch->trace, batch->name);
 
    /* Emit MI_BATCH_BUFFER_END to finish our batch. */
    uint32_t *map = batch->map_next;
diff --git a/src/gallium/drivers/iris/iris_batch.h 
b/src/gallium/drivers/iris/iris_batch.h
index cf34e7f3472..a1dfa6e63e1 100644
--- a/src/gallium/drivers/iris/iris_batch.h
+++ b/src/gallium/drivers/iris/iris_batch.h
@@ -253,7 +253,7 @@ iris_get_command_space(struct iris_batch *batch, unsigned 
bytes)
 {
    if (!batch->begin_trace_recorded) {
       batch->begin_trace_recorded = true;
-      trace_intel_begin_batch(&batch->trace, batch);
+      trace_intel_begin_batch(&batch->trace);
    }
    iris_require_command_space(batch, bytes);
    void *map = batch->map_next;
diff --git a/src/gallium/drivers/iris/iris_blorp.c 
b/src/gallium/drivers/iris/iris_blorp.c
index b54653846cb..a0af9d6d343 100644
--- a/src/gallium/drivers/iris/iris_blorp.c
+++ b/src/gallium/drivers/iris/iris_blorp.c
@@ -453,7 +453,7 @@ blorp_measure_start(struct blorp_batch *blorp_batch,
    struct iris_context *ice = blorp_batch->blorp->driver_ctx;
    struct iris_batch *batch = blorp_batch->driver_batch;
 
-   trace_intel_begin_blorp(&batch->trace, batch);
+   trace_intel_begin_blorp(&batch->trace);
 
    if (batch->measure == NULL)
       return;
@@ -468,7 +468,7 @@ blorp_measure_end(struct blorp_batch *blorp_batch,
 {
    struct iris_batch *batch = blorp_batch->driver_batch;
 
-   trace_intel_end_blorp(&batch->trace, batch,
+   trace_intel_end_blorp(&batch->trace,
                          params->x1 - params->x0,
                          params->y1 - params->y0,
                          params->hiz_op,
diff --git a/src/gallium/drivers/iris/iris_state.c 
b/src/gallium/drivers/iris/iris_state.c
index 7535c646c2a..09500e4085e 100644
--- a/src/gallium/drivers/iris/iris_state.c
+++ b/src/gallium/drivers/iris/iris_state.c
@@ -6067,7 +6067,7 @@ iris_upload_dirty_render_state(struct iris_context *ice,
    }
 
    if (dirty & IRIS_DIRTY_RENDER_BUFFER)
-      trace_framebuffer_state(&batch->trace, batch, &ice->state.framebuffer);
+      trace_framebuffer_state(&batch->trace, NULL, &ice->state.framebuffer);
 
    for (int stage = 0; stage <= MESA_SHADER_FRAGMENT; stage++) {
       if (stage_dirty & (IRIS_STAGE_DIRTY_BINDINGS_VS << stage)) {
@@ -6860,7 +6860,7 @@ iris_upload_render_state(struct iris_context *ice,
 {
    bool use_predicate = ice->state.predicate == IRIS_PREDICATE_STATE_USE_BIT;
 
-   trace_intel_begin_draw(&batch->trace, batch);
+   trace_intel_begin_draw(&batch->trace);
 
    if (ice->state.dirty & IRIS_DIRTY_VERTEX_BUFFER_FLUSHES)
       flush_vbos(ice, batch);
@@ -7074,7 +7074,7 @@ iris_upload_render_state(struct iris_context *ice,
 
    iris_batch_sync_region_end(batch);
 
-   trace_intel_end_draw(&batch->trace, batch, 0);
+   trace_intel_end_draw(&batch->trace, 0);
 }
 
 static void
@@ -7119,7 +7119,7 @@ iris_upload_compute_walker(struct iris_context *ice,
    const struct brw_cs_dispatch_info dispatch =
       brw_cs_get_dispatch_info(devinfo, cs_prog_data, grid->block);
 
-   trace_intel_begin_compute(&batch->trace, batch);
+   trace_intel_begin_compute(&batch->trace);
 
    if (stage_dirty & IRIS_STAGE_DIRTY_CS) {
       iris_emit_cmd(batch, GENX(CFE_STATE), cfe) {
@@ -7160,7 +7160,7 @@ iris_upload_compute_walker(struct iris_context *ice,
       assert(brw_cs_push_const_total_size(cs_prog_data, dispatch.threads) == 
0);
    }
 
-   trace_intel_end_compute(&batch->trace, batch, grid->grid[0], grid->grid[1], 
grid->grid[2]);
+   trace_intel_end_compute(&batch->trace, grid->grid[0], grid->grid[1], 
grid->grid[2]);
 }
 
 #else /* #if GFX_VERx10 >= 125 */
@@ -7184,7 +7184,7 @@ iris_upload_gpgpu_walker(struct iris_context *ice,
    const struct brw_cs_dispatch_info dispatch =
       brw_cs_get_dispatch_info(devinfo, cs_prog_data, grid->block);
 
-   trace_intel_begin_compute(&batch->trace, batch);
+   trace_intel_begin_compute(&batch->trace);
 
    if ((stage_dirty & IRIS_STAGE_DIRTY_CS) ||
        cs_prog_data->local_size[0] == 0 /* Variable local group size */) {
@@ -7312,7 +7312,7 @@ iris_upload_gpgpu_walker(struct iris_context *ice,
 
    iris_emit_cmd(batch, GENX(MEDIA_STATE_FLUSH), msf);
 
-   trace_intel_end_compute(&batch->trace, batch, grid->grid[0], grid->grid[1], 
grid->grid[2]);
+   trace_intel_end_compute(&batch->trace, grid->grid[0], grid->grid[1], 
grid->grid[2]);
 }
 
 #endif /* #if GFX_VERx10 >= 125 */
@@ -8143,7 +8143,7 @@ iris_emit_raw_pipe_control(struct iris_batch *batch,
       (flags & (PIPE_CONTROL_CACHE_FLUSH_BITS | 
PIPE_CONTROL_CACHE_INVALIDATE_BITS)) != 0;
 
    if (trace_pc)
-      trace_intel_begin_stall(&batch->trace, batch);
+      trace_intel_begin_stall(&batch->trace);
 
    iris_emit_cmd(batch, GENX(PIPE_CONTROL), pc) {
 #if GFX_VERx10 >= 125
@@ -8191,7 +8191,7 @@ iris_emit_raw_pipe_control(struct iris_batch *batch,
    }
 
    if (trace_pc) {
-      trace_intel_end_stall(&batch->trace, batch, flags,
+      trace_intel_end_stall(&batch->trace, flags,
                             iris_utrace_pipe_flush_bit_to_ds_stall_flag,
                             reason);
    }
diff --git a/src/gallium/drivers/iris/iris_utrace.c 
b/src/gallium/drivers/iris/iris_utrace.c
index 1c8646115f0..58452c361da 100644
--- a/src/gallium/drivers/iris/iris_utrace.c
+++ b/src/gallium/drivers/iris/iris_utrace.c
@@ -40,11 +40,11 @@
 #include <unistd.h>
 
 static void
-iris_utrace_record_ts(struct u_trace *trace, void *_batch,
+iris_utrace_record_ts(struct u_trace *trace, void *cs,
                       void *timestamps, unsigned idx,
                       bool end_of_pipe)
 {
-   struct iris_batch *batch = _batch;
+   struct iris_batch *batch = container_of(trace, struct iris_batch, trace);
    struct iris_resource *res = (void *) timestamps;
    struct iris_bo *bo = res->bo;
 
diff --git a/src/intel/ds/intel_tracepoints.py 
b/src/intel/ds/intel_tracepoints.py
index 991c0fb347e..6efcb7ba48c 100644
--- a/src/intel/ds/intel_tracepoints.py
+++ b/src/intel/ds/intel_tracepoints.py
@@ -152,7 +152,8 @@ def generate_code(args):
     from u_trace import utrace_generate_perfetto_utils
 
     utrace_generate(cpath=args.utrace_src, hpath=args.utrace_hdr,
-                    ctx_param='struct intel_ds_device *dev')
+                    ctx_param='struct intel_ds_device *dev',
+                    need_cs_param=False)
     utrace_generate_perfetto_utils(hpath=args.perfetto_hdr)
 
 
diff --git a/src/intel/vulkan/anv_utrace.c b/src/intel/vulkan/anv_utrace.c
index 644e373b5bb..4e659529335 100644
--- a/src/intel/vulkan/anv_utrace.c
+++ b/src/intel/vulkan/anv_utrace.c
@@ -220,10 +220,12 @@ anv_utrace_destroy_ts_buffer(struct u_trace_context 
*utctx, void *timestamps)
 }
 
 static void
-anv_utrace_record_ts(struct u_trace *ut, void *cs, void *timestamps, unsigned 
idx,
+anv_utrace_record_ts(struct u_trace *ut, void *cs,
+                     void *timestamps, unsigned idx,
                      bool end_of_pipe)
 {
-   struct anv_cmd_buffer *cmd_buffer = cs;
+   struct anv_cmd_buffer *cmd_buffer =
+      container_of(ut, struct anv_cmd_buffer, trace);
    struct anv_device *device = cmd_buffer->device;
    struct anv_bo *bo = timestamps;
 
diff --git a/src/intel/vulkan/genX_blorp_exec.c 
b/src/intel/vulkan/genX_blorp_exec.c
index 9ac9f258051..d216b2c55c8 100644
--- a/src/intel/vulkan/genX_blorp_exec.c
+++ b/src/intel/vulkan/genX_blorp_exec.c
@@ -40,7 +40,7 @@ static void blorp_measure_start(struct blorp_batch *_batch,
                                 const struct blorp_params *params)
 {
    struct anv_cmd_buffer *cmd_buffer = _batch->driver_batch;
-   trace_intel_begin_blorp(&cmd_buffer->trace, cmd_buffer);
+   trace_intel_begin_blorp(&cmd_buffer->trace);
    anv_measure_snapshot(cmd_buffer,
                         params->snapshot_type,
                         NULL, 0);
@@ -50,7 +50,7 @@ static void blorp_measure_end(struct blorp_batch *_batch,
                               const struct blorp_params *params)
 {
    struct anv_cmd_buffer *cmd_buffer = _batch->driver_batch;
-   trace_intel_end_blorp(&cmd_buffer->trace, cmd_buffer,
+   trace_intel_end_blorp(&cmd_buffer->trace,
                          params->x1 - params->x0,
                          params->y1 - params->y0,
                          params->hiz_op,
diff --git a/src/intel/vulkan/genX_cmd_buffer.c 
b/src/intel/vulkan/genX_cmd_buffer.c
index 1330355c710..089677e62fb 100644
--- a/src/intel/vulkan/genX_cmd_buffer.c
+++ b/src/intel/vulkan/genX_cmd_buffer.c
@@ -1646,7 +1646,7 @@ genX(BeginCommandBuffer)(
    if (cmd_buffer->vk.level == VK_COMMAND_BUFFER_LEVEL_PRIMARY)
       cmd_buffer->usage_flags &= 
~VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT;
 
-   trace_intel_begin_cmd_buffer(&cmd_buffer->trace, cmd_buffer);
+   trace_intel_begin_cmd_buffer(&cmd_buffer->trace);
 
    genX(cmd_buffer_emit_state_base_address)(cmd_buffer);
 
@@ -1887,8 +1887,7 @@ genX(EndCommandBuffer)(
 
    emit_isp_disable(cmd_buffer);
 
-   trace_intel_end_cmd_buffer(&cmd_buffer->trace, cmd_buffer,
-                              cmd_buffer->vk.level);
+   trace_intel_end_cmd_buffer(&cmd_buffer->trace, cmd_buffer->vk.level);
 
    anv_cmd_buffer_end_batch_buffer(cmd_buffer);
 
@@ -2367,7 +2366,7 @@ genX(cmd_buffer_apply_pipe_flushes)(struct anv_cmd_buffer 
*cmd_buffer)
    bool trace_flush =
       (bits & (ANV_PIPE_FLUSH_BITS | ANV_PIPE_STALL_BITS | 
ANV_PIPE_INVALIDATE_BITS)) != 0;
    if (trace_flush)
-      trace_intel_begin_stall(&cmd_buffer->trace, cmd_buffer);
+      trace_intel_begin_stall(&cmd_buffer->trace);
 
    if ((GFX_VER >= 8 && GFX_VER <= 9) &&
        (bits & ANV_PIPE_CS_STALL_BIT) &&
@@ -2388,7 +2387,7 @@ genX(cmd_buffer_apply_pipe_flushes)(struct anv_cmd_buffer 
*cmd_buffer)
                                     bits);
 
    if (trace_flush) {
-      trace_intel_end_stall(&cmd_buffer->trace, cmd_buffer, bits,
+      trace_intel_end_stall(&cmd_buffer->trace, bits,
                             anv_pipe_flush_bit_to_ds_stall_flag, NULL);
    }
 }
@@ -4222,7 +4221,7 @@ void genX(CmdDraw)(
    anv_measure_snapshot(cmd_buffer,
                         INTEL_SNAPSHOT_DRAW,
                         "draw", count);
-   trace_intel_begin_draw(&cmd_buffer->trace, cmd_buffer);
+   trace_intel_begin_draw(&cmd_buffer->trace);
 
    genX(cmd_buffer_flush_state)(cmd_buffer);
 
@@ -4252,7 +4251,7 @@ void genX(CmdDraw)(
 
    update_dirty_vbs_for_gfx8_vb_flush(cmd_buffer, SEQUENTIAL);
 
-   trace_intel_end_draw(&cmd_buffer->trace, cmd_buffer, count);
+   trace_intel_end_draw(&cmd_buffer->trace, count);
 }
 
 void genX(CmdDrawMultiEXT)(
@@ -4277,7 +4276,7 @@ void genX(CmdDrawMultiEXT)(
    anv_measure_snapshot(cmd_buffer,
                         INTEL_SNAPSHOT_DRAW,
                         "draw_multi", count);
-   trace_intel_begin_draw_multi(&cmd_buffer->trace, cmd_buffer);
+   trace_intel_begin_draw_multi(&cmd_buffer->trace);
 
    genX(cmd_buffer_flush_state)(cmd_buffer);
 
@@ -4310,7 +4309,7 @@ void genX(CmdDrawMultiEXT)(
 
    update_dirty_vbs_for_gfx8_vb_flush(cmd_buffer, SEQUENTIAL);
 
-   trace_intel_end_draw_multi(&cmd_buffer->trace, cmd_buffer, count);
+   trace_intel_end_draw_multi(&cmd_buffer->trace, count);
 }
 
 void genX(CmdDrawIndexed)(
@@ -4336,7 +4335,7 @@ void genX(CmdDrawIndexed)(
                         INTEL_SNAPSHOT_DRAW,
                         "draw indexed",
                         count);
-   trace_intel_begin_draw_indexed(&cmd_buffer->trace, cmd_buffer);
+   trace_intel_begin_draw_indexed(&cmd_buffer->trace);
 
    genX(cmd_buffer_flush_state)(cmd_buffer);
 
@@ -4364,7 +4363,7 @@ void genX(CmdDrawIndexed)(
 
    update_dirty_vbs_for_gfx8_vb_flush(cmd_buffer, RANDOM);
 
-   trace_intel_end_draw_indexed(&cmd_buffer->trace, cmd_buffer, count);
+   trace_intel_end_draw_indexed(&cmd_buffer->trace, count);
 }
 
 void genX(CmdDrawMultiIndexedEXT)(
@@ -4391,7 +4390,7 @@ void genX(CmdDrawMultiIndexedEXT)(
                         INTEL_SNAPSHOT_DRAW,
                         "draw indexed_multi",
                         count);
-   trace_intel_begin_draw_indexed_multi(&cmd_buffer->trace, cmd_buffer);
+   trace_intel_begin_draw_indexed_multi(&cmd_buffer->trace);
 
    genX(cmd_buffer_flush_state)(cmd_buffer);
 
@@ -4479,7 +4478,7 @@ void genX(CmdDrawMultiIndexedEXT)(
 
    update_dirty_vbs_for_gfx8_vb_flush(cmd_buffer, RANDOM);
 
-   trace_intel_end_draw_indexed_multi(&cmd_buffer->trace, cmd_buffer, count);
+   trace_intel_end_draw_indexed_multi(&cmd_buffer->trace, count);
 }
 
 /* Auto-Draw / Indirect Registers */
@@ -4515,7 +4514,7 @@ void genX(CmdDrawIndirectByteCountEXT)(
                         INTEL_SNAPSHOT_DRAW,
                         "draw indirect byte count",
                         instanceCount);
-   trace_intel_begin_draw_indirect_byte_count(&cmd_buffer->trace, cmd_buffer);
+   trace_intel_begin_draw_indirect_byte_count(&cmd_buffer->trace);
 
    genX(cmd_buffer_flush_state)(cmd_buffer);
 
@@ -4563,8 +4562,7 @@ void genX(CmdDrawIndirectByteCountEXT)(
 
    update_dirty_vbs_for_gfx8_vb_flush(cmd_buffer, SEQUENTIAL);
 
-   trace_intel_end_draw_indirect_byte_count(&cmd_buffer->trace, cmd_buffer,
-                                            instanceCount);
+   trace_intel_end_draw_indirect_byte_count(&cmd_buffer->trace, instanceCount);
 #endif /* GFX_VERx10 >= 75 */
 }
 
@@ -4625,7 +4623,7 @@ void genX(CmdDrawIndirect)(
                         INTEL_SNAPSHOT_DRAW,
                         "draw indirect",
                         drawCount);
-   trace_intel_begin_draw_indirect(&cmd_buffer->trace, cmd_buffer);
+   trace_intel_begin_draw_indirect(&cmd_buffer->trace);
 
    genX(cmd_buffer_flush_state)(cmd_buffer);
 
@@ -4660,7 +4658,7 @@ void genX(CmdDrawIndirect)(
       offset += stride;
    }
 
-   trace_intel_end_draw_indirect(&cmd_buffer->trace, cmd_buffer, drawCount);
+   trace_intel_end_draw_indirect(&cmd_buffer->trace, drawCount);
 }
 
 void genX(CmdDrawIndexedIndirect)(
@@ -4682,7 +4680,7 @@ void genX(CmdDrawIndexedIndirect)(
                         INTEL_SNAPSHOT_DRAW,
                         "draw indexed indirect",
                         drawCount);
-   trace_intel_begin_draw_indexed_indirect(&cmd_buffer->trace, cmd_buffer);
+   trace_intel_begin_draw_indexed_indirect(&cmd_buffer->trace);
 
    genX(cmd_buffer_flush_state)(cmd_buffer);
 
@@ -4718,7 +4716,7 @@ void genX(CmdDrawIndexedIndirect)(
       offset += stride;
    }
 
-   trace_intel_end_draw_indexed_indirect(&cmd_buffer->trace, cmd_buffer, 
drawCount);
+   trace_intel_end_draw_indexed_indirect(&cmd_buffer->trace, drawCount);
 }
 
 static struct mi_value
@@ -4849,7 +4847,7 @@ void genX(CmdDrawIndirectCount)(
                         INTEL_SNAPSHOT_DRAW,
                         "draw indirect count",
                         0);
-   trace_intel_begin_draw_indirect_count(&cmd_buffer->trace, cmd_buffer);
+   trace_intel_begin_draw_indirect_count(&cmd_buffer->trace);
 
    genX(cmd_buffer_flush_state)(cmd_buffer);
 
@@ -4891,7 +4889,7 @@ void genX(CmdDrawIndirectCount)(
 
    mi_value_unref(&b, max);
 
-   trace_intel_end_draw_indirect_count(&cmd_buffer->trace, cmd_buffer, 
maxDrawCount);
+   trace_intel_end_draw_indirect_count(&cmd_buffer->trace, maxDrawCount);
 }
 
 void genX(CmdDrawIndexedIndirectCount)(
@@ -4917,7 +4915,7 @@ void genX(CmdDrawIndexedIndirectCount)(
                         INTEL_SNAPSHOT_DRAW,
                         "draw indexed indirect count",
                         0);
-   trace_intel_begin_draw_indexed_indirect_count(&cmd_buffer->trace, 
cmd_buffer);
+   trace_intel_begin_draw_indexed_indirect_count(&cmd_buffer->trace);
 
    genX(cmd_buffer_flush_state)(cmd_buffer);
 
@@ -4960,8 +4958,7 @@ void genX(CmdDrawIndexedIndirectCount)(
 
    mi_value_unref(&b, max);
 
-   trace_intel_end_draw_indexed_indirect_count(&cmd_buffer->trace,
-                                               cmd_buffer, maxDrawCount);
+   trace_intel_end_draw_indexed_indirect_count(&cmd_buffer->trace, 
maxDrawCount);
 
 }
 
@@ -5492,7 +5489,7 @@ void genX(CmdDispatchBase)(
                         prog_data->local_size[0] * prog_data->local_size[1] *
                         prog_data->local_size[2]);
 
-   trace_intel_begin_compute(&cmd_buffer->trace, cmd_buffer);
+   trace_intel_begin_compute(&cmd_buffer->trace);
 
    if (prog_data->uses_num_work_groups) {
       struct anv_state state =
@@ -5518,7 +5515,7 @@ void genX(CmdDispatchBase)(
    emit_cs_walker(cmd_buffer, pipeline, false, prog_data, groupCountX,
                   groupCountY, groupCountZ);
 
-   trace_intel_end_compute(&cmd_buffer->trace, cmd_buffer,
+   trace_intel_end_compute(&cmd_buffer->trace,
                            groupCountX, groupCountY, groupCountZ);
 }
 
@@ -5553,7 +5550,7 @@ void genX(CmdDispatchIndirect)(
                         INTEL_SNAPSHOT_COMPUTE,
                         "compute indirect",
                         0);
-   trace_intel_begin_compute(&cmd_buffer->trace, cmd_buffer);
+   trace_intel_begin_compute(&cmd_buffer->trace);
 
    if (prog_data->uses_num_work_groups) {
       cmd_buffer->state.compute.num_workgroups = addr;
@@ -5628,7 +5625,7 @@ void genX(CmdDispatchIndirect)(
 
    emit_cs_walker(cmd_buffer, pipeline, true, prog_data, 0, 0, 0);
 
-   trace_intel_end_compute(&cmd_buffer->trace, cmd_buffer, 0, 0, 0);
+   trace_intel_end_compute(&cmd_buffer->trace, 0, 0, 0);
 }
 
 struct anv_state
@@ -6510,7 +6507,7 @@ void genX(CmdBeginRendering)(
    }
 
    anv_measure_beginrenderpass(cmd_buffer);
-   trace_intel_begin_render_pass(&cmd_buffer->trace, cmd_buffer);
+   trace_intel_begin_render_pass(&cmd_buffer->trace);
 
    gfx->rendering_flags = pRenderingInfo->flags;
    gfx->render_area = pRenderingInfo->renderArea;
diff --git a/src/util/perf/u_trace.py b/src/util/perf/u_trace.py
index fd02c401b3f..7647c2e512d 100644
--- a/src/util/perf/u_trace.py
+++ b/src/util/perf/u_trace.py
@@ -210,13 +210,19 @@ void ${trace.tp_perfetto}(
 #endif
 %    endif
 void __trace_${trace_name}(
-       struct u_trace *ut, void *cs
+       struct u_trace *ut
+%    if need_cs_param:
+     , void *cs
+%    endif
 %    for arg in trace.args:
      , ${arg.type} ${arg.var}
 %    endfor
 );
 static inline void trace_${trace_name}(
-     struct u_trace *ut, void *cs
+     struct u_trace *ut
+%    if need_cs_param:
+   , void *cs
+%    endif
 %    for arg in trace.args:
    , ${arg.type} ${arg.var}
 %    endfor
@@ -228,7 +234,10 @@ static inline void trace_${trace_name}(
 %    endif
       return;
    __trace_${trace_name}(
-        ut, cs
+        ut
+%    if need_cs_param:
+      , cs
+%    endif
 %    for arg in trace.args:
       , ${arg.var}
 %    endfor
@@ -349,13 +358,16 @@ static const struct u_tracepoint __tp_${trace_name} = {
  % endif
 };
 void __trace_${trace_name}(
-     struct u_trace *ut, void *cs
+     struct u_trace *ut
+ % if need_cs_param:
+   , void *cs
+ % endif
  % for arg in trace.args:
    , ${arg.type} ${arg.var}
  % endfor
 ) {
    struct trace_${trace_name} *__entry =
-      (struct trace_${trace_name} *)u_trace_append(ut, cs, 
&__tp_${trace_name});
+      (struct trace_${trace_name} *)u_trace_append(ut, ${cs_param_value + ","} 
&__tp_${trace_name});
  % if len(trace.tp_struct) == 0:
    (void)__entry;
  % endif
@@ -367,13 +379,18 @@ void __trace_${trace_name}(
 % endfor
 """
 
-def utrace_generate(cpath, hpath, ctx_param):
+def utrace_generate(cpath, hpath, ctx_param, need_cs_param=True):
+    cs_param_value = 'NULL'
+    if need_cs_param:
+        cs_param_value = 'cs'
     if cpath is not None:
         hdr = os.path.basename(cpath).rsplit('.', 1)[0] + '.h'
         with open(cpath, 'w') as f:
             f.write(Template(src_template).render(
                 hdr=hdr,
                 ctx_param=ctx_param,
+                need_cs_param=need_cs_param,
+                cs_param_value=cs_param_value,
                 HEADERS=[h for h in HEADERS if h.scope & HeaderScope.SOURCE],
                 TRACEPOINTS=TRACEPOINTS))
 
@@ -383,6 +400,7 @@ def utrace_generate(cpath, hpath, ctx_param):
             f.write(Template(hdr_template).render(
                 hdrname=hdr.rstrip('.h').upper(),
                 ctx_param=ctx_param,
+                need_cs_param=need_cs_param,
                 HEADERS=[h for h in HEADERS if h.scope & HeaderScope.HEADER],
                 FORWARD_DECLS=FORWARD_DECLS,
                 TRACEPOINTS=TRACEPOINTS))

Reply via email to