Mesa (master): st/mesa: add st_invalidate_buffers() helper
Timothy Arceri
tarceri at kemper.freedesktop.org
Thu Jun 8 23:14:01 UTC 2017
Module: Mesa
Branch: master
Commit: f627ac6e355a5eeb9618a0e4fff0ec26bd3c63ba
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=f627ac6e355a5eeb9618a0e4fff0ec26bd3c63ba
Author: Timothy Arceri <tarceri at itsqueeze.com>
Date: Wed Jun 7 12:14:54 2017 +1000
st/mesa: add st_invalidate_buffers() helper
Reviewed-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
---
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;
}
More information about the mesa-commit
mailing list