Fix regression and Enable ULT for DG2 (#76)

This commit is contained in:
johnmach 2021-12-08 19:15:57 +05:30 committed by GitHub
parent 2d5f77a6a3
commit c594fb320f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 10 additions and 12 deletions

View File

@ -933,6 +933,7 @@ GMM_CACHE_POLICY *GMM_STDCALL GmmLib::Context::CreateCachePolicyCommon()
case IGFX_GEN12LP_CORE:
case IGFX_GEN12_CORE:
case IGFX_XE_HP_CORE:
case IGFX_XE_HPG_CORE:
if(GetSkuTable().FtrLocalMemory)
{
pGmmCachePolicy = new GmmLib::GmmGen12dGPUCachePolicy(CachePolicy, this);
@ -995,6 +996,7 @@ GMM_TEXTURE_CALC *GMM_STDCALL GmmLib::Context::CreateTextureCalc(PLATFORM Platfo
case IGFX_GEN12LP_CORE:
case IGFX_GEN12_CORE:
case IGFX_XE_HP_CORE:
case IGFX_XE_HPG_CORE:
default:
return new GmmGen12TextureCalc(this);
break;
@ -1017,6 +1019,7 @@ GMM_PLATFORM_INFO_CLASS *GMM_STDCALL GmmLib::Context::CreatePlatformInfo(PLATFOR
case IGFX_GEN12LP_CORE:
case IGFX_GEN12_CORE:
case IGFX_XE_HP_CORE:
case IGFX_XE_HPG_CORE:
return new GmmLib::PlatformInfoGen12(Platform, (GMM_LIB_CONTEXT *)this);
break;
case IGFX_GEN11_CORE:

View File

@ -577,7 +577,7 @@ void GmmLib::GmmTextureCalc::GetResRestrictions(GMM_TEXTURE_INFO * pTexinfo,
}
else // only for platforms having auxtable
{
Restrictions.Alignment = GFX_ALIGN(Restrictions.Alignment, (WA16K(pGmmLibContext) ? GMM_KBYTE(16) : WA64K(pGmmLibContext) ? GMM_KBYTE(64) : GMM_MBYTE(1)));
Restrictions.Alignment = GFX_ALIGN(Restrictions.Alignment, (!WA16K(pGmmLibContext) ? GMM_KBYTE(64) : GMM_KBYTE(16)));
}
}

View File

@ -239,7 +239,7 @@ public:
static inline uint32_t l1Index(GMM_GFX_ADDRESS addr)
{
return GMM_AUX_L1_ENTRY_IDX_EXPORTED(addr, (const_cast<WA_TABLE &>(pGfxAdapterInfo->WaTable).WaAuxTable64KGranular), (const_cast<WA_TABLE &>(pGfxAdapterInfo->WaTable).WaAuxTable16KGranular));
return GMM_AUX_L1_ENTRY_IDX_EXPORTED(addr, !(const_cast<WA_TABLE &>(pGfxAdapterInfo->WaTable).WaAuxTable16KGranular));
}
private:

View File

@ -50,7 +50,6 @@ void CommonULT::AllocateAdapterInfo()
memset(pGfxAdapterInfo, 0, sizeof(ADAPTER_INFO));
pGfxAdapterInfo->SkuTable.FtrTileY = 1;
pGfxAdapterInfo->WaTable.WaAuxTable64KGranular = 1; // 64K aux granularity
}
}

View File

@ -46,7 +46,6 @@ void CTestGen12Resource::SetUpTestCase()
pGfxAdapterInfo->SkuTable.FtrLinearCCS = 1; //legacy y =>0 - test both
pGfxAdapterInfo->SkuTable.FtrTileY = 1;
pGfxAdapterInfo->SkuTable.FtrLLCBypass = 0;
pGfxAdapterInfo->WaTable.WaAuxTable64KGranular = 1;
CommonULT::SetUpTestCase();
}
}

View File

@ -49,7 +49,7 @@ void CTestGen12dGPUCachePolicy::SetUpGen12dGPUVariant(PRODUCT_FAMILY platform)
GfxPlatform.eProductFamily = platform;
GfxPlatform.eRenderCoreFamily = IGFX_XE_HP_CORE;
GfxPlatform.eRenderCoreFamily = IGFX_XE_HPG_CORE;
pGfxAdapterInfo = (ADAPTER_INFO *)malloc(sizeof(ADAPTER_INFO));
if(pGfxAdapterInfo)

View File

@ -46,7 +46,6 @@ void CTestGen12dGPUResource::SetUpTestCase()
pGfxAdapterInfo->SkuTable.FtrLinearCCS = 1; //legacy y =>0 - test both
pGfxAdapterInfo->SkuTable.FtrStandardMipTailFormat = 1;
pGfxAdapterInfo->SkuTable.FtrTileY = 1;
pGfxAdapterInfo->WaTable.WaAuxTable64KGranular = 1;
CommonULT::SetUpTestCase();
}
}

View File

@ -57,7 +57,7 @@ typedef struct GMM_CACHE_POLICY_ELEMENT_REC
uint64_t UcLookup : 1; // Snoop L3 for uncached
uint64_t L1CC : 3; // L1 Cache Control
uint64_t Initialized : 1;
uint64_t Reserved : 5;
uint64_t Reserved : 34;
};
uint64_t Value;

View File

@ -115,7 +115,6 @@ C_ASSERT(sizeof(GMM_AUXTTL1e) == 8);
//For perf, AuxTable granularity changed to 64K
#define WA16K(pGmmLibContext) (pGmmLibContext->GetWaTable().WaAuxTable16KGranular)
#define WA64K(pGmmLibContext) (pGmmLibContext->GetWaTable().WaAuxTable64KGranular)
// #L1 entries, i.e. 1024; 16K-granular ie 4 consequtive pages share Aux-cacheline;
// HW only tracks the distinct entries;
@ -132,13 +131,12 @@ C_ASSERT(sizeof(GMM_AUXTTL1e) == 8);
#define GMM_AUX_L1_ENTRY_IDX(GfxAddress,pGmmLibContext) \
((((GfxAddress) & GFX_MASK_LARGE(GMM_AUX_L1_LOW_BIT, GMM_AUX_L1_HIGH_BIT)) >> \
(uint64_t)GMM_AUX_L1_LOW_BIT) / (WA16K(pGmmLibContext) ? 1 : WA64K(pGmmLibContext) ? 4 : 64))
(uint64_t)GMM_AUX_L1_LOW_BIT) / (!(WA16K(pGmmLibContext)) ? 4 : 1))
#define GMM_AUX_L1_ENTRY_IDX_EXPORTED(GfxAddress,WA64KEx,WA16KEx) \
#define GMM_AUX_L1_ENTRY_IDX_EXPORTED(GfxAddress,WA64KEx) \
((((GfxAddress) & GFX_MASK_LARGE(GMM_AUX_L1_LOW_BIT, GMM_AUX_L1_HIGH_BIT)) >> \
(uint64_t)GMM_AUX_L1_LOW_BIT) / (WA16KEx ? 1 : WA64KEx ? 4 : 64 ))
(uint64_t)GMM_AUX_L1_LOW_BIT) / ((WA64KEx) ? 4 : 1))
#define GMM_AUX_L2_ENTRY_IDX(GfxAddress) \
(((GfxAddress) & GFX_MASK_LARGE(GMM_AUX_L2_LOW_BIT, GMM_AUX_L2_HIGH_BIT)) >> \