[Mesa-dev] [PATCH] mesa: Always expose GREMEDY_string_marker.

Ian Romanick idr at freedesktop.org
Fri Feb 17 00:04:19 UTC 2017


Have we contacted the developer?  This doesn't seem like a thing they
really want to do in a release build.

On 02/15/2017 04:59 PM, Kenneth Graunke wrote:
> Equivalent marker functionality is already included in KHR_debug, which
> we already expose unconditionally in all drivers (dummy_true).
> 
> Grim Fandango Remastered apparently calls glStringMarkerGREMEDY()
> without checking for the extension, spewing GL errors.  Assuming the
> existence of the extension is definitely not valid, but it also seems
> kinda mean to spew GL errors when we could simply expose the feature
> and silently ignore the provided string markers.
> 
> This patch enables GREMEDY_string_marker everywhere, and makes the calls
> no-ops if the driver doesn't provide the EmitStringMarker() hook, just
> like we did for the KHR_debug functionality.
> 
> This may impact freedreno, which actually puts markers in its command
> buffers.
> 
> Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
> ---
>  src/mesa/main/debug_output.c           | 4 +---
>  src/mesa/main/extensions_table.h       | 2 +-
>  src/mesa/state_tracker/st_debug.c      | 1 -
>  src/mesa/state_tracker/st_debug.h      | 3 +--
>  src/mesa/state_tracker/st_extensions.c | 4 ----
>  5 files changed, 3 insertions(+), 11 deletions(-)
> 
> diff --git a/src/mesa/main/debug_output.c b/src/mesa/main/debug_output.c
> index bc933db93d4..1d2dee128b4 100644
> --- a/src/mesa/main/debug_output.c
> +++ b/src/mesa/main/debug_output.c
> @@ -1308,12 +1308,10 @@ void GLAPIENTRY
>  _mesa_StringMarkerGREMEDY(GLsizei len, const GLvoid *string)
>  {
>     GET_CURRENT_CONTEXT(ctx);
> -   if (ctx->Extensions.GREMEDY_string_marker) {
> +   if (ctx->Driver.EmitStringMarker) {
>        /* 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");
>     }
>  }
> diff --git a/src/mesa/main/extensions_table.h b/src/mesa/main/extensions_table.h
> index 7ea56c8422d..ec48aadde3f 100644
> --- a/src/mesa/main/extensions_table.h
> +++ b/src/mesa/main/extensions_table.h
> @@ -285,7 +285,7 @@ EXT(EXT_vertex_array                        , dummy_true
>  EXT(EXT_vertex_array_bgra                   , EXT_vertex_array_bgra                  , GLL, GLC,  x ,  x , 2008)
>  EXT(EXT_window_rectangles                   , EXT_window_rectangles                  , GLL, GLC,  x ,  30, 2016)
>  
> -EXT(GREMEDY_string_marker                   , GREMEDY_string_marker                  , GLL, GLC,  x ,  x , 2007)
> +EXT(GREMEDY_string_marker                   , dummy_true                             , 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)
> diff --git a/src/mesa/state_tracker/st_debug.c b/src/mesa/state_tracker/st_debug.c
> index d6cb5cd57d8..f2e982c8c7a 100644
> --- a/src/mesa/state_tracker/st_debug.c
> +++ b/src/mesa/state_tracker/st_debug.c
> @@ -58,7 +58,6 @@ static const struct debug_named_value st_debug_flags[] = {
>     { "buffer",   DEBUG_BUFFER, NULL },
>     { "wf",       DEBUG_WIREFRAME, NULL },
>     { "precompile",  DEBUG_PRECOMPILE, NULL },
> -   { "gremedy",  DEBUG_GREMEDY, "Enable GREMEDY debug extensions" },
>     { "noreadpixcache", DEBUG_NOREADPIXCACHE, NULL },
>     DEBUG_NAMED_VALUE_END
>  };
> diff --git a/src/mesa/state_tracker/st_debug.h b/src/mesa/state_tracker/st_debug.h
> index 6c1e915f68c..4b92a669a37 100644
> --- a/src/mesa/state_tracker/st_debug.h
> +++ b/src/mesa/state_tracker/st_debug.h
> @@ -50,8 +50,7 @@ st_print_current(void);
>  #define DEBUG_BUFFER    0x200
>  #define DEBUG_WIREFRAME 0x400
>  #define DEBUG_PRECOMPILE   0x800
> -#define DEBUG_GREMEDY   0x1000
> -#define DEBUG_NOREADPIXCACHE 0x2000
> +#define DEBUG_NOREADPIXCACHE 0x1000
>  
>  #ifdef DEBUG
>  extern int ST_DEBUG;
> diff --git a/src/mesa/state_tracker/st_extensions.c b/src/mesa/state_tracker/st_extensions.c
> index 37fe4469c37..d9057c77657 100644
> --- a/src/mesa/state_tracker/st_extensions.c
> +++ b/src/mesa/state_tracker/st_extensions.c
> @@ -1167,10 +1167,6 @@ void st_init_extensions(struct pipe_screen *screen,
>        extensions->ARB_vertex_attrib_64bit = GL_TRUE;
>     }
>  
> -   if ((ST_DEBUG & DEBUG_GREMEDY) &&
> -       screen->get_param(screen, PIPE_CAP_STRING_MARKER))
> -      extensions->GREMEDY_string_marker = GL_TRUE;
> -
>     if (screen->get_param(screen, PIPE_CAP_COMPUTE)) {
>        int compute_supported_irs =
>           screen->get_shader_param(screen, PIPE_SHADER_COMPUTE,
> 



More information about the mesa-dev mailing list