iris: Program pixel hashing tables on XeHP.

Unlike the Gen11 code, this requires us to allocate a pipe_resource
for the pixel pipe hashing tables and hold a reference to it from the
context, since we need to add it to the validation list of every
batch, the tables may be accessed by the hardware at any time after
they're specified via 3DSTATE_SLICE_TABLE_STATE_POINTERS.

Note that this has an effect even for unfused native die platforms,
since the pixel pipe hashing tables we intend to program aren't
equivalent to the hardware's defaults on such configs.

Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13569>
This commit is contained in:
Francisco Jerez
2021-10-06 14:45:02 -07:00
parent 283d5bff4e
commit d149c5e6e0
3 changed files with 81 additions and 0 deletions

View File

@@ -310,6 +310,13 @@ iris_blorp_exec(struct blorp_batch *blorp_batch,
params->y1 - params->y0, scale);
}
#if GFX_VERx10 == 125
iris_use_pinned_bo(batch, iris_resource_bo(ice->state.pixel_hashing_tables),
false, IRIS_DOMAIN_NONE);
#else
assert(!ice->state.pixel_hashing_tables);
#endif
#if GFX_VER >= 12
genX(invalidate_aux_map_state)(batch);
#endif