i965: Apply depthstencil alignment workaround when doing fast clears.
authorPaul Berry <stereotype441@gmail.com>
Fri, 8 Mar 2013 20:03:10 +0000 (12:03 -0800)
committerPaul Berry <stereotype441@gmail.com>
Fri, 15 Mar 2013 18:52:33 +0000 (11:52 -0700)
commitc5d5827951fb321a58cc781b4e386551035ebf1a
treeb13f3e45a865be7308e016ddba7f71acd15e72fc
parenteed6baf7621fa94e7888f8079b155fc67a08540c
i965: Apply depthstencil alignment workaround when doing fast clears.

Fast depth clears have the same depth/stencil alignment requirements
as other drawing operations.  Therefore, we need to call
brw_workaround_depthstencil_alignment() from both the clear and
drawing paths.

Without this fix, we get image corruption if the following conditions
hold: (a) the first ever drawing operation to a depth miplevel (or the
first drawing operation after having used the texture for sampling) is
a clear, (b) the depth miplevel has a size that is eligible for fast
depth clears, and (c) the depth miplevel has an offset within the
miptree that isn't 8x8 aligned.

Fixes piglit "depthstencil-render-miplevels" tests with size 273.

NOTE: This is a candidate for stable branches

Reviewed-by: Chad Versace <chad.versace@linux.intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
src/mesa/drivers/dri/i965/brw_clear.c