fix: Do not increase host USM alignment when CAL enabled
Resolves: GSD-10808
Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
Source: b7cba510a3
This commit is contained in:
parent
794a497c47
commit
f052d61d33
|
@ -855,6 +855,26 @@ TEST_F(UnifiedMemoryManagerPropertiesTest,
|
|||
svmManager->freeSVMAlloc(ptr);
|
||||
}
|
||||
|
||||
TEST_F(UnifiedMemoryManagerPropertiesTest,
|
||||
givenCALAndSizeGreaterThan2mbWhenDiscretGpuAndCreateHostUSMThenDoNotAlignSizeAndVATo2mb) {
|
||||
DebugManagerStateRestore restorer;
|
||||
debugManager.flags.NEO_CAL_ENABLED.set(1);
|
||||
|
||||
RootDeviceIndicesContainer rootDeviceIndices = {mockRootDeviceIndex};
|
||||
std::map<uint32_t, DeviceBitfield> deviceBitfields{{mockRootDeviceIndex, DeviceBitfield(0x1)}};
|
||||
SVMAllocsManager::UnifiedMemoryProperties unifiedMemoryProperties(InternalMemoryType::hostUnifiedMemory, 1, rootDeviceIndices, deviceBitfields);
|
||||
|
||||
svmManager->multiOsContextSupport = true;
|
||||
auto ptr = svmManager->createHostUnifiedMemoryAllocation(4 * MemoryConstants::pageSize2M + MemoryConstants::pageSize64k, unifiedMemoryProperties);
|
||||
|
||||
auto allocation = svmManager->getSVMAlloc(ptr);
|
||||
|
||||
EXPECT_EQ(4 * MemoryConstants::pageSize2M + MemoryConstants::pageSize64k, allocation->gpuAllocations.getDefaultGraphicsAllocation()->getUnderlyingBufferSize());
|
||||
EXPECT_TRUE(isAligned(allocation->gpuAllocations.getDefaultGraphicsAllocation()->getGpuAddress(), MemoryConstants::pageSize));
|
||||
|
||||
svmManager->freeSVMAlloc(ptr);
|
||||
}
|
||||
|
||||
TEST_F(UnifiedMemoryManagerPropertiesTest,
|
||||
given1ByteAsAllocationSizeWhenHostMemAllocIsCreatedItIsAlignedTo4k) {
|
||||
RootDeviceIndicesContainer rootDeviceIndices = {mockRootDeviceIndex};
|
||||
|
|
|
@ -296,7 +296,7 @@ void *SVMAllocsManager::createSVMAlloc(size_t size, const SvmAllocationPropertie
|
|||
void *SVMAllocsManager::createHostUnifiedMemoryAllocation(size_t size,
|
||||
const UnifiedMemoryProperties &memoryProperties) {
|
||||
bool isDiscrete = false;
|
||||
if (size >= MemoryConstants::pageSize2M) {
|
||||
if (size >= MemoryConstants::pageSize2M && !debugManager.flags.NEO_CAL_ENABLED.get()) {
|
||||
for (const auto rootDeviceIndex : memoryProperties.rootDeviceIndices) {
|
||||
isDiscrete |= !this->memoryManager->peekExecutionEnvironment().rootDeviceEnvironments[rootDeviceIndex]->getHardwareInfo()->capabilityTable.isIntegratedDevice;
|
||||
if (isDiscrete) {
|
||||
|
|
Loading…
Reference in New Issue