From 0cf06f6a36197cdd2f668f0094ade4a13bf0da4f Mon Sep 17 00:00:00 2001 From: dolcetriade Date: Wed, 2 May 2012 10:52:57 -0700 Subject: [PATCH] Add an option to disable the GLSL optmizer with a cvar --- src/engine/rendererGL/gl_shader.cpp | 2 +- src/engine/rendererGL/tr_init.cpp | 7 +++++++ src/engine/rendererGL/tr_local.h | 3 +++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/engine/rendererGL/gl_shader.cpp b/src/engine/rendererGL/gl_shader.cpp index e5ae83a5830..e69154498b9 100644 --- a/src/engine/rendererGL/gl_shader.cpp +++ b/src/engine/rendererGL/gl_shader.cpp @@ -216,7 +216,7 @@ std::string GLShader::BuildGPUShaderText( const char *mainShaderName, char **libs = ( char ** ) &libShaderNames; #ifdef USE_GLSL_OPTIMIZER - bool optimize = true; + bool optimize = r_glslOptimizer->integer ? true : false; #endif std::string shaderText; diff --git a/src/engine/rendererGL/tr_init.cpp b/src/engine/rendererGL/tr_init.cpp index de01b8ac860..27259bc9d17 100644 --- a/src/engine/rendererGL/tr_init.cpp +++ b/src/engine/rendererGL/tr_init.cpp @@ -321,6 +321,10 @@ extern "C" { cvar_t *r_evsmPostProcess; +#ifdef USE_GLSL_OPTIMIZER + cvar_t *r_glslOptimizer; +#endif + static void AssertCvarRange( cvar_t *cv, float minVal, float maxVal, qboolean shouldBeIntegral ) { if ( shouldBeIntegral ) @@ -1703,6 +1707,9 @@ extern "C" { r_showDeferredRender = ri.Cvar_Get( "r_showDeferredRender", "0", CVAR_CHEAT ); r_showDeferredLight = ri.Cvar_Get( "r_showDeferredLight", "0", CVAR_CHEAT ); +#ifdef USE_GLSL_OPTIMIZER + r_glslOptimizer = ri.Cvar_Get( "r_glslOptimizer", "1", CVAR_ARCHIVE | CVAR_SHADER ); +#endif // make sure all the commands added here are also removed in R_Shutdown ri.Cmd_AddCommand( "imagelist", R_ImageList_f ); ri.Cmd_AddCommand( "shaderlist", R_ShaderList_f ); diff --git a/src/engine/rendererGL/tr_local.h b/src/engine/rendererGL/tr_local.h index 2888a7aa5cc..06ac974eb6a 100644 --- a/src/engine/rendererGL/tr_local.h +++ b/src/engine/rendererGL/tr_local.h @@ -4391,6 +4391,9 @@ extern "C" { extern cvar_t *r_evsmPostProcess; +#ifdef USE_GLSL_OPTIMIZER + extern cvar_t *r_glslOptimizer; +#endif //==================================================================== #define IMAGE_FILE_HASH_SIZE 4096