From fceadfe7ef01637daf17624e2d7f961d85625845 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Sun, 3 Aug 2014 13:58:20 +0200 Subject: gallium: pass st_config_options to query_versions So move it from dri_context to dri_screen. This will be needed for version computations. Reviewed-by: Ilia Mirkin --- src/gallium/include/state_tracker/st_api.h | 1 + src/gallium/state_trackers/dri/dri_context.c | 22 +--------------------- src/gallium/state_trackers/dri/dri_screen.c | 26 ++++++++++++++++++++++++-- src/gallium/state_trackers/dri/dri_screen.h | 2 ++ src/gallium/state_trackers/vega/vg_manager.c | 1 + 5 files changed, 29 insertions(+), 23 deletions(-) (limited to 'src/gallium') diff --git a/src/gallium/include/state_tracker/st_api.h b/src/gallium/include/state_tracker/st_api.h index 4e56333..86fdc69 100644 --- a/src/gallium/include/state_tracker/st_api.h +++ b/src/gallium/include/state_tracker/st_api.h @@ -490,6 +490,7 @@ struct st_api * The format is (major*10+minor). */ void (*query_versions)(struct st_api *stapi, struct st_manager *sm, + struct st_config_options *options, int *gl_core_version, int *gl_compat_version, int *gl_es1_version, diff --git a/src/gallium/state_trackers/dri/dri_context.c b/src/gallium/state_trackers/dri/dri_context.c index 827f847..fe3240a 100644 --- a/src/gallium/state_trackers/dri/dri_context.c +++ b/src/gallium/state_trackers/dri/dri_context.c @@ -39,26 +39,6 @@ #include "pipe/p_context.h" #include "state_tracker/st_context.h" -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"); -} - GLboolean dri_create_context(gl_api api, const struct gl_config * visual, __DRIcontext * cPriv, @@ -127,7 +107,7 @@ dri_create_context(gl_api api, const struct gl_config * visual, ctx->cPriv = cPriv; ctx->sPriv = sPriv; - dri_fill_st_options(&attribs.options, &screen->optionCache); + attribs.options = screen->options; dri_fill_st_visual(&attribs.visual, screen, visual); ctx->st = stapi->create_context(stapi, &screen->base, &attribs, &ctx_err, st_share); 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, diff --git a/src/gallium/state_trackers/dri/dri_screen.h b/src/gallium/state_trackers/dri/dri_screen.h index 07c9898..e4a1a39 100644 --- a/src/gallium/state_trackers/dri/dri_screen.h +++ b/src/gallium/state_trackers/dri/dri_screen.h @@ -65,6 +65,8 @@ struct dri_screen /** The screen's effective configuration options */ driOptionCache optionCache; + struct st_config_options options; + /* Which postprocessing filters are enabled. */ unsigned pp_enabled[PP_FILTERS]; diff --git a/src/gallium/state_trackers/vega/vg_manager.c b/src/gallium/state_trackers/vega/vg_manager.c index 2894428..7960b06 100644 --- a/src/gallium/state_trackers/vega/vg_manager.c +++ b/src/gallium/state_trackers/vega/vg_manager.c @@ -371,6 +371,7 @@ vg_api_destroy(struct st_api *stapi) static void vg_api_query_versions(struct st_api *stapi, struct st_manager *sm, + struct st_config_options *options, int *gl_core_version, int *gl_compat_version, int *gl_es1_version, -- cgit v1.1