mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-03 14:55:24 +08:00
Sysman for Windows: Fix timestamp units for power and engines.
Returning now in usecs as the documentation state it should be.
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
73c7ebdfb8
commit
bb5d252c4d
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2020 Intel Corporation
|
||||
* Copyright (C) 2020-2021 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
@@ -10,7 +10,9 @@
|
||||
namespace L0 {
|
||||
|
||||
ze_result_t WddmEngineImp::getActivity(zes_engine_stats_t *pStats) {
|
||||
uint64_t value = 0;
|
||||
uint64_t activeTime = 0;
|
||||
uint64_t timeStamp = 0;
|
||||
uint32_t timestampFrequency = 0;
|
||||
KmdSysman::RequestProperty request;
|
||||
KmdSysman::ResponseProperty response;
|
||||
|
||||
@@ -40,10 +42,27 @@ ze_result_t WddmEngineImp::getActivity(zes_engine_stats_t *pStats) {
|
||||
return status;
|
||||
}
|
||||
|
||||
memcpy_s(&value, sizeof(uint64_t), response.dataBuffer, sizeof(uint64_t));
|
||||
pStats->activeTime = value;
|
||||
memcpy_s(&value, sizeof(uint64_t), (response.dataBuffer + sizeof(uint64_t)), sizeof(uint64_t));
|
||||
pStats->timestamp = value;
|
||||
memcpy_s(&activeTime, sizeof(uint64_t), response.dataBuffer, sizeof(uint64_t));
|
||||
memcpy_s(&timeStamp, sizeof(uint64_t), (response.dataBuffer + sizeof(uint64_t)), sizeof(uint64_t));
|
||||
|
||||
request.requestId = KmdSysman::Requests::Activity::TimestampFrequency;
|
||||
|
||||
status = pKmdSysManager->requestSingle(request, response);
|
||||
|
||||
if (status != ZE_RESULT_SUCCESS) {
|
||||
return status;
|
||||
}
|
||||
|
||||
memcpy_s(×tampFrequency, sizeof(uint32_t), response.dataBuffer, sizeof(uint32_t));
|
||||
double timeFactor = 1.0 / static_cast<double>(timestampFrequency);
|
||||
|
||||
double elapsedTime = static_cast<double>(activeTime) * timeFactor;
|
||||
elapsedTime *= static_cast<double>(microFacor);
|
||||
pStats->activeTime = static_cast<uint64_t>(elapsedTime);
|
||||
|
||||
elapsedTime = static_cast<double>(timeStamp) * timeFactor;
|
||||
elapsedTime *= static_cast<double>(microFacor);
|
||||
pStats->timestamp = static_cast<uint64_t>(elapsedTime);
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user