88#include " runtime/aub/aub_center.h"
99#include " runtime/aub/aub_helper.h"
1010#include " runtime/helpers/hw_info.h"
11+ #include " runtime/helpers/options.h"
1112#include " runtime/os_interface/debug_settings_manager.h"
12- # include " third_party/aub_stream/headers/options.h "
13+
1314#include " third_party/aub_stream/headers/aub_manager.h"
15+ #include " third_party/aub_stream/headers/options.h"
16+ #include " third_party/aub_stream/headers/modes.h"
1417
1518namespace OCLRT {
16- extern aub_stream::AubManager *createAubManager (uint32_t gfxFamily, uint32_t devicesCount, uint64_t memoryBankSize, bool localMemorySupported, const std::string &aubFileName);
19+ extern aub_stream::AubManager *createAubManager (uint32_t gfxFamily, uint32_t devicesCount, uint64_t memoryBankSize, bool localMemorySupported, const std::string &aubFileName, uint32_t streamMode );
1720
1821AubCenter::AubCenter (const HardwareInfo *pHwInfo, bool localMemoryEnabled, const std::string &aubFileName) {
1922 if (DebugManager.flags .UseAubStream .get ()) {
2023 auto devicesCount = AubHelper::getDevicesCount (pHwInfo);
2124 auto memoryBankSize = AubHelper::getMemBankSize ();
25+ uint32_t mode = getAubStreamMode (aubFileName, DebugManager.flags .SetCommandStreamReceiver .get ());
26+
2227 if (DebugManager.flags .AubDumpAddMmioRegistersList .get () != " unk" ) {
2328 aub_stream::injectMMIOList = AubHelper::getAdditionalMmioList ();
2429 }
2530 aub_stream::tbxServerIp = DebugManager.flags .TbxServer .get ();
2631 aub_stream::tbxServerPort = DebugManager.flags .TbxPort .get ();
2732
28- aubManager.reset (createAubManager (pHwInfo->pPlatform ->eRenderCoreFamily , devicesCount, memoryBankSize, localMemoryEnabled, aubFileName));
33+ aubManager.reset (createAubManager (pHwInfo->pPlatform ->eRenderCoreFamily , devicesCount, memoryBankSize, localMemoryEnabled, aubFileName, mode ));
2934 }
3035 addressMapper = std::make_unique<AddressMapper>();
3136 streamProvider = std::make_unique<AubFileStreamProvider>();
@@ -35,4 +40,29 @@ AubCenter::AubCenter() {
3540 addressMapper = std::make_unique<AddressMapper>();
3641 streamProvider = std::make_unique<AubFileStreamProvider>();
3742}
43+
44+ uint32_t AubCenter::getAubStreamMode (const std::string &aubFileName, uint32_t csrType) {
45+ uint32_t mode = aub_stream::mode::aubFile;
46+
47+ if (csrType != CommandStreamReceiverType::CSR_HW) {
48+ switch (csrType) {
49+ case CommandStreamReceiverType::CSR_AUB:
50+ mode = aub_stream::mode::aubFile;
51+ break ;
52+ case CommandStreamReceiverType::CSR_TBX:
53+ mode = aub_stream::mode::tbx;
54+ break ;
55+ case CommandStreamReceiverType::CSR_TBX_WITH_AUB:
56+ mode = aub_stream::mode::aubFileAndTbx;
57+ break ;
58+ default :
59+ break ;
60+ }
61+ } else {
62+ if (aubFileName.size () == 0 ) {
63+ mode = aub_stream::mode::tbx;
64+ }
65+ }
66+ return mode;
67+ }
3868} // namespace OCLRT
0 commit comments