performance: Allow power efficient waits with ULLS light

Resolves: HSD-18041633458
Related-To: NEO-13922

Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
This commit is contained in:
Lukasz Jobczyk
2025-03-05 14:50:30 +00:00
committed by Compute-Runtime-Automation
parent a93cecac36
commit 61fe9ebb8f
7 changed files with 29 additions and 4 deletions

View File

@@ -50,6 +50,7 @@ class DrmDirectSubmission : public DirectSubmissionHw<GfxFamily, Dispatcher> {
constexpr static size_t ullsLightTimeout = 2'000'000;
std::chrono::steady_clock::time_point lastUllsLightExecTimestamp{};
int boHandleForExec = 0;
std::vector<BufferObject *> residency{};
std::vector<ExecObject> execObjectsStorage{};

View File

@@ -144,6 +144,7 @@ bool DrmDirectSubmission<GfxFamily, Dispatcher>::submit(uint64_t gpuAddress, siz
this->handleResidency();
} else {
this->lastUllsLightExecTimestamp = std::chrono::steady_clock::now();
this->boHandleForExec = bb->peekHandle();
}
auto currentBase = this->ringCommandStream.getGraphicsAllocation()->getGpuAddress();
@@ -257,7 +258,7 @@ uint64_t DrmDirectSubmission<GfxFamily, Dispatcher>::updateTagValue(bool require
this->currentTagData.tagValue++;
this->ringBuffers[this->currentRingBuffer].completionFence = this->currentTagData.tagValue;
}
return 0ull;
return boHandleForExec;
}
template <typename GfxFamily, typename Dispatcher>