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

Reply via email to