mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-11 08:07:19 +08:00
Differentiate between users ISA and internal ISA allocation
Related-To: NEO-5240 Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
4052525091
commit
0f42ef1ed7
@@ -21,6 +21,7 @@ class AubHelper : public NonCopyableOrMovableClass {
|
||||
case GraphicsAllocation::AllocationType::CONSTANT_SURFACE:
|
||||
case GraphicsAllocation::AllocationType::GLOBAL_SURFACE:
|
||||
case GraphicsAllocation::AllocationType::KERNEL_ISA:
|
||||
case GraphicsAllocation::AllocationType::KERNEL_ISA_INTERNAL:
|
||||
case GraphicsAllocation::AllocationType::PRIVATE_SURFACE:
|
||||
case GraphicsAllocation::AllocationType::SCRATCH_SURFACE:
|
||||
case GraphicsAllocation::AllocationType::BUFFER:
|
||||
|
||||
@@ -591,7 +591,7 @@ void CommandStreamReceiver::printDeviceIndex() {
|
||||
|
||||
void CommandStreamReceiver::checkForNewResources(uint32_t submittedTaskCount, uint32_t allocationTaskCount, GraphicsAllocation &gfxAllocation) {
|
||||
if (useNewResourceImplicitFlush) {
|
||||
if (allocationTaskCount == GraphicsAllocation::objectNotUsed && gfxAllocation.getAllocationType() != GraphicsAllocation::AllocationType::KERNEL_ISA) {
|
||||
if (allocationTaskCount == GraphicsAllocation::objectNotUsed && !GraphicsAllocation::isIsaAllocationType(gfxAllocation.getAllocationType())) {
|
||||
newResources = true;
|
||||
if (DebugManager.flags.ProvideVerboseImplicitFlush.get()) {
|
||||
printf("New resource detected of type %llu\n", static_cast<unsigned long long>(gfxAllocation.getAllocationType()));
|
||||
|
||||
@@ -17,7 +17,7 @@ HeapAssigner::HeapAssigner() {
|
||||
apiAllowExternalHeapForSshAndDsh = ApiSpecificConfig::getHeapConfiguration();
|
||||
}
|
||||
bool HeapAssigner::useInternal32BitHeap(GraphicsAllocation::AllocationType allocType) {
|
||||
return allocType == GraphicsAllocation::AllocationType::KERNEL_ISA ||
|
||||
return GraphicsAllocation::isIsaAllocationType(allocType) ||
|
||||
allocType == GraphicsAllocation::AllocationType::INTERNAL_HEAP ||
|
||||
allocType == GraphicsAllocation::AllocationType::DEBUG_MODULE_AREA;
|
||||
}
|
||||
|
||||
@@ -69,6 +69,7 @@ class GraphicsAllocation : public IDNode<GraphicsAllocation> {
|
||||
INTERNAL_HEAP,
|
||||
INTERNAL_HOST_MEMORY,
|
||||
KERNEL_ISA,
|
||||
KERNEL_ISA_INTERNAL,
|
||||
LINEAR_STREAM,
|
||||
MAP_ALLOCATION,
|
||||
MCS,
|
||||
@@ -221,6 +222,12 @@ class GraphicsAllocation : public IDNode<GraphicsAllocation> {
|
||||
allocationType == AllocationType::RING_BUFFER ||
|
||||
allocationType == AllocationType::SEMAPHORE_BUFFER;
|
||||
}
|
||||
|
||||
static bool isIsaAllocationType(GraphicsAllocation::AllocationType type) {
|
||||
return type == GraphicsAllocation::AllocationType::KERNEL_ISA ||
|
||||
type == GraphicsAllocation::AllocationType::KERNEL_ISA_INTERNAL;
|
||||
}
|
||||
|
||||
void *getReservedAddressPtr() const {
|
||||
return this->reservedAddressRangeInfo.addressPtr;
|
||||
}
|
||||
|
||||
@@ -349,7 +349,7 @@ bool MemoryManager::getAllocationData(AllocationData &allocationData, const Allo
|
||||
break;
|
||||
}
|
||||
|
||||
if (properties.allocationType == GraphicsAllocation::AllocationType::KERNEL_ISA) {
|
||||
if (GraphicsAllocation::isIsaAllocationType(properties.allocationType)) {
|
||||
allocationData.flags.useSystemMemory = hwHelper.useSystemMemoryPlacementForISA(*hwInfo);
|
||||
}
|
||||
|
||||
@@ -361,6 +361,7 @@ bool MemoryManager::getAllocationData(AllocationData &allocationData, const Allo
|
||||
case GraphicsAllocation::AllocationType::INSTRUCTION_HEAP:
|
||||
case GraphicsAllocation::AllocationType::INTERNAL_HEAP:
|
||||
case GraphicsAllocation::AllocationType::KERNEL_ISA:
|
||||
case GraphicsAllocation::AllocationType::KERNEL_ISA_INTERNAL:
|
||||
case GraphicsAllocation::AllocationType::LINEAR_STREAM:
|
||||
case GraphicsAllocation::AllocationType::MCS:
|
||||
case GraphicsAllocation::AllocationType::SCRATCH_SURFACE:
|
||||
|
||||
@@ -125,6 +125,7 @@ uint64_t getGpuAddress(GraphicsAllocation::AllocationType allocType, GfxPartitio
|
||||
sizeAllocated = 0;
|
||||
break;
|
||||
case GraphicsAllocation::AllocationType::KERNEL_ISA:
|
||||
case GraphicsAllocation::AllocationType::KERNEL_ISA_INTERNAL:
|
||||
case GraphicsAllocation::AllocationType::INTERNAL_HEAP:
|
||||
gpuAddress = GmmHelper::canonize(gfxPartition->heapAllocate(HeapIndex::HEAP_INTERNAL_DEVICE_MEMORY, sizeAllocated));
|
||||
break;
|
||||
|
||||
@@ -20,11 +20,15 @@ class AlocationHelperTests : public Test<DeviceFixture> {
|
||||
HWTEST_F(AlocationHelperTests, givenKernelIsaTypeWhenUse32BitHeapCalledThenTrueReturned) {
|
||||
|
||||
EXPECT_TRUE(heapAssigner.use32BitHeap(GraphicsAllocation::AllocationType::KERNEL_ISA));
|
||||
EXPECT_TRUE(heapAssigner.use32BitHeap(GraphicsAllocation::AllocationType::KERNEL_ISA_INTERNAL));
|
||||
}
|
||||
|
||||
HWTEST_F(AlocationHelperTests, givenKernelIsaTypeWhenUseIternalAllocatorThenUseHeapInternal) {
|
||||
auto heapIndex = heapAssigner.get32BitHeapIndex(GraphicsAllocation::AllocationType::KERNEL_ISA, true, *defaultHwInfo, false);
|
||||
EXPECT_EQ(heapIndex, NEO::HeapIndex::HEAP_INTERNAL_DEVICE_MEMORY);
|
||||
|
||||
heapIndex = heapAssigner.get32BitHeapIndex(GraphicsAllocation::AllocationType::KERNEL_ISA_INTERNAL, true, *defaultHwInfo, false);
|
||||
EXPECT_EQ(heapIndex, NEO::HeapIndex::HEAP_INTERNAL_DEVICE_MEMORY);
|
||||
}
|
||||
|
||||
HWTEST_F(AlocationHelperTests, givenNotInternalTypeWhenUseIternalAllocatorThenUseHeapExternal) {
|
||||
@@ -32,8 +36,9 @@ HWTEST_F(AlocationHelperTests, givenNotInternalTypeWhenUseIternalAllocatorThenUs
|
||||
EXPECT_EQ(heapIndex, NEO::HeapIndex::HEAP_EXTERNAL_DEVICE_MEMORY);
|
||||
}
|
||||
|
||||
HWTEST_F(AlocationHelperTests, givenKernelIsaTypeWhenUseInternalAllocatorCalledThenTrueReturned) {
|
||||
HWTEST_F(AlocationHelperTests, givenKernelIsaTypesWhenUseInternalAllocatorCalledThenTrueReturned) {
|
||||
EXPECT_TRUE(heapAssigner.useInternal32BitHeap(GraphicsAllocation::AllocationType::KERNEL_ISA));
|
||||
EXPECT_TRUE(heapAssigner.useInternal32BitHeap(GraphicsAllocation::AllocationType::KERNEL_ISA_INTERNAL));
|
||||
}
|
||||
|
||||
HWTEST_F(AlocationHelperTests, givenInternalHeapTypeWhenUseInternalAllocatorCalledThenTrueReturned) {
|
||||
|
||||
Reference in New Issue
Block a user