diff --git a/runtime/aub/aub_center.cpp b/runtime/aub/aub_center.cpp index f70b3f62e9..7830844acd 100644 --- a/runtime/aub/aub_center.cpp +++ b/runtime/aub/aub_center.cpp @@ -16,7 +16,7 @@ #include "third_party/aub_stream/headers/modes.h" namespace OCLRT { -extern aub_stream::AubManager *createAubManager(uint32_t gfxFamily, uint32_t devicesCount, uint64_t memoryBankSize, bool localMemorySupported, const std::string &aubFileName, uint32_t streamMode); +extern aub_stream::AubManager *createAubManager(uint32_t productFamily, uint32_t devicesCount, uint64_t memoryBankSize, bool localMemorySupported, const std::string &aubFileName, uint32_t streamMode); AubCenter::AubCenter(const HardwareInfo *pHwInfo, bool localMemoryEnabled, const std::string &aubFileName) { if (DebugManager.flags.UseAubStream.get()) { @@ -30,7 +30,7 @@ AubCenter::AubCenter(const HardwareInfo *pHwInfo, bool localMemoryEnabled, const aub_stream::tbxServerIp = DebugManager.flags.TbxServer.get(); aub_stream::tbxServerPort = DebugManager.flags.TbxPort.get(); - aubManager.reset(createAubManager(pHwInfo->pPlatform->eRenderCoreFamily, devicesCount, memoryBankSize, localMemoryEnabled, aubFileName, mode)); + aubManager.reset(createAubManager(pHwInfo->pPlatform->eProductFamily, devicesCount, memoryBankSize, localMemoryEnabled, aubFileName, mode)); } addressMapper = std::make_unique(); streamProvider = std::make_unique(); diff --git a/third_party/aub_stream/headers/aub_manager.h b/third_party/aub_stream/headers/aub_manager.h index f22537829a..b1a886611d 100644 --- a/third_party/aub_stream/headers/aub_manager.h +++ b/third_party/aub_stream/headers/aub_manager.h @@ -19,7 +19,7 @@ class AubManager { virtual HardwareContext *createHardwareContext(uint32_t device, uint32_t engine, uint32_t flags) = 0; virtual void writeMemory(uint64_t gfxAddress, const void *memory, size_t size, uint32_t memoryBanks, int hint, size_t pageSize) = 0; - static AubManager *create(uint32_t gfxFamily, uint32_t devicesCount, uint64_t memoryBankSize, bool localMemorySupported, const std::string &aubFileName, uint32_t streamMode); + static AubManager *create(uint32_t productFamily, uint32_t devicesCount, uint64_t memoryBankSize, bool localMemorySupported, const std::string &aubFileName, uint32_t streamMode); }; } // namespace aub_stream diff --git a/unit_tests/aub/aub_center_tests.cpp b/unit_tests/aub/aub_center_tests.cpp index 08d7645b02..aa45582257 100644 --- a/unit_tests/aub/aub_center_tests.cpp +++ b/unit_tests/aub/aub_center_tests.cpp @@ -5,11 +5,13 @@ * */ +#include "runtime/helpers/basic_math.h" #include "runtime/helpers/hw_info.h" #include "runtime/helpers/options.h" #include "runtime/os_interface/debug_settings_manager.h" #include "unit_tests/helpers/debug_manager_state_restore.h" #include "unit_tests/mocks/mock_aub_center.h" +#include "unit_tests/mocks/mock_aub_manager.h" #include "third_party/aub_stream/headers/modes.h" @@ -24,6 +26,22 @@ TEST(AubCenter, GivenUseAubStreamDebugVariableNotSetWhenAubCenterIsCreatedThenAu EXPECT_EQ(nullptr, aubCenter.aubManager.get()); } +TEST(AubCenter, GivenUseAubStreamDebugVariableSetWhenAubCenterIsCreatedThenCreateAubManagerWithCorrectParameters) { + DebugManagerStateRestore restorer; + DebugManager.flags.UseAubStream.set(false); + + MockAubManager *mockAubManager = new MockAubManager(platformDevices[0]->pPlatform->eProductFamily, 4, 8 * MB, true, "aub_file.aub", aub_stream::mode::aubFile); + MockAubCenter mockAubCenter(platformDevices[0], false, ""); + mockAubCenter.aubManager = std::unique_ptr(mockAubManager); + + EXPECT_EQ(platformDevices[0]->pPlatform->eProductFamily, mockAubManager->mockAubManagerParams.productFamily); + EXPECT_EQ(4, mockAubManager->mockAubManagerParams.devicesCount); + EXPECT_EQ(8 * MB, mockAubManager->mockAubManagerParams.memoryBankSize); + EXPECT_EQ(true, mockAubManager->mockAubManagerParams.localMemorySupported); + EXPECT_STREQ("aub_file.aub", mockAubManager->mockAubManagerParams.aubFileName.c_str()); + EXPECT_EQ(aub_stream::mode::aubFile, mockAubManager->mockAubManagerParams.streamMode); +} + TEST(AubCenter, GivenDefaultSetCommandStreamReceiverFlagAndAubFileNameWhenGettingAubStreamModeThenModeAubFileIsReturned) { DebugManagerStateRestore restorer; DebugManager.flags.UseAubStream.set(true); diff --git a/unit_tests/aub_stream_mocks/aub_stream_interface_mock.cpp b/unit_tests/aub_stream_mocks/aub_stream_interface_mock.cpp index 8f765008e6..ecc7e1c392 100644 --- a/unit_tests/aub_stream_mocks/aub_stream_interface_mock.cpp +++ b/unit_tests/aub_stream_mocks/aub_stream_interface_mock.cpp @@ -8,7 +8,7 @@ #include "unit_tests/mocks/mock_aub_manager.h" namespace OCLRT { -aub_stream::AubManager *createAubManager(uint32_t gfxFamily, uint32_t devicesCount, uint64_t memoryBankSize, bool localMemorySupported, const std::string &aubFileName, uint32_t streamMode) { - return new MockAubManager(); +aub_stream::AubManager *createAubManager(uint32_t productFamily, uint32_t devicesCount, uint64_t memoryBankSize, bool localMemorySupported, const std::string &aubFileName, uint32_t streamMode) { + return new MockAubManager(productFamily, devicesCount, memoryBankSize, localMemorySupported, aubFileName, streamMode); } } // namespace OCLRT diff --git a/unit_tests/mocks/mock_aub_manager.h b/unit_tests/mocks/mock_aub_manager.h index 3195d53cc1..e9dc3818e3 100644 --- a/unit_tests/mocks/mock_aub_manager.h +++ b/unit_tests/mocks/mock_aub_manager.h @@ -40,6 +40,14 @@ class MockAubManager : public aub_stream::AubManager { public: MockAubManager(){}; + MockAubManager(uint32_t productFamily, uint32_t devicesCount, uint64_t memoryBankSize, bool localMemorySupported, const std::string &aubFileName, uint32_t streamMode) { + mockAubManagerParams.productFamily = productFamily; + mockAubManagerParams.devicesCount = devicesCount; + mockAubManagerParams.memoryBankSize = memoryBankSize; + mockAubManagerParams.localMemorySupported = localMemorySupported; + mockAubManagerParams.aubFileName.assign(aubFileName); + mockAubManagerParams.streamMode = streamMode; + } ~MockAubManager() override {} HardwareContext *createHardwareContext(uint32_t device, uint32_t engine) { return createHardwareContext(device, engine, 0); } @@ -52,6 +60,15 @@ class MockAubManager : public aub_stream::AubManager { bool writeMemoryCalled = false; uint32_t contextFlags = 0; + struct MockAubManagerParams { + uint32_t productFamily = 0; + int32_t devicesCount = 0; + uint64_t memoryBankSize = 0; + bool localMemorySupported = false; + std::string aubFileName = ""; + uint32_t streamMode = 0xFFFFFFFF; + } mockAubManagerParams; + protected: HardwareContext *hardwareContext = nullptr; };