summaryrefslogtreecommitdiffstats
path: root/src/gallium/state_trackers/dri/dri_screen.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium/state_trackers/dri/dri_screen.c')
-rw-r--r--src/gallium/state_trackers/dri/dri_screen.c26
1 files changed, 24 insertions, 2 deletions
diff --git a/src/gallium/state_trackers/dri/dri_screen.c b/src/gallium/state_trackers/dri/dri_screen.c
index 697ebee..fdcedcb 100644
--- a/src/gallium/state_trackers/dri/dri_screen.c
+++ b/src/gallium/state_trackers/dri/dri_screen.c
@@ -80,6 +80,26 @@ const __DRIconfigOptionsExtension gallium_config_options = {
#define false 0
+static void
+dri_fill_st_options(struct st_config_options *options,
+ const struct driOptionCache * optionCache)
+{
+ options->disable_blend_func_extended =
+ driQueryOptionb(optionCache, "disable_blend_func_extended");
+ options->disable_glsl_line_continuations =
+ driQueryOptionb(optionCache, "disable_glsl_line_continuations");
+ options->disable_shader_bit_encoding =
+ driQueryOptionb(optionCache, "disable_shader_bit_encoding");
+ options->force_glsl_extensions_warn =
+ driQueryOptionb(optionCache, "force_glsl_extensions_warn");
+ options->force_glsl_version =
+ driQueryOptioni(optionCache, "force_glsl_version");
+ options->force_s3tc_enable =
+ driQueryOptionb(optionCache, "force_s3tc_enable");
+ options->allow_glsl_extension_directive_midshader =
+ driQueryOptionb(optionCache, "allow_glsl_extension_directive_midshader");
+}
+
static const __DRIconfig **
dri_fill_in_modes(struct dri_screen *screen)
{
@@ -439,9 +459,10 @@ dri_init_screen_helper(struct dri_screen *screen,
screen->sPriv->myNum,
driver_name);
+ dri_fill_st_options(&screen->options, &screen->optionCache);
+
/* Handle force_s3tc_enable. */
- if (!util_format_s3tc_enabled &&
- driQueryOptionb(&screen->optionCache, "force_s3tc_enable")) {
+ if (!util_format_s3tc_enabled && screen->options.force_s3tc_enable) {
/* Ensure libtxc_dxtn has been loaded if available.
* Forcing S3TC on before calling this would prevent loading
* the library.
@@ -456,6 +477,7 @@ dri_init_screen_helper(struct dri_screen *screen,
dri_postprocessing_init(screen);
screen->st_api->query_versions(screen->st_api, &screen->base,
+ &screen->options,
&screen->sPriv->max_gl_core_version,
&screen->sPriv->max_gl_compat_version,
&screen->sPriv->max_gl_es1_version,