Skip to content

Commit 8a00543

Browse files
[1/n] Initialize WDDM only once
- remove Wddm parameter from WddmCommandStreamReceiver and pass it via ExecutionEnvironment - remove drm parameter from DrmCommandStreamReceiver and pass it via ExecutionEnvironment - remove void parametr from TbxCommandStreamReceiverHw Change-Id: Ib76332f1341339426e86e0ce2b6ce96919219881
1 parent 7eceb30 commit 8a00543

15 files changed

+142
-49
lines changed

runtime/command_stream/command_stream_receiver_with_aub_dump.inl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ extern CommandStreamReceiverCreateFunc commandStreamReceiverFactory[2 * IGFX_MAX
2929

3030
template <typename BaseCSR>
3131
CommandStreamReceiverWithAUBDump<BaseCSR>::CommandStreamReceiverWithAUBDump(const HardwareInfo &hwInfoIn, ExecutionEnvironment &executionEnvironment)
32-
: BaseCSR(hwInfoIn, nullptr, executionEnvironment) {
32+
: BaseCSR(hwInfoIn, executionEnvironment) {
3333
aubCSR = AUBCommandStreamReceiver::create(hwInfoIn, "aubfile", false, executionEnvironment);
3434
}
3535

runtime/command_stream/tbx_command_stream_receiver_hw.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ class TbxCommandStreamReceiverHw : public CommandStreamReceiverHw<GfxFamily> {
6060

6161
static CommandStreamReceiver *create(const HardwareInfo &hwInfoIn, bool withAubDump, ExecutionEnvironment &executionEnvironment);
6262

63-
TbxCommandStreamReceiverHw(const HardwareInfo &hwInfoIn, void *ptr, ExecutionEnvironment &executionEnvironment);
63+
TbxCommandStreamReceiverHw(const HardwareInfo &hwInfoIn, ExecutionEnvironment &executionEnvironment);
6464
~TbxCommandStreamReceiverHw() override;
6565

6666
void initializeEngine(EngineType engineType);

runtime/command_stream/tbx_command_stream_receiver_hw.inl

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,8 @@
3232
namespace OCLRT {
3333

3434
template <typename GfxFamily>
35-
TbxCommandStreamReceiverHw<GfxFamily>::TbxCommandStreamReceiverHw(const HardwareInfo &hwInfoIn, void *ptr, ExecutionEnvironment &executionEnvironment)
35+
TbxCommandStreamReceiverHw<GfxFamily>::TbxCommandStreamReceiverHw(const HardwareInfo &hwInfoIn,
36+
ExecutionEnvironment &executionEnvironment)
3637
: BaseClass(hwInfoIn, executionEnvironment) {
3738
for (auto &engineInfo : engineInfoTable) {
3839
engineInfo.pLRCA = nullptr;
@@ -175,7 +176,7 @@ CommandStreamReceiver *TbxCommandStreamReceiverHw<GfxFamily>::create(const Hardw
175176
if (withAubDump) {
176177
csr = new CommandStreamReceiverWithAUBDump<TbxCommandStreamReceiverHw<GfxFamily>>(hwInfoIn, executionEnvironment);
177178
} else {
178-
csr = new TbxCommandStreamReceiverHw<GfxFamily>(hwInfoIn, nullptr, executionEnvironment);
179+
csr = new TbxCommandStreamReceiverHw<GfxFamily>(hwInfoIn, executionEnvironment);
179180
}
180181

181182
// Open our stream

runtime/os_interface/linux/device_command_stream.inl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ CommandStreamReceiver *DeviceCommandStreamReceiver<GfxFamily>::create(const Hard
3333
if (withAubDump) {
3434
return new CommandStreamReceiverWithAUBDump<DrmCommandStreamReceiver<GfxFamily>>(hwInfo, executionEnvironment);
3535
} else {
36-
return new DrmCommandStreamReceiver<GfxFamily>(hwInfo, nullptr, executionEnvironment);
36+
return new DrmCommandStreamReceiver<GfxFamily>(hwInfo, executionEnvironment);
3737
}
3838
};
3939
} // namespace OCLRT

runtime/os_interface/linux/drm_command_stream.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,8 @@ class DrmCommandStreamReceiver : public DeviceCommandStreamReceiver<GfxFamily> {
4848
public:
4949
// When drm is null default implementation is used. In this case DrmCommandStreamReceiver is responsible to free drm.
5050
// When drm is passed, DCSR will not free it at destruction
51-
DrmCommandStreamReceiver(const HardwareInfo &hwInfoIn, Drm *drm, ExecutionEnvironment &executionEnvironment, gemCloseWorkerMode mode = gemCloseWorkerMode::gemCloseWorkerActive);
51+
DrmCommandStreamReceiver(const HardwareInfo &hwInfoIn, ExecutionEnvironment &executionEnvironment,
52+
gemCloseWorkerMode mode = gemCloseWorkerMode::gemCloseWorkerActive);
5253

5354
FlushStamp flush(BatchBuffer &batchBuffer, EngineType engineType, ResidencyContainer *allocationsForResidency, OsContext &osContext) override;
5455
void makeResident(GraphicsAllocation &gfxAllocation) override;

runtime/os_interface/linux/drm_command_stream.inl

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,14 +41,19 @@ namespace OCLRT {
4141

4242
template <typename GfxFamily>
4343
DrmCommandStreamReceiver<GfxFamily>::DrmCommandStreamReceiver(const HardwareInfo &hwInfoIn,
44-
Drm *drm, ExecutionEnvironment &executionEnvironment, gemCloseWorkerMode mode)
44+
ExecutionEnvironment &executionEnvironment, gemCloseWorkerMode mode)
4545
: BaseClass(hwInfoIn, executionEnvironment), gemCloseWorkerOperationMode(mode) {
46-
this->drm = drm ? drm : Drm::get(0);
47-
residency.reserve(512);
48-
execObjectsStorage.reserve(512);
4946
if (!executionEnvironment.osInterface) {
5047
executionEnvironment.osInterface = std::make_unique<OSInterface>();
48+
this->drm = Drm::get(0);
49+
} else {
50+
this->drm = executionEnvironment.osInterface->get()->getDrm()
51+
? executionEnvironment.osInterface->get()->getDrm()
52+
: Drm::get(0);
5153
}
54+
residency.reserve(512);
55+
execObjectsStorage.reserve(512);
56+
5257
executionEnvironment.osInterface->get()->setDrm(this->drm);
5358
CommandStreamReceiver::osInterface = executionEnvironment.osInterface.get();
5459
auto gmmHelper = platform()->peekExecutionEnvironment()->getGmmHelper();

runtime/os_interface/windows/device_command_stream.inl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ CommandStreamReceiver *DeviceCommandStreamReceiver<GfxFamily>::create(const Hard
3737
if (withAubDump) {
3838
return new CommandStreamReceiverWithAUBDump<WddmCommandStreamReceiver<GfxFamily>>(hwInfo, executionEnvironment);
3939
} else {
40-
return new WddmCommandStreamReceiver<GfxFamily>(hwInfo, nullptr, executionEnvironment);
40+
return new WddmCommandStreamReceiver<GfxFamily>(hwInfo, executionEnvironment);
4141
}
4242
}
4343
} // namespace OCLRT

runtime/os_interface/windows/wddm_device_command_stream.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ class WddmCommandStreamReceiver : public DeviceCommandStreamReceiver<GfxFamily>
3737
using CommandStreamReceiverHw<GfxFamily>::CommandStreamReceiver::memoryManager;
3838

3939
public:
40-
WddmCommandStreamReceiver(const HardwareInfo &hwInfoIn, Wddm *wddm, ExecutionEnvironment &executionEnvironment);
40+
WddmCommandStreamReceiver(const HardwareInfo &hwInfoIn, ExecutionEnvironment &executionEnvironment);
4141
virtual ~WddmCommandStreamReceiver();
4242

4343
FlushStamp flush(BatchBuffer &batchBuffer, EngineType engineType, ResidencyContainer *allocationsForResidency, OsContext &osContext) override;

runtime/os_interface/windows/wddm_device_command_stream.inl

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -49,21 +49,26 @@ namespace OCLRT {
4949
DECLARE_COMMAND_BUFFER(CommandBufferHeader, UMD_OCL, FALSE, FALSE, PERFTAG_OCL);
5050

5151
template <typename GfxFamily>
52-
WddmCommandStreamReceiver<GfxFamily>::WddmCommandStreamReceiver(const HardwareInfo &hwInfoIn, Wddm *wddm, ExecutionEnvironment &executionEnvironment)
52+
WddmCommandStreamReceiver<GfxFamily>::WddmCommandStreamReceiver(const HardwareInfo &hwInfoIn,
53+
ExecutionEnvironment &executionEnvironment)
5354
: BaseClass(hwInfoIn, executionEnvironment) {
54-
this->wddm = wddm;
55-
if (this->wddm == nullptr) {
55+
56+
if (!executionEnvironment.osInterface) {
57+
executionEnvironment.osInterface = std::make_unique<OSInterface>();
5658
this->wddm = Wddm::createWddm();
59+
this->osInterface = executionEnvironment.osInterface.get();
60+
this->osInterface->get()->setWddm(this->wddm);
61+
} else {
62+
this->wddm = executionEnvironment.osInterface->get()->getWddm();
63+
this->osInterface = executionEnvironment.osInterface.get();
5764
}
65+
5866
GPUNODE_ORDINAL nodeOrdinal = GPUNODE_3D;
5967
UNRECOVERABLE_IF(!WddmEngineMapper<GfxFamily>::engineNodeMap(hwInfoIn.capabilityTable.defaultEngineType, nodeOrdinal));
6068
this->wddm->setNode(nodeOrdinal);
6169
PreemptionMode preemptionMode = PreemptionHelper::getDefaultPreemptionMode(hwInfoIn);
6270
this->wddm->setPreemptionMode(preemptionMode);
6371

64-
executionEnvironment.osInterface.reset(new OSInterface());
65-
this->osInterface = executionEnvironment.osInterface.get();
66-
this->osInterface->get()->setWddm(this->wddm);
6772
commandBufferHeader = new COMMAND_BUFFER_HEADER;
6873
*commandBufferHeader = CommandBufferHeader;
6974

unit_tests/command_stream/command_stream_receiver_with_aub_dump_tests.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,8 @@
3232
using namespace OCLRT;
3333

3434
struct MyMockCsr : UltCommandStreamReceiver<DEFAULT_TEST_FAMILY_NAME> {
35-
MyMockCsr(const HardwareInfo &hwInfoIn, void *ptr, ExecutionEnvironment &executionEnvironment) : UltCommandStreamReceiver(hwInfoIn, executionEnvironment) {
35+
MyMockCsr(const HardwareInfo &hwInfoIn, ExecutionEnvironment &executionEnvironment)
36+
: UltCommandStreamReceiver(hwInfoIn, executionEnvironment) {
3637
}
3738

3839
FlushStamp flush(BatchBuffer &batchBuffer, EngineType engineOrdinal, ResidencyContainer *allocationsForResidency, OsContext &osContext) override {
@@ -101,7 +102,7 @@ struct MyMockCsrWithAubDump : CommandStreamReceiverWithAUBDump<BaseCSR> {
101102
}
102103
if (createAubCSR) {
103104
// overwrite with mock
104-
this->aubCSR = new MyMockCsr(hwInfoIn, nullptr, executionEnvironment);
105+
this->aubCSR = new MyMockCsr(hwInfoIn, executionEnvironment);
105106
}
106107
}
107108

0 commit comments

Comments
 (0)