anv: implement WaEnableStateCacheRedirectToCS

This 3d performance workaround was initially put in the kernel but the
media driver requires different settings so the register has been
whitelisted in i915 [1] and userspace drivers are left initializing it as
they wish.

[1] : https://patchwork.freedesktop.org/series/59494/

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
This commit is contained in:
Lionel Landwerlin 2019-04-18 12:00:19 +01:00
parent eaadb62c9e
commit db5b372bb9
1 changed files with 11 additions and 0 deletions

View File

@ -212,6 +212,17 @@ genX(init_device_state)(struct anv_device *device)
lri.DataDWord = common_slice_chicken3;
}
/* WaEnableStateCacheRedirectToCS:icl */
uint32_t slice_common_eco_chicken1;
anv_pack_struct(&slice_common_eco_chicken1,
GENX(SLICE_COMMON_ECO_CHICKEN1),
.StateCacheRedirectToCSSectionEnable = true,
.StateCacheRedirectToCSSectionEnableMask = true);
anv_batch_emit(&batch, GENX(MI_LOAD_REGISTER_IMM), lri) {
lri.RegisterOffset = GENX(SLICE_COMMON_ECO_CHICKEN1_num);
lri.DataDWord = slice_common_eco_chicken1;
}
#endif
/* Set the "CONSTANT_BUFFER Address Offset Disable" bit, so