mirror of https://github.com/intel/gmmlib.git
Update canonize to fix VA size bugs
Signed-off-by: Vihang Mehta <vihang@gimletlabs.ai>
This commit is contained in:
parent
9104c20901
commit
852e7ea9cd
|
@ -72,7 +72,7 @@ GMM_STATUS GmmLib::PageTable::AllocateL3Table(uint32_t L3TableSize, uint32_t L3A
|
|||
return Status;
|
||||
}
|
||||
|
||||
TTL3.GfxAddress = GMM_GFX_ADDRESS_CANONIZE(Alloc.GfxVA);
|
||||
TTL3.GfxAddress = GMM_GFX_ADDRESS_CANONIZE(pClientContext, Alloc.GfxVA);
|
||||
TTL3.CPUAddress = Alloc.CPUVA;
|
||||
TTL3.NeedRegisterUpdate = true;
|
||||
TTL3.L3Handle = (HANDLE)(uintptr_t)Alloc.Handle;
|
||||
|
|
|
@ -126,12 +126,12 @@ typedef uint32_t GMM_GLOBAL_GFX_ADDRESS, GMM_GLOBAL_GFX_SIZE_T;
|
|||
#define GMM_GLOBAL_GFX_SIZE_T_CAST(x) ((GMM_GLOBAL_GFX_SIZE_T)(x))
|
||||
#endif
|
||||
|
||||
#define GMM_GFX_ADDRESS_CANONIZE(a) (((int64_t)(a) << (64 - 48)) >> (64 - 48)) // TODO(Minor): When GMM adds platform-dependent VA size caps, change from 48.
|
||||
#define GMM_GFX_ADDRESS_DECANONIZE(a) ((uint64_t)(a) & (((uint64_t) 1 << 48) - 1)) // "
|
||||
|
||||
#define GMM_GFX_PLATFORM_VA_SIZE(pClientContext) (((pClientContext)->GetLibContext()->GetSkuTable().Ftr57bGPUAddressing) ? 57 : 48)
|
||||
#define VASize(pCC) GMM_GFX_PLATFORM_VA_SIZE(pCC)
|
||||
|
||||
#define GMM_GFX_ADDRESS_CANONIZE(pCC, a) (((int64_t)(a) << (64 - VASize(pCC))) >> (64 - VASize(pCC)))
|
||||
#define GMM_GFX_ADDRESS_DECANONIZE(pCC, a) ((uint64_t)(a) & (((uint64_t) 1 << VASize(pCC)) - 1))
|
||||
|
||||
#define GMM_BIT_RANGE(endbit, startbit) ((endbit) - (startbit) + 1)
|
||||
#define GMM_BIT(bit) (1)
|
||||
|
||||
|
|
|
@ -297,11 +297,11 @@ namespace GmmLib
|
|||
{
|
||||
if (IsD3DDdiAllocation)
|
||||
{
|
||||
return (void *)GMM_GFX_ADDRESS_CANONIZE(ExistingSysMem.pGfxAlignedVirtAddress);
|
||||
return (void *)GMM_GFX_ADDRESS_CANONIZE(pClientContext, ExistingSysMem.pGfxAlignedVirtAddress);
|
||||
}
|
||||
else
|
||||
{
|
||||
return (void *)GMM_GFX_ADDRESS_CANONIZE(ExistingSysMem.pVirtAddress);
|
||||
return (void *)GMM_GFX_ADDRESS_CANONIZE(pClientContext, ExistingSysMem.pVirtAddress);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -983,7 +983,7 @@ namespace GmmLib
|
|||
// Support for Sparse/Tiled resources will be unified in later
|
||||
if (SvmAddress)
|
||||
{
|
||||
return GMM_GFX_ADDRESS_CANONIZE(SvmAddress);
|
||||
return GMM_GFX_ADDRESS_CANONIZE(pClientContext, SvmAddress);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue