i965/HiZ: remove assertion from intel_resolve_map_set().
authorPaul Berry <stereotype441@gmail.com>
Wed, 22 Aug 2012 15:01:58 +0000 (08:01 -0700)
committerPaul Berry <stereotype441@gmail.com>
Fri, 24 Aug 2012 16:59:27 +0000 (09:59 -0700)
commit4b8b6f385e855ecb6da0b7dea56e70e69d1517b9
treeda6cc1241645e3cb3ed2e54ed70cb09f7efc45a8
parent9aacd5cc67ccbc3984bce6a0b40768a6cec2ec2d
i965/HiZ: remove assertion from intel_resolve_map_set().

There are three possible resolve map states for each (level, layer) of
a depth miptree: "needs HiZ resolve", "needs depth resolve", and
"needs neither".  When HiZ was first implemented on i965, any attempt
to directly transition between "needs HiZ resolve" and "needs depth
resolve" without passing through the "needs neither" state would have
been a bug indicating that a necessary resolve hadn't been performed.
Accordingly, intel_resolve_map_set() contained an assertion to verify
that no such direct transition happened.

However, now that we support fast depth clears, there is a valid
transition from the "needs HiZ resolve" to the "needs depth resolve"
state.  When doing a fast depth clear, the old state of the buffer is
irrelevant, since we are completely replacing it with the clear value,
so it is not necessary to do any resolves before clearing--we can
transition, if necessary, directly from the "needs HiZ resolve" state
to the "needs depth resolve" state.

To avoid spurious assertions in this valid case, this patch just
removes the assertion.

Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Chad Versace <chad.versace@linux.intel.com>
src/mesa/drivers/dri/intel/intel_resolve_map.c