diff options
author | marha <marha@users.sourceforge.net> | 2015-02-22 21:39:56 +0100 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2015-02-22 21:39:56 +0100 |
commit | 462f18c7b25fe3e467f837647d07ab0a78aa8d2b (patch) | |
tree | fc8013c0a1bac05a1945846c1697e973f4c35013 /mesalib/src/mesa/main/stencil.c | |
parent | 36f711ee12b6dd5184198abed3aa551efb585587 (diff) | |
download | vcxsrv-462f18c7b25fe3e467f837647d07ab0a78aa8d2b.tar.gz vcxsrv-462f18c7b25fe3e467f837647d07ab0a78aa8d2b.tar.bz2 vcxsrv-462f18c7b25fe3e467f837647d07ab0a78aa8d2b.zip |
Merged origin/release (checked in because wanted to merge new stuff)
Diffstat (limited to 'mesalib/src/mesa/main/stencil.c')
-rw-r--r-- | mesalib/src/mesa/main/stencil.c | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/mesalib/src/mesa/main/stencil.c b/mesalib/src/mesa/main/stencil.c index f65116abe..2a19a17b8 100644 --- a/mesalib/src/mesa/main/stencil.c +++ b/mesalib/src/mesa/main/stencil.c @@ -573,12 +573,24 @@ _mesa_init_stencil(struct gl_context *ctx) ctx->Stencil.Ref[0] = 0; ctx->Stencil.Ref[1] = 0; ctx->Stencil.Ref[2] = 0; - ctx->Stencil.ValueMask[0] = ~0U; - ctx->Stencil.ValueMask[1] = ~0U; - ctx->Stencil.ValueMask[2] = ~0U; - ctx->Stencil.WriteMask[0] = ~0U; - ctx->Stencil.WriteMask[1] = ~0U; - ctx->Stencil.WriteMask[2] = ~0U; + + /* 4.1.4 Stencil Test section of the GL-ES 3.0 specification says: + * + * "In the initial state, [...] the front and back stencil mask are both + * set to the value 2^s − 1, where s is greater than or equal to the + * number of bits in the deepest stencil buffer* supported by the GL + * implementation." + * + * Since the maximum supported precision for stencil buffers is 8 bits, + * mask values should be initialized to 2^8 - 1 = 0xFF. + */ + ctx->Stencil.ValueMask[0] = 0xFF; + ctx->Stencil.ValueMask[1] = 0xFF; + ctx->Stencil.ValueMask[2] = 0xFF; + ctx->Stencil.WriteMask[0] = 0xFF; + ctx->Stencil.WriteMask[1] = 0xFF; + ctx->Stencil.WriteMask[2] = 0xFF; + ctx->Stencil.Clear = 0; ctx->Stencil._BackFace = 1; } |