[Mesa-dev] [PATCH] mesa: add EXT_debug_label support
Ian Romanick
idr at freedesktop.org
Tue Dec 11 06:11:44 UTC 2018
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.
>> 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