From f627ac6e355a5eeb9618a0e4fff0ec26bd3c63ba Mon Sep 17 00:00:00 2001 From: Timothy Arceri Date: Wed, 7 Jun 2017 12:14:54 +1000 Subject: st/mesa: add st_invalidate_buffers() helper Reviewed-by: Samuel Pitoiset --- src/mesa/state_tracker/st_cb_fbo.c | 5 +++-- src/mesa/state_tracker/st_context.c | 32 ++++++++++++++++++++------------ src/mesa/state_tracker/st_context.h | 3 ++- src/mesa/state_tracker/st_manager.c | 2 +- 4 files changed, 26 insertions(+), 16 deletions(-) (limited to 'src/mesa/state_tracker') diff --git a/src/mesa/state_tracker/st_cb_fbo.c b/src/mesa/state_tracker/st_cb_fbo.c index ac8d66588e0..2559c239ed2 100644 --- a/src/mesa/state_tracker/st_cb_fbo.c +++ b/src/mesa/state_tracker/st_cb_fbo.c @@ -504,7 +504,7 @@ st_render_texture(struct gl_context *ctx, * That's where the new renderbuffer (which we just created) gets * passed to the pipe as a (color/depth) render target. */ - st_invalidate_state(ctx, _NEW_BUFFERS); + st_invalidate_buffers(st); /* Need to trigger a call to update_framebuffer() since we just @@ -520,6 +520,7 @@ st_render_texture(struct gl_context *ctx, static void st_finish_render_texture(struct gl_context *ctx, struct gl_renderbuffer *rb) { + struct st_context *st = st_context(ctx); struct st_renderbuffer *strb = st_renderbuffer(rb); if (!strb) @@ -528,7 +529,7 @@ st_finish_render_texture(struct gl_context *ctx, struct gl_renderbuffer *rb) strb->is_rtt = FALSE; /* restore previous framebuffer state */ - st_invalidate_state(ctx, _NEW_BUFFERS); + st_invalidate_buffers(st); } diff --git a/src/mesa/state_tracker/st_context.c b/src/mesa/state_tracker/st_context.c index ba08e98b87d..33bc16713c6 100644 --- a/src/mesa/state_tracker/st_context.c +++ b/src/mesa/state_tracker/st_context.c @@ -161,25 +161,33 @@ st_get_active_states(struct gl_context *ctx) } +void +st_invalidate_buffers(struct st_context *st) +{ + st->dirty |= ST_NEW_BLEND | + ST_NEW_DSA | + ST_NEW_FB_STATE | + ST_NEW_SAMPLE_MASK | + ST_NEW_SAMPLE_SHADING | + ST_NEW_FS_STATE | + ST_NEW_POLY_STIPPLE | + ST_NEW_VIEWPORT | + ST_NEW_RASTERIZER | + ST_NEW_SCISSOR | + ST_NEW_WINDOW_RECTANGLES; +} + + /** * Called via ctx->Driver.UpdateState() */ -void st_invalidate_state(struct gl_context * ctx, GLbitfield new_state) +static void +st_invalidate_state(struct gl_context * ctx, GLbitfield new_state) { struct st_context *st = st_context(ctx); if (new_state & _NEW_BUFFERS) { - st->dirty |= ST_NEW_BLEND | - ST_NEW_DSA | - ST_NEW_FB_STATE | - ST_NEW_SAMPLE_MASK | - ST_NEW_SAMPLE_SHADING | - ST_NEW_FS_STATE | - ST_NEW_POLY_STIPPLE | - ST_NEW_VIEWPORT | - ST_NEW_RASTERIZER | - ST_NEW_SCISSOR | - ST_NEW_WINDOW_RECTANGLES; + st_invalidate_buffers(st); } else { /* These set a subset of flags set by _NEW_BUFFERS, so we only have to * check them when _NEW_BUFFERS isn't set. diff --git a/src/mesa/state_tracker/st_context.h b/src/mesa/state_tracker/st_context.h index 6dcf13352b9..770477a9bbb 100644 --- a/src/mesa/state_tracker/st_context.h +++ b/src/mesa/state_tracker/st_context.h @@ -305,7 +305,8 @@ struct st_framebuffer extern void st_init_driver_functions(struct pipe_screen *screen, struct dd_function_table *functions); -void st_invalidate_state(struct gl_context * ctx, GLbitfield new_state); +void +st_invalidate_buffers(struct st_context *st); /* Invalidate the readpixels cache to ensure we don't read stale data. */ diff --git a/src/mesa/state_tracker/st_manager.c b/src/mesa/state_tracker/st_manager.c index d0f32ff0f63..f4c78aeced2 100644 --- a/src/mesa/state_tracker/st_manager.c +++ b/src/mesa/state_tracker/st_manager.c @@ -911,7 +911,7 @@ st_manager_add_color_renderbuffer(struct st_context *st, if (stfb->iface) stfb->iface_stamp = p_atomic_read(&stfb->iface->stamp) - 1; - st_invalidate_state(st->ctx, _NEW_BUFFERS); + st_invalidate_buffers(st); return TRUE; } -- cgit v1.2.3