OSDN Git Service

i965: Don't try to use the hardware blitter for multisampled miptrees.
authorKenneth Graunke <kenneth@whitecape.org>
Sat, 22 Feb 2014 03:15:51 +0000 (19:15 -0800)
committerKenneth Graunke <kenneth@whitecape.org>
Mon, 24 Feb 2014 04:19:00 +0000 (20:19 -0800)
commit73c78c514f8db0605c0deb85382003d0f66b5525
tree322ac97f0ee1d48452bee9bd2b97c655ea240ccb
parent3f7239ca0ef279be3e1618770a1c2b9112236234
i965: Don't try to use the hardware blitter for multisampled miptrees.

The blitter is completely ignorant of MSAA buffer layouts, so any
attempt to use BLT paths with MSAA buffers is likely to break
spectacularly.

In most cases, BLORP handles MSAA blits, so we never hit this bug.
Until recently, it also wasn't worth fixing, since Meta couldn't handle
MSAA either, so there was nothing to fall back to.  But now there is.

+143 piglit tests on Broadwell (which doesn't have BLORP support).
Surprisingly, three also start failing.  Since non-IMS MSAA buffers
store samples in successive array slices, using the blitter ought to
access sample 0 and ignore the rest, which is apparently good enough for
a few not-very-picky Piglit tests.  Presumably the meta replacement code
is still broken.

No Piglit changes on Ivybridge.

v2: Move the early return to the top of the function (suggested by
    Paul).

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Paul Berry <stereotype441@gmail.com>
src/mesa/drivers/dri/i965/intel_blit.c