mirror of
https://github.com/intel/compute-runtime.git
synced 2025-09-20 13:11:34 +08:00
Create storage info while getting allocation data
Related-To: NEO-3127 Change-Id: I716a1d5624cf34d74bafd8c9ab3f5cc5ded43275 Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
This commit is contained in:

committed by
sys_ocldev

parent
58492b846f
commit
cadc461712
@ -204,8 +204,7 @@ OsContext *MemoryManager::createAndRegisterOsContext(CommandStreamReceiver *comm
|
|||||||
return osContext;
|
return osContext;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool MemoryManager::getAllocationData(AllocationData &allocationData, const AllocationProperties &properties, const StorageInfo storageInfo,
|
bool MemoryManager::getAllocationData(AllocationData &allocationData, const AllocationProperties &properties, const void *hostPtr) {
|
||||||
const void *hostPtr) {
|
|
||||||
UNRECOVERABLE_IF(hostPtr == nullptr && !properties.flags.allocateMemory);
|
UNRECOVERABLE_IF(hostPtr == nullptr && !properties.flags.allocateMemory);
|
||||||
UNRECOVERABLE_IF(properties.allocationType == GraphicsAllocation::AllocationType::UNKNOWN);
|
UNRECOVERABLE_IF(properties.allocationType == GraphicsAllocation::AllocationType::UNKNOWN);
|
||||||
|
|
||||||
@ -302,7 +301,7 @@ bool MemoryManager::getAllocationData(AllocationData &allocationData, const Allo
|
|||||||
allocationData.hostPtr = hostPtr;
|
allocationData.hostPtr = hostPtr;
|
||||||
allocationData.size = properties.size;
|
allocationData.size = properties.size;
|
||||||
allocationData.type = properties.allocationType;
|
allocationData.type = properties.allocationType;
|
||||||
allocationData.storageInfo = storageInfo;
|
allocationData.storageInfo = MemoryManager::createStorageInfoFromProperties(properties);
|
||||||
allocationData.alignment = properties.alignment ? properties.alignment : MemoryConstants::preferredAlignment;
|
allocationData.alignment = properties.alignment ? properties.alignment : MemoryConstants::preferredAlignment;
|
||||||
allocationData.imgInfo = properties.imgInfo;
|
allocationData.imgInfo = properties.imgInfo;
|
||||||
|
|
||||||
@ -314,8 +313,7 @@ bool MemoryManager::getAllocationData(AllocationData &allocationData, const Allo
|
|||||||
|
|
||||||
GraphicsAllocation *MemoryManager::allocateGraphicsMemoryInPreferredPool(const AllocationProperties &properties, const void *hostPtr) {
|
GraphicsAllocation *MemoryManager::allocateGraphicsMemoryInPreferredPool(const AllocationProperties &properties, const void *hostPtr) {
|
||||||
AllocationData allocationData;
|
AllocationData allocationData;
|
||||||
auto storageInfo = MemoryManager::createStorageInfoFromProperties(properties);
|
getAllocationData(allocationData, properties, hostPtr);
|
||||||
getAllocationData(allocationData, properties, storageInfo, hostPtr);
|
|
||||||
|
|
||||||
AllocationStatus status = AllocationStatus::Error;
|
AllocationStatus status = AllocationStatus::Error;
|
||||||
GraphicsAllocation *allocation = allocateGraphicsMemoryInDevicePool(allocationData, status);
|
GraphicsAllocation *allocation = allocateGraphicsMemoryInDevicePool(allocationData, status);
|
||||||
|
@ -183,8 +183,7 @@ class MemoryManager {
|
|||||||
ImageInfo *imgInfo = nullptr;
|
ImageInfo *imgInfo = nullptr;
|
||||||
};
|
};
|
||||||
|
|
||||||
static bool getAllocationData(AllocationData &allocationData, const AllocationProperties &properties, const StorageInfo storageInfo,
|
static bool getAllocationData(AllocationData &allocationData, const AllocationProperties &properties, const void *hostPtr);
|
||||||
const void *hostPtr);
|
|
||||||
static bool useInternal32BitAllocator(GraphicsAllocation::AllocationType allocationType) {
|
static bool useInternal32BitAllocator(GraphicsAllocation::AllocationType allocationType) {
|
||||||
return allocationType == GraphicsAllocation::AllocationType::KERNEL_ISA ||
|
return allocationType == GraphicsAllocation::AllocationType::KERNEL_ISA ||
|
||||||
allocationType == GraphicsAllocation::AllocationType::INTERNAL_HEAP;
|
allocationType == GraphicsAllocation::AllocationType::INTERNAL_HEAP;
|
||||||
|
@ -24,7 +24,7 @@ class MemoryManagerGetAlloctionDataTest : public testing::TestWithParam<Graphics
|
|||||||
TEST(MemoryManagerGetAlloctionDataTest, givenHostMemoryAllocationTypeAndAllocateMemoryFlagAndNullptrWhenAllocationDataIsQueriedThenCorrectFlagsAndSizeAreSet) {
|
TEST(MemoryManagerGetAlloctionDataTest, givenHostMemoryAllocationTypeAndAllocateMemoryFlagAndNullptrWhenAllocationDataIsQueriedThenCorrectFlagsAndSizeAreSet) {
|
||||||
AllocationData allocData;
|
AllocationData allocData;
|
||||||
AllocationProperties properties(true, 10, GraphicsAllocation::AllocationType::BUFFER_HOST_MEMORY);
|
AllocationProperties properties(true, 10, GraphicsAllocation::AllocationType::BUFFER_HOST_MEMORY);
|
||||||
MockMemoryManager::getAllocationData(allocData, properties, {}, nullptr);
|
MockMemoryManager::getAllocationData(allocData, properties, nullptr);
|
||||||
|
|
||||||
EXPECT_TRUE(allocData.flags.useSystemMemory);
|
EXPECT_TRUE(allocData.flags.useSystemMemory);
|
||||||
EXPECT_EQ(10u, allocData.size);
|
EXPECT_EQ(10u, allocData.size);
|
||||||
@ -35,7 +35,7 @@ TEST(MemoryManagerGetAlloctionDataTest, givenNonHostMemoryAllocatoinTypeWhenAllo
|
|||||||
AllocationData allocData;
|
AllocationData allocData;
|
||||||
AllocationProperties properties(true, 10, GraphicsAllocation::AllocationType::BUFFER);
|
AllocationProperties properties(true, 10, GraphicsAllocation::AllocationType::BUFFER);
|
||||||
|
|
||||||
MockMemoryManager::getAllocationData(allocData, properties, {}, nullptr);
|
MockMemoryManager::getAllocationData(allocData, properties, nullptr);
|
||||||
|
|
||||||
EXPECT_FALSE(allocData.flags.useSystemMemory);
|
EXPECT_FALSE(allocData.flags.useSystemMemory);
|
||||||
EXPECT_EQ(10u, allocData.size);
|
EXPECT_EQ(10u, allocData.size);
|
||||||
@ -47,7 +47,7 @@ TEST(MemoryManagerGetAlloctionDataTest, givenAllocateMemoryFlagTrueWhenHostPtrIs
|
|||||||
char memory = 0;
|
char memory = 0;
|
||||||
AllocationProperties properties(true, sizeof(memory), GraphicsAllocation::AllocationType::BUFFER);
|
AllocationProperties properties(true, sizeof(memory), GraphicsAllocation::AllocationType::BUFFER);
|
||||||
|
|
||||||
MockMemoryManager::getAllocationData(allocData, properties, {}, &memory);
|
MockMemoryManager::getAllocationData(allocData, properties, &memory);
|
||||||
|
|
||||||
EXPECT_EQ(sizeof(memory), allocData.size);
|
EXPECT_EQ(sizeof(memory), allocData.size);
|
||||||
EXPECT_EQ(nullptr, allocData.hostPtr);
|
EXPECT_EQ(nullptr, allocData.hostPtr);
|
||||||
@ -57,7 +57,7 @@ TEST(MemoryManagerGetAlloctionDataTest, givenBufferTypeWhenAllocationDataIsQueri
|
|||||||
AllocationData allocData;
|
AllocationData allocData;
|
||||||
AllocationProperties properties(true, 10, GraphicsAllocation::AllocationType::BUFFER);
|
AllocationProperties properties(true, 10, GraphicsAllocation::AllocationType::BUFFER);
|
||||||
|
|
||||||
MockMemoryManager::getAllocationData(allocData, properties, {}, nullptr);
|
MockMemoryManager::getAllocationData(allocData, properties, nullptr);
|
||||||
|
|
||||||
EXPECT_TRUE(allocData.flags.forcePin);
|
EXPECT_TRUE(allocData.flags.forcePin);
|
||||||
}
|
}
|
||||||
@ -66,7 +66,7 @@ TEST(MemoryManagerGetAlloctionDataTest, givenBufferHostMemoryTypeWhenAllocationD
|
|||||||
AllocationData allocData;
|
AllocationData allocData;
|
||||||
AllocationProperties properties(true, 10, GraphicsAllocation::AllocationType::BUFFER_HOST_MEMORY);
|
AllocationProperties properties(true, 10, GraphicsAllocation::AllocationType::BUFFER_HOST_MEMORY);
|
||||||
|
|
||||||
MockMemoryManager::getAllocationData(allocData, properties, {}, nullptr);
|
MockMemoryManager::getAllocationData(allocData, properties, nullptr);
|
||||||
|
|
||||||
EXPECT_TRUE(allocData.flags.forcePin);
|
EXPECT_TRUE(allocData.flags.forcePin);
|
||||||
}
|
}
|
||||||
@ -75,7 +75,7 @@ TEST(MemoryManagerGetAlloctionDataTest, givenBufferCompressedTypeWhenAllocationD
|
|||||||
AllocationData allocData;
|
AllocationData allocData;
|
||||||
AllocationProperties properties(true, 10, GraphicsAllocation::AllocationType::BUFFER_COMPRESSED);
|
AllocationProperties properties(true, 10, GraphicsAllocation::AllocationType::BUFFER_COMPRESSED);
|
||||||
|
|
||||||
MockMemoryManager::getAllocationData(allocData, properties, {}, nullptr);
|
MockMemoryManager::getAllocationData(allocData, properties, nullptr);
|
||||||
|
|
||||||
EXPECT_TRUE(allocData.flags.forcePin);
|
EXPECT_TRUE(allocData.flags.forcePin);
|
||||||
}
|
}
|
||||||
@ -84,7 +84,7 @@ TEST(MemoryManagerGetAlloctionDataTest, givenDefaultAllocationFlagsWhenAllocatio
|
|||||||
AllocationData allocData;
|
AllocationData allocData;
|
||||||
AllocationProperties properties(false, 0, GraphicsAllocation::AllocationType::BUFFER_COMPRESSED);
|
AllocationProperties properties(false, 0, GraphicsAllocation::AllocationType::BUFFER_COMPRESSED);
|
||||||
char memory;
|
char memory;
|
||||||
MockMemoryManager::getAllocationData(allocData, properties, {}, &memory);
|
MockMemoryManager::getAllocationData(allocData, properties, &memory);
|
||||||
|
|
||||||
EXPECT_FALSE(allocData.flags.allocateMemory);
|
EXPECT_FALSE(allocData.flags.allocateMemory);
|
||||||
}
|
}
|
||||||
@ -96,7 +96,7 @@ TEST_P(MemoryManagerGetAlloctionData32BitAnd64kbPagesAllowedTest, givenAllocatio
|
|||||||
auto allocType = GetParam();
|
auto allocType = GetParam();
|
||||||
AllocationProperties properties(true, 0, allocType);
|
AllocationProperties properties(true, 0, allocType);
|
||||||
|
|
||||||
MockMemoryManager::getAllocationData(allocData, properties, {}, nullptr);
|
MockMemoryManager::getAllocationData(allocData, properties, nullptr);
|
||||||
|
|
||||||
EXPECT_TRUE(allocData.flags.allow32Bit);
|
EXPECT_TRUE(allocData.flags.allow32Bit);
|
||||||
EXPECT_TRUE(allocData.flags.allow64kbPages);
|
EXPECT_TRUE(allocData.flags.allow64kbPages);
|
||||||
@ -108,7 +108,7 @@ TEST_P(MemoryManagerGetAlloctionData32BitAnd64kbPagesAllowedTest, given64kbAllow
|
|||||||
AllocationData allocData;
|
AllocationData allocData;
|
||||||
AllocationProperties properties(true, 10, allocType);
|
AllocationProperties properties(true, 10, allocType);
|
||||||
|
|
||||||
MockMemoryManager::getAllocationData(allocData, properties, {}, nullptr);
|
MockMemoryManager::getAllocationData(allocData, properties, nullptr);
|
||||||
bool bufferCompressedType = (allocType == GraphicsAllocation::AllocationType::BUFFER_COMPRESSED);
|
bool bufferCompressedType = (allocType == GraphicsAllocation::AllocationType::BUFFER_COMPRESSED);
|
||||||
EXPECT_TRUE(allocData.flags.allow64kbPages);
|
EXPECT_TRUE(allocData.flags.allow64kbPages);
|
||||||
MockMemoryManager mockMemoryManager(true, false);
|
MockMemoryManager mockMemoryManager(true, false);
|
||||||
@ -127,7 +127,7 @@ TEST_P(MemoryManagerGetAlloctionData32BitAnd64kbPagesNotAllowedTest, givenAlloca
|
|||||||
auto allocType = GetParam();
|
auto allocType = GetParam();
|
||||||
AllocationProperties properties(true, 0, allocType);
|
AllocationProperties properties(true, 0, allocType);
|
||||||
|
|
||||||
MockMemoryManager::getAllocationData(allocData, properties, {}, nullptr);
|
MockMemoryManager::getAllocationData(allocData, properties, nullptr);
|
||||||
|
|
||||||
EXPECT_FALSE(allocData.flags.allow32Bit);
|
EXPECT_FALSE(allocData.flags.allow32Bit);
|
||||||
EXPECT_FALSE(allocData.flags.allow64kbPages);
|
EXPECT_FALSE(allocData.flags.allow64kbPages);
|
||||||
@ -167,7 +167,7 @@ TEST(MemoryManagerTest, givenForced32BitSetWhenGraphicsMemoryFor32BitAllowedType
|
|||||||
AllocationData allocData;
|
AllocationData allocData;
|
||||||
AllocationProperties properties(true, 10, GraphicsAllocation::AllocationType::BUFFER);
|
AllocationProperties properties(true, 10, GraphicsAllocation::AllocationType::BUFFER);
|
||||||
|
|
||||||
MockMemoryManager::getAllocationData(allocData, properties, {}, nullptr);
|
MockMemoryManager::getAllocationData(allocData, properties, nullptr);
|
||||||
|
|
||||||
auto allocation = memoryManager.allocateGraphicsMemory(allocData);
|
auto allocation = memoryManager.allocateGraphicsMemory(allocData);
|
||||||
ASSERT_NE(nullptr, allocation);
|
ASSERT_NE(nullptr, allocation);
|
||||||
@ -190,7 +190,7 @@ TEST(MemoryManagerTest, givenForced32BitEnabledWhenGraphicsMemoryWihtoutAllow32B
|
|||||||
AllocationData allocData;
|
AllocationData allocData;
|
||||||
AllocationProperties properties(true, 10, GraphicsAllocation::AllocationType::BUFFER);
|
AllocationProperties properties(true, 10, GraphicsAllocation::AllocationType::BUFFER);
|
||||||
|
|
||||||
MockMemoryManager::getAllocationData(allocData, properties, {}, nullptr);
|
MockMemoryManager::getAllocationData(allocData, properties, nullptr);
|
||||||
allocData.flags.allow32Bit = false;
|
allocData.flags.allow32Bit = false;
|
||||||
|
|
||||||
auto allocation = memoryManager.allocateGraphicsMemory(allocData);
|
auto allocation = memoryManager.allocateGraphicsMemory(allocData);
|
||||||
@ -208,7 +208,7 @@ TEST(MemoryManagerTest, givenForced32BitDisabledWhenGraphicsMemoryWith32BitFlagF
|
|||||||
AllocationData allocData;
|
AllocationData allocData;
|
||||||
AllocationProperties properties(true, 10, GraphicsAllocation::AllocationType::BUFFER);
|
AllocationProperties properties(true, 10, GraphicsAllocation::AllocationType::BUFFER);
|
||||||
|
|
||||||
MockMemoryManager::getAllocationData(allocData, properties, {}, nullptr);
|
MockMemoryManager::getAllocationData(allocData, properties, nullptr);
|
||||||
|
|
||||||
auto allocation = memoryManager.allocateGraphicsMemory(allocData);
|
auto allocation = memoryManager.allocateGraphicsMemory(allocData);
|
||||||
ASSERT_NE(nullptr, allocation);
|
ASSERT_NE(nullptr, allocation);
|
||||||
@ -223,7 +223,7 @@ TEST(MemoryManagerTest, givenEnabled64kbPagesWhenGraphicsMemoryMustBeHostMemoryA
|
|||||||
AllocationData allocData;
|
AllocationData allocData;
|
||||||
AllocationProperties properties(true, 10, GraphicsAllocation::AllocationType::BUFFER_HOST_MEMORY);
|
AllocationProperties properties(true, 10, GraphicsAllocation::AllocationType::BUFFER_HOST_MEMORY);
|
||||||
|
|
||||||
MockMemoryManager::getAllocationData(allocData, properties, {}, nullptr);
|
MockMemoryManager::getAllocationData(allocData, properties, nullptr);
|
||||||
|
|
||||||
auto allocation = memoryManager.allocateGraphicsMemory(allocData);
|
auto allocation = memoryManager.allocateGraphicsMemory(allocData);
|
||||||
ASSERT_NE(nullptr, allocation);
|
ASSERT_NE(nullptr, allocation);
|
||||||
@ -241,7 +241,7 @@ TEST(MemoryManagerTest, givenEnabled64kbPagesWhenGraphicsMemoryWithoutAllow64kbP
|
|||||||
AllocationData allocData;
|
AllocationData allocData;
|
||||||
AllocationProperties properties(true, 10, GraphicsAllocation::AllocationType::BUFFER);
|
AllocationProperties properties(true, 10, GraphicsAllocation::AllocationType::BUFFER);
|
||||||
|
|
||||||
MockMemoryManager::getAllocationData(allocData, properties, {}, nullptr);
|
MockMemoryManager::getAllocationData(allocData, properties, nullptr);
|
||||||
allocData.flags.allow64kbPages = false;
|
allocData.flags.allow64kbPages = false;
|
||||||
|
|
||||||
auto allocation = memoryManager.allocateGraphicsMemory(allocData);
|
auto allocation = memoryManager.allocateGraphicsMemory(allocData);
|
||||||
@ -258,7 +258,7 @@ TEST(MemoryManagerTest, givenDisabled64kbPagesWhenGraphicsMemoryMustBeHostMemory
|
|||||||
AllocationData allocData;
|
AllocationData allocData;
|
||||||
AllocationProperties properties(true, 10, GraphicsAllocation::AllocationType::BUFFER_HOST_MEMORY);
|
AllocationProperties properties(true, 10, GraphicsAllocation::AllocationType::BUFFER_HOST_MEMORY);
|
||||||
|
|
||||||
MockMemoryManager::getAllocationData(allocData, properties, {}, nullptr);
|
MockMemoryManager::getAllocationData(allocData, properties, nullptr);
|
||||||
|
|
||||||
auto allocation = memoryManager.allocateGraphicsMemory(allocData);
|
auto allocation = memoryManager.allocateGraphicsMemory(allocData);
|
||||||
ASSERT_NE(nullptr, allocation);
|
ASSERT_NE(nullptr, allocation);
|
||||||
@ -277,7 +277,7 @@ TEST(MemoryManagerTest, givenForced32BitAndEnabled64kbPagesWhenGraphicsMemoryMus
|
|||||||
AllocationData allocData;
|
AllocationData allocData;
|
||||||
AllocationProperties properties(true, 10, GraphicsAllocation::AllocationType::BUFFER_HOST_MEMORY);
|
AllocationProperties properties(true, 10, GraphicsAllocation::AllocationType::BUFFER_HOST_MEMORY);
|
||||||
|
|
||||||
MockMemoryManager::getAllocationData(allocData, properties, {}, nullptr);
|
MockMemoryManager::getAllocationData(allocData, properties, nullptr);
|
||||||
|
|
||||||
auto allocation = memoryManager.allocateGraphicsMemory(allocData);
|
auto allocation = memoryManager.allocateGraphicsMemory(allocData);
|
||||||
ASSERT_NE(nullptr, allocation);
|
ASSERT_NE(nullptr, allocation);
|
||||||
@ -297,7 +297,7 @@ TEST(MemoryManagerTest, givenEnabled64kbPagesWhenGraphicsMemoryIsAllocatedWithHo
|
|||||||
AllocationProperties properties(false, 1, GraphicsAllocation::AllocationType::BUFFER_HOST_MEMORY);
|
AllocationProperties properties(false, 1, GraphicsAllocation::AllocationType::BUFFER_HOST_MEMORY);
|
||||||
|
|
||||||
char memory[1];
|
char memory[1];
|
||||||
MockMemoryManager::getAllocationData(allocData, properties, {}, &memory);
|
MockMemoryManager::getAllocationData(allocData, properties, &memory);
|
||||||
|
|
||||||
auto allocation = memoryManager.allocateGraphicsMemory(allocData);
|
auto allocation = memoryManager.allocateGraphicsMemory(allocData);
|
||||||
ASSERT_NE(nullptr, allocation);
|
ASSERT_NE(nullptr, allocation);
|
||||||
@ -345,76 +345,76 @@ TEST(MemoryManagerTest, givenMemoryManagerWhenBufferTypeIsPassedAndAllocateInDev
|
|||||||
|
|
||||||
TEST(MemoryManagerTest, givenSvmAllocationTypeWhenGetAllocationDataIsCalledThenAllocatingMemoryIsRequested) {
|
TEST(MemoryManagerTest, givenSvmAllocationTypeWhenGetAllocationDataIsCalledThenAllocatingMemoryIsRequested) {
|
||||||
AllocationData allocData;
|
AllocationData allocData;
|
||||||
MockMemoryManager::getAllocationData(allocData, {1, GraphicsAllocation::AllocationType::SVM_ZERO_COPY}, {}, nullptr);
|
MockMemoryManager::getAllocationData(allocData, {1, GraphicsAllocation::AllocationType::SVM_ZERO_COPY}, nullptr);
|
||||||
EXPECT_TRUE(allocData.flags.allocateMemory);
|
EXPECT_TRUE(allocData.flags.allocateMemory);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST(MemoryManagerTest, givenSvmAllocationTypeWhenGetAllocationDataIsCalledThen64kbPagesAreAllowedAnd32BitAllocationIsDisallowed) {
|
TEST(MemoryManagerTest, givenSvmAllocationTypeWhenGetAllocationDataIsCalledThen64kbPagesAreAllowedAnd32BitAllocationIsDisallowed) {
|
||||||
AllocationData allocData;
|
AllocationData allocData;
|
||||||
MockMemoryManager::getAllocationData(allocData, {1, GraphicsAllocation::AllocationType::SVM_ZERO_COPY}, {}, nullptr);
|
MockMemoryManager::getAllocationData(allocData, {1, GraphicsAllocation::AllocationType::SVM_ZERO_COPY}, nullptr);
|
||||||
EXPECT_TRUE(allocData.flags.allow64kbPages);
|
EXPECT_TRUE(allocData.flags.allow64kbPages);
|
||||||
EXPECT_FALSE(allocData.flags.allow32Bit);
|
EXPECT_FALSE(allocData.flags.allow32Bit);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST(MemoryManagerTest, givenTagBufferTypeWhenGetAllocationDataIsCalledThenSystemMemoryIsRequested) {
|
TEST(MemoryManagerTest, givenTagBufferTypeWhenGetAllocationDataIsCalledThenSystemMemoryIsRequested) {
|
||||||
AllocationData allocData;
|
AllocationData allocData;
|
||||||
MockMemoryManager::getAllocationData(allocData, {1, GraphicsAllocation::AllocationType::TAG_BUFFER}, {}, nullptr);
|
MockMemoryManager::getAllocationData(allocData, {1, GraphicsAllocation::AllocationType::TAG_BUFFER}, nullptr);
|
||||||
EXPECT_TRUE(allocData.flags.useSystemMemory);
|
EXPECT_TRUE(allocData.flags.useSystemMemory);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST(MemoryManagerTest, givenPreemptionTypeWhenGetAllocationDataIsCalledThenSystemMemoryIsRequested) {
|
TEST(MemoryManagerTest, givenPreemptionTypeWhenGetAllocationDataIsCalledThenSystemMemoryIsRequested) {
|
||||||
AllocationData allocData;
|
AllocationData allocData;
|
||||||
MockMemoryManager::getAllocationData(allocData, {1, GraphicsAllocation::AllocationType::PREEMPTION}, {}, nullptr);
|
MockMemoryManager::getAllocationData(allocData, {1, GraphicsAllocation::AllocationType::PREEMPTION}, nullptr);
|
||||||
EXPECT_TRUE(allocData.flags.useSystemMemory);
|
EXPECT_TRUE(allocData.flags.useSystemMemory);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST(MemoryManagerTest, givenSharedContextImageTypeWhenGetAllocationDataIsCalledThenSystemMemoryIsRequested) {
|
TEST(MemoryManagerTest, givenSharedContextImageTypeWhenGetAllocationDataIsCalledThenSystemMemoryIsRequested) {
|
||||||
AllocationData allocData;
|
AllocationData allocData;
|
||||||
MockMemoryManager::getAllocationData(allocData, {1, GraphicsAllocation::AllocationType::SHARED_CONTEXT_IMAGE}, {}, nullptr);
|
MockMemoryManager::getAllocationData(allocData, {1, GraphicsAllocation::AllocationType::SHARED_CONTEXT_IMAGE}, nullptr);
|
||||||
EXPECT_TRUE(allocData.flags.useSystemMemory);
|
EXPECT_TRUE(allocData.flags.useSystemMemory);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST(MemoryManagerTest, givenMCSTypeWhenGetAllocationDataIsCalledThenSystemMemoryIsRequested) {
|
TEST(MemoryManagerTest, givenMCSTypeWhenGetAllocationDataIsCalledThenSystemMemoryIsRequested) {
|
||||||
AllocationData allocData;
|
AllocationData allocData;
|
||||||
MockMemoryManager::getAllocationData(allocData, {1, GraphicsAllocation::AllocationType::MCS}, {}, nullptr);
|
MockMemoryManager::getAllocationData(allocData, {1, GraphicsAllocation::AllocationType::MCS}, nullptr);
|
||||||
EXPECT_TRUE(allocData.flags.useSystemMemory);
|
EXPECT_TRUE(allocData.flags.useSystemMemory);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST(MemoryManagerTest, givenDeviceQueueBufferTypeWhenGetAllocationDataIsCalledThenSystemMemoryIsRequested) {
|
TEST(MemoryManagerTest, givenDeviceQueueBufferTypeWhenGetAllocationDataIsCalledThenSystemMemoryIsRequested) {
|
||||||
AllocationData allocData;
|
AllocationData allocData;
|
||||||
MockMemoryManager::getAllocationData(allocData, {1, GraphicsAllocation::AllocationType::DEVICE_QUEUE_BUFFER}, {}, nullptr);
|
MockMemoryManager::getAllocationData(allocData, {1, GraphicsAllocation::AllocationType::DEVICE_QUEUE_BUFFER}, nullptr);
|
||||||
EXPECT_TRUE(allocData.flags.useSystemMemory);
|
EXPECT_TRUE(allocData.flags.useSystemMemory);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST(MemoryManagerTest, givenInternalHostMemoryTypeWhenGetAllocationDataIsCalledThenSystemMemoryIsRequested) {
|
TEST(MemoryManagerTest, givenInternalHostMemoryTypeWhenGetAllocationDataIsCalledThenSystemMemoryIsRequested) {
|
||||||
AllocationData allocData;
|
AllocationData allocData;
|
||||||
MockMemoryManager::getAllocationData(allocData, {1, GraphicsAllocation::AllocationType::INTERNAL_HOST_MEMORY}, {}, nullptr);
|
MockMemoryManager::getAllocationData(allocData, {1, GraphicsAllocation::AllocationType::INTERNAL_HOST_MEMORY}, nullptr);
|
||||||
EXPECT_TRUE(allocData.flags.useSystemMemory);
|
EXPECT_TRUE(allocData.flags.useSystemMemory);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST(MemoryManagerTest, givenFillPatternTypeWhenGetAllocationDataIsCalledThenSystemMemoryIsRequested) {
|
TEST(MemoryManagerTest, givenFillPatternTypeWhenGetAllocationDataIsCalledThenSystemMemoryIsRequested) {
|
||||||
AllocationData allocData;
|
AllocationData allocData;
|
||||||
MockMemoryManager::getAllocationData(allocData, {1, GraphicsAllocation::AllocationType::FILL_PATTERN}, {}, nullptr);
|
MockMemoryManager::getAllocationData(allocData, {1, GraphicsAllocation::AllocationType::FILL_PATTERN}, nullptr);
|
||||||
EXPECT_TRUE(allocData.flags.useSystemMemory);
|
EXPECT_TRUE(allocData.flags.useSystemMemory);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST(MemoryManagerTest, givenLinearStreamTypeWhenGetAllocationDataIsCalledThenSystemMemoryIsNotRequested) {
|
TEST(MemoryManagerTest, givenLinearStreamTypeWhenGetAllocationDataIsCalledThenSystemMemoryIsNotRequested) {
|
||||||
AllocationData allocData;
|
AllocationData allocData;
|
||||||
MockMemoryManager::getAllocationData(allocData, {1, GraphicsAllocation::AllocationType::LINEAR_STREAM}, {}, nullptr);
|
MockMemoryManager::getAllocationData(allocData, {1, GraphicsAllocation::AllocationType::LINEAR_STREAM}, nullptr);
|
||||||
EXPECT_FALSE(allocData.flags.useSystemMemory);
|
EXPECT_FALSE(allocData.flags.useSystemMemory);
|
||||||
EXPECT_TRUE(allocData.flags.requiresCpuAccess);
|
EXPECT_TRUE(allocData.flags.requiresCpuAccess);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST(MemoryManagerTest, givenTimestampPacketTagBufferTypeWhenGetAllocationDataIsCalledThenSystemMemoryIsNotRequestedAndRequireCpuAccess) {
|
TEST(MemoryManagerTest, givenTimestampPacketTagBufferTypeWhenGetAllocationDataIsCalledThenSystemMemoryIsNotRequestedAndRequireCpuAccess) {
|
||||||
AllocationData allocData;
|
AllocationData allocData;
|
||||||
MockMemoryManager::getAllocationData(allocData, {1, GraphicsAllocation::AllocationType::TIMESTAMP_PACKET_TAG_BUFFER}, {}, nullptr);
|
MockMemoryManager::getAllocationData(allocData, {1, GraphicsAllocation::AllocationType::TIMESTAMP_PACKET_TAG_BUFFER}, nullptr);
|
||||||
EXPECT_FALSE(allocData.flags.useSystemMemory);
|
EXPECT_FALSE(allocData.flags.useSystemMemory);
|
||||||
EXPECT_TRUE(allocData.flags.requiresCpuAccess);
|
EXPECT_TRUE(allocData.flags.requiresCpuAccess);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST(MemoryManagerTest, givenProfilingTagBufferTypeWhenGetAllocationDataIsCalledThenSystemMemoryIsRequested) {
|
TEST(MemoryManagerTest, givenProfilingTagBufferTypeWhenGetAllocationDataIsCalledThenSystemMemoryIsRequested) {
|
||||||
AllocationData allocData;
|
AllocationData allocData;
|
||||||
MockMemoryManager::getAllocationData(allocData, {1, GraphicsAllocation::AllocationType::PROFILING_TAG_BUFFER}, {}, nullptr);
|
MockMemoryManager::getAllocationData(allocData, {1, GraphicsAllocation::AllocationType::PROFILING_TAG_BUFFER}, nullptr);
|
||||||
EXPECT_TRUE(allocData.flags.useSystemMemory);
|
EXPECT_TRUE(allocData.flags.useSystemMemory);
|
||||||
EXPECT_FALSE(allocData.flags.requiresCpuAccess);
|
EXPECT_FALSE(allocData.flags.requiresCpuAccess);
|
||||||
}
|
}
|
||||||
@ -426,7 +426,7 @@ TEST(MemoryManagerTest, givenAllocationPropertiesWithMultiOsContextCapableFlagEn
|
|||||||
properties.flags.multiOsContextCapable = true;
|
properties.flags.multiOsContextCapable = true;
|
||||||
|
|
||||||
AllocationData allocData;
|
AllocationData allocData;
|
||||||
MockMemoryManager::getAllocationData(allocData, properties, {}, nullptr);
|
MockMemoryManager::getAllocationData(allocData, properties, nullptr);
|
||||||
EXPECT_TRUE(allocData.flags.multiOsContextCapable);
|
EXPECT_TRUE(allocData.flags.multiOsContextCapable);
|
||||||
|
|
||||||
auto allocation = memoryManager.allocateGraphicsMemoryWithProperties(properties);
|
auto allocation = memoryManager.allocateGraphicsMemoryWithProperties(properties);
|
||||||
@ -441,7 +441,7 @@ TEST(MemoryManagerTest, givenAllocationPropertiesWithMultiOsContextCapableFlagDi
|
|||||||
properties.flags.multiOsContextCapable = false;
|
properties.flags.multiOsContextCapable = false;
|
||||||
|
|
||||||
AllocationData allocData;
|
AllocationData allocData;
|
||||||
MockMemoryManager::getAllocationData(allocData, properties, {}, nullptr);
|
MockMemoryManager::getAllocationData(allocData, properties, nullptr);
|
||||||
EXPECT_FALSE(allocData.flags.multiOsContextCapable);
|
EXPECT_FALSE(allocData.flags.multiOsContextCapable);
|
||||||
|
|
||||||
auto allocation = memoryManager.allocateGraphicsMemoryWithProperties(properties);
|
auto allocation = memoryManager.allocateGraphicsMemoryWithProperties(properties);
|
||||||
@ -455,20 +455,20 @@ TEST(MemoryManagerTest, givenInternalHeapTypeThenUseInternal32BitAllocator) {
|
|||||||
|
|
||||||
TEST(MemoryManagerTest, givenInternalHeapTypeWhenGetAllocationDataIsCalledThenSystemMemoryIsNotRequested) {
|
TEST(MemoryManagerTest, givenInternalHeapTypeWhenGetAllocationDataIsCalledThenSystemMemoryIsNotRequested) {
|
||||||
AllocationData allocData;
|
AllocationData allocData;
|
||||||
MockMemoryManager::getAllocationData(allocData, {1, GraphicsAllocation::AllocationType::INTERNAL_HEAP}, {}, nullptr);
|
MockMemoryManager::getAllocationData(allocData, {1, GraphicsAllocation::AllocationType::INTERNAL_HEAP}, nullptr);
|
||||||
EXPECT_FALSE(allocData.flags.useSystemMemory);
|
EXPECT_FALSE(allocData.flags.useSystemMemory);
|
||||||
EXPECT_TRUE(allocData.flags.requiresCpuAccess);
|
EXPECT_TRUE(allocData.flags.requiresCpuAccess);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST(MemoryManagerTest, givenKernelIsaTypeWhenGetAllocationDataIsCalledThenSystemMemoryIsNotRequested) {
|
TEST(MemoryManagerTest, givenKernelIsaTypeWhenGetAllocationDataIsCalledThenSystemMemoryIsNotRequested) {
|
||||||
AllocationData allocData;
|
AllocationData allocData;
|
||||||
MockMemoryManager::getAllocationData(allocData, {1, GraphicsAllocation::AllocationType::KERNEL_ISA}, {}, nullptr);
|
MockMemoryManager::getAllocationData(allocData, {1, GraphicsAllocation::AllocationType::KERNEL_ISA}, nullptr);
|
||||||
EXPECT_FALSE(allocData.flags.useSystemMemory);
|
EXPECT_FALSE(allocData.flags.useSystemMemory);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST(MemoryManagerTest, givenLinearStreamWhenGetAllocationDataIsCalledThenSystemMemoryIsNotRequested) {
|
TEST(MemoryManagerTest, givenLinearStreamWhenGetAllocationDataIsCalledThenSystemMemoryIsNotRequested) {
|
||||||
AllocationData allocData;
|
AllocationData allocData;
|
||||||
MockMemoryManager::getAllocationData(allocData, {1, GraphicsAllocation::AllocationType::LINEAR_STREAM}, {}, nullptr);
|
MockMemoryManager::getAllocationData(allocData, {1, GraphicsAllocation::AllocationType::LINEAR_STREAM}, nullptr);
|
||||||
EXPECT_FALSE(allocData.flags.useSystemMemory);
|
EXPECT_FALSE(allocData.flags.useSystemMemory);
|
||||||
EXPECT_TRUE(allocData.flags.requiresCpuAccess);
|
EXPECT_TRUE(allocData.flags.requiresCpuAccess);
|
||||||
}
|
}
|
||||||
@ -480,7 +480,7 @@ TEST(MemoryManagerTest, givenKernelIsaTypeThenUseInternal32BitAllocator) {
|
|||||||
TEST(MemoryManagerTest, givenExternalHostMemoryWhenGetAllocationDataIsCalledThenItHasProperFieldsSet) {
|
TEST(MemoryManagerTest, givenExternalHostMemoryWhenGetAllocationDataIsCalledThenItHasProperFieldsSet) {
|
||||||
AllocationData allocData;
|
AllocationData allocData;
|
||||||
auto hostPtr = reinterpret_cast<void *>(0x1234);
|
auto hostPtr = reinterpret_cast<void *>(0x1234);
|
||||||
MockMemoryManager::getAllocationData(allocData, {false, 1, GraphicsAllocation::AllocationType::EXTERNAL_HOST_PTR}, {}, hostPtr);
|
MockMemoryManager::getAllocationData(allocData, {false, 1, GraphicsAllocation::AllocationType::EXTERNAL_HOST_PTR}, hostPtr);
|
||||||
EXPECT_TRUE(allocData.flags.useSystemMemory);
|
EXPECT_TRUE(allocData.flags.useSystemMemory);
|
||||||
EXPECT_FALSE(allocData.flags.allocateMemory);
|
EXPECT_FALSE(allocData.flags.allocateMemory);
|
||||||
EXPECT_FALSE(allocData.flags.allow32Bit);
|
EXPECT_FALSE(allocData.flags.allow32Bit);
|
||||||
|
@ -1662,7 +1662,7 @@ TEST(MemoryManagerTest, givenAllocationTypesThatMayNeedL3FlushWhenCallingGetAllo
|
|||||||
|
|
||||||
for (auto allocationType : allocationTypesThatMayNeedL3Flush) {
|
for (auto allocationType : allocationTypesThatMayNeedL3Flush) {
|
||||||
properties.allocationType = allocationType;
|
properties.allocationType = allocationType;
|
||||||
MockMemoryManager::getAllocationData(allocData, properties, {}, nullptr);
|
MockMemoryManager::getAllocationData(allocData, properties, nullptr);
|
||||||
EXPECT_TRUE(allocData.flags.flushL3);
|
EXPECT_TRUE(allocData.flags.flushL3);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1671,7 +1671,7 @@ TEST(MemoryManagerTest, givenAllocationTypesThatMayNeedL3FlushWhenCallingGetAllo
|
|||||||
|
|
||||||
for (auto allocationType : allocationTypesThatMayNeedL3Flush) {
|
for (auto allocationType : allocationTypesThatMayNeedL3Flush) {
|
||||||
properties.allocationType = allocationType;
|
properties.allocationType = allocationType;
|
||||||
MockMemoryManager::getAllocationData(allocData, properties, {}, nullptr);
|
MockMemoryManager::getAllocationData(allocData, properties, nullptr);
|
||||||
EXPECT_FALSE(allocData.flags.flushL3);
|
EXPECT_FALSE(allocData.flags.flushL3);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -108,7 +108,7 @@ class TestedDrmMemoryManager : public MemoryManagerCreate<DrmMemoryManager> {
|
|||||||
DrmAllocation *allocate32BitGraphicsMemory(size_t size, const void *ptr, GraphicsAllocation::AllocationType allocationType) {
|
DrmAllocation *allocate32BitGraphicsMemory(size_t size, const void *ptr, GraphicsAllocation::AllocationType allocationType) {
|
||||||
bool allocateMemory = ptr == nullptr;
|
bool allocateMemory = ptr == nullptr;
|
||||||
AllocationData allocationData;
|
AllocationData allocationData;
|
||||||
getAllocationData(allocationData, MockAllocationProperties(allocateMemory, size, allocationType), {}, ptr);
|
getAllocationData(allocationData, MockAllocationProperties(allocateMemory, size, allocationType), ptr);
|
||||||
return allocate32BitGraphicsMemoryImpl(allocationData);
|
return allocate32BitGraphicsMemoryImpl(allocationData);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -93,7 +93,7 @@ GraphicsAllocation *MockMemoryManager::allocateGraphicsMemoryWithAlignment(const
|
|||||||
GraphicsAllocation *MockMemoryManager::allocate32BitGraphicsMemory(size_t size, const void *ptr, GraphicsAllocation::AllocationType allocationType) {
|
GraphicsAllocation *MockMemoryManager::allocate32BitGraphicsMemory(size_t size, const void *ptr, GraphicsAllocation::AllocationType allocationType) {
|
||||||
bool allocateMemory = ptr == nullptr;
|
bool allocateMemory = ptr == nullptr;
|
||||||
AllocationData allocationData;
|
AllocationData allocationData;
|
||||||
getAllocationData(allocationData, MockAllocationProperties(allocateMemory, size, allocationType), {}, ptr);
|
getAllocationData(allocationData, MockAllocationProperties(allocateMemory, size, allocationType), ptr);
|
||||||
return allocate32BitGraphicsMemoryImpl(allocationData);
|
return allocate32BitGraphicsMemoryImpl(allocationData);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -41,7 +41,7 @@ class MockWddmMemoryManager : public MemoryManagerCreate<WddmMemoryManager> {
|
|||||||
GraphicsAllocation *allocate32BitGraphicsMemory(size_t size, const void *ptr, GraphicsAllocation::AllocationType allocationType) {
|
GraphicsAllocation *allocate32BitGraphicsMemory(size_t size, const void *ptr, GraphicsAllocation::AllocationType allocationType) {
|
||||||
bool allocateMemory = ptr == nullptr;
|
bool allocateMemory = ptr == nullptr;
|
||||||
AllocationData allocationData;
|
AllocationData allocationData;
|
||||||
getAllocationData(allocationData, MockAllocationProperties(allocateMemory, size, allocationType), {}, ptr);
|
getAllocationData(allocationData, MockAllocationProperties(allocateMemory, size, allocationType), ptr);
|
||||||
return allocate32BitGraphicsMemoryImpl(allocationData);
|
return allocate32BitGraphicsMemoryImpl(allocationData);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user