mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-24 21:18:24 +08:00
Unregister engine during destruction of related command stream receiver
Change-Id: I9225439b67a11c02998296bd9c3fbc4e2149cae2 Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
This commit is contained in:
committed by
sys_ocldev
parent
a5880f19af
commit
94761a78d6
@@ -383,6 +383,18 @@ EngineControl *MemoryManager::getRegisteredEngineForCsr(CommandStreamReceiver *c
|
||||
return engineCtrl;
|
||||
}
|
||||
|
||||
void MemoryManager::unregisterEngineForCsr(CommandStreamReceiver *commandStreamReceiver) {
|
||||
auto numRegisteredEngines = registeredEngines.size();
|
||||
for (auto i = 0u; i < numRegisteredEngines; i++) {
|
||||
if (registeredEngines[i].commandStreamReceiver == commandStreamReceiver) {
|
||||
registeredEngines[i].osContext->decRefInternal();
|
||||
std::swap(registeredEngines[i], registeredEngines[numRegisteredEngines - 1]);
|
||||
registeredEngines.pop_back();
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
CommandStreamReceiver *MemoryManager::getDefaultCommandStreamReceiver(uint32_t deviceId) const {
|
||||
return peekExecutionEnvironment().commandStreamReceivers[deviceId][defaultEngineIndex].get();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user