From e20b42ee825fd62883823aecb8149d51b3547273 Mon Sep 17 00:00:00 2001 From: baldurk Date: Thu, 24 Aug 2017 14:28:12 +0100 Subject: [PATCH] Convert counters that are in kb or ms into normalised units --- renderdoc/driver/ihv/amd/amd_counters.cpp | 32 +++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/renderdoc/driver/ihv/amd/amd_counters.cpp b/renderdoc/driver/ihv/amd/amd_counters.cpp index 02ccdd474..3c0a2ecbe 100644 --- a/renderdoc/driver/ihv/amd/amd_counters.cpp +++ b/renderdoc/driver/ihv/amd/amd_counters.cpp @@ -429,6 +429,13 @@ uint32_t AMDCounters::GetSampleUint32(uint32_t session, uint32_t sample, GPUCoun m_pGPUPerfAPI->getSampleUInt32(session, sample, internalIndex, &value); + // normalise units as expected + GPA_Usage_Type usageType; + m_pGPUPerfAPI->getCounterUsageType(internalIndex, &usageType); + + if(usageType == GPA_USAGE_TYPE_KILOBYTES) + value *= 1000; + return value; } @@ -439,6 +446,13 @@ uint64_t AMDCounters::GetSampleUint64(uint32_t session, uint32_t sample, GPUCoun m_pGPUPerfAPI->getSampleUInt64(session, sample, internalIndex, &value); + // normalise units as expected + GPA_Usage_Type usageType; + m_pGPUPerfAPI->getCounterUsageType(internalIndex, &usageType); + + if(usageType == GPA_USAGE_TYPE_KILOBYTES) + value *= 1000; + return value; } @@ -449,6 +463,15 @@ float AMDCounters::GetSampleFloat32(uint32_t session, uint32_t sample, GPUCounte m_pGPUPerfAPI->getSampleFloat32(session, sample, internalIndex, &value); + // normalise units as expected + GPA_Usage_Type usageType; + m_pGPUPerfAPI->getCounterUsageType(internalIndex, &usageType); + + if(usageType == GPA_USAGE_TYPE_KILOBYTES) + value *= 1000.0f; + else if(usageType == GPA_USAGE_TYPE_MILLISECONDS) + value /= 1000.0f; + return value; } @@ -459,5 +482,14 @@ double AMDCounters::GetSampleFloat64(uint32_t session, uint32_t sample, GPUCount m_pGPUPerfAPI->getSampleFloat64(session, sample, internalIndex, &value); + // normalise units as expected + GPA_Usage_Type usageType; + m_pGPUPerfAPI->getCounterUsageType(internalIndex, &usageType); + + if(usageType == GPA_USAGE_TYPE_KILOBYTES) + value *= 1000.0; + else if(usageType == GPA_USAGE_TYPE_MILLISECONDS) + value /= 1000.0; + return value; } \ No newline at end of file