[Mesa-dev] [PATCH v2 1/4] mesa: add GREMEDY_string_marker
Rob Clark
robdclark at gmail.com
Wed Jan 20 11:48:13 PST 2016
On Wed, Jan 20, 2016 at 2:44 PM, Ilia Mirkin <imirkin at alum.mit.edu> wrote:
> On Wed, Jan 20, 2016 at 2:32 PM, Rob Clark <robdclark at gmail.com> wrote:
>> From: Rob Clark <robclark at freedesktop.org>
>>
>> Signed-off-by: Rob Clark <robclark at freedesktop.org>
>> ---
>> 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/errors.c | 13 +++++++++++++
>> src/mesa/main/errors.h | 3 +++
>> src/mesa/main/extensions_table.h | 2 ++
>> src/mesa/main/mtypes.h | 1 +
>> src/mesa/main/tests/dispatch_sanity.cpp | 3 +++
>> 9 files changed, 49 insertions(+)
>> create mode 100644 src/mapi/glapi/gen/GREMEDY_string_marker.xml
>>
>> diff --git a/src/mapi/glapi/gen/GREMEDY_string_marker.xml b/src/mapi/glapi/gen/GREMEDY_string_marker.xml
>> new file mode 100644
>> index 0000000..ffa3eac
>> --- /dev/null
>> +++ b/src/mapi/glapi/gen/GREMEDY_string_marker.xml
>> @@ -0,0 +1,18 @@
>> +<?xml version="1.0"?>
>> +<!DOCTYPE OpenGLAPI SYSTEM "gl_API.dtd">
>> +
>> +<!-- Note: no GLX protocol info yet. -->
>> +
>> +
>> +<OpenGLAPI>
>> +
>> +<category name="GL_GREMEDY_string_marker" number="311">
>> +
>> + <function name="StringMarkerGREMEDY">
>> + <param name="len" type="GLsizei"/>
>> + <param name="string" type="const GLvoid *"/>
>> + </function>
>> +
>> +</category>
>> +
>> +</OpenGLAPI>
>> diff --git a/src/mapi/glapi/gen/Makefile.am b/src/mapi/glapi/gen/Makefile.am
>> index 900b61a..a40de49 100644
>> --- a/src/mapi/glapi/gen/Makefile.am
>> +++ b/src/mapi/glapi/gen/Makefile.am
>> @@ -188,6 +188,7 @@ API_XML = \
>> EXT_texture_array.xml \
>> EXT_texture_integer.xml \
>> EXT_transform_feedback.xml \
>> + GREMEDY_string_marker.xml \
>> INTEL_performance_query.xml \
>> KHR_debug.xml \
>> KHR_context_flush_control.xml \
>> diff --git a/src/mapi/glapi/gen/gl_API.xml b/src/mapi/glapi/gen/gl_API.xml
>> index 593ace4..d7ab3bf 100644
>> --- a/src/mapi/glapi/gen/gl_API.xml
>> +++ b/src/mapi/glapi/gen/gl_API.xml
>> @@ -12620,6 +12620,8 @@
>>
>> <xi:include href="EXT_framebuffer_object.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
>>
>> +<xi:include href="GREMEDY_string_marker.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
>> +
>> <xi:include href="EXT_packed_depth_stencil.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
>>
>> <xi:include href="EXT_provoking_vertex.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
>> diff --git a/src/mesa/main/dd.h b/src/mesa/main/dd.h
>> index 70ed563..d4378e5 100644
>> --- a/src/mesa/main/dd.h
>> +++ b/src/mesa/main/dd.h
>> @@ -762,6 +762,12 @@ struct dd_function_table {
>> void (*UseProgram)(struct gl_context *ctx, struct gl_shader_program *shProg);
>> /*@}*/
>>
>> + /**
>> + * \name GREMEDY debug/marker functions
>> + */
>> + /*@{*/
>> + void (*EmitStringMarker)(struct gl_context *ctx, const GLchar *string, GLsizei len);
>> + /*@}*/
>>
>> /**
>> * \name Support for multiple T&L engines
>> diff --git a/src/mesa/main/errors.c b/src/mesa/main/errors.c
>> index 9e66109..fc3c6d0 100644
>> --- a/src/mesa/main/errors.c
>> +++ b/src/mesa/main/errors.c
>> @@ -1276,6 +1276,19 @@ _mesa_free_errors_data(struct gl_context *ctx)
>> mtx_destroy(&ctx->DebugMutex);
>> }
>>
>> +void GLAPIENTRY
>> +_mesa_StringMarkerGREMEDY(GLsizei len, const GLvoid * string)
>> +{
>> + GET_CURRENT_CONTEXT(ctx);
>> + if (ctx->Driver.EmitStringMarker) {
>
> Traditionally this is done more like
>
> if (!ctx->Const.GREMEDY_bla) {
> _mesa_error(go away);
> return;
> }
>
> assume that EmitStringMarker is set, otherwise it's the driver's fault
> for enabling this ext and not providing a driver callback.
>
> But as discussed on IRC, I don't think we should have the GREMEDY
> stuff at all in the first place. Would be interested in knowing what
> others have to say.
>
fwiw, the gremedy part is left over from early incarnation of this,
before I discovered the khr_debug part. But figured since I needed
the EmitStringMarker driver entrypoint anyways, it was trivial to keep
the extension around (hidden by default). Maybe some old games/etc
already have support for it.
BR,
-R
>> + /* if length not specified, string will be null terminated: */
>> + if (len <= 0)
>> + len = strlen(string);
>> + ctx->Driver.EmitStringMarker(ctx, string, len);
>> + } else {
>> + _mesa_error(ctx, GL_INVALID_OPERATION, "StringMarkerGREMEDY");
>> + }
>> +}
>>
>> /**********************************************************************/
>> /** \name Diagnostics */
>> diff --git a/src/mesa/main/errors.h b/src/mesa/main/errors.h
>> index f291976..d05bc71 100644
>> --- a/src/mesa/main/errors.h
>> +++ b/src/mesa/main/errors.h
>> @@ -138,6 +138,9 @@ _mesa_PushDebugGroup(GLenum source, GLuint id, GLsizei length,
>> void GLAPIENTRY
>> _mesa_PopDebugGroup(void);
>>
>> +void GLAPIENTRY
>> +_mesa_StringMarkerGREMEDY(GLsizei len, const GLvoid * string);
>> +
>> #ifdef __cplusplus
>> }
>> #endif
>> diff --git a/src/mesa/main/extensions_table.h b/src/mesa/main/extensions_table.h
>> index aeccb01..9cec176 100644
>> --- a/src/mesa/main/extensions_table.h
>> +++ b/src/mesa/main/extensions_table.h
>> @@ -251,6 +251,8 @@ EXT(EXT_unpack_subimage , dummy_true
>> EXT(EXT_vertex_array , dummy_true , GLL, x , x , x , 1995)
>> EXT(EXT_vertex_array_bgra , EXT_vertex_array_bgra , GLL, GLC, x , x , 2008)
>>
>> +EXT(GREMEDY_string_marker , GREMEDY_string_marker , GLL, GLC, x , x , 2007)
>> +
>> EXT(IBM_multimode_draw_arrays , dummy_true , GLL, GLC, x , x , 1998)
>> EXT(IBM_rasterpos_clip , dummy_true , GLL, x , x , x , 1996)
>> EXT(IBM_texture_mirrored_repeat , dummy_true , GLL, x , x , x , 1998)
>> diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
>> index 0992d4d..3912c2b 100644
>> --- a/src/mesa/main/mtypes.h
>> +++ b/src/mesa/main/mtypes.h
>> @@ -3880,6 +3880,7 @@ struct gl_extensions
>> GLboolean ATI_texture_env_combine3;
>> GLboolean ATI_fragment_shader;
>> GLboolean ATI_separate_stencil;
>> + GLboolean GREMEDY_string_marker;
>> GLboolean INTEL_performance_query;
>> GLboolean KHR_texture_compression_astc_hdr;
>> GLboolean KHR_texture_compression_astc_ldr;
>> diff --git a/src/mesa/main/tests/dispatch_sanity.cpp b/src/mesa/main/tests/dispatch_sanity.cpp
>> index 7610bcb..eb11081 100644
>> --- a/src/mesa/main/tests/dispatch_sanity.cpp
>> +++ b/src/mesa/main/tests/dispatch_sanity.cpp
>> @@ -940,6 +940,9 @@ const struct function common_desktop_functions_possible[] = {
>> { "glGetTextureSubImage", 20, -1 },
>> { "glGetCompressedTextureSubImage", 20, -1 },
>>
>> + /* GL_GREMEDY_string_marker */
>> + { "glStringMarkerGREMEDY", 15, -1 },
>> +
>> { NULL, 0, -1 }
>> };
>>
>> --
>> 2.5.0
>>
>> _______________________________________________
>> mesa-dev mailing list
>> mesa-dev at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list