Module: Mesa Branch: main Commit: 8b15025a2bad5a4977f65f88900ea6f6ad97ddc7 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=8b15025a2bad5a4977f65f88900ea6f6ad97ddc7
Author: Mike Blumenkrantz <[email protected]> Date: Mon Aug 22 10:48:45 2022 -0400 mesa: add GLSL_SOURCE many times I just want to dump glsl and not a trillion lines of IR Reviewed-by: Emma Anholt <[email protected]> Reviewed-by: Marek Olšák <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18280> --- docs/shading.rst | 3 ++- src/mesa/main/mtypes.h | 1 + src/mesa/main/shaderapi.c | 4 +++- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/docs/shading.rst b/docs/shading.rst index 36d94202f2b..01c8bc99a00 100644 --- a/docs/shading.rst +++ b/docs/shading.rst @@ -13,7 +13,8 @@ The **MESA_GLSL** environment variable can be set to a comma-separated list of keywords to control some aspects of the GLSL compiler and shader execution. These are generally used for debugging. -- **dump** - print GLSL shader code to stdout at link time +- **dump** - print GLSL shader code, IR, and NIR to stdout at link time +- **source** - print GLSL shader code to stdout at link time - **log** - log all GLSL shaders to files. The filenames will be "shader_X.vert" or "shader_X.frag" where X the shader ID. - **cache_info** - print debug information about shader cache diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h index 6d5ca9a4411..a7a22d754b4 100644 --- a/src/mesa/main/mtypes.h +++ b/src/mesa/main/mtypes.h @@ -2296,6 +2296,7 @@ struct gl_ati_fragment_shader_state #define GLSL_DUMP_ON_ERROR 0x80 /**< Dump shaders to stderr on compile error */ #define GLSL_CACHE_INFO 0x100 /**< Print debug information about shader cache */ #define GLSL_CACHE_FALLBACK 0x200 /**< Force shader cache fallback paths */ +#define GLSL_SOURCE 0x400 /**< Only dump GLSL */ /** diff --git a/src/mesa/main/shaderapi.c b/src/mesa/main/shaderapi.c index 2aca40b1fb1..a299efc2759 100644 --- a/src/mesa/main/shaderapi.c +++ b/src/mesa/main/shaderapi.c @@ -135,6 +135,8 @@ _mesa_get_shader_flags(void) flags |= GLSL_DUMP; if (strstr(env, "log")) flags |= GLSL_LOG; + if (strstr(env, "source")) + flags |= GLSL_SOURCE; #endif if (strstr(env, "cache_fb")) flags |= GLSL_CACHE_FALLBACK; @@ -1216,7 +1218,7 @@ _mesa_compile_shader(struct gl_context *ctx, struct gl_shader *sh) */ sh->CompileStatus = COMPILE_FAILURE; } else { - if (ctx->_Shader->Flags & GLSL_DUMP) { + if (ctx->_Shader->Flags & (GLSL_DUMP | GLSL_SOURCE)) { _mesa_log("GLSL source for %s shader %d:\n", _mesa_shader_stage_to_string(sh->Stage), sh->Name); _mesa_log_direct(sh->Source);
