mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-03 06:49:52 +08:00
Optimize ULLS init mutex
Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
33121281a6
commit
80c1e28947
@@ -1510,24 +1510,26 @@ inline bool CommandStreamReceiverHw<GfxFamily>::initDirectSubmission() {
|
||||
auto startDirect = this->osContext->isDirectSubmissionAvailable(peekHwInfo(), submitOnInit);
|
||||
|
||||
if (startDirect) {
|
||||
auto lock = this->obtainUniqueOwnership();
|
||||
if (!this->isAnyDirectSubmissionEnabled()) {
|
||||
if (EngineHelpers::isBcs(this->osContext->getEngineType())) {
|
||||
blitterDirectSubmission = DirectSubmissionHw<GfxFamily, BlitterDispatcher<GfxFamily>>::create(*this);
|
||||
ret = blitterDirectSubmission->initialize(submitOnInit, this->isUsedNotifyEnableForPostSync());
|
||||
completionFenceValuePointer = blitterDirectSubmission->getCompletionValuePointer();
|
||||
auto lock = this->obtainUniqueOwnership();
|
||||
if (!this->isAnyDirectSubmissionEnabled()) {
|
||||
if (EngineHelpers::isBcs(this->osContext->getEngineType())) {
|
||||
blitterDirectSubmission = DirectSubmissionHw<GfxFamily, BlitterDispatcher<GfxFamily>>::create(*this);
|
||||
ret = blitterDirectSubmission->initialize(submitOnInit, this->isUsedNotifyEnableForPostSync());
|
||||
completionFenceValuePointer = blitterDirectSubmission->getCompletionValuePointer();
|
||||
|
||||
} else {
|
||||
directSubmission = DirectSubmissionHw<GfxFamily, RenderDispatcher<GfxFamily>>::create(*this);
|
||||
ret = directSubmission->initialize(submitOnInit, this->isUsedNotifyEnableForPostSync());
|
||||
completionFenceValuePointer = directSubmission->getCompletionValuePointer();
|
||||
}
|
||||
auto directSubmissionController = executionEnvironment.initializeDirectSubmissionController();
|
||||
if (directSubmissionController) {
|
||||
directSubmissionController->registerDirectSubmission(this);
|
||||
}
|
||||
if (this->isUpdateTagFromWaitEnabled()) {
|
||||
this->overrideDispatchPolicy(DispatchMode::ImmediateDispatch);
|
||||
} else {
|
||||
directSubmission = DirectSubmissionHw<GfxFamily, RenderDispatcher<GfxFamily>>::create(*this);
|
||||
ret = directSubmission->initialize(submitOnInit, this->isUsedNotifyEnableForPostSync());
|
||||
completionFenceValuePointer = directSubmission->getCompletionValuePointer();
|
||||
}
|
||||
auto directSubmissionController = executionEnvironment.initializeDirectSubmissionController();
|
||||
if (directSubmissionController) {
|
||||
directSubmissionController->registerDirectSubmission(this);
|
||||
}
|
||||
if (this->isUpdateTagFromWaitEnabled()) {
|
||||
this->overrideDispatchPolicy(DispatchMode::ImmediateDispatch);
|
||||
}
|
||||
}
|
||||
}
|
||||
this->osContext->setDirectSubmissionActive();
|
||||
|
||||
Reference in New Issue
Block a user