From e00791c5525000652472cdcfe55d59f43ec3d85e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Mon, 11 Nov 2019 17:04:15 -0500 Subject: [PATCH] st/mesa: fix Sanctuary and Tropics by disabling ARB_gpu_shader5 for them They use the "sample" keyword as a variable name. Cc: 19.2 19.3 Reviewed-by: Timothy Arceri --- src/gallium/auxiliary/pipe-loader/driinfo_gallium.h | 1 + src/gallium/include/state_tracker/st_api.h | 1 + src/gallium/state_trackers/dri/dri_screen.c | 2 ++ src/mesa/state_tracker/st_extensions.c | 2 +- src/util/00-mesa-defaults.conf | 2 ++ src/util/xmlpool/t_options.h | 5 +++++ 6 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/gallium/auxiliary/pipe-loader/driinfo_gallium.h b/src/gallium/auxiliary/pipe-loader/driinfo_gallium.h index fee8fca6420..69967d916f2 100644 --- a/src/gallium/auxiliary/pipe-loader/driinfo_gallium.h +++ b/src/gallium/auxiliary/pipe-loader/driinfo_gallium.h @@ -20,6 +20,7 @@ DRI_CONF_SECTION_DEBUG DRI_CONF_FORCE_GLSL_EXTENSIONS_WARN("false") DRI_CONF_DISABLE_GLSL_LINE_CONTINUATIONS("false") DRI_CONF_DISABLE_BLEND_FUNC_EXTENDED("false") + DRI_CONF_DISABLE_ARB_GPU_SHADER5("false") DRI_CONF_FORCE_GLSL_VERSION(0) DRI_CONF_ALLOW_GLSL_EXTENSION_DIRECTIVE_MIDSHADER("false") DRI_CONF_ALLOW_GLSL_BUILTIN_CONST_EXPRESSION("false") diff --git a/src/gallium/include/state_tracker/st_api.h b/src/gallium/include/state_tracker/st_api.h index 516408c77c7..297954d70bf 100644 --- a/src/gallium/include/state_tracker/st_api.h +++ b/src/gallium/include/state_tracker/st_api.h @@ -219,6 +219,7 @@ struct st_config_options { bool disable_blend_func_extended; bool disable_glsl_line_continuations; + bool disable_arb_gpu_shader5; bool force_glsl_extensions_warn; unsigned force_glsl_version; bool allow_glsl_extension_directive_midshader; diff --git a/src/gallium/state_trackers/dri/dri_screen.c b/src/gallium/state_trackers/dri/dri_screen.c index 7898b088fc8..8e4d5ca52df 100644 --- a/src/gallium/state_trackers/dri/dri_screen.c +++ b/src/gallium/state_trackers/dri/dri_screen.c @@ -65,6 +65,8 @@ dri_fill_st_options(struct dri_screen *screen) options->disable_blend_func_extended = driQueryOptionb(optionCache, "disable_blend_func_extended"); + options->disable_arb_gpu_shader5 = + driQueryOptionb(optionCache, "disable_arb_gpu_shader5"); options->disable_glsl_line_continuations = driQueryOptionb(optionCache, "disable_glsl_line_continuations"); options->force_glsl_extensions_warn = diff --git a/src/mesa/state_tracker/st_extensions.c b/src/mesa/state_tracker/st_extensions.c index ba912d35be8..252e04c0716 100644 --- a/src/mesa/state_tracker/st_extensions.c +++ b/src/mesa/state_tracker/st_extensions.c @@ -1095,7 +1095,7 @@ void st_init_extensions(struct pipe_screen *screen, if (api == API_OPENGLES2 && ESSLVersion >= 320) extensions->ARB_gpu_shader5 = GL_TRUE; - if (GLSLVersion >= 400) + if (GLSLVersion >= 400 && !options->disable_arb_gpu_shader5) extensions->ARB_gpu_shader5 = GL_TRUE; if (GLSLVersion >= 410) extensions->ARB_shader_precision = GL_TRUE; diff --git a/src/util/00-mesa-defaults.conf b/src/util/00-mesa-defaults.conf index 94a33480b12..d64ffdbf211 100644 --- a/src/util/00-mesa-defaults.conf +++ b/src/util/00-mesa-defaults.conf @@ -56,11 +56,13 @@ TODO: document the other workarounds. diff --git a/src/util/xmlpool/t_options.h b/src/util/xmlpool/t_options.h index e08ba1bf815..7a665bfd655 100644 --- a/src/util/xmlpool/t_options.h +++ b/src/util/xmlpool/t_options.h @@ -80,6 +80,11 @@ DRI_CONF_OPT_BEGIN_B(disable_blend_func_extended, def) \ DRI_CONF_DESC(en,gettext("Disable dual source blending")) \ DRI_CONF_OPT_END +#define DRI_CONF_DISABLE_ARB_GPU_SHADER5(def) \ +DRI_CONF_OPT_BEGIN_B(disable_arb_gpu_shader5, def) \ + DRI_CONF_DESC(en,"Disable GL_ARB_gpu_shader5") \ +DRI_CONF_OPT_END + #define DRI_CONF_DUAL_COLOR_BLEND_BY_LOCATION(def) \ DRI_CONF_OPT_BEGIN_B(dual_color_blend_by_location, def) \ DRI_CONF_DESC(en,gettext("Identify dual color blending sources by location rather than index")) \