gallivm: handle z32s8x24 format for sampling
authorRoland Scheidegger <sroland@vmware.com>
Fri, 17 May 2013 21:13:51 +0000 (23:13 +0200)
committerRoland Scheidegger <sroland@vmware.com>
Fri, 17 May 2013 22:31:49 +0000 (00:31 +0200)
commitd7e811c0b0f51df85a624a5784518e274a1db173
tree532c8950c62d22d970078ca2db5faab838a3e743
parent0346e9b3bb24cf79c182a86fd8445251dfaa64ca
gallivm: handle z32s8x24 format for sampling

Since we can only sample either depth or stencil but not both only load
the required bits which makes things a bit easier (it requires special
handling since the format doesn't fit into 32bit).
The logic for deciding if depth or stencil should be sampled is a bit odd,
but seems to be what other drivers and statetrackers do: if it's a format with
both depth and stencil (or just with depth) then sample depth, for sampling
stencil a sampler view format with only stencil is required.
Also while here fix up stencil sampling for other formats as well, though
this isn't supported by mesa (ARB_stencil_texturing), and while blits would
use it they don't work neither since they'd also need stencil export.

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
src/gallium/auxiliary/gallivm/lp_bld_format_soa.c