diff --git a/src/intel/isl/isl.c b/src/intel/isl/isl.c index 5035eeaeb82..158092b6ecf 100644 --- a/src/intel/isl/isl.c +++ b/src/intel/isl/isl.c @@ -109,7 +109,20 @@ isl_device_setup_mocs(struct isl_device *dev) { dev->mocs.protected_mask = 0; - if (dev->info->ver >= 12) { + if (dev->info->ver >= 20) { + /* L3+L4=WB; BSpec: 71582 */ + dev->mocs.internal = 1 << 1; + dev->mocs.external = 1 << 1; + dev->mocs.protected_mask = 3 << 0; + /* TODO: Setting to uncached + * WA 14018443005: + * Ensure that any compression-enabled resource from gfx memory subject + * to app recycling (e.g. OGL sparse resource backing memory or + * Vulkan heaps) is never PAT/MOCS'ed as L3:UC. + */ + dev->mocs.blitter_dst = 1 << 1; + dev->mocs.blitter_src = 1 << 1; + } else if (dev->info->ver >= 12) { if (intel_device_info_is_mtl(dev->info)) { /* Cached L3+L4; BSpec: 45101 */ dev->mocs.internal = 1 << 1;