anv: Clear WM_HZ_OP overrides in init_device_state
authorNanley Chery <nanley.g.chery@intel.com>
Thu, 11 Oct 2018 23:31:08 +0000 (16:31 -0700)
committerNanley Chery <nanley.g.chery@intel.com>
Thu, 11 Oct 2018 23:31:08 +0000 (16:31 -0700)
commit0ee0e0b6b94bf2b7041da59b67220234f605ae60
tree74a685fcf1b1613e0066ef9265f7c06cf8776557
parent494d2ec277281d25f23b1c42efb9a915b16379ba
anv: Clear WM_HZ_OP overrides in init_device_state

This is basically a port of commit,
3ade766684933ac84e41634429fb693f85353c11
("i965: Disable 3DSTATE_WM_HZ_OP fields.")

The BDW+ docs describe how to use the 3DSTATE_WM_HZ_OP instruction in
the section titled, "Optimized Depth Buffer Clear and/or Stencil Buffer
Clear." It mentions that the packet overrides GPU state for the clear
operation and needs to be reset to 0s to clear the overrides. Depending
on the kernel, we may not get a context with the GPU state for this
packet zeroed. Do it ourselves just in case.

Prevents a number of GPU hangs when running crucible on ICL. I tried to
get the exact number of hangs that occurs without this patch, but was
unsuccessful. The test machine became unresponsive before completing the
full run.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/intel/vulkan/genX_state.c