[Mesa-dev] [PATCH] mesa: add EXT_debug_label support

Timothy Arceri tarceri at itsqueeze.com
Sat Jan 19 00:08:33 UTC 2019


On 11/12/18 5:11 pm, Ian Romanick wrote:
> On 12/10/18 5:52 PM, Timothy Arceri wrote:
>> On 11/12/18 11:35 am, Ian Romanick wrote:
>>> It seems like someone already sent out patches to implement this, and we
>>> decided to not take it for some reason.  Maybe it was Rob?
>>
>> I discovered a thread from the beginning of 2017 titled "feature.txt &
>> EXT_debug_label extension". But couldn't find any implementation.
>>
>> There was a reply from yourself, but it seems incorrect to me:
>>
>> "I checked both extensions, and they're not "just" aliases.  The EXT adds
>> a single function with an enum to select the kind of object.  The KHR
>> adds a function per kind of object.  It would be easy enough to add, but
>> it seems more valuable to suggest the developer use the more broadly
>> supported extension."
> 
> That's weird for a couple reasons.  One, that's not even the discussion
> that I was thinking of.  I'll check in the morning to see if I can find
> it.  Two, I was clearly full of it... I really don't see how I came that
> conclusion.  I don't even see any other related extensions that I could
> have been confusing either thing with.

So do you think we should push this?

