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 <imirkin@alum.mit.edu>
This commit is contained in:
Marek Olšák
2014-08-03 13:58:20 +02:00
parent f1f5366629
commit fceadfe7ef
6 changed files with 30 additions and 23 deletions

View File

@@ -490,6 +490,7 @@ struct st_api
* The format is (major*10+minor). * The format is (major*10+minor).
*/ */
void (*query_versions)(struct st_api *stapi, struct st_manager *sm, void (*query_versions)(struct st_api *stapi, struct st_manager *sm,
struct st_config_options *options,
int *gl_core_version, int *gl_core_version,
int *gl_compat_version, int *gl_compat_version,
int *gl_es1_version, int *gl_es1_version,

View File

@@ -39,26 +39,6 @@
#include "pipe/p_context.h" #include "pipe/p_context.h"
#include "state_tracker/st_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 GLboolean
dri_create_context(gl_api api, const struct gl_config * visual, dri_create_context(gl_api api, const struct gl_config * visual,
__DRIcontext * cPriv, __DRIcontext * cPriv,
@@ -127,7 +107,7 @@ dri_create_context(gl_api api, const struct gl_config * visual,
ctx->cPriv = cPriv; ctx->cPriv = cPriv;
ctx->sPriv = sPriv; ctx->sPriv = sPriv;
dri_fill_st_options(&attribs.options, &screen->optionCache); attribs.options = screen->options;
dri_fill_st_visual(&attribs.visual, screen, visual); dri_fill_st_visual(&attribs.visual, screen, visual);
ctx->st = stapi->create_context(stapi, &screen->base, &attribs, &ctx_err, ctx->st = stapi->create_context(stapi, &screen->base, &attribs, &ctx_err,
st_share); st_share);

View File

@@ -80,6 +80,26 @@ const __DRIconfigOptionsExtension gallium_config_options = {
#define false 0 #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 ** static const __DRIconfig **
dri_fill_in_modes(struct dri_screen *screen) dri_fill_in_modes(struct dri_screen *screen)
{ {
@@ -439,9 +459,10 @@ dri_init_screen_helper(struct dri_screen *screen,
screen->sPriv->myNum, screen->sPriv->myNum,
driver_name); driver_name);
dri_fill_st_options(&screen->options, &screen->optionCache);
/* Handle force_s3tc_enable. */ /* Handle force_s3tc_enable. */
if (!util_format_s3tc_enabled && if (!util_format_s3tc_enabled && screen->options.force_s3tc_enable) {
driQueryOptionb(&screen->optionCache, "force_s3tc_enable")) {
/* Ensure libtxc_dxtn has been loaded if available. /* Ensure libtxc_dxtn has been loaded if available.
* Forcing S3TC on before calling this would prevent loading * Forcing S3TC on before calling this would prevent loading
* the library. * the library.
@@ -456,6 +477,7 @@ dri_init_screen_helper(struct dri_screen *screen,
dri_postprocessing_init(screen); dri_postprocessing_init(screen);
screen->st_api->query_versions(screen->st_api, &screen->base, screen->st_api->query_versions(screen->st_api, &screen->base,
&screen->options,
&screen->sPriv->max_gl_core_version, &screen->sPriv->max_gl_core_version,
&screen->sPriv->max_gl_compat_version, &screen->sPriv->max_gl_compat_version,
&screen->sPriv->max_gl_es1_version, &screen->sPriv->max_gl_es1_version,

View File

@@ -65,6 +65,8 @@ struct dri_screen
/** The screen's effective configuration options */ /** The screen's effective configuration options */
driOptionCache optionCache; driOptionCache optionCache;
struct st_config_options options;
/* Which postprocessing filters are enabled. */ /* Which postprocessing filters are enabled. */
unsigned pp_enabled[PP_FILTERS]; unsigned pp_enabled[PP_FILTERS];

View File

@@ -371,6 +371,7 @@ vg_api_destroy(struct st_api *stapi)
static void static void
vg_api_query_versions(struct st_api *stapi, struct st_manager *sm, vg_api_query_versions(struct st_api *stapi, struct st_manager *sm,
struct st_config_options *options,
int *gl_core_version, int *gl_core_version,
int *gl_compat_version, int *gl_compat_version,
int *gl_es1_version, int *gl_es1_version,

View File

@@ -912,6 +912,7 @@ st_manager_add_color_renderbuffer(struct st_context *st,
static void static void
st_api_query_versions(struct st_api *stapi, struct st_manager *sm, st_api_query_versions(struct st_api *stapi, struct st_manager *sm,
struct st_config_options *options,
int *gl_core_version, int *gl_core_version,
int *gl_compat_version, int *gl_compat_version,
int *gl_es1_version, int *gl_es1_version,