-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Maciej Cencora wrote:

| I tried implementing GL_ATI_separate_stencil in r300 driver, but I
| faced a problem. With my simple patch http://pastebin.com/m524d1ae7
| r300 driver supports 2 stencil extensions (GL_ATI_separate_stencil and
| GL_EXT_stencil_two_side). Supporting both extensions causes problem in

Are you sure r300 can do the full set of functionality of the EXT
version?  I thought r300 couldn't handle having a different front and
back "ref" value.  This is allowed by the EXT extension and OpenGL 2.0,
but it is not allowed by the ATI extension.

Also, if you intend to support the EXT version, you also need to define
need_GL_EXT_stencil_two_side.

| _mesa_update_stencil function (main/stencil.c). First condition in
| that function checks if EXT extension is supported, if so sets up
| ctx->Stencil._TestTwoSide properly. If both extensions are available
| and ATI extension is used then ctx->Stencil._TestTwoSide will always
| be false, and that's not what we want. Possibly other functions are
| also affected. Any suggestions how to properly fix this?

Both extensions (and the OpenGL 2.0 functionality) can be supported
together, but I don't think Mesa implements it correctly.  Basically, we
have to maintain two different sets of "back" stencil state.  One is set
via the 2.0 or ATI functions and is used when STENCIL_TEST_TWO_SIDE_EXT
is disabled and is disabled.  The other is set by StencilFunc and
StencilOp when the active stencil face is set to BACK.  The
EXT_stencil_two_side spec has more details.

http://opengl.org/registry/specs/EXT/stencil_two_side.txt

I believe the Mesa currently only tracks one set of back stencil state.

I think that it is worth supporting the EXT version, when possible,
because there is GLX protocol for it.  There is currently no GLX
protocol for the OpenGL 2.0 version or the ATI version.  This means that
the EXT version is the only way to get two-sided stencil with indirect
rendering contexts.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)

iEYEARECAAYFAkh+F2sACgkQX1gOwKyEAw83SACeNLFYJ03YjdE+1VuLfE+lxQ+I
j+4An1RX1f9U7/YaFX15DYfdcAfgZeWR
=6M+K
-----END PGP SIGNATURE-----

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Mesa3d-dev mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mesa3d-dev

Reply via email to