[Mesa-dev] [PATCH v11] mesa: Add MESA_SHADER_CAPTURE_PATH for writing .shader_test files.

Matt Turner mattst88 at gmail.com
Thu Jun 2 04:41:22 UTC 2016


On Wed, Jun 1, 2016 at 12:01 PM, Kenneth Graunke <kenneth at whitecape.org> wrote:
> This writes linked shader programs to .shader_test files to
> $MESA_SHADER_CAPTURE_PATH in the format used by shader-db
> (http://cgit.freedesktop.org/mesa/shader-db).
>
> It supports both GLSL shaders and ARB programs.  All stages that
> are linked together are written in a single .shader_test file.
>
> This eliminates the need for shader-db's split-to-files.py, as Mesa
> produces the desired format directly.  It's much more reliable than
> parsing stdout/stderr, as those may contain extraneous messages, or
> simply be closed by the application and unavailable.
>
> We have many similar features already, but this is a bit different:
> - MESA_GLSL=dump writes to stdout, not files.
> - MESA_GLSL=log writes each stage to separate files (rather than
>   all linked shaders in one file), at draw time (not link time),
>   with uniform data and state flag info.
> - Tapani's shader replacement mechanism (MESA_SHADER_DUMP_PATH and
>   MESA_SHADER_READ_PATH) also uses separate files per shader stage,
>   but allows reading in files to replace an app's shader code.
>
> v2:  Dump ARB programs too, not just GLSL.
> v3:  Don't dump bogus 0.shader_test file.
> v4:  Add "GL_ARB_separate_shader_objects" to the [require] block.
> v5:  Print "GLSL 4.00" instead of "GLSL 4.0" in the [require] block.
> v6:  Don't hardcode /tmp/mesa.
> v7:  Fix memoization of getenv().
> v8:  Also print "SSO ENABLED" (suggested by Timothy).
> v9:  Also handle ES shaders (suggested by Ilia).
> v10: Guard against MESA_SHADER_CAPTURE_PATH being too long; add
>      _mesa_warning calls on error handling (suggested by Ben).
> v11: Fix crash when variable is unset introduced in v10.
>
> Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>

Thanks for sending this. With the stray change to mtypes.h removed,

Reviewed-by: Matt Turner <mattst88 at gmail.com>


More information about the mesa-dev mailing list