[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