@@ -1030,9 +1030,24 @@ TEST_F(WddmHeapSelectorTest, givenFullAddressSpaceWhenSelectingHeapForExternalAl
10301030 }
10311031 EXPECT_EQ (HeapIndex::HEAP_SVM, wddm->selectHeap (&allocation, &allocation));
10321032}
1033- TEST_F (WddmHeapSelectorTest, givenFullAddressSpaceWhenSelectingHeapForExternalAllocationWithoutPtrThenStandardHeapIsUsed ) {
1033+ TEST_F (WddmHeapSelectorTest, givenFullAddressSpaceWhenSelectingHeapForExternalAllocationWithoutPtrAndCpuAccessIsRequiredThenStandard64kHeapIsUsed ) {
10341034 WddmAllocation allocation{nullptr , 0 , nullptr , MemoryPool::MemoryNull, false };
10351035 EXPECT_EQ (AllocationOrigin::EXTERNAL_ALLOCATION, allocation.origin );
1036+ auto allocationType = GraphicsAllocation::AllocationType::LINEAR_STREAM;
1037+ allocation.setAllocationType (allocationType);
1038+ EXPECT_TRUE (GraphicsAllocation::isCpuAccessRequired (allocationType));
1039+ if (hardwareInfoTable[wddm->getGfxPlatform ()->eProductFamily ]->capabilityTable .gpuAddressSpace != MemoryConstants::max48BitAddress) {
1040+ return ;
1041+ }
1042+ EXPECT_EQ (HeapIndex::HEAP_STANDARD64Kb, wddm->selectHeap (&allocation, nullptr ));
1043+ }
1044+
1045+ TEST_F (WddmHeapSelectorTest, givenFullAddressSpaceWhenSelectingHeapForExternalAllocationWithoutPtrAndCpuAccessIsNotRequiredThenStandardHeapIsUsed) {
1046+ WddmAllocation allocation{nullptr , 0 , nullptr , MemoryPool::MemoryNull, false };
1047+ EXPECT_EQ (AllocationOrigin::EXTERNAL_ALLOCATION, allocation.origin );
1048+ auto allocationType = GraphicsAllocation::AllocationType::UNDECIDED;
1049+ allocation.setAllocationType (allocationType);
1050+ EXPECT_FALSE (GraphicsAllocation::isCpuAccessRequired (allocationType));
10361051 if (hardwareInfoTable[wddm->getGfxPlatform ()->eProductFamily ]->capabilityTable .gpuAddressSpace != MemoryConstants::max48BitAddress) {
10371052 return ;
10381053 }
0 commit comments