freedreno: Add the rest of tracepoints with start/end to perfetto

Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16781>
This commit is contained in:
Danylo Piliaiev 2022-05-31 12:37:01 +03:00 committed by Marge Bot
parent b059cdad40
commit 82e79f6cdf
3 changed files with 66 additions and 8 deletions

View file

@ -449,6 +449,54 @@ fd_end_resolve(struct pipe_context *pctx, uint64_t ts_ns,
stage_end(pctx, ts_ns, RESOLVE_STAGE_ID);
}
void
fd_start_state_restore(struct pipe_context *pctx, uint64_t ts_ns,
const void *flush_data,
const struct trace_start_state_restore *payload)
{
stage_start(pctx, ts_ns, STATE_RESTORE_STAGE_ID);
}
void
fd_end_state_restore(struct pipe_context *pctx, uint64_t ts_ns,
const void *flush_data,
const struct trace_end_state_restore *payload)
{
stage_end(pctx, ts_ns, STATE_RESTORE_STAGE_ID);
}
void
fd_start_vsc_overflow_test(struct pipe_context *pctx, uint64_t ts_ns,
const void *flush_data,
const struct trace_start_vsc_overflow_test *payload)
{
stage_start(pctx, ts_ns, VSC_OVERFLOW_STAGE_ID);
}
void
fd_end_vsc_overflow_test(struct pipe_context *pctx, uint64_t ts_ns,
const void *flush_data,
const struct trace_end_vsc_overflow_test *payload)
{
stage_end(pctx, ts_ns, VSC_OVERFLOW_STAGE_ID);
}
void
fd_start_prologue(struct pipe_context *pctx, uint64_t ts_ns,
const void *flush_data,
const struct trace_start_prologue *payload)
{
stage_start(pctx, ts_ns, PROLOGUE_STAGE_ID);
}
void
fd_end_prologue(struct pipe_context *pctx, uint64_t ts_ns,
const void *flush_data,
const struct trace_end_prologue *payload)
{
stage_end(pctx, ts_ns, PROLOGUE_STAGE_ID);
}
#ifdef __cplusplus
}
#endif

View file

@ -42,7 +42,9 @@ enum fd_stage_id {
COMPUTE_STAGE_ID,
CLEAR_RESTORE_STAGE_ID,
RESOLVE_STAGE_ID,
// TODO add the rest
STATE_RESTORE_STAGE_ID,
VSC_OVERFLOW_STAGE_ID,
PROLOGUE_STAGE_ID,
NUM_STAGES
};
@ -59,7 +61,9 @@ static const struct {
[COMPUTE_STAGE_ID] = {"Compute", "Compute job"},
[CLEAR_RESTORE_STAGE_ID] = {"Clear/Restore", "Clear (sysmem) or per-tile clear or restore (GMEM)"},
[RESOLVE_STAGE_ID] = {"Resolve", "Per tile resolve (GMEM to system memory"},
// TODO add the rest
[STATE_RESTORE_STAGE_ID] = {"State Restore", "Setup at the beginning of new cmdstream buffer"},
[VSC_OVERFLOW_STAGE_ID] = {"VSC Overflow Test", ""},
[PROLOGUE_STAGE_ID] = {"Prologue", "Preemble cmdstream (executed once before first tile)"},
};
/**

View file

@ -47,8 +47,10 @@ from u_trace import utrace_generate
Header('util/u_dump.h')
Header('freedreno_batch.h')
Tracepoint('start_state_restore')
Tracepoint('end_state_restore')
Tracepoint('start_state_restore',
tp_perfetto='fd_start_state_restore')
Tracepoint('end_state_restore',
tp_perfetto='fd_end_state_restore')
Tracepoint('flush_batch',
args=[TracepointArg(type='struct fd_batch *', var='batch', c_format='%x'),
@ -93,11 +95,15 @@ Tracepoint('start_binning_ib',
Tracepoint('end_binning_ib',
tp_perfetto='fd_end_binning_ib')
Tracepoint('start_vsc_overflow_test')
Tracepoint('end_vsc_overflow_test')
Tracepoint('start_vsc_overflow_test',
tp_perfetto='fd_start_vsc_overflow_test')
Tracepoint('end_vsc_overflow_test',
tp_perfetto='fd_end_vsc_overflow_test')
Tracepoint('start_prologue')
Tracepoint('end_prologue')
Tracepoint('start_prologue',
tp_perfetto='fd_start_prologue')
Tracepoint('end_prologue',
tp_perfetto='fd_end_prologue')
# For GMEM pass, where this could either be a clear or resolve
Tracepoint('start_clear_restore',