[Mesa-dev] [Mesa-stable] [PATCH] mesa: don't validate pipeline in GL debug contexts

Ian Romanick idr at freedesktop.org
Sat Jun 4 19:36:17 UTC 2016


How about if you give me a chance to actually fix the problem instead of 
papering over it?


On June 4, 2016 10:17:59 AM Ilia Mirkin <imirkin at alum.mit.edu> wrote:

> This is causing problems with glretrace and various traces I've seen,
> including F1 2015 and PCSX2. I haven't carefully debugged what's going
> on, but the games do work fine when tracing, which most likely points to
> the validation logic not being suitable for desktop GL. I've left in the
> ability to flip it in with a debug flag.
>
> Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
> Cc: "12.0" <mesa-stable at lists.freedesktop.org>
> Cc: Ian Romanick <idr at freedesktop.org>
> ---
>  src/mesa/main/debug.c       | 3 ++-
>  src/mesa/main/mtypes.h      | 3 ++-
>  src/mesa/main/pipelineobj.c | 4 ++--
>  3 files changed, 6 insertions(+), 4 deletions(-)
>
> diff --git a/src/mesa/main/debug.c b/src/mesa/main/debug.c
> index 5ca7d5c..b9a6bc1 100644
> --- a/src/mesa/main/debug.c
> +++ b/src/mesa/main/debug.c
> @@ -189,7 +189,8 @@ set_debug_flags(const char *str)
>        { "silent", DEBUG_SILENT }, /* turn off debug messages */
>        { "flush", DEBUG_ALWAYS_FLUSH }, /* flush after each drawing command */
>        { "incomplete_tex", DEBUG_INCOMPLETE_TEXTURE },
> -      { "incomplete_fbo", DEBUG_INCOMPLETE_FBO }
> +      { "incomplete_fbo", DEBUG_INCOMPLETE_FBO },
> +      { "validate_io", DEBUG_VALIDATE_IO },
>     };
>     GLuint i;
>
> diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
> index 2c728fc..1ba8db7 100644
> --- a/src/mesa/main/mtypes.h
> +++ b/src/mesa/main/mtypes.h
> @@ -4693,7 +4693,8 @@ enum _debug
>     DEBUG_SILENT                 = (1 << 0),
>     DEBUG_ALWAYS_FLUSH		= (1 << 1),
>     DEBUG_INCOMPLETE_TEXTURE     = (1 << 2),
> -   DEBUG_INCOMPLETE_FBO         = (1 << 3)
> +   DEBUG_INCOMPLETE_FBO         = (1 << 3),
> +   DEBUG_VALIDATE_IO            = (1 << 4),
>  };
>
>  #ifdef __cplusplus
> diff --git a/src/mesa/main/pipelineobj.c b/src/mesa/main/pipelineobj.c
> index 5a46cfe..1484237 100644
> --- a/src/mesa/main/pipelineobj.c
> +++ b/src/mesa/main/pipelineobj.c
> @@ -926,9 +926,9 @@ _mesa_validate_program_pipeline(struct gl_context* ctx,
>      *      that doesn't have an exact match (see section 7.4.1)
>      *
>      * Based on this, only perform the most-strict checking on ES or when the
> -    * application has created a debug context.
> +    * use enables it via MESA_DEBUG.
>      */
> -   if ((_mesa_is_gles(ctx) || (ctx->Const.ContextFlags & 
> GL_CONTEXT_FLAG_DEBUG_BIT)) &&
> +   if ((_mesa_is_gles(ctx) || (MESA_DEBUG_FLAGS & DEBUG_VALIDATE_IO)) &&
>         !_mesa_validate_pipeline_io(pipe))
>        return GL_FALSE;
>
> --
> 2.7.3
>
> _______________________________________________
> mesa-stable mailing list
> mesa-stable at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-stable




More information about the mesa-dev mailing list