r600g: properly implement S8Z24 depth-stencil format for Evergreen
authorMarek Olšák <maraeo@gmail.com>
Tue, 12 Feb 2013 22:09:44 +0000 (23:09 +0100)
committerMarek Olšák <maraeo@gmail.com>
Thu, 14 Feb 2013 13:51:46 +0000 (14:51 +0100)
commit2b9659c9e627ad03160899b8be04f96307d098eb
tree7e9748df912ddd32495730d9192725331748c29d
parentc840270ebe588a62f22cae34c02ceeb95345f1f4
r600g: properly implement S8Z24 depth-stencil format for Evergreen

I should say "fix", but it has never been used until now.
S8Z24 is the format equivalent to the GL_UNSIGNED_INT_24_8 packing,
so we'll start to see it more often with st/mesa now making smart decisions
about formats.

The DB<->CB copy can change the channel ordering for transfers, other than
that, the internal DB format doesn't really matter.

R600-R700 support is possible except shadow mapping.
FMT_24_8 is broken if the SAMPLE_C instruction is used (no idea why).

Also the sampler swizzling was broken in theory and the fact it worked was
a lucky coincidence.

radeonsi might need to port this.

Reviewed-by: Jerome Glisse <jglisse@redhat.com>
src/gallium/drivers/r600/evergreen_state.c
src/gallium/drivers/r600/r600_state.c
src/gallium/drivers/r600/r600_texture.c