mesa: Add fall-back formats for unsupported snorm formats
authorIan Romanick <ian.d.romanick@intel.com>
Sun, 3 Apr 2011 01:56:33 +0000 (18:56 -0700)
committerIan Romanick <ian.d.romanick@intel.com>
Mon, 4 Apr 2011 22:18:37 +0000 (15:18 -0700)
commite397b3a7c051b70a574e34096b70fc98e4e84b2c
treef27442d5b3a7723c891e88f91861ef9c6022f3b1
parentad3fbac00bb4430aa26f4dbd3a795715b0fc7fef
mesa: Add fall-back formats for unsupported snorm formats

This is always the way with real hardware and desktop OpenGL.  Some
hardware can't do some formats natively.  The alpha-only, luminance,
and intensity formats are usually the most problematic.  Some sized
formats can also be problematic.  This patch provides fall-back
formats for those that are not natively supported.

At some point it would be interesting to try providing
device-independent conversions using EXT_texture_swizzle.  The drivers
that support EXT_texture_swizzle could, for example, see
GL_LUMINANCE16_SNORM as MESA_FORMAT_SIGNED_R16 with a { r, r, r, 1 }
swizzle.  Care would need to be taken to prevent issues with using
those textures for FBO rendering.

This is the rest of the fix for glean's pixelFormats test on i965.

Reviewed-by: Marek Olšák <maraeo@gmail.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/mesa/main/texformat.c