i965/msaa: Add CMS support to blorp.
authorPaul Berry <stereotype441@gmail.com>
Tue, 3 Jul 2012 15:13:35 +0000 (08:13 -0700)
committerPaul Berry <stereotype441@gmail.com>
Wed, 11 Jul 2012 22:14:49 +0000 (15:14 -0700)
commit4ebbc766210190cb1f03fa4fc762bf7ecc0c7f90
treedc31cdc30e68c066a06994a4a84ed832d788ec6a
parent754953693db784d4f96d57bb6c7fa11a855a9e22
i965/msaa: Add CMS support to blorp.

This patch updates the blorp engine to properly handle the case where
the surface being textured from uses Gen7's CMS MSAA layout.  The
following changes were necessary:

- Before reading color values from the surface, we need to read from
  the MCS buffer using the ld_mcs sampler message.  This is done by
  the mcs_fetch() function, and the result is stored in the mcs_data
  register.  This only needs to be done once per pixel, since the MCS
  value is shared between all samples belonging to a pixel.

- When reading color values from the surface, we need to use the
  ld2dms sampler message instead of the ld2dss message, and we need to
  provide the value read from the MCS buffer as an argument.

Reviewed-by: Chad Versace <chad.versace@linux.intel.com>
src/mesa/drivers/dri/i965/brw_blorp_blit.cpp