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]; };
