summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gallium/auxiliary/pipe-loader/driinfo_gallium.h1
-rw-r--r--src/gallium/include/state_tracker/st_api.h1
-rw-r--r--src/gallium/state_trackers/dri/dri_screen.c2
-rw-r--r--src/mesa/state_tracker/st_extensions.c3
-rw-r--r--src/util/00-mesa-defaults.conf1
-rw-r--r--src/util/xmlpool/t_options.h5
6 files changed, 13 insertions, 0 deletions
diff --git a/src/gallium/auxiliary/pipe-loader/driinfo_gallium.h b/src/gallium/auxiliary/pipe-loader/driinfo_gallium.h
index b8f0fe64098..5f4305d91d7 100644
--- a/src/gallium/auxiliary/pipe-loader/driinfo_gallium.h
+++ b/src/gallium/auxiliary/pipe-loader/driinfo_gallium.h
@@ -29,6 +29,7 @@ DRI_CONF_SECTION_DEBUG
DRI_CONF_ALLOW_HIGHER_COMPAT_VERSION("false")
DRI_CONF_FORCE_GLSL_ABS_SQRT("false")
DRI_CONF_GLSL_CORRECT_DERIVATIVES_AFTER_DISCARD("false")
+ DRI_CONF_ALLOW_GLSL_LAYOUT_QUALIFIER_ON_FUNCTION_PARAMETERS("false")
DRI_CONF_SECTION_END
DRI_CONF_SECTION_MISCELLANEOUS
diff --git a/src/gallium/include/state_tracker/st_api.h b/src/gallium/include/state_tracker/st_api.h
index 8d386a82a63..61152e35468 100644
--- a/src/gallium/include/state_tracker/st_api.h
+++ b/src/gallium/include/state_tracker/st_api.h
@@ -228,6 +228,7 @@ struct st_config_options
boolean glsl_zero_init;
boolean force_glsl_abs_sqrt;
boolean allow_glsl_cross_stage_interpolation_mismatch;
+ boolean allow_glsl_layout_qualifier_on_function_parameters;
unsigned char config_options_sha1[20];
};
diff --git a/src/gallium/state_trackers/dri/dri_screen.c b/src/gallium/state_trackers/dri/dri_screen.c
index 3e4de59a433..027e85024f0 100644
--- a/src/gallium/state_trackers/dri/dri_screen.c
+++ b/src/gallium/state_trackers/dri/dri_screen.c
@@ -85,6 +85,8 @@ dri_fill_st_options(struct dri_screen *screen)
driQueryOptionb(optionCache, "force_glsl_abs_sqrt");
options->allow_glsl_cross_stage_interpolation_mismatch =
driQueryOptionb(optionCache, "allow_glsl_cross_stage_interpolation_mismatch");
+ options->allow_glsl_layout_qualifier_on_function_parameters =
+ driQueryOptionb(optionCache, "allow_glsl_layout_qualifier_on_function_parameters");
driComputeOptionsSha1(optionCache, options->config_options_sha1);
}
diff --git a/src/mesa/state_tracker/st_extensions.c b/src/mesa/state_tracker/st_extensions.c
index 8483f7a2a72..29a32513085 100644
--- a/src/mesa/state_tracker/st_extensions.c
+++ b/src/mesa/state_tracker/st_extensions.c
@@ -1255,6 +1255,9 @@ void st_init_extensions(struct pipe_screen *screen,
if (options->allow_glsl_relaxed_es)
consts->AllowGLSLRelaxedES = GL_TRUE;
+ if (options->allow_glsl_layout_qualifier_on_function_parameters)
+ consts->AllowLayoutQualifiersOnFunctionParameters = GL_TRUE;
+
consts->MinMapBufferAlignment =
screen->get_param(screen, PIPE_CAP_MIN_MAP_BUFFER_ALIGNMENT);
diff --git a/src/util/00-mesa-defaults.conf b/src/util/00-mesa-defaults.conf
index 5d15b3819fb..a68bc03027a 100644
--- a/src/util/00-mesa-defaults.conf
+++ b/src/util/00-mesa-defaults.conf
@@ -195,6 +195,7 @@ TODO: document the other workarounds.
<application name="No Mans Sky" executable="NMS.exe">
<option name="force_glsl_extensions_warn" value="true" />
+ <option name="allow_glsl_layout_qualifier_on_function_parameters" value="true" />
</application>
<!-- The GL thread whitelist is below, workarounds are above.
diff --git a/src/util/xmlpool/t_options.h b/src/util/xmlpool/t_options.h
index 945d0e60f90..b6f7eed80b1 100644
--- a/src/util/xmlpool/t_options.h
+++ b/src/util/xmlpool/t_options.h
@@ -135,6 +135,11 @@ DRI_CONF_OPT_BEGIN_B(allow_glsl_cross_stage_interpolation_mismatch, def) \
DRI_CONF_DESC(en,gettext("Allow interpolation qualifier mismatch across shader stages")) \
DRI_CONF_OPT_END
+#define DRI_CONF_ALLOW_GLSL_LAYOUT_QUALIFIER_ON_FUNCTION_PARAMETERS(def) \
+DRI_CONF_OPT_BEGIN_B(allow_glsl_layout_qualifier_on_function_parameters, def) \
+ DRI_CONF_DESC(en,gettext("Allow layout qualifiers on function parameters.")) \
+DRI_CONF_OPT_END
+
/**
* \brief Image quality-related options
*/