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:
@@ -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,
|
||||||
|
@@ -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);
|
||||||
|
@@ -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,
|
||||||
|
@@ -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];
|
||||||
|
|
||||||
|
@@ -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,
|
||||||
|
@@ -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,
|
||||||
|
Reference in New Issue
Block a user