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

Author: Felix DeGrood <[email protected]>
Date:   Tue May  9 00:11:46 2023 +0000

intel: Secondary CB print primary CB's renderpass

Reviewed-by: Mark Janes <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22723>

---

 src/intel/common/intel_measure.c | 6 +++++-
 src/intel/common/intel_measure.h | 5 +++--
 2 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/src/intel/common/intel_measure.c b/src/intel/common/intel_measure.c
index 86950056c60..9d54cd35a53 100644
--- a/src/intel/common/intel_measure.c
+++ b/src/intel/common/intel_measure.c
@@ -433,6 +433,7 @@ intel_measure_push_result(struct intel_measure_device 
*device,
       if (begin->type == INTEL_SNAPSHOT_SECONDARY_BATCH) {
          assert(begin->secondary != NULL);
          begin->secondary->batch_count = batch->batch_count;
+         begin->secondary->primary_renderpass = batch->renderpass;
          intel_measure_push_result(device, begin->secondary);
          continue;
       }
@@ -467,6 +468,7 @@ intel_measure_push_result(struct intel_measure_device 
*device,
          raw_timestamp_delta(prev_end_ts, buffered_result->start_ts);
       buffered_result->frame = batch->frame;
       buffered_result->batch_count = batch->batch_count;
+      buffered_result->primary_renderpass = batch->primary_renderpass;
       buffered_result->event_index = i / 2;
       buffered_result->snapshot.event_count = end->event_count;
    }
@@ -616,11 +618,13 @@ print_combined_results(struct intel_measure_device 
*measure_device,
    uint64_t duration_time_ns =
       intel_device_info_timebase_scale(info, duration_ts);
    const struct intel_measure_snapshot *begin = &start_result->snapshot;
+   uint32_t renderpass = (start_result->primary_renderpass)
+      ? start_result->primary_renderpass : begin->renderpass;
    fprintf(config.file, "%"PRIu64",%"PRIu64",%u,%u,%u,%u,%u,%s,%u,"
            "0x%x,0x%x,0x%x,0x%x,0x%x,0x%x,0x%x,0x%x,%.3lf,%.3lf\n",
            start_result->start_ts, current_result->end_ts,
            start_result->frame, start_result->batch_count,
-           begin->renderpass, start_result->event_index, event_count,
+           renderpass, start_result->event_index, event_count,
            begin->event_name, begin->count,
            (uint32_t)begin->vs, (uint32_t)begin->tcs, (uint32_t)begin->tes,
            (uint32_t)begin->gs, (uint32_t)begin->fs, (uint32_t)begin->cs,
diff --git a/src/intel/common/intel_measure.h b/src/intel/common/intel_measure.h
index 5ce2b5b46b7..57d5571fab8 100644
--- a/src/intel/common/intel_measure.h
+++ b/src/intel/common/intel_measure.h
@@ -121,7 +121,8 @@ struct intel_measure_snapshot {
 struct intel_measure_buffered_result {
    struct intel_measure_snapshot snapshot;
    uint64_t start_ts, end_ts, idle_duration;
-   unsigned frame, batch_count, event_index;
+   unsigned frame, batch_count, event_index, primary_renderpass;
+;
 };
 
 struct intel_measure_ringbuffer {
@@ -154,7 +155,7 @@ struct intel_measure_batch {
    struct list_head link;
    unsigned index;
    unsigned frame, batch_count, event_count;
-   uint32_t renderpass;
+   uint32_t renderpass, primary_renderpass;
    uint64_t *timestamps;
    struct intel_measure_snapshot snapshots[0];
 };

Reply via email to