mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-09 06:48:06 +02:00
st/mesa, gallium: add a workaround for No Mans Sky
The spec seems clear this is not allowed but the Nvidia binary forces apps to add layout qualifiers so this works around the issue for No Mans Sky until the CTS can be sorted out. Reviewed-by: Marek Olšák <marek.olsak@amd.com>
This commit is contained in:
parent
9ce7d79cdc
commit
9c47c39687
6 changed files with 13 additions and 0 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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];
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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
|
||||
*/
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue