diff options
author | Roland Scheidegger <[email protected]> | 2010-02-11 19:01:10 +0100 |
---|---|---|
committer | Roland Scheidegger <[email protected]> | 2010-02-11 19:01:10 +0100 |
commit | ed0f3b08b65679452132a9caeef1509a8dac23b9 (patch) | |
tree | 00a8193f0c860da94f10eccef85011089b30fe61 /src/gallium/auxiliary/util | |
parent | bf4b0773c570017c1c3ec80da769bf5c39a685b2 (diff) |
gallium: make u_blitter code save/restore stencil ref values
Diffstat (limited to 'src/gallium/auxiliary/util')
-rw-r--r-- | src/gallium/auxiliary/util/u_blitter.c | 2 | ||||
-rw-r--r-- | src/gallium/auxiliary/util/u_blitter.h | 8 |
2 files changed, 10 insertions, 0 deletions
diff --git a/src/gallium/auxiliary/util/u_blitter.c b/src/gallium/auxiliary/util/u_blitter.c index 0504538258d..1f7e25b84f2 100644 --- a/src/gallium/auxiliary/util/u_blitter.c +++ b/src/gallium/auxiliary/util/u_blitter.c @@ -262,6 +262,8 @@ static void blitter_restore_CSOs(struct blitter_context_priv *ctx) ctx->blitter.saved_fs = INVALID_PTR; ctx->blitter.saved_vs = INVALID_PTR; + pipe->set_stencil_ref(pipe, &ctx->blitter.saved_stencil_ref); + /* restore the state objects which are required to be saved before copy/fill */ if (ctx->blitter.saved_fb_state.nr_cbufs != ~0) { diff --git a/src/gallium/auxiliary/util/u_blitter.h b/src/gallium/auxiliary/util/u_blitter.h index 3da5a6ca525..a2f17073ac6 100644 --- a/src/gallium/auxiliary/util/u_blitter.h +++ b/src/gallium/auxiliary/util/u_blitter.h @@ -47,6 +47,7 @@ struct blitter_context void *saved_fs, *saved_vs; /**< fragment shader, vertex shader */ struct pipe_framebuffer_state saved_fb_state; /**< framebuffer state */ + struct pipe_stencil_ref saved_stencil_ref; /**< stencil ref */ int saved_num_sampler_states; void *saved_sampler_states[32]; @@ -170,6 +171,13 @@ void util_blitter_save_depth_stencil_alpha(struct blitter_context *blitter, } static INLINE +void util_blitter_save_stencil_ref(struct blitter_context *blitter, + const struct pipe_stencil_ref *state) +{ + blitter->saved_stencil_ref = *state; +} + +static INLINE void util_blitter_save_rasterizer(struct blitter_context *blitter, void *state) { |