[Mesa-dev] [PATCH 0/3] GREMEDY_string_marker support
Rob Clark
robdclark at gmail.com
Mon Aug 17 11:06:00 PDT 2015
On Mon, Aug 17, 2015 at 1:12 PM, Ian Romanick <idr at freedesktop.org> wrote:
> On 08/10/2015 09:15 AM, Rob Clark wrote:
>> From: Rob Clark <robclark at freedesktop.org>
>>
>> Punch it through mesa and gallium, plus implementation in freedreno to
>> serve as an example. Radeon should be able to do a similar thing with
>> no-op packets. Not sure about other drivers.
>
> The idea behind this extension (and the way the only other
> implementation of it works) is that the debug tool itself exposes it to
> the application without the driver knowing. This allows the developer
> to set breakpoints on certain messages, etc.
>
> Given that usage model, there may be applications that will start
> calling glStringMarkerGREMEDY as soon as the extension string is there.
> After all, you'll on see that in the debugger, so who cares about
> performance there, right? :( I think it would be better to not enable
> the extension by default. Maybe require a driconf option or debug
> context or something.
>
>> Plan to use this extension from apitrace, to emit call and frame #'s
>> for draw commands, so I can find the corresponding draw from cmdstream
>> dump (ie. to debug lockups, incorrect rendering, etc).
>
> Clever. :)
>
> I think the other way to do this would be to insert a fence with an
> object label.
>
> GLsync fence = glFenceSync(GL_SYNC_GPU_COMMANDS_COMPLETE, 0);
>
> glObjectPtrLabel(fence, 0, "call ### frame ###");
José Fonseca mentioned on apitrace list, when I submitted
corresponding apitrace patch, KHR_debug.. which already has
GL_DEBUG_TYPE_MARKER which seems to be intended for this sort of
usage.
So I was kinda thinking to respin these patches to add calls to
Driver.EmitStringMarker() in case of GL_DEBUG_TYPE_MARKER. (Although
I was a bit unsure if that should be *in addition to* or *instead of*
the normal codepaths for glDebugMessageInsert())
BR,
-R
>> Rob Clark (3):
>> mesa: add GREMEDY_string_marker
>> gallium: add GREMEDY_string_marker
>> freedreno: implement emit_string_marker
>>
>> src/gallium/docs/source/screen.rst | 1 +
>> src/gallium/drivers/freedreno/freedreno_context.c | 27 +++++++++++++++++++++++
>> src/gallium/drivers/freedreno/freedreno_screen.c | 1 +
>> src/gallium/drivers/i915/i915_screen.c | 1 +
>> src/gallium/drivers/ilo/ilo_screen.c | 1 +
>> src/gallium/drivers/llvmpipe/lp_screen.c | 1 +
>> src/gallium/drivers/nouveau/nv30/nv30_screen.c | 1 +
>> src/gallium/drivers/nouveau/nv50/nv50_screen.c | 1 +
>> src/gallium/drivers/nouveau/nvc0/nvc0_screen.c | 1 +
>> src/gallium/drivers/r300/r300_screen.c | 1 +
>> src/gallium/drivers/r600/r600_pipe.c | 1 +
>> src/gallium/drivers/radeonsi/si_pipe.c | 1 +
>> src/gallium/drivers/softpipe/sp_screen.c | 1 +
>> src/gallium/drivers/svga/svga_screen.c | 1 +
>> src/gallium/drivers/vc4/vc4_screen.c | 3 ++-
>> src/gallium/include/pipe/p_context.h | 7 ++++++
>> src/gallium/include/pipe/p_defines.h | 1 +
>> src/mapi/glapi/gen/GREMEDY_string_marker.xml | 18 +++++++++++++++
>> src/mapi/glapi/gen/Makefile.am | 1 +
>> src/mapi/glapi/gen/gl_API.xml | 2 ++
>> src/mesa/main/dd.h | 6 +++++
>> src/mesa/main/debug.c | 14 ++++++++++++
>> src/mesa/main/debug.h | 3 +++
>> src/mesa/main/extensions.c | 1 +
>> src/mesa/main/mtypes.h | 1 +
>> src/mesa/state_tracker/st_context.c | 9 ++++++++
>> src/mesa/state_tracker/st_extensions.c | 1 +
>> 27 files changed, 106 insertions(+), 1 deletion(-)
>> create mode 100644 src/mapi/glapi/gen/GREMEDY_string_marker.xml
>
More information about the mesa-dev
mailing list