st/dri: move enabling postprocessing to dri_screen
The driconf options are global. Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Brian Paul <brianp@vmware.com>
This commit is contained in:
@@ -39,16 +39,6 @@
|
||||
#include "pipe/p_context.h"
|
||||
#include "state_tracker/st_context.h"
|
||||
|
||||
static void
|
||||
dri_pp_query(struct dri_context *ctx)
|
||||
{
|
||||
unsigned int i;
|
||||
|
||||
for (i = 0; i < PP_FILTERS; i++) {
|
||||
ctx->pp_enabled[i] = driQueryOptioni(&ctx->optionCache, pp_filters[i].name);
|
||||
}
|
||||
}
|
||||
|
||||
static void dri_fill_st_options(struct st_config_options *options,
|
||||
const struct driOptionCache * optionCache)
|
||||
{
|
||||
@@ -156,11 +146,8 @@ dri_create_context(gl_api api, const struct gl_config * visual,
|
||||
ctx->st->st_manager_private = (void *) ctx;
|
||||
ctx->stapi = stapi;
|
||||
|
||||
// Context successfully created. See if post-processing is requested.
|
||||
dri_pp_query(ctx);
|
||||
|
||||
if (ctx->st->cso_context) {
|
||||
ctx->pp = pp_init(ctx->st->pipe, ctx->pp_enabled, ctx->st->cso_context);
|
||||
ctx->pp = pp_init(ctx->st->pipe, screen->pp_enabled, ctx->st->cso_context);
|
||||
ctx->hud = hud_create(ctx->st->pipe, ctx->st->cso_context);
|
||||
}
|
||||
|
||||
|
||||
@@ -34,7 +34,6 @@
|
||||
|
||||
#include "dri_util.h"
|
||||
#include "pipe/p_compiler.h"
|
||||
#include "postprocess/filters.h"
|
||||
#include "hud/hud_context.h"
|
||||
|
||||
struct pipe_context;
|
||||
@@ -59,7 +58,6 @@ struct dri_context
|
||||
struct st_api *stapi;
|
||||
struct st_context_iface *st;
|
||||
struct pp_queue_t *pp;
|
||||
unsigned int pp_enabled[PP_FILTERS];
|
||||
struct hud_context *hud;
|
||||
};
|
||||
|
||||
|
||||
@@ -382,6 +382,17 @@ dri_destroy_screen(__DRIscreen * sPriv)
|
||||
sPriv->extensions = NULL;
|
||||
}
|
||||
|
||||
static void
|
||||
dri_postprocessing_init(struct dri_screen *screen)
|
||||
{
|
||||
unsigned i;
|
||||
|
||||
for (i = 0; i < PP_FILTERS; i++) {
|
||||
screen->pp_enabled[i] = driQueryOptioni(&screen->optionCache,
|
||||
pp_filters[i].name);
|
||||
}
|
||||
}
|
||||
|
||||
const __DRIconfig **
|
||||
dri_init_screen_helper(struct dri_screen *screen,
|
||||
struct pipe_screen *pscreen)
|
||||
@@ -426,6 +437,8 @@ dri_init_screen_helper(struct dri_screen *screen,
|
||||
util_format_s3tc_enabled = TRUE;
|
||||
}
|
||||
|
||||
dri_postprocessing_init(screen);
|
||||
|
||||
return dri_fill_in_modes(screen);
|
||||
}
|
||||
|
||||
|
||||
@@ -39,6 +39,7 @@
|
||||
#include "pipe/p_context.h"
|
||||
#include "pipe/p_state.h"
|
||||
#include "state_tracker/st_api.h"
|
||||
#include "postprocess/filters.h"
|
||||
|
||||
struct dri_context;
|
||||
struct dri_drawable;
|
||||
@@ -63,6 +64,9 @@ struct dri_screen
|
||||
/** The screen's effective configuration options */
|
||||
driOptionCache optionCache;
|
||||
|
||||
/* Which postprocessing filters are enabled. */
|
||||
unsigned pp_enabled[PP_FILTERS];
|
||||
|
||||
/* drm */
|
||||
int fd;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user