i965/miptree: Zero-initialize CCS_D buffers
authorNanley Chery <nanley.g.chery@intel.com>
Wed, 2 May 2018 16:38:47 +0000 (09:38 -0700)
committerNanley Chery <nanley.g.chery@intel.com>
Thu, 17 May 2018 14:06:41 +0000 (07:06 -0700)
commit8a9491058da72ee2df75da25bb147010a451fb68
tree1d486bfffd90de0e3fe7940967f33af6bbf1ec4b
parent816f2dc67da72be8993e724aeda4c2ec2f5a2978
i965/miptree: Zero-initialize CCS_D buffers

Before this patch, the aux_state was actually AUX_INVALID because the BO
was never defined. This was fine on single slice miptrees because we
would fast-clear the resource right after creation. For multi-slice
miptrees on SKL+ however, this results in undefined behavior when
accessing a non-base slice. Here's a specific example:

1) Fast clear level 0
   * Undefined CCS_D buffer allocated in "PASS_THROUGH" state.
   * Level 0 transitions to the CLEAR state.
2) Render to level 1
   * Level 1 may have a 2-bit pattern of 2's.
   * Rendering with a 2 in the CCS is undefined.

Cc: <mesa-stable@lists.freedesktop.org>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
src/mesa/drivers/dri/i965/intel_mipmap_tree.c