Module: Mesa Branch: master Commit: f627ac6e355a5eeb9618a0e4fff0ec26bd3c63ba URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=f627ac6e355a5eeb9618a0e4fff0ec26bd3c63ba
Author: Timothy Arceri <[email protected]> Date: Wed Jun 7 12:14:54 2017 +1000 st/mesa: add st_invalidate_buffers() helper Reviewed-by: Samuel Pitoiset <[email protected]> --- 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(-) diff --git a/src/mesa/state_tracker/st_cb_fbo.c b/src/mesa/state_tracker/st_cb_fbo.c index ac8d66588e..2559c239ed 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 ba08e98b87..33bc16713c 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 6dcf13352b..770477a9bb 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 d0f32ff0f6..f4c78aeced 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; } _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
