Skip to content

Commit ffd91d0

Browse files
authored
GMM Global Context removal (#62)
* Phase 1: As part of global and static code removal- GMM policy, plaformInfo and texture class updated to have pGmmGlobal contextas part of it * Updating the GMM #define to make sure it uses parameterized GMMlib Context * Replace pGmmGlobalContext with member variable with pGmmLibContext in all GMM cache policy files * Replace pGmmGlobalContext with pGmmLibContext in all Platform Class related API * Remove any remaining use of pGmmGlobalContext * Phase 2: Update Macros to use pGmmLibContext (local) instead of global pGmmGlobalContext * Replace pGmmGlobalContext with pGmmUMDLibContext/pGmmKMDLibContext in GMM_RESOURCE_INFO class and its member functions * All KMD level pGmmGlobalContext global variable is removed and replaced with pGmmLibContext * Phase 3: Add support for Multi-Adapter in GMM UMD Library and replace pGmmGloContext to pGmmLibContext * Make GMM UMD DLL Initialize and Destroy APIs backward compatible for SingleAdapter use case * Phase 4: Enable and add support for Multi-Adapter ULT for GMM UMD DLL in GMM ULT * Update the Entry-Level Init and destroy APIs * Phase 5: Remove the pGmmGlobalContext Global and its dependencies * Initial cleanup of KMD code * Updating variable data type and License Info
1 parent a92ef3a commit ffd91d0

File tree

86 files changed

+2454
-1403
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

86 files changed

+2454
-1403
lines changed

Source/GmmLib/CMakeLists.txt

-1
Original file line numberDiff line numberDiff line change
@@ -269,7 +269,6 @@ set(SOURCES_
269269
${BS_DIR_GMMLIB}/Texture/GmmTextureOffset.cpp
270270
${BS_DIR_GMMLIB}/GlobalInfo/GmmInfo.cpp
271271
${BS_DIR_GMMLIB}/Utility/CpuSwizzleBlt/CpuSwizzleBlt.c
272-
${BS_DIR_GMMLIB}/Utility/GmmLibObject.cpp
273272
${BS_DIR_GMMLIB}/Utility/GmmLog/GmmLog.cpp
274273
${BS_DIR_GMMLIB}/Utility/GmmUtility.cpp
275274
)

Source/GmmLib/CachePolicy/GmmCachePolicy.cpp

+34-28
Original file line numberDiff line numberDiff line change
@@ -26,30 +26,32 @@ OTHER DEALINGS IN THE SOFTWARE.
2626
/////////////////////////////////////////////////////////////////////////////////////
2727
/// C Wrapper function for GmmLib::GmmCachePolicyGetPteType
2828
/// @see GmmLib::GmmCachePolicyCommon::CachePolicyGetPteType()
29-
///
29+
//
30+
/// @param[in] pLibContext: pGmmLibContext
3031
/// @param[in] Usage: type of usage
3132
///
3233
/// @return GMM_PTE_CACHE_CONTROL_BITS:Populated PTE
3334
///
3435
/////////////////////////////////////////////////////////////////////////////////////
35-
GMM_PTE_CACHE_CONTROL_BITS GMM_STDCALL GmmCachePolicyGetPteType(GMM_RESOURCE_USAGE_TYPE Usage)
36+
GMM_PTE_CACHE_CONTROL_BITS GMM_STDCALL GmmCachePolicyGetPteType(void *pLibContext, GMM_RESOURCE_USAGE_TYPE Usage)
3637
{
37-
return pGmmGlobalContext->GetCachePolicyObj()->CachePolicyGetPteType(Usage);
38+
GMM_LIB_CONTEXT *pGmmLibContext = (GMM_LIB_CONTEXT *)pLibContext;
39+
return pGmmLibContext->GetCachePolicyObj()->CachePolicyGetPteType(Usage);
3840
}
39-
4041
/////////////////////////////////////////////////////////////////////////////////////
4142
/// C Wrapper function for GmmLib::GmmCachePolicyIsUsagePTECached
4243
/// @see GmmLib::GmmCachePolicyCommon::CachePolicyIsUsagePTECached()
4344
///
45+
/// @param[in] pLibContext: pGmmLibContext
4446
/// @param[in] Usage: type of usage
4547
///
4648
/// @return 1 if the usage PTE entry is set for cached, 0 otherwise.
4749
/////////////////////////////////////////////////////////////////////////////////////
48-
uint8_t GMM_STDCALL GmmCachePolicyIsUsagePTECached(GMM_RESOURCE_USAGE_TYPE Usage)
50+
uint8_t GMM_STDCALL GmmCachePolicyIsUsagePTECached(void *pLibContext, GMM_RESOURCE_USAGE_TYPE Usage)
4951
{
50-
return pGmmGlobalContext->GetCachePolicyObj()->CachePolicyIsUsagePTECached(Usage);
52+
GMM_LIB_CONTEXT *pGmmLibContext = (GMM_LIB_CONTEXT *)pLibContext;
53+
return pGmmLibContext->GetCachePolicyObj()->CachePolicyIsUsagePTECached(Usage);
5154
}
52-
5355
/////////////////////////////////////////////////////////////////////////////////////
5456
/// C wrapper for GmmLib::GmmResourceInfoCommon::GetCachePolicyUsage.
5557
/// @see GmmLib::GmmResourceInfoCommon::GetCachePolicyUsage()
@@ -85,9 +87,10 @@ void GMM_STDCALL GmmCachePolicyOverrideResourceUsage(GMM_RESOURCE_INFO *pResInfo
8587
/// @return MEMORY_OBJECT_CONTROL_STATE: Gen adjusted MOCS structure (cache
8688
/// policy) for the given buffer use.
8789
/////////////////////////////////////////////////////////////////////////////////////
88-
MEMORY_OBJECT_CONTROL_STATE GMM_STDCALL GmmCachePolicyGetMemoryObject(GMM_RESOURCE_INFO *pResInfo, GMM_RESOURCE_USAGE_TYPE Usage)
90+
MEMORY_OBJECT_CONTROL_STATE GMM_STDCALL GmmCachePolicyGetMemoryObject(void *pLibContext, GMM_RESOURCE_INFO *pResInfo, GMM_RESOURCE_USAGE_TYPE Usage)
8991
{
90-
return pGmmGlobalContext->GetCachePolicyObj()->CachePolicyGetMemoryObject(pResInfo, Usage);
92+
GMM_LIB_CONTEXT *pGmmLibContext = (GMM_LIB_CONTEXT *)pLibContext;
93+
return pGmmLibContext->GetCachePolicyObj()->CachePolicyGetMemoryObject(pResInfo, Usage);
9194
}
9295

9396
/////////////////////////////////////////////////////////////////////////////////////
@@ -100,58 +103,61 @@ MEMORY_OBJECT_CONTROL_STATE GMM_STDCALL GmmCachePolicyGetMemoryObject(GMM_RESOUR
100103
/// @return MEMORY_OBJECT_CONTROL_STATE: Populated memory object
101104
///
102105
/////////////////////////////////////////////////////////////////////////////////////
103-
MEMORY_OBJECT_CONTROL_STATE GMM_STDCALL GmmCachePolicyGetOriginalMemoryObject(GMM_RESOURCE_INFO *pResInfo)
106+
MEMORY_OBJECT_CONTROL_STATE GMM_STDCALL GmmCachePolicyGetOriginalMemoryObject(void *pLibContext, GMM_RESOURCE_INFO *pResInfo)
104107
{
105-
return pGmmGlobalContext->GetCachePolicyObj()->CachePolicyGetOriginalMemoryObject(pResInfo);
108+
GMM_LIB_CONTEXT *pGmmLibContext = (GMM_LIB_CONTEXT *)pLibContext;
109+
return pGmmLibContext->GetCachePolicyObj()->CachePolicyGetOriginalMemoryObject(pResInfo);
106110
}
107-
108111
/////////////////////////////////////////////////////////////////////////////////////
109112
/// C Wrapper function for GmmCachePolicy::GmmGetWantedMemoryType.
110113
/// @see GmmLib::GmmCachePolicy::GetWantedMemoryType()
111114
///
112115
/// @param[in] CachePolicy:cache policy for a usage
116+
/// @param[in] pLibContext: pGmmLibContext
113117
///
114118
/// @return wanted memory type
115119
/////////////////////////////////////////////////////////////////////////////////////
116-
GMM_GFX_MEMORY_TYPE GmmGetWantedMemoryType(GMM_CACHE_POLICY_ELEMENT CachePolicy)
120+
GMM_GFX_MEMORY_TYPE GmmGetWantedMemoryType(void *pLibContext, GMM_CACHE_POLICY_ELEMENT CachePolicy)
117121
{
118-
return pGmmGlobalContext->GetCachePolicyObj()->GetWantedMemoryType(CachePolicy);
122+
GMM_LIB_CONTEXT *pGmmLibContext = (GMM_LIB_CONTEXT *)pLibContext;
123+
return pGmmLibContext->GetCachePolicyObj()->GetWantedMemoryType(CachePolicy);
119124
}
120-
121125
/////////////////////////////////////////////////////////////////////////////////////
122126
/// Returns count of current MOCS values for MOCS Table programming at GMM boot
123127
///
124-
/// @param[in] none:
128+
/// @param[in] pLibContext: pGmmLibContext
125129
/// @return uint32_t no of mocs register required to program
126130
/////////////////////////////////////////////////////////////////////////////////////
127-
uint32_t GMM_STDCALL GmmCachePolicyGetMaxMocsIndex(void)
131+
uint32_t GMM_STDCALL GmmCachePolicyGetMaxMocsIndex(void *pLibContext)
128132
{
129-
GMM_CACHE_POLICY * pCachePolicy = pGmmGlobalContext->GetCachePolicyObj();
130-
GmmLib::GmmGen9CachePolicy *ptr = static_cast<GmmLib::GmmGen9CachePolicy *>(pCachePolicy);
133+
GMM_LIB_CONTEXT * pGmmLibContext = (GMM_LIB_CONTEXT *)pLibContext;
134+
GMM_CACHE_POLICY * pCachePolicy = pGmmLibContext->GetCachePolicyObj();
135+
GmmLib::GmmGen9CachePolicy *ptr = static_cast<GmmLib::GmmGen9CachePolicy *>(pCachePolicy);
131136
return ptr->CurrentMaxMocsIndex;
132137
}
133-
134138
/////////////////////////////////////////////////////////////////////////////////////
135139
/// Returns count of current L1 HDC MOCS values for MOCS Table programming at GMM boot
136140
///
137-
/// @param[in] none:
141+
/// @param[in] pLibContext: pGmmLibContext
138142
/// @return uint32_t max L1 hdc mocs index needed to program
139143
/////////////////////////////////////////////////////////////////////////////////////
140-
uint32_t GMM_STDCALL GmmCachePolicyGetMaxL1HdcMocsIndex(void)
144+
uint32_t GMM_STDCALL GmmCachePolicyGetMaxL1HdcMocsIndex(void *pLibContext)
141145
{
142-
GMM_CACHE_POLICY * pCachePolicy = pGmmGlobalContext->GetCachePolicyObj();
143-
GmmLib::GmmGen9CachePolicy *ptr = static_cast<GmmLib::GmmGen9CachePolicy *>(pCachePolicy);
146+
GMM_LIB_CONTEXT * pGmmLibContext = (GMM_LIB_CONTEXT *)pLibContext;
147+
GMM_CACHE_POLICY * pCachePolicy = pGmmLibContext->GetCachePolicyObj();
148+
GmmLib::GmmGen9CachePolicy *ptr = static_cast<GmmLib::GmmGen9CachePolicy *>(pCachePolicy);
144149
return ptr->CurrentMaxL1HdcMocsIndex;
145150
}
146151

147152
/////////////////////////////////////////////////////////////////////////////////////
148153
/// Returns count of current Special MOCS values for MOCS Table programming at GMM boot
149154
///
150-
/// @param[in] none:
155+
/// @param[in] pLibContext: pGmmLibContext
151156
/// @return uint32_t max special mocs index needed to program
152157
/////////////////////////////////////////////////////////////////////////////////////
153-
uint32_t GMM_STDCALL GmmCachePolicyGetMaxSpecialMocsIndex(void)
158+
uint32_t GMM_STDCALL GmmCachePolicyGetMaxSpecialMocsIndex(void *pLibContext)
154159
{
155-
GMM_CACHE_POLICY *pCachePolicy = pGmmGlobalContext->GetCachePolicyObj();
160+
GMM_LIB_CONTEXT * pGmmLibContext = (GMM_LIB_CONTEXT *)pLibContext;
161+
GMM_CACHE_POLICY *pCachePolicy = pGmmLibContext->GetCachePolicyObj();
156162
return pCachePolicy->GetMaxSpecialMocsIndex();
157-
}
163+
}

Source/GmmLib/CachePolicy/GmmCachePolicyCommon.cpp

+9-11
Original file line numberDiff line numberDiff line change
@@ -23,15 +23,14 @@ OTHER DEALINGS IN THE SOFTWARE.
2323
#include "Internal/Common/GmmLibInc.h"
2424
#include "External/Common/GmmCachePolicy.h"
2525

26-
int32_t GmmLib::GmmCachePolicyCommon::RefCount = 0;
27-
2826
/////////////////////////////////////////////////////////////////////////////////////
2927
/// Constructor for the GmmCachePolicyCommon Class, initializes the CachePolicy
3028
/// @param[in] pCachePolicy
3129
/////////////////////////////////////////////////////////////////////////////////////
32-
GmmLib::GmmCachePolicyCommon::GmmCachePolicyCommon(GMM_CACHE_POLICY_ELEMENT *pCachePolicy)
30+
GmmLib::GmmCachePolicyCommon::GmmCachePolicyCommon(GMM_CACHE_POLICY_ELEMENT *pCachePolicy, Context *pGmmLibContext)
3331
{
34-
this->pCachePolicy = pCachePolicy;
32+
this->pCachePolicy = pCachePolicy;
33+
this->pGmmLibContext = pGmmLibContext;
3534
}
3635

3736
/////////////////////////////////////////////////////////////////////////////////////
@@ -70,8 +69,8 @@ GMM_GFX_MEMORY_TYPE GmmLib::GmmCachePolicyCommon::GetWantedMemoryType(GMM_CACHE_
7069
/////////////////////////////////////////////////////////////////////////////////////
7170
MEMORY_OBJECT_CONTROL_STATE GMM_STDCALL GmmLib::GmmCachePolicyCommon::CachePolicyGetOriginalMemoryObject(GMM_RESOURCE_INFO *pResInfo)
7271
{
73-
MEMORY_OBJECT_CONTROL_STATE MOCS = pGmmGlobalContext->GetCachePolicyElement(GMM_RESOURCE_USAGE_UNKNOWN).MemoryObjectOverride;
74-
72+
MEMORY_OBJECT_CONTROL_STATE MOCS = pGmmLibContext->GetCachePolicyElement(GMM_RESOURCE_USAGE_UNKNOWN).MemoryObjectOverride;
73+
7574
if(pResInfo)
7675
{
7776
MOCS = pResInfo->GetMOCS();
@@ -94,9 +93,8 @@ MEMORY_OBJECT_CONTROL_STATE GMM_STDCALL GmmLib::GmmCachePolicyCommon::CachePolic
9493
MEMORY_OBJECT_CONTROL_STATE GMM_STDCALL GmmLib::GmmCachePolicyCommon::CachePolicyGetMemoryObject(GMM_RESOURCE_INFO *pResInfo, GMM_RESOURCE_USAGE_TYPE Usage)
9594
{
9695
const GMM_CACHE_POLICY_ELEMENT *CachePolicy = NULL;
97-
__GMM_ASSERT(pGmmGlobalContext->GetCachePolicyElement(Usage).Initialized);
98-
CachePolicy = pGmmGlobalContext->GetCachePolicyUsage();
99-
96+
__GMM_ASSERT(pGmmLibContext->GetCachePolicyElement(Usage).Initialized);
97+
CachePolicy = pGmmLibContext->GetCachePolicyUsage();
10098
// Prevent wrong Usage for XAdapter resources. UMD does not call GetMemoryObject on shader resources but,
10199
// when they add it someone could call it without knowing the restriction.
102100
if(pResInfo &&
@@ -129,6 +127,6 @@ MEMORY_OBJECT_CONTROL_STATE GMM_STDCALL GmmLib::GmmCachePolicyCommon::CachePolic
129127
/////////////////////////////////////////////////////////////////////////////////////
130128
GMM_PTE_CACHE_CONTROL_BITS GMM_STDCALL GmmLib::GmmCachePolicyCommon::CachePolicyGetPteType(GMM_RESOURCE_USAGE_TYPE Usage)
131129
{
132-
__GMM_ASSERT(pGmmGlobalContext->GetCachePolicyElement(Usage).Initialized);
133-
return pGmmGlobalContext->GetCachePolicyElement(Usage).PTE;
130+
__GMM_ASSERT(pGmmLibContext->GetCachePolicyElement(Usage).Initialized);
131+
return pGmmLibContext->GetCachePolicyElement(Usage).PTE;
134132
}

Source/GmmLib/CachePolicy/GmmCachePolicyConditionals.h

+7-7
Original file line numberDiff line numberDiff line change
@@ -20,18 +20,18 @@ ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
2020
OTHER DEALINGS IN THE SOFTWARE.
2121
============================================================================*/
2222

23-
#define PRODUCT(X) (GFX_GET_CURRENT_PRODUCT(pGmmGlobalContext->GetPlatformInfo().Platform) == IGFX_##X)
23+
#define ISPRODUCT(X) (GFX_GET_CURRENT_PRODUCT(pGmmLibContext->GetPlatformInfo().Platform) == IGFX_##X)
2424

25-
#define FROMPRODUCT(X) (GFX_GET_CURRENT_PRODUCT(pGmmGlobalContext->GetPlatformInfo().Platform) >= IGFX_##X)
25+
#define FROMPRODUCT(X) (GFX_GET_CURRENT_PRODUCT(pGmmLibContext->GetPlatformInfo().Platform) >= IGFX_##X)
2626

27-
#define SKU(FtrXxx) (pGmmGlobalContext->GetSkuTable().FtrXxx != 0)
27+
#define SKU(FtrXxx) (pGmmLibContext->GetSkuTable().FtrXxx != 0)
2828

29-
#define WA(WaXxx) (pGmmGlobalContext->GetWaTable().WaXxx != 0)
29+
#define WA(WaXxx) (pGmmLibContext->GetWaTable().WaXxx != 0)
3030

3131
// Underscored to prevent name collision with the GMM_CACHE_POLICY_ELEMENT fields named L3 and LLC
32-
#define _L3 (pGmmGlobalContext->GetGtSysInfo()->L3CacheSizeInKb)
33-
#define _LLC (pGmmGlobalContext->GetGtSysInfo()->LLCCacheSizeInKb)
34-
#define _ELLC (pGmmGlobalContext->GetGtSysInfo()->EdramSizeInKb)
32+
#define _L3 (pGmmLibContext->GetGtSysInfo()->L3CacheSizeInKb)
33+
#define _LLC (pGmmLibContext->GetGtSysInfo()->LLCCacheSizeInKb)
34+
#define _ELLC (pGmmLibContext->GetGtSysInfo()->EdramSizeInKb)
3535
#define CAM$ (SKU(FtrCameraCaptureCaching))
3636

3737
// Units are already in KB in the system information, so these helper macros need to account for that

Source/GmmLib/CachePolicy/GmmGen10CachePolicy.cpp

+20-17
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ GMM_STATUS GmmLib::GmmGen10CachePolicy::InitCachePolicy()
6767

6868
uint32_t CurrentMaxIndex = 0;
6969
uint32_t CurrentMaxHDCL1Index = GMM_GEN10_HDCL1_MOCS_INDEX_START - 1; // define constant
70-
GMM_CACHE_POLICY_TBL_ELEMENT *pCachePolicyTlbElement = pGmmGlobalContext->GetCachePolicyTlbElement();
70+
GMM_CACHE_POLICY_TBL_ELEMENT *pCachePolicyTlbElement = pGmmLibContext->GetCachePolicyTlbElement();
7171

7272
// index 0 is uncached.
7373
{
@@ -91,7 +91,7 @@ GMM_STATUS GmmLib::GmmGen10CachePolicy::InitCachePolicy()
9191
bool CachePolicyError = false;
9292
int32_t CPTblIdx = -1;
9393
uint32_t j = 0;
94-
uint32_t PTEValue = 0;
94+
uint64_t PTEValue = 0;
9595
GMM_CACHE_POLICY_TBL_ELEMENT UsageEle = {0};
9696
UsageEle.LeCC.Reserved = 0; // Reserved bits zeroe'd, this is so we
9797
// we can compare the unioned LeCC.DwordValue.
@@ -224,7 +224,8 @@ GMM_STATUS GmmLib::GmmGen10CachePolicy::InitCachePolicy()
224224
CachePolicyError = true;
225225
}
226226

227-
pCachePolicy[Usage].PTE.DwordValue = PTEValue;
227+
pCachePolicy[Usage].PTE.DwordValue = PTEValue & 0xFFFFFFFF;
228+
pCachePolicy[Usage].PTE.HighDwordValue = 0;
228229

229230
pCachePolicy[Usage].MemoryObjectOverride.Gen10.Index = CPTblIdx;
230231

@@ -254,7 +255,10 @@ GMM_STATUS GmmLib::GmmGen10CachePolicy::SetPATInitWA()
254255
GMM_STATUS Status = GMM_SUCCESS;
255256

256257
#if(defined(__GMM_KMD__))
257-
258+
if(pGmmLibContext->GetGtSysInfoPtr()->EdramSizeInKb)
259+
{
260+
const_cast<WA_TABLE &>(pGmmLibContext->GetWaTable()).WaNoMocsEllcOnly = 1;
261+
}
258262
#else
259263
Status = GMM_ERROR;
260264
#endif
@@ -346,10 +350,9 @@ GMM_STATUS GmmLib::GmmGen10CachePolicy::SetupPAT()
346350
uint8_t Age = 1;
347351
uint8_t ServiceClass = 0;
348352
int32_t * pPrivatePATTableMemoryType = NULL;
349-
pPrivatePATTableMemoryType = pGmmGlobalContext->GetPrivatePATTableMemoryType();
350-
351-
__GMM_ASSERT(pGmmGlobalContext->GetSkuTable().FtrIA32eGfxPTEs);
353+
pPrivatePATTableMemoryType = pGmmLibContext->GetPrivatePATTableMemoryType();
352354

355+
__GMM_ASSERT(pGmmLibContext->GetSkuTable().FtrIA32eGfxPTEs);
353356
for(i = 0; i < GMM_NUM_GFX_PAT_TYPES; i++)
354357
{
355358
pPrivatePATTableMemoryType[i] = -1;
@@ -360,7 +363,7 @@ GMM_STATUS GmmLib::GmmGen10CachePolicy::SetupPAT()
360363
{
361364
GMM_PRIVATE_PAT PAT = {0};
362365

363-
if(pGmmGlobalContext->GetWaTable().FtrMemTypeMocsDeferPAT)
366+
if(pGmmLibContext->GetWaTable().WaNoMocsEllcOnly)
364367
{
365368
GfxTargetCache = GMM_GFX_TC_ELLC_ONLY;
366369
}
@@ -372,12 +375,12 @@ GMM_STATUS GmmLib::GmmGen10CachePolicy::SetupPAT()
372375
switch(i)
373376
{
374377
case PAT0:
375-
if(pGmmGlobalContext->GetWaTable().WaGttPat0)
376-
{
377-
if(pGmmGlobalContext->GetWaTable().WaGttPat0WB)
378-
{
378+
if(pGmmLibContext->GetWaTable().WaGttPat0)
379+
{
380+
if(pGmmLibContext->GetWaTable().WaGttPat0WB)
381+
{
379382
GfxMemType = GMM_GFX_WB;
380-
if(GFX_IS_ATOM_PLATFORM)
383+
if(GFX_IS_ATOM_PLATFORM(pGmmLibContext))
381384
{
382385
PAT.PreGen10.Snoop = 1;
383386
}
@@ -392,7 +395,7 @@ GMM_STATUS GmmLib::GmmGen10CachePolicy::SetupPAT()
392395
else // if GTT is not tied to PAT0 then WaGttPat0WB is NA
393396
{
394397
GfxMemType = GMM_GFX_WB;
395-
if(GFX_IS_ATOM_PLATFORM)
398+
if(GFX_IS_ATOM_PLATFORM(pGmmLibContext))
396399
{
397400
PAT.PreGen10.Snoop = 1;
398401
}
@@ -401,10 +404,10 @@ GMM_STATUS GmmLib::GmmGen10CachePolicy::SetupPAT()
401404
break;
402405

403406
case PAT1:
404-
if(pGmmGlobalContext->GetWaTable().WaGttPat0 && !pGmmGlobalContext->GetWaTable().WaGttPat0WB)
407+
if(pGmmLibContext->GetWaTable().WaGttPat0 && !pGmmLibContext->GetWaTable().WaGttPat0WB)
405408
{
406409
GfxMemType = GMM_GFX_WB;
407-
if(GFX_IS_ATOM_PLATFORM)
410+
if(GFX_IS_ATOM_PLATFORM(pGmmLibContext))
408411
{
409412
PAT.PreGen10.Snoop = 1;
410413
}
@@ -460,4 +463,4 @@ GMM_STATUS GmmLib::GmmGen10CachePolicy::SetupPAT()
460463
Status = GMM_ERROR;
461464
#endif
462465
return Status;
463-
}
466+
}

Source/GmmLib/CachePolicy/GmmGen10CachePolicy.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ OTHER DEALINGS IN THE SOFTWARE.
2626
#define FBLLC (SKU(FtrFrameBufferLLC))
2727

2828
//eDRAM-Only caching, for a usage that might be encrypted, must use ENCRYPTED_PARTIALS_EDRAM
29-
#define ENCRYPTED_PARTIALS_EDRAM (EDRAM && !(pGmmGlobalContext->GetWaTable().WaEncryptedEdramOnlyPartials))
29+
#define ENCRYPTED_PARTIALS_EDRAM (EDRAM && !(pGmmLibContext->GetWaTable().WaEncryptedEdramOnlyPartials))
3030

3131
// Cache Policy Definition
3232
// AOM = Do not allocate on miss (0 = allocate on miss [normal cache behavior], 1 = don't allocate on miss)

0 commit comments

Comments
 (0)