Thanks. BTW, this patch still qualifies as very useful to me, because it enables the ddebug functionality by advertising support for string markers.
Marek On Fri, Jul 1, 2016 at 2:38 PM, Bas Nieuwenhuizen <b...@basnieuwenhuizen.nl> wrote: > On Fri, Jul 1, 2016 at 2:24 PM, Marek Olšák <mar...@gmail.com> wrote: >> On Fri, Jul 1, 2016 at 2:16 PM, Bas Nieuwenhuizen >> <b...@basnieuwenhuizen.nl> wrote: >>> On Fri, Jul 1, 2016 at 1:21 AM, Marek Olšák <mar...@gmail.com> wrote: >>>> From: Marek Olšák <marek.ol...@amd.com> >>>> >>>> --- >>>> src/gallium/drivers/radeonsi/si_debug.c | 4 ++++ >>>> src/gallium/drivers/radeonsi/si_pipe.c | 20 +++++++++++++++++++- >>>> src/gallium/drivers/radeonsi/si_pipe.h | 1 + >>>> 3 files changed, 24 insertions(+), 1 deletion(-) >>>> >>>> diff --git a/src/gallium/drivers/radeonsi/si_debug.c >>>> b/src/gallium/drivers/radeonsi/si_debug.c >>>> index 112e686..220ce13 100644 >>>> --- a/src/gallium/drivers/radeonsi/si_debug.c >>>> +++ b/src/gallium/drivers/radeonsi/si_debug.c >>>> @@ -814,6 +814,10 @@ void si_check_vm_faults(struct r600_common_context >>>> *ctx, >>>> fprintf(f, "Device name: %s\n\n", screen->get_name(screen)); >>>> fprintf(f, "Failing VM page: 0x%08x\n\n", addr); >>>> >>>> + if (sctx->apitrace_call_number) >>>> + fprintf(f, "Last apitrace call: %u\n\n", >>>> + sctx->apitrace_call_number); >>>> + >>>> switch (ring) { >>>> case RING_GFX: >>>> si_dump_debug_state(&sctx->b.b, f, 0); >>>> diff --git a/src/gallium/drivers/radeonsi/si_pipe.c >>>> b/src/gallium/drivers/radeonsi/si_pipe.c >>>> index 6c88fe3..f15e589 100644 >>>> --- a/src/gallium/drivers/radeonsi/si_pipe.c >>>> +++ b/src/gallium/drivers/radeonsi/si_pipe.c >>>> @@ -31,6 +31,7 @@ >>>> #include "util/u_memory.h" >>>> #include "util/u_suballoc.h" >>>> #include "vl/vl_decoder.h" >>>> +#include "../ddebug/dd_util.h" >>>> >>>> #define SI_LLVM_DEFAULT_FEATURES \ >>>> "+DumpCode,+vgpr-spilling,-fp32-denormals,+fp64-denormals" >>>> @@ -106,6 +107,22 @@ si_amdgpu_get_reset_status(struct pipe_context *ctx) >>>> return sctx->b.ws->ctx_query_reset_status(sctx->b.ctx); >>>> } >>>> >>>> +/* Apitrace profiling: >>>> + * 1) qapitrace : Tools -> Profile: Measure CPU & GPU times >>>> + * 2) In the middle panel, zoom in (mouse wheel) on some bad draw call >>>> + * and remember its number. >>>> + * 3) In Mesa, enable queries and performance counters around that draw >>>> + * call and print the results. >>>> + * 4) glretrace --benchmark --markers .. >>>> + */ >>> >>> Were there issues that you hit with the existing apitrace performance >>> counters support? >> >> I didn't know apitrace had that. How to use it? > > Use it with e.g. > > apitrace replay --pdrawcalls="GL_AMD_performance_monitor: > SQ_080,SQ_081" test.trace > > The only documentation I found is at > https://github.com/apitrace/apitrace/commit/87a07779ecc48249046d000ec87a57fd15112ff4 > > You can list available metrics with > > apitrace replay --list-metrics test.trace (trace file is required for > some reason) > > - Bas _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev