Skip to content

Commit 62d591d

Browse files
committed
renderer: disable ARB_shader_draw_parameters on GLSL 1.20
1 parent 71a3715 commit 62d591d

File tree

1 file changed

+18
-1
lines changed

1 file changed

+18
-1
lines changed

src/engine/sys/sdl_glimp.cpp

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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 );
178182
static 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

Comments
 (0)