[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