diff --git a/src/mesa/main/attrib.c b/src/mesa/main/attrib.c index 667b890913f..b69edd7375d 100644 --- a/src/mesa/main/attrib.c +++ b/src/mesa/main/attrib.c @@ -62,7 +62,6 @@ #include "state_tracker/st_cb_texture.h" #include "state_tracker/st_manager.h" -#include "state_tracker/st_context.h" #include "state_tracker/st_sampler_view.h" static inline bool @@ -1093,7 +1092,7 @@ _mesa_PopAttrib(void) memcpy(&ctx->ViewportArray[i].X, &vp->X, sizeof(float) * 6); - if (st_context(ctx)->invalidate_on_gl_viewport) + if (ctx->invalidate_on_gl_viewport) st_manager_invalidate_drawables(ctx); } } diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h index a5adc7facb2..62ad6bc71c2 100644 --- a/src/mesa/main/mtypes.h +++ b/src/mesa/main/mtypes.h @@ -3585,6 +3585,11 @@ struct gl_context struct st_config_options *st_opts; struct cso_context *cso_context; bool has_invalidate_buffer; + /* On old libGL's for linux we need to invalidate the drawables + * on glViewpport calls, this is set via a option. + */ + bool invalidate_on_gl_viewport; + /*@}*/ /** diff --git a/src/mesa/main/viewport.c b/src/mesa/main/viewport.c index da4d87315b7..9b31eb9ca1e 100644 --- a/src/mesa/main/viewport.c +++ b/src/mesa/main/viewport.c @@ -116,7 +116,7 @@ viewport(struct gl_context *ctx, GLint x, GLint y, GLsizei width, for (unsigned i = 0; i < ctx->Const.MaxViewports; i++) set_viewport_no_notify(ctx, i, input.X, input.Y, input.Width, input.Height); - if (st_context(ctx)->invalidate_on_gl_viewport) + if (ctx->invalidate_on_gl_viewport) st_manager_invalidate_drawables(ctx); } @@ -169,7 +169,7 @@ _mesa_set_viewport(struct gl_context *ctx, unsigned idx, GLfloat x, GLfloat y, clamp_viewport(ctx, &x, &y, &width, &height); set_viewport_no_notify(ctx, idx, x, y, width, height); - if (st_context(ctx)->invalidate_on_gl_viewport) + if (ctx->invalidate_on_gl_viewport) st_manager_invalidate_drawables(ctx); } @@ -185,7 +185,7 @@ viewport_array(struct gl_context *ctx, GLuint first, GLsizei count, inputs[i].Width, inputs[i].Height); } - if (st_context(ctx)->invalidate_on_gl_viewport) + if (ctx->invalidate_on_gl_viewport) st_manager_invalidate_drawables(ctx); } diff --git a/src/mesa/state_tracker/st_context.h b/src/mesa/state_tracker/st_context.h index 90651108f70..af629ba2215 100644 --- a/src/mesa/state_tracker/st_context.h +++ b/src/mesa/state_tracker/st_context.h @@ -186,10 +186,6 @@ struct st_context boolean emulate_gl_clamp; boolean texture_buffer_sampler; - /* On old libGL's for linux we need to invalidate the drawables - * on glViewpport calls, this is set via a option. - */ - boolean invalidate_on_gl_viewport; boolean draw_needs_minmax_index; boolean has_hw_atomics; diff --git a/src/mesa/state_tracker/st_manager.c b/src/mesa/state_tracker/st_manager.c index 04c22fe70f4..a3ac106a77e 100644 --- a/src/mesa/state_tracker/st_manager.c +++ b/src/mesa/state_tracker/st_manager.c @@ -1118,7 +1118,7 @@ st_api_create_context(struct st_api *stapi, struct st_manager *smapi, st->can_scissor_clear = !!st->screen->get_param(st->screen, PIPE_CAP_CLEAR_SCISSORED); - st->invalidate_on_gl_viewport = + st->ctx->invalidate_on_gl_viewport = smapi->get_param(smapi, ST_MANAGER_BROKEN_INVALIDATE); st->iface.destroy = st_context_destroy;