[Mesa-dev] [RFC PATCH shader-db 2/2] run: request a debug context

Ilia Mirkin imirkin at alum.mit.edu
Mon Nov 9 10:46:01 PST 2015


On Mon, Nov 9, 2015 at 1:35 PM, Matt Turner <mattst88 at gmail.com> wrote:
> On Sun, Nov 8, 2015 at 8:53 PM, Ilia Mirkin <imirkin at alum.mit.edu> wrote:
>> st/mesa only prints messages in a debug context. Without always enabling
>> the message generation, I don't see a way to hook into the glEnable() to
>> turn it on/off.
>> ---
>>  run.c | 1 +
>>  1 file changed, 1 insertion(+)
>>
>> diff --git a/run.c b/run.c
>> index 73e468d..1d8d3b1 100644
>> --- a/run.c
>> +++ b/run.c
>> @@ -417,6 +417,7 @@ main(int argc, char **argv)
>>          EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT_KHR,
>>          EGL_CONTEXT_MAJOR_VERSION_KHR, 3,
>>          EGL_CONTEXT_MINOR_VERSION_KHR, 2,
>> +        EGL_CONTEXT_FLAGS_KHR, EGL_CONTEXT_OPENGL_DEBUG_BIT_KHR,
>>          EGL_NONE
>>      };
>>      EGLContext core_ctx = eglCreateContext(egl_dpy, cfg, EGL_NO_CONTEXT,
>
> Is this a limitation of st/mesa, or am I using the KHR_debug API
> incorrectly? It's my understanding that you can get KHR_debug messages
> without a debug context by calling glEnable(GL_DEBUG_OUTPUT), and it
> looks like this is supported by the KHR_debug spec.

But I don't want to be generating the debug info in my driver for no
reason. For example I have a timing-type debug message which gets the
current time (to report how long a sync fence wait takes). This is a
non-free operation that I want to avoid if no one's looking.

I can see this both ways... perhaps the more expensive messages should
be keyed on whether it's a debug context and the compiler message
should always be reported. Or perhaps we can just create a debug
context here and be done with it.

  -ilia


More information about the mesa-dev mailing list