driconf: Add force_gl_renderer override
Allow driconf to also override GL_RENDERER string. Signed-off-by: Rob Clark <robdclark@chromium.org> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12135>
This commit is contained in:
@@ -37,6 +37,7 @@ DRI_CONF_SECTION_DEBUG
|
||||
DRI_CONF_TRANSCODE_ETC(false)
|
||||
DRI_CONF_TRANSCODE_ASTC(false)
|
||||
DRI_CONF_FORCE_GL_VENDOR()
|
||||
DRI_CONF_FORCE_GL_RENDERER()
|
||||
DRI_CONF_OVERRIDE_VRAM_SIZE()
|
||||
DRI_CONF_GLX_EXTENSION_OVERRIDE()
|
||||
DRI_CONF_INDIRECT_GL_EXTENSION_OVERRIDE()
|
||||
|
||||
@@ -117,6 +117,10 @@ dri_init_options(struct dri_screen *screen)
|
||||
if (*vendor_str)
|
||||
options->force_gl_vendor = strdup(vendor_str);
|
||||
|
||||
char *renderer_str = driQueryOptionstr(optionCache, "force_gl_renderer");
|
||||
if (*renderer_str)
|
||||
options->force_gl_renderer = strdup(renderer_str);
|
||||
|
||||
driComputeOptionsSha1(optionCache, options->config_options_sha1);
|
||||
}
|
||||
|
||||
@@ -548,6 +552,7 @@ dri_destroy_screen(__DRIscreen * sPriv)
|
||||
pipe_loader_release(&screen->dev, 1);
|
||||
|
||||
free(screen->options.force_gl_vendor);
|
||||
free(screen->options.force_gl_renderer);
|
||||
|
||||
/* The caller in dri_util preserves the fd ownership */
|
||||
free(screen);
|
||||
|
||||
@@ -240,6 +240,7 @@ struct st_config_options
|
||||
bool transcode_etc;
|
||||
bool transcode_astc;
|
||||
char *force_gl_vendor;
|
||||
char *force_gl_renderer;
|
||||
unsigned char config_options_sha1[20];
|
||||
};
|
||||
|
||||
|
||||
@@ -128,6 +128,10 @@ _mesa_GetString( GLenum name )
|
||||
return (const GLubyte *) ctx->Const.VendorOverride;
|
||||
}
|
||||
|
||||
if (ctx->Const.RendererOverride && name == GL_RENDERER) {
|
||||
return (const GLubyte *) ctx->Const.RendererOverride;
|
||||
}
|
||||
|
||||
/* this is a required driver function */
|
||||
assert(ctx->Driver.GetString);
|
||||
{
|
||||
|
||||
@@ -4301,6 +4301,7 @@ struct gl_constants
|
||||
struct spirv_supported_extensions *SpirVExtensions;
|
||||
|
||||
char *VendorOverride;
|
||||
char *RendererOverride;
|
||||
|
||||
/** Buffer size used to upload vertices from glBegin/glEnd. */
|
||||
unsigned glBeginEndBufferSize;
|
||||
|
||||
@@ -1283,6 +1283,7 @@ void st_init_extensions(struct pipe_screen *screen,
|
||||
consts->ForceIntegerTexNearest = options->force_integer_tex_nearest;
|
||||
|
||||
consts->VendorOverride = options->force_gl_vendor;
|
||||
consts->RendererOverride = options->force_gl_renderer;
|
||||
|
||||
consts->UniformBooleanTrue = consts->NativeIntegers ? ~0U : fui(1.0f);
|
||||
|
||||
|
||||
@@ -223,6 +223,9 @@
|
||||
#define DRI_CONF_FORCE_GL_VENDOR() \
|
||||
DRI_CONF_OPT_S_NODEF(force_gl_vendor, "Override GPU vendor string.")
|
||||
|
||||
#define DRI_CONF_FORCE_GL_RENDERER() \
|
||||
DRI_CONF_OPT_S_NODEF(force_gl_renderer, "Override GPU renderer string.")
|
||||
|
||||
#define DRI_CONF_FORCE_COMPAT_PROFILE(def) \
|
||||
DRI_CONF_OPT_B(force_compat_profile, def, \
|
||||
"Force an OpenGL compatibility context")
|
||||
|
||||
Reference in New Issue
Block a user