diff --git a/src/util/00-mesa-defaults.conf b/src/util/00-mesa-defaults.conf index cb0e6e659e..ccc6d16e93 100644 --- a/src/util/00-mesa-defaults.conf +++ b/src/util/00-mesa-defaults.conf @@ -128,6 +128,7 @@ TODO: document the other workarounds. diff --git a/src/gallium/state_trackers/dri/dri_context.c b/src/gallium/state_trackers/dri/dri_context.c index af9e3325f9..873bd72e29 100644 --- a/src/gallium/state_trackers/dri/dri_context.c +++ b/src/gallium/state_trackers/dri/dri_context.c @@ -79,6 +79,10 @@ dri_create_context(gl_api api, const struct gl_config * visual, goto fail; } + if (driQueryOptionb(optionCache, "allow_vendor_override_ati")) { + setenv("allow_vendor_override_ati", "true", 1); + } + memset(&attribs, 0, sizeof(attribs)); switch (api) { case API_OPENGLES: diff --git a/src/gallium/auxiliary/pipe-loader/driinfo_gallium.h b/src/gallium/auxiliary/pipe-loader/driinfo_gallium.h index 9db0dc0111..932e7a5ab7 100644 --- a/src/gallium/auxiliary/pipe-loader/driinfo_gallium.h +++ b/src/gallium/auxiliary/pipe-loader/driinfo_gallium.h @@ -31,6 +31,7 @@ DRI_CONF_SECTION_DEBUG DRI_CONF_GLSL_CORRECT_DERIVATIVES_AFTER_DISCARD("false") DRI_CONF_ALLOW_GLSL_LAYOUT_QUALIFIER_ON_FUNCTION_PARAMETERS("false") DRI_CONF_FORCE_COMPAT_PROFILE("false") + DRI_CONF_ALLOW_VENDOR_OVERRIDE_ATI("false") DRI_CONF_SECTION_END DRI_CONF_SECTION_MISCELLANEOUS diff --git a/src/glx/glxcmds.c b/src/glx/glxcmds.c index bde461b43a..044dc9174f 100644 --- a/src/glx/glxcmds.c +++ b/src/glx/glxcmds.c @@ -2603,6 +2603,13 @@ _GLX_PUBLIC void (*glXGetProcAddressARB(const GLubyte * procName)) (void) typedef void (*gl_function) (void); gl_function f; + if (strcmp((const char *) procName, "glNamedStringARB") == 0 || + strcmp((const char *) procName, "glDeleteNamedStringARB") == 0 || + strcmp((const char *) procName, "glCompileShaderIncludeARB") == 0 || + strcmp((const char *) procName, "glIsNamedStringARB") == 0 || + strcmp((const char *) procName, "glGetNamedStringARB") == 0 || + strcmp((const char *) procName, "glGetNamedStringivARB") == 0) + return NULL; /* Search the table of GLX and internal functions first. If that * fails and the supplied name could be a valid core GL name, try diff --git a/src/gallium/drivers/radeonsi/si_get.c b/src/gallium/drivers/radeonsi/si_get.c index bb2d8c09eb..7f75d96ee8 100644 --- a/src/gallium/drivers/radeonsi/si_get.c +++ b/src/gallium/drivers/radeonsi/si_get.c @@ -40,6 +40,9 @@ static const char *si_get_vendor(struct pipe_screen *pscreen) /* Don't change this. Games such as Alien Isolation are broken if this * returns "Advanced Micro Devices, Inc." */ + boolean *forcedvendor = getenv("allow_vendor_override_ati"); + if ((forcedvendor)) + return "ATI Technologies, Inc."; return "X.Org"; } diff --git a/src/util/xmlpool/t_options.h b/src/util/xmlpool/t_options.h index 80ddf0e203..7c2b9212ff 100644 --- a/src/util/xmlpool/t_options.h +++ b/src/util/xmlpool/t_options.h @@ -140,6 +140,11 @@ 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 +#define DRI_CONF_ALLOW_VENDOR_OVERRIDE_ATI(def) \ +DRI_CONF_OPT_BEGIN_B(allow_vendor_override_ati, def) \ + DRI_CONF_DESC(en,gettext("Allow GPU vendor to be overridden as ATI Technologies, Inc.")) \ +DRI_CONF_OPT_END + #define DRI_CONF_FORCE_COMPAT_PROFILE(def) \ DRI_CONF_OPT_BEGIN_B(force_compat_profile, def) \ DRI_CONF_DESC(en,gettext("Force an OpenGL compatibility context")) \