diff options
author | Brian Paul <[email protected]> | 2009-12-04 13:53:28 -0700 |
---|---|---|
committer | Brian Paul <[email protected]> | 2009-12-04 13:53:28 -0700 |
commit | 15a2a588d88ae02e575ff1ef9287c789ebdadead (patch) | |
tree | f0d67a6a4a119cb3e92cbfad6c652c52f15ef9a1 /src | |
parent | 24a3b0d23a93378d77198f1c92f6f381c0ad05b8 (diff) |
llvmpipe: fix-up polygon culling/winding
Diffstat (limited to 'src')
-rw-r--r-- | src/gallium/drivers/llvmpipe/lp_state_rasterizer.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/gallium/drivers/llvmpipe/lp_state_rasterizer.c b/src/gallium/drivers/llvmpipe/lp_state_rasterizer.c index 4561c6b8456..282ed2e9ea3 100644 --- a/src/gallium/drivers/llvmpipe/lp_state_rasterizer.c +++ b/src/gallium/drivers/llvmpipe/lp_state_rasterizer.c @@ -29,6 +29,7 @@ #include "util/u_memory.h" #include "lp_context.h" #include "lp_state.h" +#include "lp_setup.h" #include "draw/draw_context.h" @@ -50,6 +51,16 @@ void llvmpipe_bind_rasterizer_state(struct pipe_context *pipe, llvmpipe->rasterizer = (struct pipe_rasterizer_state *)setup; + /* Note: we can immediately set the triangle state here and + * not worry about binning because we handle culling during + * triangle setup, not when rasterizing the bins. + */ + if (llvmpipe->rasterizer) { + lp_setup_set_triangle_state( llvmpipe->setup, + llvmpipe->rasterizer->cull_mode, + llvmpipe->rasterizer->front_winding == PIPE_WINDING_CCW ); + } + llvmpipe->dirty |= LP_NEW_RASTERIZER; } |