[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