summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/failover/fo_state.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium/drivers/failover/fo_state.c')
-rw-r--r--src/gallium/drivers/failover/fo_state.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/src/gallium/drivers/failover/fo_state.c b/src/gallium/drivers/failover/fo_state.c
index c189d1d82c..970606a3f5 100644
--- a/src/gallium/drivers/failover/fo_state.c
+++ b/src/gallium/drivers/failover/fo_state.c
@@ -90,7 +90,7 @@ failover_delete_blend_state( struct pipe_context *pipe,
static void
failover_set_blend_color( struct pipe_context *pipe,
- const struct pipe_blend_color *blend_color )
+ const struct pipe_blend_color *blend_color )
{
struct failover_context *failover = failover_context(pipe);
@@ -100,9 +100,21 @@ failover_set_blend_color( struct pipe_context *pipe,
failover->hw->set_blend_color( failover->hw, blend_color );
}
+static void
+failover_set_stencil_ref( struct pipe_context *pipe,
+ const struct pipe_stencil_ref *stencil_ref )
+{
+ struct failover_context *failover = failover_context(pipe);
+
+ failover->stencil_ref = *stencil_ref;
+ failover->dirty |= FO_NEW_STENCIL_REF;
+ failover->sw->set_stencil_ref( failover->sw, stencil_ref );
+ failover->hw->set_stencil_ref( failover->hw, stencil_ref );
+}
+
static void
failover_set_clip_state( struct pipe_context *pipe,
- const struct pipe_clip_state *clip )
+ const struct pipe_clip_state *clip )
{
struct failover_context *failover = failover_context(pipe);
@@ -533,6 +545,7 @@ failover_init_state_functions( struct failover_context *failover )
failover->pipe.delete_vs_state = failover_delete_vs_state;
failover->pipe.set_blend_color = failover_set_blend_color;
+ failover->pipe.set_stencil_ref = failover_set_stencil_ref;
failover->pipe.set_clip_state = failover_set_clip_state;
failover->pipe.set_framebuffer_state = failover_set_framebuffer_state;
failover->pipe.set_polygon_stipple = failover_set_polygon_stipple;