diff --git a/runtime/command_stream/command_stream_receiver.cpp b/runtime/command_stream/command_stream_receiver.cpp index 2ddad67650..7ca16941ab 100644 --- a/runtime/command_stream/command_stream_receiver.cpp +++ b/runtime/command_stream/command_stream_receiver.cpp @@ -337,7 +337,7 @@ void CommandStreamReceiver::setExperimentalCmdBuffer(std::unique_ptrallocateGraphicsMemoryWithProperties({MemoryConstants::pageSize, GraphicsAllocation::AllocationType::UNDECIDED}); + auto tagAllocation = getMemoryManager()->allocateGraphicsMemoryWithProperties({MemoryConstants::pageSize, GraphicsAllocation::AllocationType::TAG_BUFFER}); if (!tagAllocation) { return false; } diff --git a/runtime/memory_manager/memory_manager.cpp b/runtime/memory_manager/memory_manager.cpp index 770597929a..c994358d5f 100644 --- a/runtime/memory_manager/memory_manager.cpp +++ b/runtime/memory_manager/memory_manager.cpp @@ -217,14 +217,14 @@ bool MemoryManager::getAllocationData(AllocationData &allocationData, const Allo switch (properties.allocationType) { case GraphicsAllocation::AllocationType::BUFFER: - case GraphicsAllocation::AllocationType::BUFFER_HOST_MEMORY: case GraphicsAllocation::AllocationType::BUFFER_COMPRESSED: - case GraphicsAllocation::AllocationType::PIPE: - case GraphicsAllocation::AllocationType::SCRATCH_SURFACE: - case GraphicsAllocation::AllocationType::PRIVATE_SURFACE: - case GraphicsAllocation::AllocationType::PRINTF_SURFACE: + case GraphicsAllocation::AllocationType::BUFFER_HOST_MEMORY: case GraphicsAllocation::AllocationType::CONSTANT_SURFACE: case GraphicsAllocation::AllocationType::GLOBAL_SURFACE: + case GraphicsAllocation::AllocationType::PIPE: + case GraphicsAllocation::AllocationType::PRINTF_SURFACE: + case GraphicsAllocation::AllocationType::PRIVATE_SURFACE: + case GraphicsAllocation::AllocationType::SCRATCH_SURFACE: allow64KbPages = true; allow32Bit = true; default: @@ -232,8 +232,8 @@ bool MemoryManager::getAllocationData(AllocationData &allocationData, const Allo } switch (properties.allocationType) { - case GraphicsAllocation::AllocationType::SVM_ZERO_COPY: case GraphicsAllocation::AllocationType::SVM_GPU: + case GraphicsAllocation::AllocationType::SVM_ZERO_COPY: allow64KbPages = true; default: break; @@ -241,8 +241,8 @@ bool MemoryManager::getAllocationData(AllocationData &allocationData, const Allo switch (properties.allocationType) { case GraphicsAllocation::AllocationType::BUFFER: - case GraphicsAllocation::AllocationType::BUFFER_HOST_MEMORY: case GraphicsAllocation::AllocationType::BUFFER_COMPRESSED: + case GraphicsAllocation::AllocationType::BUFFER_HOST_MEMORY: forcePin = true; default: break; @@ -250,13 +250,13 @@ bool MemoryManager::getAllocationData(AllocationData &allocationData, const Allo switch (properties.allocationType) { case GraphicsAllocation::AllocationType::BUFFER_HOST_MEMORY: + case GraphicsAllocation::AllocationType::CONSTANT_SURFACE: + case GraphicsAllocation::AllocationType::EXTERNAL_HOST_PTR: + case GraphicsAllocation::AllocationType::GLOBAL_SURFACE: case GraphicsAllocation::AllocationType::PIPE: case GraphicsAllocation::AllocationType::PRINTF_SURFACE: - case GraphicsAllocation::AllocationType::CONSTANT_SURFACE: - case GraphicsAllocation::AllocationType::GLOBAL_SURFACE: - case GraphicsAllocation::AllocationType::SVM_ZERO_COPY: - case GraphicsAllocation::AllocationType::EXTERNAL_HOST_PTR: case GraphicsAllocation::AllocationType::SVM_CPU: + case GraphicsAllocation::AllocationType::SVM_ZERO_COPY: mustBeZeroCopy = true; default: break; @@ -270,12 +270,12 @@ bool MemoryManager::getAllocationData(AllocationData &allocationData, const Allo case GraphicsAllocation::AllocationType::GLOBAL_SURFACE: case GraphicsAllocation::AllocationType::IMAGE: case GraphicsAllocation::AllocationType::PIPE: - case GraphicsAllocation::AllocationType::SHARED_IMAGE: case GraphicsAllocation::AllocationType::SHARED_BUFFER: + case GraphicsAllocation::AllocationType::SHARED_IMAGE: case GraphicsAllocation::AllocationType::SHARED_RESOURCE_COPY: - case GraphicsAllocation::AllocationType::SVM_ZERO_COPY: - case GraphicsAllocation::AllocationType::SVM_GPU: case GraphicsAllocation::AllocationType::SVM_CPU: + case GraphicsAllocation::AllocationType::SVM_GPU: + case GraphicsAllocation::AllocationType::SVM_ZERO_COPY: case GraphicsAllocation::AllocationType::UNDECIDED: mayRequireL3Flush = true; default: @@ -283,12 +283,13 @@ bool MemoryManager::getAllocationData(AllocationData &allocationData, const Allo } switch (properties.allocationType) { - case GraphicsAllocation::AllocationType::UNDECIDED: + case GraphicsAllocation::AllocationType::EXTERNAL_HOST_PTR: case GraphicsAllocation::AllocationType::FILL_PATTERN: case GraphicsAllocation::AllocationType::PROFILING_TAG_BUFFER: - case GraphicsAllocation::AllocationType::EXTERNAL_HOST_PTR: - case GraphicsAllocation::AllocationType::SVM_ZERO_COPY: case GraphicsAllocation::AllocationType::SVM_CPU: + case GraphicsAllocation::AllocationType::SVM_ZERO_COPY: + case GraphicsAllocation::AllocationType::TAG_BUFFER: + case GraphicsAllocation::AllocationType::UNDECIDED: allocationData.flags.useSystemMemory = true; default: break; diff --git a/runtime/os_interface/debug_settings_manager.cpp b/runtime/os_interface/debug_settings_manager.cpp index bfc0926bd4..453867c57a 100644 --- a/runtime/os_interface/debug_settings_manager.cpp +++ b/runtime/os_interface/debug_settings_manager.cpp @@ -307,58 +307,58 @@ const char *DebugSettingsManager::getAllocationTypeString(GraphicsAl auto type = graphicsAllocation->getAllocationType(); switch (type) { - case GraphicsAllocation::AllocationType::UNKNOWN: - return "UNKNOWN"; + case GraphicsAllocation::AllocationType::BUFFER: + return "BUFFER"; case GraphicsAllocation::AllocationType::BUFFER_COMPRESSED: return "BUFFER_COMPRESSED"; case GraphicsAllocation::AllocationType::BUFFER_HOST_MEMORY: return "BUFFER_HOST_MEMORY"; - case GraphicsAllocation::AllocationType::BUFFER: - return "BUFFER"; - case GraphicsAllocation::AllocationType::IMAGE: - return "IMAGE"; - case GraphicsAllocation::AllocationType::TAG_BUFFER: - return "TAG_BUFFER"; - case GraphicsAllocation::AllocationType::LINEAR_STREAM: - return "LINEAR_STREAM"; - case GraphicsAllocation::AllocationType::FILL_PATTERN: - return "FILL_PATTERN"; - case GraphicsAllocation::AllocationType::PIPE: - return "PIPE"; - case GraphicsAllocation::AllocationType::TIMESTAMP_PACKET_TAG_BUFFER: - return "TIMESTAMP_PACKET_TAG_BUFFER"; - case GraphicsAllocation::AllocationType::PROFILING_TAG_BUFFER: - return "PROFILING_TAG_BUFFER"; case GraphicsAllocation::AllocationType::COMMAND_BUFFER: return "COMMAND_BUFFER"; - case GraphicsAllocation::AllocationType::PRINTF_SURFACE: - return "PRINTF_SURFACE"; - case GraphicsAllocation::AllocationType::GLOBAL_SURFACE: - return "GLOBAL_SURFACE"; - case GraphicsAllocation::AllocationType::PRIVATE_SURFACE: - return "PRIVATE_SURFACE"; case GraphicsAllocation::AllocationType::CONSTANT_SURFACE: return "CONSTANT_SURFACE"; - case GraphicsAllocation::AllocationType::SCRATCH_SURFACE: - return "SCRATCH_SURFACE"; - case GraphicsAllocation::AllocationType::INSTRUCTION_HEAP: - return "INSTRUCTION_HEAP"; + case GraphicsAllocation::AllocationType::EXTERNAL_HOST_PTR: + return "EXTERNAL_HOST_PTR"; + case GraphicsAllocation::AllocationType::FILL_PATTERN: + return "FILL_PATTERN"; + case GraphicsAllocation::AllocationType::GLOBAL_SURFACE: + return "GLOBAL_SURFACE"; + case GraphicsAllocation::AllocationType::IMAGE: + return "IMAGE"; case GraphicsAllocation::AllocationType::INDIRECT_OBJECT_HEAP: return "INDIRECT_OBJECT_HEAP"; - case GraphicsAllocation::AllocationType::SURFACE_STATE_HEAP: - return "SURFACE_STATE_HEAP"; + case GraphicsAllocation::AllocationType::INSTRUCTION_HEAP: + return "INSTRUCTION_HEAP"; + case GraphicsAllocation::AllocationType::LINEAR_STREAM: + return "LINEAR_STREAM"; + case GraphicsAllocation::AllocationType::PIPE: + return "PIPE"; + case GraphicsAllocation::AllocationType::PRINTF_SURFACE: + return "PRINTF_SURFACE"; + case GraphicsAllocation::AllocationType::PRIVATE_SURFACE: + return "PRIVATE_SURFACE"; + case GraphicsAllocation::AllocationType::PROFILING_TAG_BUFFER: + return "PROFILING_TAG_BUFFER"; + case GraphicsAllocation::AllocationType::SCRATCH_SURFACE: + return "SCRATCH_SURFACE"; case GraphicsAllocation::AllocationType::SHARED_RESOURCE_COPY: return "SHARED_RESOURCE_COPY"; - case GraphicsAllocation::AllocationType::SVM_ZERO_COPY: - return "SVM_ZERO_COPY"; + case GraphicsAllocation::AllocationType::SURFACE_STATE_HEAP: + return "SURFACE_STATE_HEAP"; case GraphicsAllocation::AllocationType::SVM_CPU: return "SVM_CPU"; case GraphicsAllocation::AllocationType::SVM_GPU: return "SVM_GPU"; - case GraphicsAllocation::AllocationType::EXTERNAL_HOST_PTR: - return "EXTERNAL_HOST_PTR"; + case GraphicsAllocation::AllocationType::SVM_ZERO_COPY: + return "SVM_ZERO_COPY"; + case GraphicsAllocation::AllocationType::TAG_BUFFER: + return "TAG_BUFFER"; + case GraphicsAllocation::AllocationType::TIMESTAMP_PACKET_TAG_BUFFER: + return "TIMESTAMP_PACKET_TAG_BUFFER"; case GraphicsAllocation::AllocationType::UNDECIDED: return "UNDECIDED"; + case GraphicsAllocation::AllocationType::UNKNOWN: + return "UNKNOWN"; default: return "ILLEGAL_VALUE"; } diff --git a/unit_tests/command_stream/command_stream_receiver_tests.cpp b/unit_tests/command_stream/command_stream_receiver_tests.cpp index b537134df6..628b9f9577 100644 --- a/unit_tests/command_stream/command_stream_receiver_tests.cpp +++ b/unit_tests/command_stream/command_stream_receiver_tests.cpp @@ -371,6 +371,7 @@ TEST(CommandStreamReceiverSimpleTest, givenCommandStreamReceiverWhenInitializeTa EXPECT_TRUE(csr->getTagAddress() == nullptr); csr->initializeTagAllocation(); EXPECT_NE(nullptr, csr->getTagAllocation()); + EXPECT_EQ(GraphicsAllocation::AllocationType::TAG_BUFFER, csr->getTagAllocation()->getAllocationType()); EXPECT_TRUE(csr->getTagAddress() != nullptr); EXPECT_EQ(*csr->getTagAddress(), initialHardwareTag); } diff --git a/unit_tests/memory_manager/memory_manager_allocate_in_preferred_pool_tests.inl b/unit_tests/memory_manager/memory_manager_allocate_in_preferred_pool_tests.inl index 32ea173014..3c34ed4f3e 100644 --- a/unit_tests/memory_manager/memory_manager_allocate_in_preferred_pool_tests.inl +++ b/unit_tests/memory_manager/memory_manager_allocate_in_preferred_pool_tests.inl @@ -365,6 +365,12 @@ TEST(MemoryManagerTest, givenUndecidedTypeWhenGetAllocationDataIsCalledThenSyste EXPECT_TRUE(allocData.flags.useSystemMemory); } +TEST(MemoryManagerTest, givenTagBufferTypeWhenGetAllocationDataIsCalledThenSystemMemoryIsRequested) { + AllocationData allocData; + MockMemoryManager::getAllocationData(allocData, {1, GraphicsAllocation::AllocationType::TAG_BUFFER}, {}, nullptr); + EXPECT_TRUE(allocData.flags.useSystemMemory); +} + TEST(MemoryManagerTest, givenFillPatternTypeWhenGetAllocationDataIsCalledThenSystemMemoryIsRequested) { AllocationData allocData; MockMemoryManager::getAllocationData(allocData, {1, GraphicsAllocation::AllocationType::FILL_PATTERN}, {}, nullptr);