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")) \