The driconf options are global.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Brian Paul <brianp@vmware.com>
#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)
{
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);
}
#include "dri_util.h"
#include "pipe/p_compiler.h"
-#include "postprocess/filters.h"
#include "hud/hud_context.h"
struct pipe_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;
};
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)
util_format_s3tc_enabled = TRUE;
}
+ dri_postprocessing_init(screen);
+
return dri_fill_in_modes(screen);
}
#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;
/** The screen's effective configuration options */
driOptionCache optionCache;
+ /* Which postprocessing filters are enabled. */
+ unsigned pp_enabled[PP_FILTERS];
+
/* drm */
int fd;