iris: Implement the Broadwell NP Z PMA Stall Fix

This should help avoid stalls in the pixel mask array in certain
non-promoted depth cases.  It especially helps for Z16, as each bit
in the PMA corresponds to two pixels when using Z16, as opposed to
the usual one pixel.

Improves performance in GFXBench5 TRex by 22% (n=1).
This commit is contained in:
Kenneth Graunke
2019-09-25 00:31:07 -07:00
parent 4327837be9
commit 0b7ecfdda5
5 changed files with 209 additions and 2 deletions

View File

@@ -307,6 +307,10 @@ iris_blorp_exec(struct blorp_batch *blorp_batch,
iris_require_command_space(batch, 1400);
#if GEN_GEN == 8
genX(update_pma_fix)(ice, batch, false);
#endif
const unsigned scale = params->fast_clear_op ? UINT_MAX : 1;
if (ice->state.current_hash_scale != scale) {
genX(emit_hashing_mode)(ice, batch, params->x1 - params->x0,