@@ -175,6 +175,10 @@ static Cvar::Cvar<bool> workaround_glExtension_missingArbFbo_useExtFbo(
175175 " workaround.glExtension.missingArbFbo.useExtFbo" ,
176176 " Use EXT_framebuffer_object and EXT_framebuffer_blit when ARB_framebuffer_object is not available" ,
177177 Cvar::NONE, true );
178+ static Cvar::Cvar<bool > workaround_glExtension_glsl120_disableShaderDrawParameters (
179+ " workaround.glExtension.glsl120.disableShaderDrawParameters" ,
180+ " Disable ARB_shader_draw_parameters on GLSL 1.20" ,
181+ Cvar::NONE, true );
178182static Cvar::Cvar<bool > workaround_glHardware_intel_useFirstProvokinVertex (
179183 " workaround.glHardware.intel.useFirstProvokinVertex" ,
180184 " Use first provoking vertex on Intel hardware supporting ARB_provoking_vertex" ,
@@ -2523,7 +2527,19 @@ static void GLimp_InitExtensions()
25232527 }
25242528
25252529 // made required in OpenGL 4.6
2526- glConfig2.shaderDrawParametersAvailable = LOAD_EXTENSION_WITH_TEST ( ExtFlag_NONE, ARB_shader_draw_parameters, r_arb_shader_draw_parameters.Get () );
2530+
2531+ bool ShaderDrawParametersEnabled = r_arb_shader_draw_parameters.Get ();
2532+
2533+ if ( ShaderDrawParametersEnabled
2534+ && GL_ARB_shader_draw_parameters
2535+ && glConfig2.shadingLanguageVersion <= 120
2536+ && workaround_glExtension_glsl120_disableShaderDrawParameters.Get () )
2537+ {
2538+ logger.Warn ( " Found ARB_shader_draw_parameters with incompatible GLSL 1.20, disabling ARB_shader_draw_parameters." );
2539+ ShaderDrawParametersEnabled = false ;
2540+ }
2541+
2542+ glConfig2.shaderDrawParametersAvailable = LOAD_EXTENSION_WITH_TEST ( ExtFlag_NONE, ARB_shader_draw_parameters, ShaderDrawParametersEnabled );
25272543
25282544 // made required in OpenGL 4.3
25292545 glConfig2.SSBOAvailable = LOAD_EXTENSION_WITH_TEST ( ExtFlag_NONE, ARB_shader_storage_buffer_object, r_arb_shader_storage_buffer_object.Get () );
@@ -2668,6 +2684,7 @@ bool GLimp_Init()
26682684 Cvar::Latch ( workaround_glDriver_mesa_v241_disableBindlessTexture );
26692685 Cvar::Latch ( workaround_glDriver_nvidia_v340_disableTextureGather );
26702686 Cvar::Latch ( workaround_glExtension_missingArbFbo_useExtFbo );
2687+ Cvar::Latch ( workaround_glExtension_glsl120_disableShaderDrawParameters );
26712688 Cvar::Latch ( workaround_glHardware_intel_useFirstProvokinVertex );
26722689
26732690 /* Enable S3TC on Mesa even if libtxc-dxtn is not available
0 commit comments