> 
>>> On 12/10/18 4:08 PM, Timothy Arceri wrote:
>>>> KHR_debug already provides superior functionality but this
>>>> extension is still in use and adding support for it seems fairly
>>>> harmless. For example it seems to be used by Unity as seen in the
>>>> Parkitect trace attached to Mesa bug #108919.
>>>> ---
>>>>    src/mapi/glapi/gen/gl_API.xml    | 17 +++++++++++++++++
>>>>    src/mesa/main/extensions_table.h |  1 +
>>>>    src/mesa/main/objectlabel.c      |  6 ++++++
>>>>    3 files changed, 24 insertions(+)
>>>>
>>>> diff --git a/src/mapi/glapi/gen/gl_API.xml
>>>> b/src/mapi/glapi/gen/gl_API.xml
>>>> index f1def8090d..75423c4edb 100644
>>>> --- a/src/mapi/glapi/gen/gl_API.xml
>>>> +++ b/src/mapi/glapi/gen/gl_API.xml
>>>> @@ -12973,6 +12973,23 @@
>>>>        <enum name="GPU_MEMORY_INFO_EVICTED_MEMORY_NVX"
>>>> value="0x904B" />
>>>>    </category>
>>>>    +<category name="GL_EXT_debug_label" number="439">
>>>> +  <function name="LabelObjectEXT" alias="ObjectLabel">
>>>
>>> Since these are just aliases, I don't think any changes needed in
>>> dispatch-sanity... but did you run 'make check' anyway? :)
>>>
>>
>> Yes :) Passed as expected.
>>
>>
>>>> +    <param name="type" type="GLenum"/>
>>>> +    <param name="object" type="GLuint"/>
>>>> +    <param name="length" type="GLsizei"/>
>>>> +    <param name="label" type="const GLchar *"/>
>>>> +  </function>
>>>> +
>>>> +  <function name="GetObjectLabelEXT" alias="GetObjectLabel">
>>>> +    <param name="type" type="GLenum"/>
>>>> +    <param name="object" type="GLuint"/>
>>>> +    <param name="bufSize" type="GLsizei"/>
>>>> +    <param name="length" type="GLsizei"/>
>>>> +    <param name="label" type="GLchar *"/>
>>>> +  </function>
>>>> +</category>
>>>> +
>>>>    <xi:include href="AMD_gpu_shader_int64.xml"
>>>> xmlns:xi="http://www.w3.org/2001/XInclude"/>
>>>>      <category name="GL_NV_fill_rectangle" number="466">
>>>> diff --git a/src/mesa/main/extensions_table.h
>>>> b/src/mesa/main/extensions_table.h
>>>> index dad38124d5..b68f6781c4 100644
>>>> --- a/src/mesa/main/extensions_table.h
>>>> +++ b/src/mesa/main/extensions_table.h
>>>> @@ -217,6 +217,7 @@ EXT(EXT_compiled_vertex_array               ,
>>>> dummy_true
>>>>    EXT(EXT_compressed_ETC1_RGB8_sub_texture    ,
>>>> OES_compressed_ETC1_RGB8_texture       ,  x ,  x , ES1, ES2, 2014)
>>>>    EXT(EXT_copy_image                          ,
>>>> OES_copy_image                         ,  x ,  x ,  x ,  30, 2014)
>>>>    EXT(EXT_copy_texture                        ,
>>>> dummy_true                             , GLL,  x ,  x ,  x , 1995)
>>>> +EXT(EXT_debug_label                         ,
>>>> dummy_true                             , GLL, GLC,  x ,  x , 2013)
>>>>    EXT(EXT_depth_bounds_test                   ,
>>>> EXT_depth_bounds_test                  , GLL, GLC,  x ,  x , 2002)
>>>>    EXT(EXT_discard_framebuffer                 ,
>>>> dummy_true                             ,  x ,  x , ES1, ES2, 2009)
>>>>    EXT(EXT_disjoint_timer_query                ,
>>>> EXT_disjoint_timer_query               ,  x ,  x ,  x , ES2, 2016)
>>>> diff --git a/src/mesa/main/objectlabel.c b/src/mesa/main/objectlabel.c
>>>> index 1e3022ee54..9d4cc1871e 100644
>>>> --- a/src/mesa/main/objectlabel.c
>>>> +++ b/src/mesa/main/objectlabel.c
>>>> @@ -139,6 +139,7 @@ get_label_pointer(struct gl_context *ctx, GLenum
>>>> identifier, GLuint name,
>>>>         switch (identifier) {
>>>>       case GL_BUFFER:
>>>> +   case GL_BUFFER_OBJECT_EXT:
>>>>          {
>>>>             struct gl_buffer_object *bufObj =
>>>> _mesa_lookup_bufferobj(ctx, name);
>>>>             if (bufObj)
>>>> @@ -146,6 +147,7 @@ get_label_pointer(struct gl_context *ctx, GLenum
>>>> identifier, GLuint name,
>>>>          }
>>>>          break;
>>>>       case GL_SHADER:
>>>> +   case GL_SHADER_OBJECT_EXT:
>>>>          {
>>>>             struct gl_shader *shader = _mesa_lookup_shader(ctx, name);
>>>>             if (shader)
>>>> @@ -153,6 +155,7 @@ get_label_pointer(struct gl_context *ctx, GLenum
>>>> identifier, GLuint name,
>>>>          }
>>>>          break;
>>>>       case GL_PROGRAM:
>>>> +   case GL_PROGRAM_OBJECT_EXT:
>>>>          {
>>>>             struct gl_shader_program *program =
>>>>                _mesa_lookup_shader_program(ctx, name);
>>>> @@ -161,6 +164,7 @@ get_label_pointer(struct gl_context *ctx, GLenum
>>>> identifier, GLuint name,
>>>>          }
>>>>          break;
>>>>       case GL_VERTEX_ARRAY:
>>>> +   case GL_VERTEX_ARRAY_OBJECT_EXT:
>>>>          {
>>>>             struct gl_vertex_array_object *obj = _mesa_lookup_vao(ctx,
>>>> name);
>>>>             if (obj)
>>>> @@ -168,6 +172,7 @@ get_label_pointer(struct gl_context *ctx, GLenum
>>>> identifier, GLuint name,
>>>>          }
>>>>          break;
>>>>       case GL_QUERY:
>>>> +   case GL_QUERY_OBJECT_EXT:
>>>>          {
>>>>             struct gl_query_object *query =
>>>> _mesa_lookup_query_object(ctx, name);
>>>>             if (query)
>>>> @@ -225,6 +230,7 @@ get_label_pointer(struct gl_context *ctx, GLenum
>>>> identifier, GLuint name,
>>>>          }
>>>>          break;
>>>>       case GL_PROGRAM_PIPELINE:
>>>> +   case GL_PROGRAM_PIPELINE_OBJECT_EXT:
>>>>          {
>>>>             struct gl_pipeline_object *pipe =
>>>>                _mesa_lookup_pipeline_object(ctx, name);
>>>>
>>>
>>> _______________________________________________
>>> mesa-dev mailing list
>>> mesa-dev at lists.freedesktop.org
>>> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>>>
>>
> 


More information about the mesa-dev mailing list