So move it from dri_context to dri_screen.
This will be needed for version computations.
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
* 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,
#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,
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);
#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)
{
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.
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,
/** The screen's effective configuration options */
driOptionCache optionCache;
+ struct st_config_options options;
+
/* Which postprocessing filters are enabled. */
unsigned pp_enabled[PP_FILTERS];
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,
static void
st_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,