performance: don't wait for paging fence on user thread

Related-To: NEO-12197

Currently for new resources user thread must wait before submitting
actual workload. With this commit, instead of waiting on user thread,
request is sent to background ULLS controller thread and additional
semaphore is programmed. ULLS controller will perform actual wait
and signal semaphore when paging fence reaches required value.

Signed-off-by: Szymon Morek <szymon.morek@intel.com>
This commit is contained in:
Szymon Morek
2024-08-06 16:13:06 +00:00
committed by Compute-Runtime-Automation
parent d071fd7e9a
commit d4c1631ac7
31 changed files with 615 additions and 47 deletions

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2022-2023 Intel Corporation
* Copyright (C) 2022-2024 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
@@ -15,4 +15,9 @@ void sleep(const T &sleepDuration);
template <class T>
void waitOnCondition(std::condition_variable &condition, std::unique_lock<std::mutex> &lock, const T &duration);
template <class T, class Predicate>
bool waitOnConditionWithPredicate(std::condition_variable &condition, std::unique_lock<std::mutex> &lock, const T &duration, Predicate predicate) {
return condition.wait_for(lock, duration, predicate);
}
} // namespace NEO