From 68b33519d1de97b63a1377b44323f3ac1f6483b4 Mon Sep 17 00:00:00 2001 From: Jonathan Glines Date: Wed, 23 Nov 2022 13:10:33 -0800 Subject: [PATCH] Add MetricsConfigBuilder::GetNumPasses() to NvPerfUtility This method is used to calculate the expected maximum number of replays and enforce an upper-bound on the replay loop. --- .../include/NvPerfMetricsConfigBuilder.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/renderdoc/driver/ihv/nv/official/PerfSDK/redist/NvPerfUtility/include/NvPerfMetricsConfigBuilder.h b/renderdoc/driver/ihv/nv/official/PerfSDK/redist/NvPerfUtility/include/NvPerfMetricsConfigBuilder.h index cab6b88ad..f989f5405 100644 --- a/renderdoc/driver/ihv/nv/official/PerfSDK/redist/NvPerfUtility/include/NvPerfMetricsConfigBuilder.h +++ b/renderdoc/driver/ihv/nv/official/PerfSDK/redist/NvPerfUtility/include/NvPerfMetricsConfigBuilder.h @@ -324,6 +324,22 @@ namespace nv { namespace perf { } return true; } + + // Returns the number of replay passes for this metrics config. + // Total num passes = numPasses * numNestingLevels + size_t GetNumPasses() const + { + NVPW_RawMetricsConfig_GetNumPasses_V2_Params getNumPassesParams; + getNumPassesParams.structSize = sizeof(getNumPassesParams); + getNumPassesParams.pPriv = NULL; + getNumPassesParams.pRawMetricsConfig = m_pRawMetricsConfig; + NVPA_Status nvpaStatus = NVPW_RawMetricsConfig_GetNumPasses_V2(&getNumPassesParams); + if (nvpaStatus) + { + return 0u; + } + return getNumPassesParams.numPasses; + } }; }}