i965/gen9: Don't allow the RGBX formats for texturing/rendering
authorNeil Roberts <neil@linux.intel.com>
Thu, 19 Nov 2015 15:25:21 +0000 (16:25 +0100)
committerNeil Roberts <neil@linux.intel.com>
Wed, 13 Jan 2016 12:16:31 +0000 (12:16 +0000)
commitcda886a4851ab767fba40e8474d6fa8190347e4f
treea321f428c9635293e8ef9a2e751dad26a07bf9f8
parent4ea0febcb005d6447a6ae4d19ca1de8de44f3da9
i965/gen9: Don't allow the RGBX formats for texturing/rendering

The RGBX surface formats aren't renderable so we internally remap them
to RGBA when rendering. They are retained as RGBX when used as
textures. However since the previous patch fast clears are disabled
for surfaces that use a different format for rendering than for
texturing. To avoid this situation we can just pretend not to support
RGBX formats at all. This will cause the upper layers of mesa to pick
an RGBA format internally instead. This should be safe because we
always override the alpha component to 1.0 for RGBX in the texture
swizzle anyway. We could also do this for all gens except that it's a
bit more difficult when the hardware doesn't support texture
swizzling. Gens using the blorp have further problems because that
doesn't implement this swizzle override.

Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
src/mesa/drivers/dri/i965/brw_surface_formats.c