CELL: fixing stencil bugs
authorRobert Ellison <papillo@tungstengraphics.com>
Fri, 10 Oct 2008 20:13:13 +0000 (14:13 -0600)
committerRobert Ellison <papillo@tungstengraphics.com>
Fri, 10 Oct 2008 20:15:51 +0000 (14:15 -0600)
commitadeed0f90fdd46ea139d5c4b3b75d5dc79b2a0c7
treeff463e1d65d62aad3516d3ac2ac47bbb28b7374f
parent02931db3117cd064175a07412b860e8051d9ed58
CELL: fixing stencil bugs

These are the defects found and fixed so far.  Several more have
been observed; I'm working on them.

- Fixed an error in spe_load_uint() that caused incorrect values to be
  loaded if the given unsigned value had the low 18 bits as 0,
  and that caused inefficient code to be emitted if the given value
  had the high 14 bits as 0.

- Fixed a problem in stencil code generation where optional registers
  weren't tracked correctly.

- Fixed a problem that the stencil function NEVER was acting as ALWAYS.

- Fixed several problems that could occur if stenciling were enabled but
  depth was disabled.

- Fixed a problem with two-sided stencil writemask handling that could
  cause a stencil writemask to not be applied.

- Fixed several state permutations that were incorrectly flagged as
  not requiring stencil values to be calculated.
src/gallium/auxiliary/rtasm/rtasm_ppc_spe.c
src/gallium/drivers/cell/ppu/cell_gen_fragment.c