mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-09 06:23:01 +08:00
[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
This commit is contained in:
committed by
sys_ocldev
parent
7eceb3038c
commit
8a005434f4
@@ -37,7 +37,7 @@ CommandStreamReceiver *DeviceCommandStreamReceiver<GfxFamily>::create(const Hard
|
||||
if (withAubDump) {
|
||||
return new CommandStreamReceiverWithAUBDump<WddmCommandStreamReceiver<GfxFamily>>(hwInfo, executionEnvironment);
|
||||
} else {
|
||||
return new WddmCommandStreamReceiver<GfxFamily>(hwInfo, nullptr, executionEnvironment);
|
||||
return new WddmCommandStreamReceiver<GfxFamily>(hwInfo, executionEnvironment);
|
||||
}
|
||||
}
|
||||
} // namespace OCLRT
|
||||
|
||||
@@ -37,7 +37,7 @@ class WddmCommandStreamReceiver : public DeviceCommandStreamReceiver<GfxFamily>
|
||||
using CommandStreamReceiverHw<GfxFamily>::CommandStreamReceiver::memoryManager;
|
||||
|
||||
public:
|
||||
WddmCommandStreamReceiver(const HardwareInfo &hwInfoIn, Wddm *wddm, ExecutionEnvironment &executionEnvironment);
|
||||
WddmCommandStreamReceiver(const HardwareInfo &hwInfoIn, ExecutionEnvironment &executionEnvironment);
|
||||
virtual ~WddmCommandStreamReceiver();
|
||||
|
||||
FlushStamp flush(BatchBuffer &batchBuffer, EngineType engineType, ResidencyContainer *allocationsForResidency, OsContext &osContext) override;
|
||||
|
||||
@@ -49,21 +49,26 @@ namespace OCLRT {
|
||||
DECLARE_COMMAND_BUFFER(CommandBufferHeader, UMD_OCL, FALSE, FALSE, PERFTAG_OCL);
|
||||
|
||||
template <typename GfxFamily>
|
||||
WddmCommandStreamReceiver<GfxFamily>::WddmCommandStreamReceiver(const HardwareInfo &hwInfoIn, Wddm *wddm, ExecutionEnvironment &executionEnvironment)
|
||||
WddmCommandStreamReceiver<GfxFamily>::WddmCommandStreamReceiver(const HardwareInfo &hwInfoIn,
|
||||
ExecutionEnvironment &executionEnvironment)
|
||||
: BaseClass(hwInfoIn, executionEnvironment) {
|
||||
this->wddm = wddm;
|
||||
if (this->wddm == nullptr) {
|
||||
|
||||
if (!executionEnvironment.osInterface) {
|
||||
executionEnvironment.osInterface = std::make_unique<OSInterface>();
|
||||
this->wddm = Wddm::createWddm();
|
||||
this->osInterface = executionEnvironment.osInterface.get();
|
||||
this->osInterface->get()->setWddm(this->wddm);
|
||||
} else {
|
||||
this->wddm = executionEnvironment.osInterface->get()->getWddm();
|
||||
this->osInterface = executionEnvironment.osInterface.get();
|
||||
}
|
||||
|
||||
GPUNODE_ORDINAL nodeOrdinal = GPUNODE_3D;
|
||||
UNRECOVERABLE_IF(!WddmEngineMapper<GfxFamily>::engineNodeMap(hwInfoIn.capabilityTable.defaultEngineType, nodeOrdinal));
|
||||
this->wddm->setNode(nodeOrdinal);
|
||||
PreemptionMode preemptionMode = PreemptionHelper::getDefaultPreemptionMode(hwInfoIn);
|
||||
this->wddm->setPreemptionMode(preemptionMode);
|
||||
|
||||
executionEnvironment.osInterface.reset(new OSInterface());
|
||||
this->osInterface = executionEnvironment.osInterface.get();
|
||||
this->osInterface->get()->setWddm(this->wddm);
|
||||
commandBufferHeader = new COMMAND_BUFFER_HEADER;
|
||||
*commandBufferHeader = CommandBufferHeader;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user