i965/Gen7: Include bitfield in the sampler key for CMS layout
authorChris Forbes <chrisf@ijw.co.nz>
Fri, 29 Nov 2013 21:01:12 +0000 (10:01 +1300)
committerChris Forbes <chrisf@ijw.co.nz>
Sat, 7 Dec 2013 03:09:12 +0000 (16:09 +1300)
commit27359b807918503763bf22fc280158999776d0cb
treeab54f235806b2b261307fa91bd6715ae90da0ed6
parentb1604841c2407c336f1069844649e51a3d135115
i965/Gen7: Include bitfield in the sampler key for CMS layout

We need to emit extra shader code in this case to sample the
MCS surface first; we can't just blindly do this all the time
since IVB will sometimes try to access the MCS surface even if
disabled.

V3: Use actual MSAA layout from the texture's mt, rather
then computing what would have been used based on the format.
This is simpler and less fragile - there's at least one case where
we might want to have a texture's MSAA layout change based on what
the app does (CMS SINT falling back to UMS if the app ever attempts
to render to it with a channel disabled.)

This also obsoletes V2's 1/10 -- compute_msaa_layout can now remain
an implementation detail of the miptree code.

Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Paul Berry <stereotype441@gmail.com>
src/mesa/drivers/dri/i965/brw_program.h
src/mesa/drivers/dri/i965/brw_wm.c