mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-25 04:20:08 +01:00
fix single-sided stencil test bug
This commit is contained in:
parent
6656864135
commit
c37d2c9325
1 changed files with 13 additions and 7 deletions
|
|
@ -208,16 +208,22 @@ stencil_test_quad(struct quad_stage *qs, struct quad_header *quad)
|
|||
struct softpipe_cached_tile *tile
|
||||
= sp_get_cached_tile(softpipe, softpipe->sbuf_cache, quad->x0, quad->y0);
|
||||
uint j;
|
||||
uint face = quad->facing;
|
||||
|
||||
if (!softpipe->depth_stencil->stencil[1].enabled) {
|
||||
/* single-sided stencil test, use front (face=0) state */
|
||||
face = 0;
|
||||
}
|
||||
|
||||
/* choose front or back face function, operator, etc */
|
||||
/* XXX we could do these initializations once per primitive */
|
||||
func = softpipe->depth_stencil->stencil[quad->facing].func;
|
||||
failOp = softpipe->depth_stencil->stencil[quad->facing].fail_op;
|
||||
zFailOp = softpipe->depth_stencil->stencil[quad->facing].zfail_op;
|
||||
zPassOp = softpipe->depth_stencil->stencil[quad->facing].zpass_op;
|
||||
ref = softpipe->depth_stencil->stencil[quad->facing].ref_value;
|
||||
wrtMask = softpipe->depth_stencil->stencil[quad->facing].write_mask;
|
||||
valMask = softpipe->depth_stencil->stencil[quad->facing].value_mask;
|
||||
func = softpipe->depth_stencil->stencil[face].func;
|
||||
failOp = softpipe->depth_stencil->stencil[face].fail_op;
|
||||
zFailOp = softpipe->depth_stencil->stencil[face].zfail_op;
|
||||
zPassOp = softpipe->depth_stencil->stencil[face].zpass_op;
|
||||
ref = softpipe->depth_stencil->stencil[face].ref_value;
|
||||
wrtMask = softpipe->depth_stencil->stencil[face].write_mask;
|
||||
valMask = softpipe->depth_stencil->stencil[face].value_mask;
|
||||
|
||||
assert(ps); /* shouldn't get here if there's no stencil buffer */
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue