fix: track registered CSR clients

In L0 its not possible to track objects relations. For example CmdList
may be removed before Event.
In such case, Event needs to safely skip unregister call, without
accessing CmdList/CmdQueue object.

Related-To: NEO-8884

Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
This commit is contained in:
Dunajski, Bartosz
2023-09-21 13:45:24 +00:00
committed by Compute-Runtime-Automation
parent ace5e67b51
commit 53f635e392
18 changed files with 127 additions and 77 deletions

View File

@@ -253,10 +253,11 @@ CommandQueue *CommandQueue::create(uint32_t productFamily, Device *device, NEO::
}
void CommandQueueImp::unregisterCsrClient() {
if (getClientId() != CommandQueue::clientNotRegistered) {
this->csr->unregisterClient();
setClientId(CommandQueue::clientNotRegistered);
}
this->csr->unregisterClient(this);
}
void CommandQueueImp::registerCsrClient() {
this->csr->registerClient(this);
}
ze_result_t CommandQueueImp::CommandBufferManager::initialize(Device *device, size_t sizeRequested) {