On Wed, Jan 20, 2016 at 2:44 PM, Ilia Mirkin <imir...@alum.mit.edu> wrote: > On Wed, Jan 20, 2016 at 2:32 PM, Rob Clark <robdcl...@gmail.com> wrote: >> From: Rob Clark <robcl...@freedesktop.org> >> >> Signed-off-by: Rob Clark <robcl...@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@lists.freedesktop.org >> http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev