performance: add time measurement between make resident and wait on gpu

Related-To: NEO-8211

Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
This commit is contained in:
Zbigniew Zdanowicz
2023-07-26 19:10:25 +00:00
committed by Compute-Runtime-Automation
parent 8778a0acca
commit 0d8523c386
6 changed files with 88 additions and 7 deletions

View File

@@ -1052,6 +1052,8 @@ unsigned int Wddm::getEnablePreemptionRegValue() {
}
bool Wddm::waitOnGPU(D3DKMT_HANDLE context) {
perfLogStartWaitTime(residencyLogger.get(), currentPagingFenceValue);
D3DKMT_WAITFORSYNCHRONIZATIONOBJECTFROMGPU waitOnGpu = {};
waitOnGpu.hContext = context;
@@ -1062,6 +1064,7 @@ bool Wddm::waitOnGPU(D3DKMT_HANDLE context) {
waitOnGpu.MonitoredFenceValueArray = &localPagingFenceValue;
NTSTATUS status = getGdi()->waitForSynchronizationObjectFromGpu(&waitOnGpu);
perfLogResidencyWaitPagingeFenceLog(residencyLogger.get(), *getPagingFenceAddress(), true);
return status == STATUS_SUCCESS;
}
@@ -1203,7 +1206,7 @@ void Wddm::waitOnPagingFenceFromCpu() {
while (currentPagingFenceValue > *getPagingFenceAddress())
perfLogResidencyEnteredWait(residencyLogger.get());
perfLogResidencyWaitPagingeFenceLog(residencyLogger.get(), *getPagingFenceAddress());
perfLogResidencyWaitPagingeFenceLog(residencyLogger.get(), *getPagingFenceAddress(), false);
}
void Wddm::updatePagingFenceValue(uint64_t newPagingFenceValue) {