i965: Handle lum, intensity and missing components in the fast clear
authorNeil Roberts <neil@linux.intel.com>
Wed, 4 Nov 2015 14:52:06 +0000 (15:52 +0100)
committerNeil Roberts <neil@linux.intel.com>
Mon, 23 Nov 2015 09:44:01 +0000 (10:44 +0100)
commit2010de4015c96f241e81012b395cb4254091f0bb
tree654ab035e9865818e2656ec435d15a412f9062e1
parentf58813842bcece3498f55ec5d582466ccff92a5e
i965: Handle lum, intensity and missing components in the fast clear

It looks like the sampler hardware doesn't take into account the
surface format when sampling a cleared color after a fast clear has
been done. So for example if you clear a GL_RED surface to 1,1,1,1
then the sampling instructions will return 1,1,1,1 instead of 1,0,0,1.
This patch makes it override the color that is programmed in the
surface state in order to swizzle for luminance and intensity as well
as overriding the missing components.

Fixes the ext_framebuffer_multisample-fast-clear Piglit test.

v2: Handle luminance and intensity formats
Reviewed-by: Ben Widawsky <benjamin.widawsky@intel.com>
src/mesa/drivers/dri/i965/brw_meta_fast_clear.c