i965/blorp: allow all buffer formats provided src and dst match.
authorPaul Berry <stereotype441@gmail.com>
Wed, 6 Jun 2012 18:17:32 +0000 (11:17 -0700)
committerPaul Berry <stereotype441@gmail.com>
Thu, 7 Jun 2012 18:03:15 +0000 (11:03 -0700)
commit9fd0e76a196656f2f14115444f99ec1121879766
tree4aa29895b2db43e4f97f21cee7a794e0bf69e047
parent530bda2aacf77b1e4661e5e5dd05cf108640e657
i965/blorp: allow all buffer formats provided src and dst match.

Previously, blits using the "blorp" mechanism only worked for 8-bit
RGBA color buffers, 24-bit depth buffers, and 8 bit stencil buffers.
This was not enough, because the blorp mechanism must be used for
blitting whenever MSAA is in use.  This patch allows all formats to be
used, provided the source and destination formats match.

So far I have confirmed that the following formats work properly with
MSAA:
- GL_RGB
- GL_RGBA
- GL_ALPHA
- GL_ALPHA4
- GL_ALPHA8
- GL_R3_G3_B2
- GL_RGB4
- GL_RGB5
- GL_RGB8
- GL_RGB10
- GL_RGB12
- GL_RGB16
- GL_RGBA2
- GL_RGBA4
- GL_RGB5_A1
- GL_RGBA8
- GL_RGB10_A2
- GL_RGBA12
- GL_RGBA16

Fixes piglit tests "EXT_framebuffer_multisample/formats {2,4}" on
Sandy Bridge and Ivy Bridge.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/mesa/drivers/dri/i965/brw_blorp_blit.cpp