diff --git a/.gitignore b/.gitignore index 85e332d4..d64c929c 100644 --- a/.gitignore +++ b/.gitignore @@ -41,5 +41,3 @@ PresentData/PresentData.args.json IntelPresentMon/SampleClient/log.txt IntelPresentMon/PresentMonAPI2/Internal.h - -IntelPresentMon/CommonUtilities/git_hash.h diff --git a/IntelPresentMon/AppCef/AppCef.rc b/IntelPresentMon/AppCef/AppCef.rc index b7457c74..405860fc 100644 --- a/IntelPresentMon/AppCef/AppCef.rc +++ b/IntelPresentMon/AppCef/AppCef.rc @@ -61,8 +61,8 @@ IDI_ICON1 ICON "flask.ico" // VS_VERSION_INFO VERSIONINFO - FILEVERSION 1,0,0,0 - PRODUCTVERSION 2,1,0,0 + FILEVERSION 1,0,3,0 + PRODUCTVERSION 2,3,0,0 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -79,12 +79,12 @@ BEGIN BEGIN VALUE "CompanyName", "Intel(R) Corporation" VALUE "FileDescription", "Intel(R) PresentMon application" - VALUE "FileVersion", "1.0.0.0" + VALUE "FileVersion", "1.0.3.0" VALUE "InternalName", "CefNano.exe" VALUE "LegalCopyright", "Copyright (C) 2017-2024" VALUE "OriginalFilename", "CefNano.exe" VALUE "ProductName", "Intel(R) PresentMon" - VALUE "ProductVersion", "2.1.0.0" + VALUE "ProductVersion", "2.3.0.0" END END BLOCK "VarFileInfo" diff --git a/IntelPresentMon/AppCef/CefNano.vcxproj b/IntelPresentMon/AppCef/CefNano.vcxproj index ce6a0b4e..e1b2f62b 100644 --- a/IntelPresentMon/AppCef/CefNano.vcxproj +++ b/IntelPresentMon/AppCef/CefNano.vcxproj @@ -83,6 +83,9 @@ {808f5ea9-ea09-4d72-87b4-5397d43cba54} + + {c73aa532-e532-4d93-9279-905444653c08} + diff --git a/IntelPresentMon/AppCef/source/util/PathSanitaryCheck.cpp b/IntelPresentMon/AppCef/source/util/PathSanitaryCheck.cpp index de1b23bc..eaa6f3db 100644 --- a/IntelPresentMon/AppCef/source/util/PathSanitaryCheck.cpp +++ b/IntelPresentMon/AppCef/source/util/PathSanitaryCheck.cpp @@ -4,6 +4,7 @@ #include #include #include +#include namespace p2c::client::util @@ -43,8 +44,9 @@ namespace p2c::client::util } bool PathSanitaryCheck(const std::filesystem::path& path, const std::filesystem::path& root) { - const auto canonicalString = std::filesystem::weakly_canonical(path).wstring(); - const auto rootString = root.wstring(); - return canonicalString.starts_with(rootString); + const auto canonicalString = pmon::util::str::ToLower(std::filesystem::weakly_canonical(path).wstring()); + const auto rootString = pmon::util::str::ToLower(root.wstring()); + const auto isSanitary = canonicalString.starts_with(rootString); + return isSanitary; } } \ No newline at end of file diff --git a/IntelPresentMon/AppCef/source/util/async/Introspect.h b/IntelPresentMon/AppCef/source/util/async/Introspect.h index eaec485b..234a9501 100644 --- a/IntelPresentMon/AppCef/source/util/async/Introspect.h +++ b/IntelPresentMon/AppCef/source/util/async/Introspect.h @@ -34,8 +34,7 @@ namespace p2c::client::util::async // filter predicate to only pick up metrics usable in dynamic queries (plus hardcoded blacklist) const auto filterPred = [](const pmapi::intro::MetricView& m) { const auto type = m.GetType(); return - ( m.GetId() != PM_METRIC_GPU_LATENCY && - m.GetId() != PM_METRIC_DISPLAY_LATENCY) + ( m.GetId() != PM_METRIC_GPU_LATENCY) && ( type == PM_METRIC_TYPE_DYNAMIC || type == PM_METRIC_TYPE_DYNAMIC_FRAME || diff --git a/IntelPresentMon/AppCef/source/winmain.cpp b/IntelPresentMon/AppCef/source/winmain.cpp index d55d7753..4948adf8 100644 --- a/IntelPresentMon/AppCef/source/winmain.cpp +++ b/IntelPresentMon/AppCef/source/winmain.cpp @@ -8,7 +8,7 @@ #include #include #include -#include +#include #include #include #include @@ -22,6 +22,7 @@ using namespace p2c; using namespace pmon::util; +using namespace pmon::bid; using p2c::cli::Options; namespace ccef = client::cef; using namespace std::chrono_literals; diff --git a/IntelPresentMon/CommonUtilities/CommonUtilities.vcxproj b/IntelPresentMon/CommonUtilities/CommonUtilities.vcxproj index bad6a5ce..28b28f3c 100644 --- a/IntelPresentMon/CommonUtilities/CommonUtilities.vcxproj +++ b/IntelPresentMon/CommonUtilities/CommonUtilities.vcxproj @@ -19,7 +19,6 @@ - @@ -92,7 +91,6 @@ - @@ -137,8 +135,6 @@ - - @@ -271,10 +267,7 @@ true - - build-scripts\pre-build.bat - Generating build ID - + @@ -304,10 +297,7 @@ true true - - build-scripts\pre-build.bat - Generating build ID - + diff --git a/IntelPresentMon/CommonUtilities/CommonUtilities.vcxproj.filters b/IntelPresentMon/CommonUtilities/CommonUtilities.vcxproj.filters index 5435184d..0bb38fe6 100644 --- a/IntelPresentMon/CommonUtilities/CommonUtilities.vcxproj.filters +++ b/IntelPresentMon/CommonUtilities/CommonUtilities.vcxproj.filters @@ -204,9 +204,6 @@ Header Files - - Header Files - Header Files @@ -347,9 +344,6 @@ Source Files - - Source Files - Source Files @@ -362,9 +356,5 @@ - - Source Files - - \ No newline at end of file diff --git a/IntelPresentMon/CommonUtilities/Math.h b/IntelPresentMon/CommonUtilities/Math.h index f57bced6..4f5a4271 100644 --- a/IntelPresentMon/CommonUtilities/Math.h +++ b/IntelPresentMon/CommonUtilities/Math.h @@ -21,4 +21,36 @@ namespace pmon::util { return (a - b) < CommonEpsilon(a, b); } + enum class MagnitudePrefix + { + Base, + Kilo, + Kibi, + Mega, + Mebi, + Giga, + Gibi, + }; + constexpr double GetMagnitudeFactor(MagnitudePrefix prefix) + { + switch (prefix) { + case MagnitudePrefix::Base: return 1.; + case MagnitudePrefix::Kilo: return 1'000.; + case MagnitudePrefix::Kibi: return 1'024.; + case MagnitudePrefix::Mega: return 1'000'000.; + case MagnitudePrefix::Mebi: return 1'048'576.; + case MagnitudePrefix::Giga: return 1'000'000'000.; + case MagnitudePrefix::Gibi: return 1'073'741'824.; + default: return 0.; + } + } + template + To ConvertMagnitudePrefix(From from, MagnitudePrefix fromPrefix, MagnitudePrefix toPrefix) + { + auto fromExtended = double(from); + const auto srcFactor = GetMagnitudeFactor(fromPrefix); + const auto dstFactor = GetMagnitudeFactor(toPrefix); + const auto conversionFactor = srcFactor / dstFactor; + return To(fromExtended * conversionFactor); + } } \ No newline at end of file diff --git a/IntelPresentMon/ControlLib/ControlLib.vcxproj b/IntelPresentMon/ControlLib/ControlLib.vcxproj index 67c061a2..8a1da172 100644 --- a/IntelPresentMon/ControlLib/ControlLib.vcxproj +++ b/IntelPresentMon/ControlLib/ControlLib.vcxproj @@ -200,11 +200,13 @@ + + @@ -227,6 +229,7 @@ + diff --git a/IntelPresentMon/ControlLib/ControlLib.vcxproj.filters b/IntelPresentMon/ControlLib/ControlLib.vcxproj.filters index 35e7b929..bd868610 100644 --- a/IntelPresentMon/ControlLib/ControlLib.vcxproj.filters +++ b/IntelPresentMon/ControlLib/ControlLib.vcxproj.filters @@ -76,6 +76,10 @@ + + Intel + + @@ -116,5 +120,8 @@ + + Intel + \ No newline at end of file diff --git a/IntelPresentMon/ControlLib/IntelPowerTelemetryAdapter.cpp b/IntelPresentMon/ControlLib/IntelPowerTelemetryAdapter.cpp index 4a271048..a8a76c21 100644 --- a/IntelPresentMon/ControlLib/IntelPowerTelemetryAdapter.cpp +++ b/IntelPresentMon/ControlLib/IntelPowerTelemetryAdapter.cpp @@ -2,6 +2,7 @@ // SPDX-License-Identifier: MIT #include "IntelPowerTelemetryAdapter.h" #include "Logging.h" +#include "../CommonUtilities/Math.h" namespace pwr::intel { @@ -18,8 +19,7 @@ namespace pwr::intel }; if (auto result = ctlGetDeviceProperties(deviceHandle, &properties); - result != CTL_RESULT_SUCCESS) - { + result != CTL_RESULT_SUCCESS) { throw std::runtime_error{ "Failure to get device properties" }; } @@ -34,17 +34,51 @@ namespace pwr::intel bool IntelPowerTelemetryAdapter::Sample() noexcept { + pmlog_verb(v::gpu)("Sample called"); + LARGE_INTEGER qpc; QueryPerformanceCounter(&qpc); bool success = true; - ctl_power_telemetry_t currentSample{}; - currentSample.Size = sizeof(ctl_power_telemetry_t); - if (const auto result = ctlPowerTelemetryGet(deviceHandle, - ¤tSample); result != CTL_RESULT_SUCCESS) - { - success = false; - IGCL_ERR(result); + decltype(previousSampleVariant) currentSampleVariant; + + if (useV1PowerTelemetry) { + currentSampleVariant = ctl_power_telemetry2_t{ + .Size = sizeof(ctl_power_telemetry2_t), + .Version = 1 + }; + auto currentSample = std::get_if(¤tSampleVariant); + // sanity check; should never fail + if (!currentSample) { + success = false; + IGCL_ERR(CTL_RESULT_ERROR_INVALID_ARGUMENT); + } + if (const auto result = ctlPowerTelemetryGet(deviceHandle, + (ctl_power_telemetry_t*)currentSample); result != CTL_RESULT_SUCCESS) { + // treating any error as unavailability of the API version since some driver version do not correctly report + // version error + useV1PowerTelemetry = false; + useNewBandwidthTelemetry = false; + success = false; + pmlog_warn("Failed to access ctlPowerTelemetryGet.v1, falling back to .v0"); + } + } + if (!useV1PowerTelemetry) { + currentSampleVariant = ctl_power_telemetry_t{ + .Size = sizeof(ctl_power_telemetry_t), + .Version = 0 + }; + auto currentSample = std::get_if(¤tSampleVariant); + // sanity check; should never fail + if (!currentSample) { + success = false; + IGCL_ERR(CTL_RESULT_ERROR_INVALID_ARGUMENT); + } + if (const auto result = ctlPowerTelemetryGet(deviceHandle, currentSample); + result != CTL_RESULT_SUCCESS) { + success = false; + IGCL_ERR(result); + } } // Query memory state and bandwidth if supported @@ -54,92 +88,49 @@ namespace pwr::intel .Version = 1, }; if (memoryModules.size() > 0) { - if (const auto result = - ctlMemoryGetState(memoryModules[0], &memory_state); + if (const auto result = ctlMemoryGetState(memoryModules[0], &memory_state); result != CTL_RESULT_SUCCESS) { success = false; IGCL_ERR(result); } - if (const auto result = - ctlMemoryGetBandwidth(memoryModules[0], &memory_bandwidth); + if (const auto result = ctlMemoryGetBandwidth(memoryModules[0], &memory_bandwidth); result != CTL_RESULT_SUCCESS) { success = false; IGCL_ERR(result); } } - - if (const auto result = GetTimeDelta(currentSample); - result != CTL_RESULT_SUCCESS) - { - success = false; - IGCL_ERR(result); - } double gpu_sustained_power_limit_mw = 0.; if (const auto result = ctlOverclockPowerLimitGet( - deviceHandle, &gpu_sustained_power_limit_mw); - result != CTL_RESULT_SUCCESS) { + deviceHandle, &gpu_sustained_power_limit_mw); + result != CTL_RESULT_SUCCESS && result != CTL_RESULT_ERROR_CORE_OVERCLOCK_DEPRECATED_API) { success = false; IGCL_ERR(result); } - PresentMonPowerTelemetryInfo pm_gpu_power_telemetry_info{ .qpc = (uint64_t)qpc.QuadPart }; - - if (previousSample) { - - if (const auto result = GetGPUPowerTelemetryData( - currentSample, pm_gpu_power_telemetry_info); result != CTL_RESULT_SUCCESS) - { - success = false; - IGCL_ERR(result); - } - - if (const auto result = GetVramPowerTelemetryData( - currentSample, pm_gpu_power_telemetry_info); result != CTL_RESULT_SUCCESS) - { + if (useV1PowerTelemetry) { + auto currentSample = std::get_if(¤tSampleVariant); + // sanity check; should never fail + if (!currentSample) { success = false; - IGCL_ERR(result); + IGCL_ERR(CTL_RESULT_ERROR_INVALID_ARGUMENT); } - - if (const auto result = GetFanPowerTelemetryData(currentSample, - pm_gpu_power_telemetry_info); result != CTL_RESULT_SUCCESS) - { - success = false; - IGCL_ERR(result); + else { + success = GatherSampleData(*currentSample, memory_state, + memory_bandwidth, gpu_sustained_power_limit_mw, (uint64_t)qpc.QuadPart) && success; } - - if (const auto result = GetPsuPowerTelemetryData( - currentSample, pm_gpu_power_telemetry_info); result != CTL_RESULT_SUCCESS) - { + } + else { + auto currentSample = std::get_if(¤tSampleVariant); + // sanity check; should never fail + if (!currentSample) { success = false; - IGCL_ERR(result); + IGCL_ERR(CTL_RESULT_ERROR_INVALID_ARGUMENT); } - - // Get memory state and bandwidth data - if (memoryModules.size() > 0) { - GetMemStateTelemetryData(memory_state, - pm_gpu_power_telemetry_info); - GetMemBandwidthData(memory_bandwidth, - pm_gpu_power_telemetry_info); + else { + success = GatherSampleData(*currentSample, memory_state, + memory_bandwidth, gpu_sustained_power_limit_mw, (uint64_t)qpc.QuadPart) && success; } - - // Save and convert the gpu sustained power limit - pm_gpu_power_telemetry_info.gpu_sustained_power_limit_w = - gpu_sustained_power_limit_mw / 1000.; - SetTelemetryCapBit(GpuTelemetryCapBits::gpu_sustained_power_limit); - - // Save off the calculated PresentMon power telemetry values. These are - // saved off for clients to extrace out timing information based on QPC - SavePmPowerTelemetryData(pm_gpu_power_telemetry_info); - } - - // Save off the raw control library data for calculating time delta - // and usage data. - if (const auto result = SaveTelemetry(currentSample, memory_bandwidth); - result != CTL_RESULT_SUCCESS) - { - success = false; - IGCL_ERR(result); } return success; @@ -148,7 +139,18 @@ namespace pwr::intel std::optional IntelPowerTelemetryAdapter::GetClosest(uint64_t qpc) const noexcept { std::lock_guard lock(historyMutex); - return history.GetNearest(qpc); + const auto nearest = history.GetNearest(qpc); + if constexpr (PMLOG_BUILD_LEVEL_ >= pmon::util::log::Level::Verbose) { + if (!nearest) { + pmlog_verb(v::gpu)("Empty telemetry info sample returned"); + } + else { + pmlog_verb(v::gpu)(std::format("Nearest telemetry info sampled; read bw [{}] write bw [{}]", + nearest->gpu_mem_read_bandwidth_bps, nearest->gpu_mem_write_bandwidth_bps + )); + } + } + return nearest; } PM_DEVICE_VENDOR IntelPowerTelemetryAdapter::GetVendor() const noexcept @@ -232,17 +234,97 @@ namespace pwr::intel return CTL_RESULT_SUCCESS; } + template + bool IntelPowerTelemetryAdapter::GatherSampleData(T& currentSample, + ctl_mem_state_t& memory_state, + ctl_mem_bandwidth_t& memory_bandwidth, + double gpu_sustained_power_limit_mw, + uint64_t qpc) + { + bool success = true; + + if (const auto result = GetTimeDelta(currentSample); + result != CTL_RESULT_SUCCESS) + { + success = false; + IGCL_ERR(result); + } + + PresentMonPowerTelemetryInfo pm_gpu_power_telemetry_info{ .qpc = qpc }; + + if (previousSampleVariant.index()) { + + if (const auto result = GetGPUPowerTelemetryData( + currentSample, pm_gpu_power_telemetry_info); result != CTL_RESULT_SUCCESS) + { + success = false; + IGCL_ERR(result); + } + + if (const auto result = GetVramPowerTelemetryData( + currentSample, pm_gpu_power_telemetry_info); result != CTL_RESULT_SUCCESS) + { + success = false; + IGCL_ERR(result); + } + + if (const auto result = GetFanPowerTelemetryData(currentSample, + pm_gpu_power_telemetry_info); result != CTL_RESULT_SUCCESS) + { + success = false; + IGCL_ERR(result); + } + + if (const auto result = GetPsuPowerTelemetryData( + currentSample, pm_gpu_power_telemetry_info); result != CTL_RESULT_SUCCESS) + { + success = false; + IGCL_ERR(result); + } + + // Get memory state and bandwidth data + if (memoryModules.size() > 0) { + GetMemStateTelemetryData(memory_state, + pm_gpu_power_telemetry_info); + GetMemBandwidthData(memory_bandwidth, + pm_gpu_power_telemetry_info); + } + + // Save and convert the gpu sustained power limit + pm_gpu_power_telemetry_info.gpu_sustained_power_limit_w = + gpu_sustained_power_limit_mw / 1000.; + SetTelemetryCapBit(GpuTelemetryCapBits::gpu_sustained_power_limit); + + // Save off the calculated PresentMon power telemetry values. These are + // saved off for clients to extrace out timing information based on QPC + SavePmPowerTelemetryData(pm_gpu_power_telemetry_info); + } + + // Save off the raw control library data for calculating time delta + // and usage data. + if (const auto result = SaveTelemetry(currentSample, memory_bandwidth); + result != CTL_RESULT_SUCCESS) + { + success = false; + IGCL_ERR(result); + } + + return success; + } + // TODO: stop using CTL stuff for non-ctl logic // TODO: better functional programming - ctl_result_t IntelPowerTelemetryAdapter::GetTimeDelta(const ctl_power_telemetry_t& currentSample) + template + ctl_result_t IntelPowerTelemetryAdapter::GetTimeDelta(const T& currentSample) { - if (!previousSample) { + if (!previousSampleVariant.index()) { // We do not have a previous power telemetry item to calculate time // delta against. time_delta_ = 0.f; } else { - if (currentSample.timeStamp.type == CTL_DATA_TYPE_DOUBLE) { + auto previousSample = std::get_if(&previousSampleVariant); + if (previousSample && currentSample.timeStamp.type == CTL_DATA_TYPE_DOUBLE) { time_delta_ = currentSample.timeStamp.value.datadouble - previousSample->timeStamp.value.datadouble; } @@ -254,12 +336,14 @@ namespace pwr::intel return CTL_RESULT_SUCCESS; } + template ctl_result_t IntelPowerTelemetryAdapter::GetGPUPowerTelemetryData( - const ctl_power_telemetry_t& currentSample, + const T& currentSample, PresentMonPowerTelemetryInfo& pm_gpu_power_telemetry_info) { ctl_result_t result; + auto previousSample = std::get_if(&previousSampleVariant); if (!previousSample) { return CTL_RESULT_ERROR_INVALID_ARGUMENT; } @@ -353,12 +437,14 @@ namespace pwr::intel return result; } + template ctl_result_t IntelPowerTelemetryAdapter::GetVramPowerTelemetryData( - const ctl_power_telemetry_t& currentSample, + const T& currentSample, PresentMonPowerTelemetryInfo& pm_gpu_power_telemetry_info) { ctl_result_t result; + auto previousSample = std::get_if(&previousSampleVariant); if (!previousSample) { return CTL_RESULT_ERROR_INVALID_ARGUMENT; } @@ -394,22 +480,79 @@ namespace pwr::intel return result; } - result = GetPowerTelemetryItemUsage( - currentSample.vramReadBandwidthCounter, - previousSample->vramReadBandwidthCounter, - pm_gpu_power_telemetry_info.gpu_mem_read_bandwidth_bps, - GpuTelemetryCapBits::gpu_mem_read_bandwidth); - if (result != CTL_RESULT_SUCCESS) { - return result; + // bandwidth telemetry has 2 possible paths for aquisition + if constexpr (std::same_as) { + using namespace pmon::util; + if (useNewBandwidthTelemetry) { + double gpuMemReadBandwidthMegabytesPerSecond = 0; + result = GetInstantaneousPowerTelemetryItem( + currentSample.vramReadBandwidth, + gpuMemReadBandwidthMegabytesPerSecond, + GpuTelemetryCapBits::gpu_mem_read_bandwidth); + // we need bandwidth in bits per second, IGCL V1 gives in megabytes per second + pm_gpu_power_telemetry_info.gpu_mem_read_bandwidth_bps = ConvertMagnitudePrefix( + gpuMemReadBandwidthMegabytesPerSecond * 8., + MagnitudePrefix::Mega, + MagnitudePrefix::Base); + pmlog_verb(v::gpu)(std::format("VRAM read BW V1: bSupported [{}] type [{}] units [{}] data_64 [{}] data_double [{}] info []{}", + currentSample.vramReadBandwidth.bSupported, (int)currentSample.vramReadBandwidth.type, + (int)currentSample.vramReadBandwidth.units, currentSample.vramReadBandwidth.value.datau64, + currentSample.vramReadBandwidth.value.datadouble, pm_gpu_power_telemetry_info.gpu_mem_read_bandwidth_bps)); + if (result != CTL_RESULT_SUCCESS || + !(HasTelemetryCapBit(GpuTelemetryCapBits::gpu_mem_read_bandwidth))) { + useNewBandwidthTelemetry = false; + pmlog_info("V1 vram bandwidth not available, falling back to V0 counters") + .code(result).pmwatch(HasTelemetryCapBit(GpuTelemetryCapBits::gpu_mem_read_bandwidth)); + } + } + if (useNewBandwidthTelemetry) { + double gpuMemWriteBandwidthMegabytesPerSecond = 0; + result = GetInstantaneousPowerTelemetryItem( + currentSample.vramWriteBandwidth, + gpuMemWriteBandwidthMegabytesPerSecond, + GpuTelemetryCapBits::gpu_mem_write_bandwidth); + // we need bandwidth in bits per second, IGCL V1 gives in megabytes per second + pm_gpu_power_telemetry_info.gpu_mem_write_bandwidth_bps = ConvertMagnitudePrefix( + gpuMemWriteBandwidthMegabytesPerSecond * 8., + MagnitudePrefix::Mega, + MagnitudePrefix::Base); + pmlog_verb(v::gpu)(std::format("VRAM write BW V1: bSupported [{}] type [{}] units [{}] data_64 [{}] data_double [{}] info []{}", + currentSample.vramWriteBandwidth.bSupported, (int)currentSample.vramWriteBandwidth.type, + (int)currentSample.vramWriteBandwidth.units, currentSample.vramWriteBandwidth.value.datau64, + currentSample.vramWriteBandwidth.value.datadouble, pm_gpu_power_telemetry_info.gpu_mem_write_bandwidth_bps)); + if (result != CTL_RESULT_SUCCESS || + !(HasTelemetryCapBit(GpuTelemetryCapBits::gpu_mem_write_bandwidth))) { + useNewBandwidthTelemetry = false; + pmlog_info("V1 vram bandwidth not available, falling back to V0 counters") + .code(result).pmwatch(HasTelemetryCapBit(GpuTelemetryCapBits::gpu_mem_write_bandwidth)); + } + } } - - result = GetPowerTelemetryItemUsage( - currentSample.vramWriteBandwidthCounter, - previousSample->vramWriteBandwidthCounter, - pm_gpu_power_telemetry_info.gpu_mem_write_bandwidth_bps, - GpuTelemetryCapBits::gpu_mem_write_bandwidth); - if (result != CTL_RESULT_SUCCESS) { - return result; + if (!useNewBandwidthTelemetry) { + result = GetPowerTelemetryItemUsage( + currentSample.vramReadBandwidthCounter, + previousSample->vramReadBandwidthCounter, + pm_gpu_power_telemetry_info.gpu_mem_read_bandwidth_bps, + GpuTelemetryCapBits::gpu_mem_read_bandwidth); + pmlog_verb(v::gpu)(std::format("VRAM read BW V0: bSupported [{}] type [{}] units [{}] data_64 [{}] data_double [{}] info []{}", + currentSample.vramReadBandwidthCounter.bSupported, (int)currentSample.vramReadBandwidthCounter.type, + (int)currentSample.vramReadBandwidthCounter.units, currentSample.vramReadBandwidthCounter.value.datau64, + currentSample.vramReadBandwidthCounter.value.datadouble, pm_gpu_power_telemetry_info.gpu_mem_read_bandwidth_bps)); + if (result != CTL_RESULT_SUCCESS) { + return result; + } + result = GetPowerTelemetryItemUsage( + currentSample.vramWriteBandwidthCounter, + previousSample->vramWriteBandwidthCounter, + pm_gpu_power_telemetry_info.gpu_mem_write_bandwidth_bps, + GpuTelemetryCapBits::gpu_mem_write_bandwidth); + pmlog_verb(v::gpu)(std::format("VRAM write BW V0: bSupported [{}] type [{}] units [{}] data_64 [{}] data_double [{}] info []{}", + currentSample.vramWriteBandwidthCounter.bSupported, (int)currentSample.vramWriteBandwidthCounter.type, + (int)currentSample.vramWriteBandwidthCounter.units, currentSample.vramWriteBandwidthCounter.value.datau64, + currentSample.vramWriteBandwidthCounter.value.datadouble, pm_gpu_power_telemetry_info.gpu_mem_write_bandwidth_bps)); + if (result != CTL_RESULT_SUCCESS) { + return result; + } } result = GetPowerTelemetryItemUsage(currentSample.vramEnergyCounter, @@ -441,8 +584,9 @@ namespace pwr::intel return result; } + template ctl_result_t IntelPowerTelemetryAdapter::GetFanPowerTelemetryData( - const ctl_power_telemetry_t& currentSample, + const T& currentSample, PresentMonPowerTelemetryInfo& pm_gpu_power_telemetry_info) { ctl_result_t result = CTL_RESULT_SUCCESS; @@ -466,12 +610,14 @@ namespace pwr::intel return result; } + template ctl_result_t IntelPowerTelemetryAdapter::GetPsuPowerTelemetryData( - const ctl_power_telemetry_t& currentSample, + const T& currentSample, PresentMonPowerTelemetryInfo& pm_gpu_power_telemetry_info) { ctl_result_t result = CTL_RESULT_SUCCESS; + auto previousSample = std::get_if(&previousSampleVariant); if (!previousSample) { return CTL_RESULT_ERROR_INVALID_ARGUMENT; } @@ -584,6 +730,14 @@ namespace pwr::intel previous_telemetry_item.value.datadouble; pm_telemetry_value = (data_delta / time_delta_); SetTelemetryCapBit(telemetry_cap_bit); + if (telemetry_cap_bit == GpuTelemetryCapBits::vram_power && useV1PowerTelemetry) { + if (current_telemetry_item.value.datadouble < previous_telemetry_item.value.datadouble) { + pm_telemetry_value = gpu_mem_power_cache_value_w_; + } + else { + gpu_mem_power_cache_value_w_ = pm_telemetry_value; + } + } } else if (current_telemetry_item.type == CTL_DATA_TYPE_INT64) { auto data_delta = current_telemetry_item.value.data64 - @@ -597,17 +751,15 @@ namespace pwr::intel pm_telemetry_value = static_cast(data_delta) / time_delta_; SetTelemetryCapBit(telemetry_cap_bit); - // TODO: File issue with control lib to determine why read bandwidth - // occasionally returns what appears to be an invalid counter value. If the currently monotomic value - // is less than the previous value OR the calculated bandwidth is greater then the max bandwidth - // return back the cached value - if (telemetry_cap_bit == GpuTelemetryCapBits::gpu_mem_read_bandwidth) { - if ((current_telemetry_item.value.datau64 < previous_telemetry_item.value.datau64) || - ((current_telemetry_item.value.datau64 - previous_telemetry_item.value.datau64) > gpu_mem_max_bw_cache_value_bps_)) { - pm_telemetry_value = gpu_mem_read_bw_cache_value_bps_; - } else { - gpu_mem_read_bw_cache_value_bps_ = pm_telemetry_value; - } + // stopgap measure for bad vram bandwidth telemetry coming out of V0 api + if (telemetry_cap_bit == GpuTelemetryCapBits::gpu_mem_read_bandwidth && !useNewBandwidthTelemetry) { + if ((current_telemetry_item.value.datau64 < previous_telemetry_item.value.datau64) || + ((current_telemetry_item.value.datau64 - previous_telemetry_item.value.datau64) > gpu_mem_max_bw_cache_value_bps_)) { + pm_telemetry_value = gpu_mem_read_bw_cache_value_bps_; + } + else { + gpu_mem_read_bw_cache_value_bps_ = pm_telemetry_value; + } } } else { @@ -618,24 +770,26 @@ namespace pwr::intel return CTL_RESULT_SUCCESS; } + template ctl_result_t IntelPowerTelemetryAdapter::SaveTelemetry( - const ctl_power_telemetry_t& currentSample, + const T& currentSample, const ctl_mem_bandwidth_t& currentMemBandwidthSample) { if (currentSample.timeStamp.type == CTL_DATA_TYPE_DOUBLE) { - previousSample = currentSample; + previousSampleVariant = currentSample; } else { return CTL_RESULT_ERROR_INVALID_ARGUMENT; } - previousMemBwSample = currentMemBandwidthSample; - return CTL_RESULT_SUCCESS; } void IntelPowerTelemetryAdapter::SavePmPowerTelemetryData(PresentMonPowerTelemetryInfo& info) { + pmlog_verb(v::gpu)(std::format("Saving gathered telemetry info to history; read bw [{}] write bw [{}]", + info.gpu_mem_read_bandwidth_bps, info.gpu_mem_write_bandwidth_bps + )); std::lock_guard lock(historyMutex); history.Push(info); } diff --git a/IntelPresentMon/ControlLib/IntelPowerTelemetryAdapter.h b/IntelPresentMon/ControlLib/IntelPowerTelemetryAdapter.h index 8e07b662..77cd6475 100644 --- a/IntelPresentMon/ControlLib/IntelPowerTelemetryAdapter.h +++ b/IntelPresentMon/ControlLib/IntelPowerTelemetryAdapter.h @@ -6,8 +6,10 @@ #include "igcl_api.h" #include "PowerTelemetryAdapter.h" #include "TelemetryHistory.h" +#include "ctlpvttemp_api.h" #include #include +#include namespace pwr::intel { @@ -27,23 +29,37 @@ namespace pwr::intel class NonGraphicsDeviceException : public std::exception {}; private: + // types + using SampleVariantType = std::variant; // functions + template + bool GatherSampleData(T& currentSample, + ctl_mem_state_t& memory_state, + ctl_mem_bandwidth_t& memory_bandwidth, + double gpu_sustained_power_limit_mw, + uint64_t qpc); + ctl_result_t EnumerateMemoryModules(); - ctl_result_t GetTimeDelta(const ctl_power_telemetry_t& power_telemetry); + template + ctl_result_t GetTimeDelta(const T& power_telemetry); // TODO: meld these into the sample function + template ctl_result_t GetGPUPowerTelemetryData( - const ctl_power_telemetry_t& power_telemetry, + const T& power_telemetry, PresentMonPowerTelemetryInfo& pm_gpu_power_telemetry_info); + template ctl_result_t GetVramPowerTelemetryData( - const ctl_power_telemetry_t& power_telemetry, + const T& power_telemetry, PresentMonPowerTelemetryInfo& pm_gpu_power_telemetry_info); + template ctl_result_t GetFanPowerTelemetryData( - const ctl_power_telemetry_t& power_telemetry, + const T& power_telemetry, PresentMonPowerTelemetryInfo& pm_gpu_power_telemetry_info); + template ctl_result_t GetPsuPowerTelemetryData( - const ctl_power_telemetry_t& power_telemetry, + const T& power_telemetry, PresentMonPowerTelemetryInfo& pm_gpu_power_telemetry_info); void GetMemStateTelemetryData( @@ -54,8 +70,9 @@ namespace pwr::intel PresentMonPowerTelemetryInfo& pm_gpu_power_telemetry_info); void SavePmPowerTelemetryData(PresentMonPowerTelemetryInfo& pm_gpu_power_telemetry_info); + template ctl_result_t SaveTelemetry( - const ctl_power_telemetry_t& power_telemetry, + const T& power_telemetry, const ctl_mem_bandwidth_t& mem_bandwidth); // TODO: put these as part of the telemetry data object @@ -82,12 +99,17 @@ namespace pwr::intel std::vector memoryModules; mutable std::mutex historyMutex; TelemetryHistory history{ PowerTelemetryAdapter::defaultHistorySize }; - std::optional previousSample; - std::optional previousMemBwSample; + SampleVariantType previousSampleVariant; + bool useV1PowerTelemetry = true; + bool useNewBandwidthTelemetry = true; double time_delta_ = 0.f; - // TODO: File issue with control lib to determine why readbandwidth - // occasionally returns what appears to be an invalid counter value + // in V0 api readbandwidth occasionally returns what appears to be an invalid counter value + // this is a stopgap to cover for cases where IGCL is reporting bad data in V0 bandwidth telemetry double gpu_mem_read_bw_cache_value_bps_ = 0.; uint64_t gpu_mem_max_bw_cache_value_bps_ = 0; + // in V1 api vramEnergyCounter rolls over after hitting 1000.0 causing the current sample to be + // less than the previous sample. Working with IGCL to determine the correct behavior for roll + // over occasions + double gpu_mem_power_cache_value_w_ = 0; }; } \ No newline at end of file diff --git a/IntelPresentMon/ControlLib/IntelPowerTelemetryProvider.cpp b/IntelPresentMon/ControlLib/IntelPowerTelemetryProvider.cpp index 21ed2b01..6469b319 100644 --- a/IntelPresentMon/ControlLib/IntelPowerTelemetryProvider.cpp +++ b/IntelPresentMon/ControlLib/IntelPowerTelemetryProvider.cpp @@ -13,17 +13,23 @@ namespace pwr::intel // to obtain a legit application Id or is default fine? ctl_init_args_t ctl_init_args{ .Size = sizeof(ctl_init_args), - .Version = 0, .AppVersion = CTL_MAKE_VERSION(CTL_IMPL_MAJOR_VERSION, CTL_IMPL_MINOR_VERSION), .flags = CTL_INIT_FLAG_USE_LEVEL_ZERO, }; // initialize the igcl api if (const auto result = ctlInit(&ctl_init_args, &apiHandle); result != CTL_RESULT_SUCCESS) { - IGCL_ERR(result); + if (result != CTL_RESULT_ERROR_NOT_INITIALIZED) { + IGCL_ERR(result); + } throw Except("Unable to initialize Intel Graphics Control Library"); } + pmlog_info(std::format("Initialized IGCL with version={}.{}", + CTL_MAJOR_VERSION(ctl_init_args.SupportedVersion), + CTL_MINOR_VERSION(ctl_init_args.SupportedVersion) + )); + // enumerate devices available via igcl (get a list of device handles) std::vector handles; { diff --git a/IntelPresentMon/ControlLib/Logging.h b/IntelPresentMon/ControlLib/Logging.h index d157ac22..311b6f26 100644 --- a/IntelPresentMon/ControlLib/Logging.h +++ b/IntelPresentMon/ControlLib/Logging.h @@ -4,6 +4,8 @@ #include #include #include "igcl_api.h" +#include "../CommonUtilities/log/Log.h" +#include "LoggingVerbose.h" namespace pwr::log { @@ -29,5 +31,5 @@ namespace pwr::log } } -#define IGCL_ERR(code) OutputDebugStringA(pwr::log::MakeIgclDebugErrorString((code), __LINE__, __FILE__, __FUNCTION__).c_str()) +#define IGCL_ERR(ec) pmlog_error("IGCL").code((unsigned int)ec); #define TELE_ERR(msg) OutputDebugStringA(pwr::log::MakeTelemetryDebugErrorString((msg), __LINE__, __FILE__, __FUNCTION__).c_str()) \ No newline at end of file diff --git a/IntelPresentMon/ControlLib/LoggingVerbose.h b/IntelPresentMon/ControlLib/LoggingVerbose.h new file mode 100644 index 00000000..d914518c --- /dev/null +++ b/IntelPresentMon/ControlLib/LoggingVerbose.h @@ -0,0 +1,10 @@ +#pragma once + +namespace pwr::v +{ +#ifndef VVV_GPU_TELEMETRY // system that reads power, temperature, etc. telemetry of graphics adapter devices + inline constexpr bool gpu = false; +#else + inline constexpr bool gpu = true; +#endif +} \ No newline at end of file diff --git a/IntelPresentMon/ControlLib/PowerTelemetryAdapter.h b/IntelPresentMon/ControlLib/PowerTelemetryAdapter.h index f5d5f65f..531c1c5c 100644 --- a/IntelPresentMon/ControlLib/PowerTelemetryAdapter.h +++ b/IntelPresentMon/ControlLib/PowerTelemetryAdapter.h @@ -27,12 +27,15 @@ namespace pwr { gpuTelemetryCapBits_.set(static_cast(telemetryCapBit)); } - std::bitset< - static_cast(GpuTelemetryCapBits::gpu_telemetry_count)> + std::bitset(GpuTelemetryCapBits::gpu_telemetry_count)> GetPowerTelemetryCapBits() { return gpuTelemetryCapBits_; } + bool HasTelemetryCapBit(GpuTelemetryCapBits bit) const + { + return gpuTelemetryCapBits_.test(size_t(bit)); + } // constants static constexpr size_t defaultHistorySize = 300; diff --git a/IntelPresentMon/ControlLib/cApiWrapper.cpp b/IntelPresentMon/ControlLib/cApiWrapper.cpp index 13ea795f..c881441a 100644 --- a/IntelPresentMon/ControlLib/cApiWrapper.cpp +++ b/IntelPresentMon/ControlLib/cApiWrapper.cpp @@ -19,6 +19,7 @@ #include #include +#include //#define CTL_APIEXPORT @@ -31,10 +32,16 @@ static HINSTANCE hinstLib = NULL; static ctl_runtime_path_args_t* pRuntimeArgs = NULL; +HINSTANCE GetLoaderHandle(void) +{ + return hinstLib; +} + /** * @brief Function to get DLL name based on app version * */ + #if defined(_WIN64) #define CTL_DLL_NAME L"ControlLib" #else @@ -54,10 +61,15 @@ ctl_result_t GetControlAPIDLLPath(ctl_init_args_t* pInitArgs, wchar_t* pwcDLLPat if (majorVersion > CTL_IMPL_MAJOR_VERSION) return CTL_RESULT_ERROR_UNSUPPORTED_VERSION; +#if (CTL_IMPL_MAJOR_VERSION > 1) if (majorVersion > 1) StringCbPrintfW(pwcDLLPath,CTL_DLL_PATH_LEN,L"%s%d.dll", CTL_DLL_NAME, majorVersion); else // just control_api.dll StringCbPrintfW(pwcDLLPath,CTL_DLL_PATH_LEN,L"%s.dll", CTL_DLL_NAME); +#else + StringCbPrintfW(pwcDLLPath,CTL_DLL_PATH_LEN,L"%s.dll", CTL_DLL_NAME); +#endif + } else if (pRuntimeArgs->pRuntimePath) { @@ -68,6 +80,7 @@ ctl_result_t GetControlAPIDLLPath(ctl_init_args_t* pInitArgs, wchar_t* pwcDLLPat } + /** * @brief Control Api Init * @@ -94,18 +107,27 @@ ctlInit( // special code - only for ctlInit() if (NULL == hinstLib) { - wchar_t strDLLPath[CTL_DLL_PATH_LEN]; - result = GetControlAPIDLLPath(pInitDesc, strDLLPath); + std::vector strDLLPath; + try + { + strDLLPath.resize(CTL_DLL_PATH_LEN); + } + catch (std::bad_alloc&) + { + return CTL_RESULT_ERROR_OUT_OF_DEVICE_MEMORY; + } + + result = GetControlAPIDLLPath(pInitDesc, strDLLPath.data()); if (result == CTL_RESULT_SUCCESS) { #ifdef WINDOWS_UWP - hinstLib = LoadPackagedLibrary(strDLLPath, 0); + hinstLib = LoadPackagedLibrary(strDLLPath.data(), 0); #else DWORD dwFlags = LOAD_LIBRARY_SEARCH_SYSTEM32; #ifdef _DEBUG dwFlags = dwFlags | LOAD_LIBRARY_SEARCH_APPLICATION_DIR; #endif - hinstLib = LoadLibraryExW(strDLLPath, NULL, dwFlags); + hinstLib = LoadLibraryExW(strDLLPath.data(), NULL, dwFlags); #endif if (NULL == hinstLib) { @@ -114,13 +136,15 @@ ctlInit( else if (pRuntimeArgs) { ctlSetRuntimePath(pRuntimeArgs); - } - } + } + } } - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnInit_t pfnInit = (ctl_pfnInit_t)GetProcAddress(hinstLib, "ctlInit"); + ctl_pfnInit_t pfnInit = (ctl_pfnInit_t)GetProcAddress(hinstLibPtr, "ctlInit"); if (pfnInit) { result = pfnInit(pInitDesc, phAPIHandle); @@ -154,9 +178,11 @@ ctlClose( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnClose_t pfnClose = (ctl_pfnClose_t)GetProcAddress(hinstLib, "ctlClose"); + ctl_pfnClose_t pfnClose = (ctl_pfnClose_t)GetProcAddress(hinstLibPtr, "ctlClose"); if (pfnClose) { result = pfnClose(hAPIHandle); @@ -171,7 +197,7 @@ ctlClose( if (NULL != hinstLib) { FreeLibrary(hinstLib); - hinstLib = NULL; + hinstLib = NULL; } } // set runtime args back to NULL @@ -207,9 +233,11 @@ ctlSetRuntimePath( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnSetRuntimePath_t pfnSetRuntimePath = (ctl_pfnSetRuntimePath_t)GetProcAddress(hinstLib, "ctlSetRuntimePath"); + ctl_pfnSetRuntimePath_t pfnSetRuntimePath = (ctl_pfnSetRuntimePath_t)GetProcAddress(hinstLibPtr, "ctlSetRuntimePath"); if (pfnSetRuntimePath) { result = pfnSetRuntimePath(pArgs); @@ -256,9 +284,11 @@ ctlWaitForPropertyChange( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnWaitForPropertyChange_t pfnWaitForPropertyChange = (ctl_pfnWaitForPropertyChange_t)GetProcAddress(hinstLib, "ctlWaitForPropertyChange"); + ctl_pfnWaitForPropertyChange_t pfnWaitForPropertyChange = (ctl_pfnWaitForPropertyChange_t)GetProcAddress(hinstLibPtr, "ctlWaitForPropertyChange"); if (pfnWaitForPropertyChange) { result = pfnWaitForPropertyChange(hDeviceAdapter, pArgs); @@ -294,9 +324,11 @@ ctlReservedCall( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnReservedCall_t pfnReservedCall = (ctl_pfnReservedCall_t)GetProcAddress(hinstLib, "ctlReservedCall"); + ctl_pfnReservedCall_t pfnReservedCall = (ctl_pfnReservedCall_t)GetProcAddress(hinstLibPtr, "ctlReservedCall"); if (pfnReservedCall) { result = pfnReservedCall(hDeviceAdapter, pArgs); @@ -332,9 +364,11 @@ ctlGetSupported3DCapabilities( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnGetSupported3DCapabilities_t pfnGetSupported3DCapabilities = (ctl_pfnGetSupported3DCapabilities_t)GetProcAddress(hinstLib, "ctlGetSupported3DCapabilities"); + ctl_pfnGetSupported3DCapabilities_t pfnGetSupported3DCapabilities = (ctl_pfnGetSupported3DCapabilities_t)GetProcAddress(hinstLibPtr, "ctlGetSupported3DCapabilities"); if (pfnGetSupported3DCapabilities) { result = pfnGetSupported3DCapabilities(hDAhandle, pFeatureCaps); @@ -370,9 +404,11 @@ ctlGetSet3DFeature( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnGetSet3DFeature_t pfnGetSet3DFeature = (ctl_pfnGetSet3DFeature_t)GetProcAddress(hinstLib, "ctlGetSet3DFeature"); + ctl_pfnGetSet3DFeature_t pfnGetSet3DFeature = (ctl_pfnGetSet3DFeature_t)GetProcAddress(hinstLibPtr, "ctlGetSet3DFeature"); if (pfnGetSet3DFeature) { result = pfnGetSet3DFeature(hDAhandle, pFeature); @@ -406,9 +442,11 @@ ctlCheckDriverVersion( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnCheckDriverVersion_t pfnCheckDriverVersion = (ctl_pfnCheckDriverVersion_t)GetProcAddress(hinstLib, "ctlCheckDriverVersion"); + ctl_pfnCheckDriverVersion_t pfnCheckDriverVersion = (ctl_pfnCheckDriverVersion_t)GetProcAddress(hinstLibPtr, "ctlCheckDriverVersion"); if (pfnCheckDriverVersion) { result = pfnCheckDriverVersion(hDeviceAdapter, version_info); @@ -452,9 +490,11 @@ ctlEnumerateDevices( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnEnumerateDevices_t pfnEnumerateDevices = (ctl_pfnEnumerateDevices_t)GetProcAddress(hinstLib, "ctlEnumerateDevices"); + ctl_pfnEnumerateDevices_t pfnEnumerateDevices = (ctl_pfnEnumerateDevices_t)GetProcAddress(hinstLibPtr, "ctlEnumerateDevices"); if (pfnEnumerateDevices) { result = pfnEnumerateDevices(hAPIHandle, pCount, phDevices); @@ -497,9 +537,11 @@ ctlEnumerateDisplayOutputs( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnEnumerateDisplayOutputs_t pfnEnumerateDisplayOutputs = (ctl_pfnEnumerateDisplayOutputs_t)GetProcAddress(hinstLib, "ctlEnumerateDisplayOutputs"); + ctl_pfnEnumerateDisplayOutputs_t pfnEnumerateDisplayOutputs = (ctl_pfnEnumerateDisplayOutputs_t)GetProcAddress(hinstLibPtr, "ctlEnumerateDisplayOutputs"); if (pfnEnumerateDisplayOutputs) { result = pfnEnumerateDisplayOutputs(hDeviceAdapter, pCount, phDisplayOutputs); @@ -510,6 +552,57 @@ ctlEnumerateDisplayOutputs( } +/** +* @brief Enumerate I2C Pin Pairs +* +* @details +* - Returns available list of I2C Pin-Pairs on a requested adapter +* +* @returns +* - CTL_RESULT_SUCCESS +* - CTL_RESULT_ERROR_UNINITIALIZED +* - CTL_RESULT_ERROR_DEVICE_LOST +* - CTL_RESULT_ERROR_INVALID_NULL_HANDLE +* + `nullptr == hDeviceAdapter` +* - CTL_RESULT_ERROR_INVALID_NULL_POINTER +* + `nullptr == pCount` +* - ::CTL_RESULT_ERROR_UNSUPPORTED_VERSION - "Unsupported version" +* - ::CTL_RESULT_ERROR_INVALID_NULL_POINTER - "The incoming pointer pCount is null" +* - ::CTL_RESULT_ERROR_INVALID_SIZE - "The supplied Count is not equal to actual number of i2c pin-pair instances" +*/ +ctl_result_t CTL_APICALL +ctlEnumerateI2CPinPairs( + ctl_device_adapter_handle_t hDeviceAdapter, ///< [in][release] handle to device adapter + uint32_t* pCount, ///< [in,out][release] pointer to the number of i2c pin-pair instances. If + ///< count is zero, then the api will update the value with the total + ///< number of i2c pin-pair instances available. If count is non-zero and + ///< matches the avaialble number of pin-pairs, then the api will only + ///< return the avaialble number of i2c pin-pair instances in phI2cPinPairs. + ctl_i2c_pin_pair_handle_t* phI2cPinPairs ///< [out][optional][release][range(0, *pCount)] array of i2c pin pair + ///< instance handles. Need to be allocated by Caller when supplying the + ///< *pCount > 0. + ///< If Count is not equal to actual number of i2c pin-pair instances, it + ///< will return CTL_RESULT_ERROR_INVALID_SIZE. + ) +{ + ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; + + + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) + { + ctl_pfnEnumerateI2CPinPairs_t pfnEnumerateI2CPinPairs = (ctl_pfnEnumerateI2CPinPairs_t)GetProcAddress(hinstLibPtr, "ctlEnumerateI2CPinPairs"); + if (pfnEnumerateI2CPinPairs) + { + result = pfnEnumerateI2CPinPairs(hDeviceAdapter, pCount, phI2cPinPairs); + } + } + + return result; +} + + /** * @brief Get Device Properties * @@ -535,9 +628,11 @@ ctlGetDeviceProperties( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnGetDeviceProperties_t pfnGetDeviceProperties = (ctl_pfnGetDeviceProperties_t)GetProcAddress(hinstLib, "ctlGetDeviceProperties"); + ctl_pfnGetDeviceProperties_t pfnGetDeviceProperties = (ctl_pfnGetDeviceProperties_t)GetProcAddress(hinstLibPtr, "ctlGetDeviceProperties"); if (pfnGetDeviceProperties) { result = pfnGetDeviceProperties(hDAhandle, pProperties); @@ -573,9 +668,11 @@ ctlGetDisplayProperties( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnGetDisplayProperties_t pfnGetDisplayProperties = (ctl_pfnGetDisplayProperties_t)GetProcAddress(hinstLib, "ctlGetDisplayProperties"); + ctl_pfnGetDisplayProperties_t pfnGetDisplayProperties = (ctl_pfnGetDisplayProperties_t)GetProcAddress(hinstLibPtr, "ctlGetDisplayProperties"); if (pfnGetDisplayProperties) { result = pfnGetDisplayProperties(hDisplayOutput, pProperties); @@ -611,9 +708,11 @@ ctlGetAdaperDisplayEncoderProperties( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnGetAdaperDisplayEncoderProperties_t pfnGetAdaperDisplayEncoderProperties = (ctl_pfnGetAdaperDisplayEncoderProperties_t)GetProcAddress(hinstLib, "ctlGetAdaperDisplayEncoderProperties"); + ctl_pfnGetAdaperDisplayEncoderProperties_t pfnGetAdaperDisplayEncoderProperties = (ctl_pfnGetAdaperDisplayEncoderProperties_t)GetProcAddress(hinstLibPtr, "ctlGetAdaperDisplayEncoderProperties"); if (pfnGetAdaperDisplayEncoderProperties) { result = pfnGetAdaperDisplayEncoderProperties(hDisplayOutput, pProperties); @@ -652,9 +751,11 @@ ctlGetZeDevice( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnGetZeDevice_t pfnGetZeDevice = (ctl_pfnGetZeDevice_t)GetProcAddress(hinstLib, "ctlGetZeDevice"); + ctl_pfnGetZeDevice_t pfnGetZeDevice = (ctl_pfnGetZeDevice_t)GetProcAddress(hinstLibPtr, "ctlGetZeDevice"); if (pfnGetZeDevice) { result = pfnGetZeDevice(hDAhandle, pZeDevice, hInstance); @@ -690,9 +791,11 @@ ctlGetSharpnessCaps( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnGetSharpnessCaps_t pfnGetSharpnessCaps = (ctl_pfnGetSharpnessCaps_t)GetProcAddress(hinstLib, "ctlGetSharpnessCaps"); + ctl_pfnGetSharpnessCaps_t pfnGetSharpnessCaps = (ctl_pfnGetSharpnessCaps_t)GetProcAddress(hinstLibPtr, "ctlGetSharpnessCaps"); if (pfnGetSharpnessCaps) { result = pfnGetSharpnessCaps(hDisplayOutput, pSharpnessCaps); @@ -728,9 +831,11 @@ ctlGetCurrentSharpness( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnGetCurrentSharpness_t pfnGetCurrentSharpness = (ctl_pfnGetCurrentSharpness_t)GetProcAddress(hinstLib, "ctlGetCurrentSharpness"); + ctl_pfnGetCurrentSharpness_t pfnGetCurrentSharpness = (ctl_pfnGetCurrentSharpness_t)GetProcAddress(hinstLibPtr, "ctlGetCurrentSharpness"); if (pfnGetCurrentSharpness) { result = pfnGetCurrentSharpness(hDisplayOutput, pSharpnessSettings); @@ -766,9 +871,11 @@ ctlSetCurrentSharpness( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnSetCurrentSharpness_t pfnSetCurrentSharpness = (ctl_pfnSetCurrentSharpness_t)GetProcAddress(hinstLib, "ctlSetCurrentSharpness"); + ctl_pfnSetCurrentSharpness_t pfnSetCurrentSharpness = (ctl_pfnSetCurrentSharpness_t)GetProcAddress(hinstLibPtr, "ctlSetCurrentSharpness"); if (pfnSetCurrentSharpness) { result = pfnSetCurrentSharpness(hDisplayOutput, pSharpnessSettings); @@ -783,7 +890,7 @@ ctlSetCurrentSharpness( * @brief I2C Access * * @details -* - The application does I2C aceess +* - Interface to access I2C using display handle as identifier. * * @returns * - CTL_RESULT_SUCCESS @@ -812,9 +919,11 @@ ctlI2CAccess( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnI2CAccess_t pfnI2CAccess = (ctl_pfnI2CAccess_t)GetProcAddress(hinstLib, "ctlI2CAccess"); + ctl_pfnI2CAccess_t pfnI2CAccess = (ctl_pfnI2CAccess_t)GetProcAddress(hinstLibPtr, "ctlI2CAccess"); if (pfnI2CAccess) { result = pfnI2CAccess(hDisplayOutput, pI2cAccessArgs); @@ -825,11 +934,62 @@ ctlI2CAccess( } +/** +* @brief I2C Access On Pin Pair +* +* @details +* - Interface to access I2C using pin-pair handle as identifier. +* +* @returns +* - CTL_RESULT_SUCCESS +* - CTL_RESULT_ERROR_UNINITIALIZED +* - CTL_RESULT_ERROR_DEVICE_LOST +* - CTL_RESULT_ERROR_INVALID_NULL_HANDLE +* + `nullptr == hI2cPinPair` +* - CTL_RESULT_ERROR_INVALID_NULL_POINTER +* + `nullptr == pI2cAccessArgs` +* - ::CTL_RESULT_ERROR_UNSUPPORTED_VERSION - "Unsupported version" +* - ::CTL_RESULT_ERROR_INVALID_OPERATION_TYPE - "Invalid operation type" +* - ::CTL_RESULT_ERROR_INVALID_SIZE - "Invalid I2C data size" +* - ::CTL_RESULT_ERROR_INVALID_ARGUMENT - "Invalid Args passed" +* - ::CTL_RESULT_ERROR_INSUFFICIENT_PERMISSIONS - "Insufficient permissions" +* - ::CTL_RESULT_ERROR_INVALID_NULL_POINTER - "Invalid null pointer" +* - ::CTL_RESULT_ERROR_NULL_OS_DISPLAY_OUTPUT_HANDLE - "Null OS display output handle" +* - ::CTL_RESULT_ERROR_NULL_OS_INTERFACE - "Null OS interface" +* - ::CTL_RESULT_ERROR_NULL_OS_ADAPATER_HANDLE - "Null OS adapter handle" +* - ::CTL_RESULT_ERROR_KMD_CALL - "Kernal mode driver call failure" +* - ::CTL_RESULT_ERROR_INVALID_NULL_HANDLE - "Invalid or Null handle passed" +* - ::CTL_RESULT_ERROR_EXTERNAL_DISPLAY_ATTACHED - "Write to Address not allowed when Display is connected" +*/ +ctl_result_t CTL_APICALL +ctlI2CAccessOnPinPair( + ctl_i2c_pin_pair_handle_t hI2cPinPair, ///< [in] Handle to I2C pin pair. + ctl_i2c_access_pinpair_args_t* pI2cAccessArgs ///< [in,out] I2c access arguments. + ) +{ + ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; + + + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) + { + ctl_pfnI2CAccessOnPinPair_t pfnI2CAccessOnPinPair = (ctl_pfnI2CAccessOnPinPair_t)GetProcAddress(hinstLibPtr, "ctlI2CAccessOnPinPair"); + if (pfnI2CAccessOnPinPair) + { + result = pfnI2CAccessOnPinPair(hI2cPinPair, pI2cAccessArgs); + } + } + + return result; +} + + /** * @brief Aux Access * * @details -* - The application does Aux aceess, PSR needs to be disabled for AUX +* - The application does Aux access, PSR needs to be disabled for AUX * call. * * @returns @@ -860,9 +1020,11 @@ ctlAUXAccess( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnAUXAccess_t pfnAUXAccess = (ctl_pfnAUXAccess_t)GetProcAddress(hinstLib, "ctlAUXAccess"); + ctl_pfnAUXAccess_t pfnAUXAccess = (ctl_pfnAUXAccess_t)GetProcAddress(hinstLibPtr, "ctlAUXAccess"); if (pfnAUXAccess) { result = pfnAUXAccess(hDisplayOutput, pAuxAccessArgs); @@ -898,9 +1060,11 @@ ctlGetPowerOptimizationCaps( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnGetPowerOptimizationCaps_t pfnGetPowerOptimizationCaps = (ctl_pfnGetPowerOptimizationCaps_t)GetProcAddress(hinstLib, "ctlGetPowerOptimizationCaps"); + ctl_pfnGetPowerOptimizationCaps_t pfnGetPowerOptimizationCaps = (ctl_pfnGetPowerOptimizationCaps_t)GetProcAddress(hinstLibPtr, "ctlGetPowerOptimizationCaps"); if (pfnGetPowerOptimizationCaps) { result = pfnGetPowerOptimizationCaps(hDisplayOutput, pPowerOptimizationCaps); @@ -938,9 +1102,11 @@ ctlGetPowerOptimizationSetting( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnGetPowerOptimizationSetting_t pfnGetPowerOptimizationSetting = (ctl_pfnGetPowerOptimizationSetting_t)GetProcAddress(hinstLib, "ctlGetPowerOptimizationSetting"); + ctl_pfnGetPowerOptimizationSetting_t pfnGetPowerOptimizationSetting = (ctl_pfnGetPowerOptimizationSetting_t)GetProcAddress(hinstLibPtr, "ctlGetPowerOptimizationSetting"); if (pfnGetPowerOptimizationSetting) { result = pfnGetPowerOptimizationSetting(hDisplayOutput, pPowerOptimizationSettings); @@ -968,6 +1134,7 @@ ctlGetPowerOptimizationSetting( * - ::CTL_RESULT_ERROR_UNSUPPORTED_VERSION - "Unsupported version" * - ::CTL_RESULT_ERROR_INVALID_POWERFEATURE_OPTIMIZATION_FLAG - "Unsupported PowerOptimizationFeature" * - ::CTL_RESULT_ERROR_INVALID_POWERSOURCE_TYPE_FOR_DPST - "DPST is supported only in DC Mode" +* - ::CTL_RESULT_ERROR_SET_FBC_FEATURE_NOT_SUPPORTED - "Set FBC Feature not supported" */ ctl_result_t CTL_APICALL ctlSetPowerOptimizationSetting( @@ -978,9 +1145,11 @@ ctlSetPowerOptimizationSetting( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnSetPowerOptimizationSetting_t pfnSetPowerOptimizationSetting = (ctl_pfnSetPowerOptimizationSetting_t)GetProcAddress(hinstLib, "ctlSetPowerOptimizationSetting"); + ctl_pfnSetPowerOptimizationSetting_t pfnSetPowerOptimizationSetting = (ctl_pfnSetPowerOptimizationSetting_t)GetProcAddress(hinstLibPtr, "ctlSetPowerOptimizationSetting"); if (pfnSetPowerOptimizationSetting) { result = pfnSetPowerOptimizationSetting(hDisplayOutput, pPowerOptimizationSettings); @@ -1020,9 +1189,11 @@ ctlSetBrightnessSetting( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnSetBrightnessSetting_t pfnSetBrightnessSetting = (ctl_pfnSetBrightnessSetting_t)GetProcAddress(hinstLib, "ctlSetBrightnessSetting"); + ctl_pfnSetBrightnessSetting_t pfnSetBrightnessSetting = (ctl_pfnSetBrightnessSetting_t)GetProcAddress(hinstLibPtr, "ctlSetBrightnessSetting"); if (pfnSetBrightnessSetting) { result = pfnSetBrightnessSetting(hDisplayOutput, pSetBrightnessSetting); @@ -1061,9 +1232,11 @@ ctlGetBrightnessSetting( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnGetBrightnessSetting_t pfnGetBrightnessSetting = (ctl_pfnGetBrightnessSetting_t)GetProcAddress(hinstLib, "ctlGetBrightnessSetting"); + ctl_pfnGetBrightnessSetting_t pfnGetBrightnessSetting = (ctl_pfnGetBrightnessSetting_t)GetProcAddress(hinstLibPtr, "ctlGetBrightnessSetting"); if (pfnGetBrightnessSetting) { result = pfnGetBrightnessSetting(hDisplayOutput, pGetBrightnessSetting); @@ -1113,9 +1286,11 @@ ctlPixelTransformationGetConfig( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnPixelTransformationGetConfig_t pfnPixelTransformationGetConfig = (ctl_pfnPixelTransformationGetConfig_t)GetProcAddress(hinstLib, "ctlPixelTransformationGetConfig"); + ctl_pfnPixelTransformationGetConfig_t pfnPixelTransformationGetConfig = (ctl_pfnPixelTransformationGetConfig_t)GetProcAddress(hinstLibPtr, "ctlPixelTransformationGetConfig"); if (pfnPixelTransformationGetConfig) { result = pfnPixelTransformationGetConfig(hDisplayOutput, pPixTxGetConfigArgs); @@ -1166,9 +1341,11 @@ ctlPixelTransformationSetConfig( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnPixelTransformationSetConfig_t pfnPixelTransformationSetConfig = (ctl_pfnPixelTransformationSetConfig_t)GetProcAddress(hinstLib, "ctlPixelTransformationSetConfig"); + ctl_pfnPixelTransformationSetConfig_t pfnPixelTransformationSetConfig = (ctl_pfnPixelTransformationSetConfig_t)GetProcAddress(hinstLibPtr, "ctlPixelTransformationSetConfig"); if (pfnPixelTransformationSetConfig) { result = pfnPixelTransformationSetConfig(hDisplayOutput, pPixTxSetConfigArgs); @@ -1211,9 +1388,11 @@ ctlPanelDescriptorAccess( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnPanelDescriptorAccess_t pfnPanelDescriptorAccess = (ctl_pfnPanelDescriptorAccess_t)GetProcAddress(hinstLib, "ctlPanelDescriptorAccess"); + ctl_pfnPanelDescriptorAccess_t pfnPanelDescriptorAccess = (ctl_pfnPanelDescriptorAccess_t)GetProcAddress(hinstLibPtr, "ctlPanelDescriptorAccess"); if (pfnPanelDescriptorAccess) { result = pfnPanelDescriptorAccess(hDisplayOutput, pPanelDescriptorAccessArgs); @@ -1249,9 +1428,11 @@ ctlGetSupportedRetroScalingCapability( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnGetSupportedRetroScalingCapability_t pfnGetSupportedRetroScalingCapability = (ctl_pfnGetSupportedRetroScalingCapability_t)GetProcAddress(hinstLib, "ctlGetSupportedRetroScalingCapability"); + ctl_pfnGetSupportedRetroScalingCapability_t pfnGetSupportedRetroScalingCapability = (ctl_pfnGetSupportedRetroScalingCapability_t)GetProcAddress(hinstLibPtr, "ctlGetSupportedRetroScalingCapability"); if (pfnGetSupportedRetroScalingCapability) { result = pfnGetSupportedRetroScalingCapability(hDAhandle, pRetroScalingCaps); @@ -1288,9 +1469,11 @@ ctlGetSetRetroScaling( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnGetSetRetroScaling_t pfnGetSetRetroScaling = (ctl_pfnGetSetRetroScaling_t)GetProcAddress(hinstLib, "ctlGetSetRetroScaling"); + ctl_pfnGetSetRetroScaling_t pfnGetSetRetroScaling = (ctl_pfnGetSetRetroScaling_t)GetProcAddress(hinstLibPtr, "ctlGetSetRetroScaling"); if (pfnGetSetRetroScaling) { result = pfnGetSetRetroScaling(hDAhandle, pGetSetRetroScalingType); @@ -1326,9 +1509,11 @@ ctlGetSupportedScalingCapability( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnGetSupportedScalingCapability_t pfnGetSupportedScalingCapability = (ctl_pfnGetSupportedScalingCapability_t)GetProcAddress(hinstLib, "ctlGetSupportedScalingCapability"); + ctl_pfnGetSupportedScalingCapability_t pfnGetSupportedScalingCapability = (ctl_pfnGetSupportedScalingCapability_t)GetProcAddress(hinstLibPtr, "ctlGetSupportedScalingCapability"); if (pfnGetSupportedScalingCapability) { result = pfnGetSupportedScalingCapability(hDisplayOutput, pScalingCaps); @@ -1364,9 +1549,11 @@ ctlGetCurrentScaling( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnGetCurrentScaling_t pfnGetCurrentScaling = (ctl_pfnGetCurrentScaling_t)GetProcAddress(hinstLib, "ctlGetCurrentScaling"); + ctl_pfnGetCurrentScaling_t pfnGetCurrentScaling = (ctl_pfnGetCurrentScaling_t)GetProcAddress(hinstLibPtr, "ctlGetCurrentScaling"); if (pfnGetCurrentScaling) { result = pfnGetCurrentScaling(hDisplayOutput, pGetCurrentScalingType); @@ -1402,9 +1589,11 @@ ctlSetCurrentScaling( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnSetCurrentScaling_t pfnSetCurrentScaling = (ctl_pfnSetCurrentScaling_t)GetProcAddress(hinstLib, "ctlSetCurrentScaling"); + ctl_pfnSetCurrentScaling_t pfnSetCurrentScaling = (ctl_pfnSetCurrentScaling_t)GetProcAddress(hinstLibPtr, "ctlSetCurrentScaling"); if (pfnSetCurrentScaling) { result = pfnSetCurrentScaling(hDisplayOutput, pSetScalingType); @@ -1441,9 +1630,11 @@ ctlGetLACEConfig( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnGetLACEConfig_t pfnGetLACEConfig = (ctl_pfnGetLACEConfig_t)GetProcAddress(hinstLib, "ctlGetLACEConfig"); + ctl_pfnGetLACEConfig_t pfnGetLACEConfig = (ctl_pfnGetLACEConfig_t)GetProcAddress(hinstLibPtr, "ctlGetLACEConfig"); if (pfnGetLACEConfig) { result = pfnGetLACEConfig(hDisplayOutput, pLaceConfig); @@ -1480,9 +1671,11 @@ ctlSetLACEConfig( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnSetLACEConfig_t pfnSetLACEConfig = (ctl_pfnSetLACEConfig_t)GetProcAddress(hinstLib, "ctlSetLACEConfig"); + ctl_pfnSetLACEConfig_t pfnSetLACEConfig = (ctl_pfnSetLACEConfig_t)GetProcAddress(hinstLibPtr, "ctlSetLACEConfig"); if (pfnSetLACEConfig) { result = pfnSetLACEConfig(hDisplayOutput, pLaceConfig); @@ -1522,9 +1715,11 @@ ctlSoftwarePSR( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnSoftwarePSR_t pfnSoftwarePSR = (ctl_pfnSoftwarePSR_t)GetProcAddress(hinstLib, "ctlSoftwarePSR"); + ctl_pfnSoftwarePSR_t pfnSoftwarePSR = (ctl_pfnSoftwarePSR_t)GetProcAddress(hinstLibPtr, "ctlSoftwarePSR"); if (pfnSoftwarePSR) { result = pfnSoftwarePSR(hDisplayOutput, pSoftwarePsrSetting); @@ -1560,9 +1755,11 @@ ctlGetIntelArcSyncInfoForMonitor( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnGetIntelArcSyncInfoForMonitor_t pfnGetIntelArcSyncInfoForMonitor = (ctl_pfnGetIntelArcSyncInfoForMonitor_t)GetProcAddress(hinstLib, "ctlGetIntelArcSyncInfoForMonitor"); + ctl_pfnGetIntelArcSyncInfoForMonitor_t pfnGetIntelArcSyncInfoForMonitor = (ctl_pfnGetIntelArcSyncInfoForMonitor_t)GetProcAddress(hinstLibPtr, "ctlGetIntelArcSyncInfoForMonitor"); if (pfnGetIntelArcSyncInfoForMonitor) { result = pfnGetIntelArcSyncInfoForMonitor(hDisplayOutput, pIntelArcSyncMonitorParams); @@ -1606,9 +1803,11 @@ ctlEnumerateMuxDevices( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnEnumerateMuxDevices_t pfnEnumerateMuxDevices = (ctl_pfnEnumerateMuxDevices_t)GetProcAddress(hinstLib, "ctlEnumerateMuxDevices"); + ctl_pfnEnumerateMuxDevices_t pfnEnumerateMuxDevices = (ctl_pfnEnumerateMuxDevices_t)GetProcAddress(hinstLibPtr, "ctlEnumerateMuxDevices"); if (pfnEnumerateMuxDevices) { result = pfnEnumerateMuxDevices(hAPIHandle, pCount, phMuxDevices); @@ -1644,9 +1843,11 @@ ctlGetMuxProperties( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnGetMuxProperties_t pfnGetMuxProperties = (ctl_pfnGetMuxProperties_t)GetProcAddress(hinstLib, "ctlGetMuxProperties"); + ctl_pfnGetMuxProperties_t pfnGetMuxProperties = (ctl_pfnGetMuxProperties_t)GetProcAddress(hinstLibPtr, "ctlGetMuxProperties"); if (pfnGetMuxProperties) { result = pfnGetMuxProperties(hMuxDevice, pMuxProperties); @@ -1683,9 +1884,11 @@ ctlSwitchMux( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnSwitchMux_t pfnSwitchMux = (ctl_pfnSwitchMux_t)GetProcAddress(hinstLib, "ctlSwitchMux"); + ctl_pfnSwitchMux_t pfnSwitchMux = (ctl_pfnSwitchMux_t)GetProcAddress(hinstLibPtr, "ctlSwitchMux"); if (pfnSwitchMux) { result = pfnSwitchMux(hMuxDevice, hInactiveDisplayOutput); @@ -1721,9 +1924,11 @@ ctlGetIntelArcSyncProfile( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnGetIntelArcSyncProfile_t pfnGetIntelArcSyncProfile = (ctl_pfnGetIntelArcSyncProfile_t)GetProcAddress(hinstLib, "ctlGetIntelArcSyncProfile"); + ctl_pfnGetIntelArcSyncProfile_t pfnGetIntelArcSyncProfile = (ctl_pfnGetIntelArcSyncProfile_t)GetProcAddress(hinstLibPtr, "ctlGetIntelArcSyncProfile"); if (pfnGetIntelArcSyncProfile) { result = pfnGetIntelArcSyncProfile(hDisplayOutput, pIntelArcSyncProfileParams); @@ -1761,9 +1966,11 @@ ctlSetIntelArcSyncProfile( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnSetIntelArcSyncProfile_t pfnSetIntelArcSyncProfile = (ctl_pfnSetIntelArcSyncProfile_t)GetProcAddress(hinstLib, "ctlSetIntelArcSyncProfile"); + ctl_pfnSetIntelArcSyncProfile_t pfnSetIntelArcSyncProfile = (ctl_pfnSetIntelArcSyncProfile_t)GetProcAddress(hinstLibPtr, "ctlSetIntelArcSyncProfile"); if (pfnSetIntelArcSyncProfile) { result = pfnSetIntelArcSyncProfile(hDisplayOutput, pIntelArcSyncProfileParams); @@ -1810,9 +2017,11 @@ ctlEdidManagement( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnEdidManagement_t pfnEdidManagement = (ctl_pfnEdidManagement_t)GetProcAddress(hinstLib, "ctlEdidManagement"); + ctl_pfnEdidManagement_t pfnEdidManagement = (ctl_pfnEdidManagement_t)GetProcAddress(hinstLibPtr, "ctlEdidManagement"); if (pfnEdidManagement) { result = pfnEdidManagement(hDisplayOutput, pEdidManagementArgs); @@ -1862,9 +2071,11 @@ ctlGetSetCustomMode( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnGetSetCustomMode_t pfnGetSetCustomMode = (ctl_pfnGetSetCustomMode_t)GetProcAddress(hinstLib, "ctlGetSetCustomMode"); + ctl_pfnGetSetCustomMode_t pfnGetSetCustomMode = (ctl_pfnGetSetCustomMode_t)GetProcAddress(hinstLibPtr, "ctlGetSetCustomMode"); if (pfnGetSetCustomMode) { result = pfnGetSetCustomMode(hDisplayOutput, pCustomModeArgs); @@ -1879,7 +2090,16 @@ ctlGetSetCustomMode( * @brief Get/Set Combined Display * * @details -* - To get or set combined display. +* - To get or set combined display with given Child Targets on a Single +* GPU or across identical GPUs. Multi-GPU(MGPU) combined display is +* reserved i.e. it is not public and requires special application GUID. +* MGPU Combined Display will get activated or deactivated in next boot. +* MGPU scenario will internally link the associated adapters via Linked +* Display Adapter Call, with supplied hDeviceAdapter being the LDA +* Primary. If Genlock and enabled in Driver registry and supported by +* given Display Config, MGPU Combined Display will enable MGPU Genlock +* with supplied hDeviceAdapter being the Genlock Primary Adapter and the +* First Child Display being the Primary Display. * * @returns * - CTL_RESULT_SUCCESS @@ -1898,6 +2118,7 @@ ctlGetSetCustomMode( * - ::CTL_RESULT_ERROR_NULL_OS_ADAPATER_HANDLE - "Null OS adapter handle" * - ::CTL_RESULT_ERROR_KMD_CALL - "Kernel mode driver call failure" * - ::CTL_RESULT_ERROR_FEATURE_NOT_SUPPORTED - "Combined Display feature is not supported in this platform" +* - ::CTL_RESULT_ERROR_ADAPTER_NOT_SUPPORTED_ON_LDA_SECONDARY - "Unsupported (secondary) adapter handle passed" */ ctl_result_t CTL_APICALL ctlGetSetCombinedDisplay( @@ -1908,9 +2129,11 @@ ctlGetSetCombinedDisplay( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnGetSetCombinedDisplay_t pfnGetSetCombinedDisplay = (ctl_pfnGetSetCombinedDisplay_t)GetProcAddress(hinstLib, "ctlGetSetCombinedDisplay"); + ctl_pfnGetSetCombinedDisplay_t pfnGetSetCombinedDisplay = (ctl_pfnGetSetCombinedDisplay_t)GetProcAddress(hinstLibPtr, "ctlGetSetCombinedDisplay"); if (pfnGetSetCombinedDisplay) { result = pfnGetSetCombinedDisplay(hDeviceAdapter, pCombinedDisplayArgs); @@ -1946,7 +2169,7 @@ ctlGetSetCombinedDisplay( ctl_result_t CTL_APICALL ctlGetSetDisplayGenlock( ctl_device_adapter_handle_t* hDeviceAdapter, ///< [in][release] Handle to control device adapter - ctl_genlock_args_t** pGenlockArgs, ///< [in,out] Display Genlock operation and information + ctl_genlock_args_t* pGenlockArgs, ///< [in,out] Display Genlock operation and information uint32_t AdapterCount, ///< [in] Number of device adapters ctl_device_adapter_handle_t* hFailureDeviceAdapter ///< [out] Handle to address the failure device adapter in an error case ) @@ -1954,9 +2177,11 @@ ctlGetSetDisplayGenlock( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnGetSetDisplayGenlock_t pfnGetSetDisplayGenlock = (ctl_pfnGetSetDisplayGenlock_t)GetProcAddress(hinstLib, "ctlGetSetDisplayGenlock"); + ctl_pfnGetSetDisplayGenlock_t pfnGetSetDisplayGenlock = (ctl_pfnGetSetDisplayGenlock_t)GetProcAddress(hinstLibPtr, "ctlGetSetDisplayGenlock"); if (pfnGetSetDisplayGenlock) { result = pfnGetSetDisplayGenlock(hDeviceAdapter, pGenlockArgs, AdapterCount, hFailureDeviceAdapter); @@ -1967,6 +2192,327 @@ ctlGetSetDisplayGenlock( } +/** +* @brief Get Vblank Timestamp +* +* @details +* - To get a list of vblank timestamps in microseconds for each child +* target of a display. +* +* @returns +* - CTL_RESULT_SUCCESS +* - CTL_RESULT_ERROR_UNINITIALIZED +* - CTL_RESULT_ERROR_DEVICE_LOST +* - CTL_RESULT_ERROR_INVALID_NULL_HANDLE +* + `nullptr == hDisplayOutput` +* - CTL_RESULT_ERROR_INVALID_NULL_POINTER +* + `nullptr == pVblankTSArgs` +* - ::CTL_RESULT_ERROR_UNSUPPORTED_VERSION - "Unsupported version" +* - ::CTL_RESULT_ERROR_INSUFFICIENT_PERMISSIONS - "Insufficient permissions" +* - ::CTL_RESULT_ERROR_NULL_OS_DISPLAY_OUTPUT_HANDLE - "Null OS display output handle" +* - ::CTL_RESULT_ERROR_NULL_OS_INTERFACE - "Null OS interface" +* - ::CTL_RESULT_ERROR_NULL_OS_ADAPATER_HANDLE - "Null OS adapter handle" +* - ::CTL_RESULT_ERROR_KMD_CALL - "Kernel mode driver call failure" +*/ +ctl_result_t CTL_APICALL +ctlGetVblankTimestamp( + ctl_display_output_handle_t hDisplayOutput, ///< [in] Handle to display output + ctl_vblank_ts_args_t* pVblankTSArgs ///< [out] Get vblank timestamp arguments + ) +{ + ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; + + + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) + { + ctl_pfnGetVblankTimestamp_t pfnGetVblankTimestamp = (ctl_pfnGetVblankTimestamp_t)GetProcAddress(hinstLibPtr, "ctlGetVblankTimestamp"); + if (pfnGetVblankTimestamp) + { + result = pfnGetVblankTimestamp(hDisplayOutput, pVblankTSArgs); + } + } + + return result; +} + + +/** +* @brief Link Display Adapters +* +* @details +* - To Link Display Adapters. +* +* @returns +* - CTL_RESULT_SUCCESS +* - CTL_RESULT_ERROR_UNINITIALIZED +* - CTL_RESULT_ERROR_DEVICE_LOST +* - CTL_RESULT_ERROR_INVALID_NULL_HANDLE +* + `nullptr == hPrimaryAdapter` +* - CTL_RESULT_ERROR_INVALID_NULL_POINTER +* + `nullptr == pLdaArgs` +* - ::CTL_RESULT_ERROR_UNSUPPORTED_VERSION - "Unsupported version" +* - ::CTL_RESULT_ERROR_INVALID_NULL_POINTER - "Invalid null pointer" +* - ::CTL_RESULT_ERROR_NULL_OS_INTERFACE - "Null OS interface" +* - ::CTL_RESULT_ERROR_NULL_OS_ADAPATER_HANDLE - "Null OS adapter handle" +* - ::CTL_RESULT_ERROR_KMD_CALL - "Kernel mode driver call failure" +* - ::CTL_RESULT_ERROR_ADAPTER_ALREADY_LINKED - "Adapter is already linked" +*/ +ctl_result_t CTL_APICALL +ctlLinkDisplayAdapters( + ctl_device_adapter_handle_t hPrimaryAdapter, ///< [in][release] Handle to Primary adapter in LDA chain + ctl_lda_args_t* pLdaArgs ///< [in] Link Display Adapters Arguments + ) +{ + ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; + + + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) + { + ctl_pfnLinkDisplayAdapters_t pfnLinkDisplayAdapters = (ctl_pfnLinkDisplayAdapters_t)GetProcAddress(hinstLibPtr, "ctlLinkDisplayAdapters"); + if (pfnLinkDisplayAdapters) + { + result = pfnLinkDisplayAdapters(hPrimaryAdapter, pLdaArgs); + } + } + + return result; +} + + +/** +* @brief Unlink Display Adapters +* +* @details +* - To Unlink Display Adapters +* +* @returns +* - CTL_RESULT_SUCCESS +* - CTL_RESULT_ERROR_UNINITIALIZED +* - CTL_RESULT_ERROR_DEVICE_LOST +* - CTL_RESULT_ERROR_INVALID_NULL_HANDLE +* + `nullptr == hPrimaryAdapter` +* - ::CTL_RESULT_ERROR_UNSUPPORTED_VERSION - "Unsupported version" +* - ::CTL_RESULT_ERROR_NULL_OS_INTERFACE - "Null OS interface" +* - ::CTL_RESULT_ERROR_NULL_OS_ADAPATER_HANDLE - "Null OS adapter handle" +* - ::CTL_RESULT_ERROR_KMD_CALL - "Kernel mode driver call failure" +* - ::CTL_RESULT_ERROR_ADAPTER_NOT_SUPPORTED_ON_LDA_SECONDARY - "Unsupported (secondary) adapter handle passed" +*/ +ctl_result_t CTL_APICALL +ctlUnlinkDisplayAdapters( + ctl_device_adapter_handle_t hPrimaryAdapter ///< [in][release] Handle to Primary adapter in LDA chain + ) +{ + ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; + + + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) + { + ctl_pfnUnlinkDisplayAdapters_t pfnUnlinkDisplayAdapters = (ctl_pfnUnlinkDisplayAdapters_t)GetProcAddress(hinstLibPtr, "ctlUnlinkDisplayAdapters"); + if (pfnUnlinkDisplayAdapters) + { + result = pfnUnlinkDisplayAdapters(hPrimaryAdapter); + } + } + + return result; +} + + +/** +* @brief Get Linked Display Adapters +* +* @details +* - To return list of Linked Display Adapters. +* +* @returns +* - CTL_RESULT_SUCCESS +* - CTL_RESULT_ERROR_UNINITIALIZED +* - CTL_RESULT_ERROR_DEVICE_LOST +* - CTL_RESULT_ERROR_INVALID_NULL_HANDLE +* + `nullptr == hPrimaryAdapter` +* - CTL_RESULT_ERROR_INVALID_NULL_POINTER +* + `nullptr == pLdaArgs` +* - ::CTL_RESULT_ERROR_UNSUPPORTED_VERSION - "Unsupported version" +* - ::CTL_RESULT_ERROR_INVALID_NULL_POINTER - "Invalid null pointer" +* - ::CTL_RESULT_ERROR_NULL_OS_INTERFACE - "Null OS interface" +* - ::CTL_RESULT_ERROR_NULL_OS_ADAPATER_HANDLE - "Null OS adapter handle" +* - ::CTL_RESULT_ERROR_KMD_CALL - "Kernel mode driver call failure" +* - ::CTL_RESULT_ERROR_ADAPTER_NOT_SUPPORTED_ON_LDA_SECONDARY - "Unsupported (secondary) adapter handle passed" +*/ +ctl_result_t CTL_APICALL +ctlGetLinkedDisplayAdapters( + ctl_device_adapter_handle_t hPrimaryAdapter, ///< [in][release] Handle to Primary adapter in LDA chain + ctl_lda_args_t* pLdaArgs ///< [out] Link Display Adapters Arguments + ) +{ + ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; + + + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) + { + ctl_pfnGetLinkedDisplayAdapters_t pfnGetLinkedDisplayAdapters = (ctl_pfnGetLinkedDisplayAdapters_t)GetProcAddress(hinstLibPtr, "ctlGetLinkedDisplayAdapters"); + if (pfnGetLinkedDisplayAdapters) + { + result = pfnGetLinkedDisplayAdapters(hPrimaryAdapter, pLdaArgs); + } + } + + return result; +} + + +/** +* @brief Get/Set Dynamic Contrast Enhancement +* +* @details +* - To get the DCE feature status and, if feature is enabled, returns the +* current histogram, or to set the brightness at the phase-in speed +* +* @returns +* - CTL_RESULT_SUCCESS +* - CTL_RESULT_ERROR_UNINITIALIZED +* - CTL_RESULT_ERROR_DEVICE_LOST +* - CTL_RESULT_ERROR_INVALID_NULL_HANDLE +* + `nullptr == hDisplayOutput` +* - CTL_RESULT_ERROR_INVALID_NULL_POINTER +* + `nullptr == pDceArgs` +* - ::CTL_RESULT_ERROR_UNSUPPORTED_VERSION - "Unsupported version" +* - ::CTL_RESULT_ERROR_NULL_OS_DISPLAY_OUTPUT_HANDLE - "Null OS display output handle" +* - ::CTL_RESULT_ERROR_NULL_OS_INTERFACE - "Null OS interface" +* - ::CTL_RESULT_ERROR_NULL_OS_ADAPATER_HANDLE - "Null OS adapter handle" +* - ::CTL_RESULT_ERROR_KMD_CALL - "Kernel mode driver call failure" +* - ::CTL_RESULT_ERROR_INVALID_NULL_HANDLE - "Invalid or Null handle passed" +* - ::CTL_RESULT_ERROR_INVALID_NULL_POINTER - "Invalid null pointer" +* - ::CTL_RESULT_ERROR_INVALID_OPERATION_TYPE - "Invalid operation type" +* - ::CTL_RESULT_ERROR_INVALID_ARGUMENT - "Invalid combination of parameters" +*/ +ctl_result_t CTL_APICALL +ctlGetSetDynamicContrastEnhancement( + ctl_display_output_handle_t hDisplayOutput, ///< [in] Handle to display output + ctl_dce_args_t* pDceArgs ///< [in,out] Dynamic Contrast Enhancement arguments + ) +{ + ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; + + + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) + { + ctl_pfnGetSetDynamicContrastEnhancement_t pfnGetSetDynamicContrastEnhancement = (ctl_pfnGetSetDynamicContrastEnhancement_t)GetProcAddress(hinstLibPtr, "ctlGetSetDynamicContrastEnhancement"); + if (pfnGetSetDynamicContrastEnhancement) + { + result = pfnGetSetDynamicContrastEnhancement(hDisplayOutput, pDceArgs); + } + } + + return result; +} + + +/** +* @brief Get/Set Color Format and Color Depth +* +* @details +* - Get and Set the Color Format and Color Depth of a target +* +* @returns +* - CTL_RESULT_SUCCESS +* - CTL_RESULT_ERROR_UNINITIALIZED +* - CTL_RESULT_ERROR_DEVICE_LOST +* - CTL_RESULT_ERROR_INVALID_NULL_HANDLE +* + `nullptr == hDisplayOutput` +* - CTL_RESULT_ERROR_INVALID_NULL_POINTER +* + `nullptr == pGetSetWireFormatSetting` +* - ::CTL_RESULT_ERROR_UNSUPPORTED_VERSION - "Unsupported version" +* - ::CTL_RESULT_ERROR_INVALID_ARGUMENT - "Invalid data passed as argument, WireFormat is not supported" +* - ::CTL_RESULT_ERROR_DISPLAY_NOT_ACTIVE - "Display not active" +* - ::CTL_RESULT_ERROR_INVALID_OPERATION_TYPE - "Invalid operation type" +* - ::CTL_RESULT_ERROR_NULL_OS_DISPLAY_OUTPUT_HANDLE - "Null OS display output handle" +* - ::CTL_RESULT_ERROR_NULL_OS_INTERFACE - "Null OS interface" +* - ::CTL_RESULT_ERROR_NULL_OS_ADAPATER_HANDLE - "Null OS adapter handle" +*/ +ctl_result_t CTL_APICALL +ctlGetSetWireFormat( + ctl_display_output_handle_t hDisplayOutput, ///< [in][release] Handle to display output + ctl_get_set_wire_format_config_t* pGetSetWireFormatSetting ///< [in][release] Get/Set Wire Format settings to be fetched/applied + ) +{ + ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; + + + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) + { + ctl_pfnGetSetWireFormat_t pfnGetSetWireFormat = (ctl_pfnGetSetWireFormat_t)GetProcAddress(hinstLibPtr, "ctlGetSetWireFormat"); + if (pfnGetSetWireFormat) + { + result = pfnGetSetWireFormat(hDisplayOutput, pGetSetWireFormatSetting); + } + } + + return result; +} + + +/** +* @brief Get/Set Display settings +* +* @details +* - To get/set end display settings like low latency, HDR10+ signaling +* etc. which are controlled via info-frames/secondary data packets +* +* @returns +* - CTL_RESULT_SUCCESS +* - CTL_RESULT_ERROR_UNINITIALIZED +* - CTL_RESULT_ERROR_DEVICE_LOST +* - CTL_RESULT_ERROR_INVALID_NULL_HANDLE +* + `nullptr == hDisplayOutput` +* - CTL_RESULT_ERROR_INVALID_NULL_POINTER +* + `nullptr == pDisplaySettings` +* - ::CTL_RESULT_ERROR_UNSUPPORTED_VERSION - "Unsupported version" +* - ::CTL_RESULT_ERROR_NULL_OS_DISPLAY_OUTPUT_HANDLE - "Null OS display output handle" +* - ::CTL_RESULT_ERROR_NULL_OS_INTERFACE - "Null OS interface" +* - ::CTL_RESULT_ERROR_NULL_OS_ADAPATER_HANDLE - "Null OS adapter handle" +* - ::CTL_RESULT_ERROR_KMD_CALL - "Kernel mode driver call failure" +* - ::CTL_RESULT_ERROR_INVALID_NULL_HANDLE - "Invalid or Null handle passed" +* - ::CTL_RESULT_ERROR_INVALID_NULL_POINTER - "Invalid null pointer" +* - ::CTL_RESULT_ERROR_INVALID_OPERATION_TYPE - "Invalid operation type" +* - ::CTL_RESULT_ERROR_INVALID_ARGUMENT - "Invalid combination of parameters" +*/ +ctl_result_t CTL_APICALL +ctlGetSetDisplaySettings( + ctl_display_output_handle_t hDisplayOutput, ///< [in] Handle to display output + ctl_display_settings_t* pDisplaySettings ///< [in,out] End display capabilities + ) +{ + ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; + + + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) + { + ctl_pfnGetSetDisplaySettings_t pfnGetSetDisplaySettings = (ctl_pfnGetSetDisplaySettings_t)GetProcAddress(hinstLibPtr, "ctlGetSetDisplaySettings"); + if (pfnGetSetDisplaySettings) + { + result = pfnGetSetDisplaySettings(hDisplayOutput, pDisplaySettings); + } + } + + return result; +} + + /** * @brief Get handle of engine groups * @@ -2002,9 +2548,11 @@ ctlEnumEngineGroups( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnEnumEngineGroups_t pfnEnumEngineGroups = (ctl_pfnEnumEngineGroups_t)GetProcAddress(hinstLib, "ctlEnumEngineGroups"); + ctl_pfnEnumEngineGroups_t pfnEnumEngineGroups = (ctl_pfnEnumEngineGroups_t)GetProcAddress(hinstLibPtr, "ctlEnumEngineGroups"); if (pfnEnumEngineGroups) { result = pfnEnumEngineGroups(hDAhandle, pCount, phEngine); @@ -2040,9 +2588,11 @@ ctlEngineGetProperties( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnEngineGetProperties_t pfnEngineGetProperties = (ctl_pfnEngineGetProperties_t)GetProcAddress(hinstLib, "ctlEngineGetProperties"); + ctl_pfnEngineGetProperties_t pfnEngineGetProperties = (ctl_pfnEngineGetProperties_t)GetProcAddress(hinstLibPtr, "ctlEngineGetProperties"); if (pfnEngineGetProperties) { result = pfnEngineGetProperties(hEngine, pProperties); @@ -2079,9 +2629,11 @@ ctlEngineGetActivity( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnEngineGetActivity_t pfnEngineGetActivity = (ctl_pfnEngineGetActivity_t)GetProcAddress(hinstLib, "ctlEngineGetActivity"); + ctl_pfnEngineGetActivity_t pfnEngineGetActivity = (ctl_pfnEngineGetActivity_t)GetProcAddress(hinstLibPtr, "ctlEngineGetActivity"); if (pfnEngineGetActivity) { result = pfnEngineGetActivity(hEngine, pStats); @@ -2127,9 +2679,11 @@ ctlEnumFans( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnEnumFans_t pfnEnumFans = (ctl_pfnEnumFans_t)GetProcAddress(hinstLib, "ctlEnumFans"); + ctl_pfnEnumFans_t pfnEnumFans = (ctl_pfnEnumFans_t)GetProcAddress(hinstLibPtr, "ctlEnumFans"); if (pfnEnumFans) { result = pfnEnumFans(hDAhandle, pCount, phFan); @@ -2165,9 +2719,11 @@ ctlFanGetProperties( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnFanGetProperties_t pfnFanGetProperties = (ctl_pfnFanGetProperties_t)GetProcAddress(hinstLib, "ctlFanGetProperties"); + ctl_pfnFanGetProperties_t pfnFanGetProperties = (ctl_pfnFanGetProperties_t)GetProcAddress(hinstLibPtr, "ctlFanGetProperties"); if (pfnFanGetProperties) { result = pfnFanGetProperties(hFan, pProperties); @@ -2204,9 +2760,11 @@ ctlFanGetConfig( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnFanGetConfig_t pfnFanGetConfig = (ctl_pfnFanGetConfig_t)GetProcAddress(hinstLib, "ctlFanGetConfig"); + ctl_pfnFanGetConfig_t pfnFanGetConfig = (ctl_pfnFanGetConfig_t)GetProcAddress(hinstLibPtr, "ctlFanGetConfig"); if (pfnFanGetConfig) { result = pfnFanGetConfig(hFan, pConfig); @@ -2242,9 +2800,11 @@ ctlFanSetDefaultMode( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnFanSetDefaultMode_t pfnFanSetDefaultMode = (ctl_pfnFanSetDefaultMode_t)GetProcAddress(hinstLib, "ctlFanSetDefaultMode"); + ctl_pfnFanSetDefaultMode_t pfnFanSetDefaultMode = (ctl_pfnFanSetDefaultMode_t)GetProcAddress(hinstLibPtr, "ctlFanSetDefaultMode"); if (pfnFanSetDefaultMode) { result = pfnFanSetDefaultMode(hFan); @@ -2285,9 +2845,11 @@ ctlFanSetFixedSpeedMode( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnFanSetFixedSpeedMode_t pfnFanSetFixedSpeedMode = (ctl_pfnFanSetFixedSpeedMode_t)GetProcAddress(hinstLib, "ctlFanSetFixedSpeedMode"); + ctl_pfnFanSetFixedSpeedMode_t pfnFanSetFixedSpeedMode = (ctl_pfnFanSetFixedSpeedMode_t)GetProcAddress(hinstLibPtr, "ctlFanSetFixedSpeedMode"); if (pfnFanSetFixedSpeedMode) { result = pfnFanSetFixedSpeedMode(hFan, speed); @@ -2330,9 +2892,11 @@ ctlFanSetSpeedTableMode( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnFanSetSpeedTableMode_t pfnFanSetSpeedTableMode = (ctl_pfnFanSetSpeedTableMode_t)GetProcAddress(hinstLib, "ctlFanSetSpeedTableMode"); + ctl_pfnFanSetSpeedTableMode_t pfnFanSetSpeedTableMode = (ctl_pfnFanSetSpeedTableMode_t)GetProcAddress(hinstLibPtr, "ctlFanSetSpeedTableMode"); if (pfnFanSetSpeedTableMode) { result = pfnFanSetSpeedTableMode(hFan, speedTable); @@ -2375,9 +2939,11 @@ ctlFanGetState( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnFanGetState_t pfnFanGetState = (ctl_pfnFanGetState_t)GetProcAddress(hinstLib, "ctlFanGetState"); + ctl_pfnFanGetState_t pfnFanGetState = (ctl_pfnFanGetState_t)GetProcAddress(hinstLibPtr, "ctlFanGetState"); if (pfnFanGetState) { result = pfnFanGetState(hFan, units, pSpeed); @@ -2423,9 +2989,11 @@ ctlEnumFrequencyDomains( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnEnumFrequencyDomains_t pfnEnumFrequencyDomains = (ctl_pfnEnumFrequencyDomains_t)GetProcAddress(hinstLib, "ctlEnumFrequencyDomains"); + ctl_pfnEnumFrequencyDomains_t pfnEnumFrequencyDomains = (ctl_pfnEnumFrequencyDomains_t)GetProcAddress(hinstLibPtr, "ctlEnumFrequencyDomains"); if (pfnEnumFrequencyDomains) { result = pfnEnumFrequencyDomains(hDAhandle, pCount, phFrequency); @@ -2461,9 +3029,11 @@ ctlFrequencyGetProperties( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnFrequencyGetProperties_t pfnFrequencyGetProperties = (ctl_pfnFrequencyGetProperties_t)GetProcAddress(hinstLib, "ctlFrequencyGetProperties"); + ctl_pfnFrequencyGetProperties_t pfnFrequencyGetProperties = (ctl_pfnFrequencyGetProperties_t)GetProcAddress(hinstLibPtr, "ctlFrequencyGetProperties"); if (pfnFrequencyGetProperties) { result = pfnFrequencyGetProperties(hFrequency, pProperties); @@ -2510,9 +3080,11 @@ ctlFrequencyGetAvailableClocks( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnFrequencyGetAvailableClocks_t pfnFrequencyGetAvailableClocks = (ctl_pfnFrequencyGetAvailableClocks_t)GetProcAddress(hinstLib, "ctlFrequencyGetAvailableClocks"); + ctl_pfnFrequencyGetAvailableClocks_t pfnFrequencyGetAvailableClocks = (ctl_pfnFrequencyGetAvailableClocks_t)GetProcAddress(hinstLibPtr, "ctlFrequencyGetAvailableClocks"); if (pfnFrequencyGetAvailableClocks) { result = pfnFrequencyGetAvailableClocks(hFrequency, pCount, phFrequency); @@ -2549,9 +3121,11 @@ ctlFrequencyGetRange( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnFrequencyGetRange_t pfnFrequencyGetRange = (ctl_pfnFrequencyGetRange_t)GetProcAddress(hinstLib, "ctlFrequencyGetRange"); + ctl_pfnFrequencyGetRange_t pfnFrequencyGetRange = (ctl_pfnFrequencyGetRange_t)GetProcAddress(hinstLibPtr, "ctlFrequencyGetRange"); if (pfnFrequencyGetRange) { result = pfnFrequencyGetRange(hFrequency, pLimits); @@ -2590,9 +3164,11 @@ ctlFrequencySetRange( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnFrequencySetRange_t pfnFrequencySetRange = (ctl_pfnFrequencySetRange_t)GetProcAddress(hinstLib, "ctlFrequencySetRange"); + ctl_pfnFrequencySetRange_t pfnFrequencySetRange = (ctl_pfnFrequencySetRange_t)GetProcAddress(hinstLibPtr, "ctlFrequencySetRange"); if (pfnFrequencySetRange) { result = pfnFrequencySetRange(hFrequency, pLimits); @@ -2629,9 +3205,11 @@ ctlFrequencyGetState( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnFrequencyGetState_t pfnFrequencyGetState = (ctl_pfnFrequencyGetState_t)GetProcAddress(hinstLib, "ctlFrequencyGetState"); + ctl_pfnFrequencyGetState_t pfnFrequencyGetState = (ctl_pfnFrequencyGetState_t)GetProcAddress(hinstLibPtr, "ctlFrequencyGetState"); if (pfnFrequencyGetState) { result = pfnFrequencyGetState(hFrequency, pState); @@ -2668,9 +3246,11 @@ ctlFrequencyGetThrottleTime( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnFrequencyGetThrottleTime_t pfnFrequencyGetThrottleTime = (ctl_pfnFrequencyGetThrottleTime_t)GetProcAddress(hinstLib, "ctlFrequencyGetThrottleTime"); + ctl_pfnFrequencyGetThrottleTime_t pfnFrequencyGetThrottleTime = (ctl_pfnFrequencyGetThrottleTime_t)GetProcAddress(hinstLibPtr, "ctlFrequencyGetThrottleTime"); if (pfnFrequencyGetThrottleTime) { result = pfnFrequencyGetThrottleTime(hFrequency, pThrottleTime); @@ -2706,9 +3286,11 @@ ctlGetSupportedVideoProcessingCapabilities( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnGetSupportedVideoProcessingCapabilities_t pfnGetSupportedVideoProcessingCapabilities = (ctl_pfnGetSupportedVideoProcessingCapabilities_t)GetProcAddress(hinstLib, "ctlGetSupportedVideoProcessingCapabilities"); + ctl_pfnGetSupportedVideoProcessingCapabilities_t pfnGetSupportedVideoProcessingCapabilities = (ctl_pfnGetSupportedVideoProcessingCapabilities_t)GetProcAddress(hinstLibPtr, "ctlGetSupportedVideoProcessingCapabilities"); if (pfnGetSupportedVideoProcessingCapabilities) { result = pfnGetSupportedVideoProcessingCapabilities(hDAhandle, pFeatureCaps); @@ -2744,9 +3326,11 @@ ctlGetSetVideoProcessingFeature( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnGetSetVideoProcessingFeature_t pfnGetSetVideoProcessingFeature = (ctl_pfnGetSetVideoProcessingFeature_t)GetProcAddress(hinstLib, "ctlGetSetVideoProcessingFeature"); + ctl_pfnGetSetVideoProcessingFeature_t pfnGetSetVideoProcessingFeature = (ctl_pfnGetSetVideoProcessingFeature_t)GetProcAddress(hinstLibPtr, "ctlGetSetVideoProcessingFeature"); if (pfnGetSetVideoProcessingFeature) { result = pfnGetSetVideoProcessingFeature(hDAhandle, pFeature); @@ -2792,9 +3376,11 @@ ctlEnumMemoryModules( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnEnumMemoryModules_t pfnEnumMemoryModules = (ctl_pfnEnumMemoryModules_t)GetProcAddress(hinstLib, "ctlEnumMemoryModules"); + ctl_pfnEnumMemoryModules_t pfnEnumMemoryModules = (ctl_pfnEnumMemoryModules_t)GetProcAddress(hinstLibPtr, "ctlEnumMemoryModules"); if (pfnEnumMemoryModules) { result = pfnEnumMemoryModules(hDAhandle, pCount, phMemory); @@ -2830,9 +3416,11 @@ ctlMemoryGetProperties( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnMemoryGetProperties_t pfnMemoryGetProperties = (ctl_pfnMemoryGetProperties_t)GetProcAddress(hinstLib, "ctlMemoryGetProperties"); + ctl_pfnMemoryGetProperties_t pfnMemoryGetProperties = (ctl_pfnMemoryGetProperties_t)GetProcAddress(hinstLibPtr, "ctlMemoryGetProperties"); if (pfnMemoryGetProperties) { result = pfnMemoryGetProperties(hMemory, pProperties); @@ -2868,9 +3456,11 @@ ctlMemoryGetState( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnMemoryGetState_t pfnMemoryGetState = (ctl_pfnMemoryGetState_t)GetProcAddress(hinstLib, "ctlMemoryGetState"); + ctl_pfnMemoryGetState_t pfnMemoryGetState = (ctl_pfnMemoryGetState_t)GetProcAddress(hinstLibPtr, "ctlMemoryGetState"); if (pfnMemoryGetState) { result = pfnMemoryGetState(hMemory, pState); @@ -2909,9 +3499,11 @@ ctlMemoryGetBandwidth( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnMemoryGetBandwidth_t pfnMemoryGetBandwidth = (ctl_pfnMemoryGetBandwidth_t)GetProcAddress(hinstLib, "ctlMemoryGetBandwidth"); + ctl_pfnMemoryGetBandwidth_t pfnMemoryGetBandwidth = (ctl_pfnMemoryGetBandwidth_t)GetProcAddress(hinstLibPtr, "ctlMemoryGetBandwidth"); if (pfnMemoryGetBandwidth) { result = pfnMemoryGetBandwidth(hMemory, pBandwidth); @@ -2943,9 +3535,11 @@ ctlOverclockGetProperties( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnOverclockGetProperties_t pfnOverclockGetProperties = (ctl_pfnOverclockGetProperties_t)GetProcAddress(hinstLib, "ctlOverclockGetProperties"); + ctl_pfnOverclockGetProperties_t pfnOverclockGetProperties = (ctl_pfnOverclockGetProperties_t)GetProcAddress(hinstLibPtr, "ctlOverclockGetProperties"); if (pfnOverclockGetProperties) { result = pfnOverclockGetProperties(hDeviceHandle, pOcProperties); @@ -2987,9 +3581,11 @@ ctlOverclockWaiverSet( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnOverclockWaiverSet_t pfnOverclockWaiverSet = (ctl_pfnOverclockWaiverSet_t)GetProcAddress(hinstLib, "ctlOverclockWaiverSet"); + ctl_pfnOverclockWaiverSet_t pfnOverclockWaiverSet = (ctl_pfnOverclockWaiverSet_t)GetProcAddress(hinstLibPtr, "ctlOverclockWaiverSet"); if (pfnOverclockWaiverSet) { result = pfnOverclockWaiverSet(hDeviceHandle); @@ -3029,9 +3625,11 @@ ctlOverclockGpuFrequencyOffsetGet( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnOverclockGpuFrequencyOffsetGet_t pfnOverclockGpuFrequencyOffsetGet = (ctl_pfnOverclockGpuFrequencyOffsetGet_t)GetProcAddress(hinstLib, "ctlOverclockGpuFrequencyOffsetGet"); + ctl_pfnOverclockGpuFrequencyOffsetGet_t pfnOverclockGpuFrequencyOffsetGet = (ctl_pfnOverclockGpuFrequencyOffsetGet_t)GetProcAddress(hinstLibPtr, "ctlOverclockGpuFrequencyOffsetGet"); if (pfnOverclockGpuFrequencyOffsetGet) { result = pfnOverclockGpuFrequencyOffsetGet(hDeviceHandle, pOcFrequencyOffset); @@ -3087,9 +3685,11 @@ ctlOverclockGpuFrequencyOffsetSet( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnOverclockGpuFrequencyOffsetSet_t pfnOverclockGpuFrequencyOffsetSet = (ctl_pfnOverclockGpuFrequencyOffsetSet_t)GetProcAddress(hinstLib, "ctlOverclockGpuFrequencyOffsetSet"); + ctl_pfnOverclockGpuFrequencyOffsetSet_t pfnOverclockGpuFrequencyOffsetSet = (ctl_pfnOverclockGpuFrequencyOffsetSet_t)GetProcAddress(hinstLibPtr, "ctlOverclockGpuFrequencyOffsetSet"); if (pfnOverclockGpuFrequencyOffsetSet) { result = pfnOverclockGpuFrequencyOffsetSet(hDeviceHandle, ocFrequencyOffset); @@ -3129,9 +3729,11 @@ ctlOverclockGpuVoltageOffsetGet( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnOverclockGpuVoltageOffsetGet_t pfnOverclockGpuVoltageOffsetGet = (ctl_pfnOverclockGpuVoltageOffsetGet_t)GetProcAddress(hinstLib, "ctlOverclockGpuVoltageOffsetGet"); + ctl_pfnOverclockGpuVoltageOffsetGet_t pfnOverclockGpuVoltageOffsetGet = (ctl_pfnOverclockGpuVoltageOffsetGet_t)GetProcAddress(hinstLibPtr, "ctlOverclockGpuVoltageOffsetGet"); if (pfnOverclockGpuVoltageOffsetGet) { result = pfnOverclockGpuVoltageOffsetGet(hDeviceHandle, pOcVoltageOffset); @@ -3175,9 +3777,11 @@ ctlOverclockGpuVoltageOffsetSet( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnOverclockGpuVoltageOffsetSet_t pfnOverclockGpuVoltageOffsetSet = (ctl_pfnOverclockGpuVoltageOffsetSet_t)GetProcAddress(hinstLib, "ctlOverclockGpuVoltageOffsetSet"); + ctl_pfnOverclockGpuVoltageOffsetSet_t pfnOverclockGpuVoltageOffsetSet = (ctl_pfnOverclockGpuVoltageOffsetSet_t)GetProcAddress(hinstLibPtr, "ctlOverclockGpuVoltageOffsetSet"); if (pfnOverclockGpuVoltageOffsetSet) { result = pfnOverclockGpuVoltageOffsetSet(hDeviceHandle, ocVoltageOffset); @@ -3217,9 +3821,11 @@ ctlOverclockGpuLockGet( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnOverclockGpuLockGet_t pfnOverclockGpuLockGet = (ctl_pfnOverclockGpuLockGet_t)GetProcAddress(hinstLib, "ctlOverclockGpuLockGet"); + ctl_pfnOverclockGpuLockGet_t pfnOverclockGpuLockGet = (ctl_pfnOverclockGpuLockGet_t)GetProcAddress(hinstLibPtr, "ctlOverclockGpuLockGet"); if (pfnOverclockGpuLockGet) { result = pfnOverclockGpuLockGet(hDeviceHandle, pVfPair); @@ -3263,9 +3869,11 @@ ctlOverclockGpuLockSet( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnOverclockGpuLockSet_t pfnOverclockGpuLockSet = (ctl_pfnOverclockGpuLockSet_t)GetProcAddress(hinstLib, "ctlOverclockGpuLockSet"); + ctl_pfnOverclockGpuLockSet_t pfnOverclockGpuLockSet = (ctl_pfnOverclockGpuLockSet_t)GetProcAddress(hinstLibPtr, "ctlOverclockGpuLockSet"); if (pfnOverclockGpuLockSet) { result = pfnOverclockGpuLockSet(hDeviceHandle, vFPair); @@ -3301,9 +3909,11 @@ ctlOverclockVramFrequencyOffsetGet( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnOverclockVramFrequencyOffsetGet_t pfnOverclockVramFrequencyOffsetGet = (ctl_pfnOverclockVramFrequencyOffsetGet_t)GetProcAddress(hinstLib, "ctlOverclockVramFrequencyOffsetGet"); + ctl_pfnOverclockVramFrequencyOffsetGet_t pfnOverclockVramFrequencyOffsetGet = (ctl_pfnOverclockVramFrequencyOffsetGet_t)GetProcAddress(hinstLibPtr, "ctlOverclockVramFrequencyOffsetGet"); if (pfnOverclockVramFrequencyOffsetGet) { result = pfnOverclockVramFrequencyOffsetGet(hDeviceHandle, pOcFrequencyOffset); @@ -3374,9 +3984,11 @@ ctlOverclockVramFrequencyOffsetSet( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnOverclockVramFrequencyOffsetSet_t pfnOverclockVramFrequencyOffsetSet = (ctl_pfnOverclockVramFrequencyOffsetSet_t)GetProcAddress(hinstLib, "ctlOverclockVramFrequencyOffsetSet"); + ctl_pfnOverclockVramFrequencyOffsetSet_t pfnOverclockVramFrequencyOffsetSet = (ctl_pfnOverclockVramFrequencyOffsetSet_t)GetProcAddress(hinstLibPtr, "ctlOverclockVramFrequencyOffsetSet"); if (pfnOverclockVramFrequencyOffsetSet) { result = pfnOverclockVramFrequencyOffsetSet(hDeviceHandle, ocFrequencyOffset); @@ -3447,9 +4059,11 @@ ctlOverclockVramVoltageOffsetGet( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnOverclockVramVoltageOffsetGet_t pfnOverclockVramVoltageOffsetGet = (ctl_pfnOverclockVramVoltageOffsetGet_t)GetProcAddress(hinstLib, "ctlOverclockVramVoltageOffsetGet"); + ctl_pfnOverclockVramVoltageOffsetGet_t pfnOverclockVramVoltageOffsetGet = (ctl_pfnOverclockVramVoltageOffsetGet_t)GetProcAddress(hinstLibPtr, "ctlOverclockVramVoltageOffsetGet"); if (pfnOverclockVramVoltageOffsetGet) { result = pfnOverclockVramVoltageOffsetGet(hDeviceHandle, pVoltage); @@ -3487,9 +4101,11 @@ ctlOverclockVramVoltageOffsetSet( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnOverclockVramVoltageOffsetSet_t pfnOverclockVramVoltageOffsetSet = (ctl_pfnOverclockVramVoltageOffsetSet_t)GetProcAddress(hinstLib, "ctlOverclockVramVoltageOffsetSet"); + ctl_pfnOverclockVramVoltageOffsetSet_t pfnOverclockVramVoltageOffsetSet = (ctl_pfnOverclockVramVoltageOffsetSet_t)GetProcAddress(hinstLibPtr, "ctlOverclockVramVoltageOffsetSet"); if (pfnOverclockVramVoltageOffsetSet) { result = pfnOverclockVramVoltageOffsetSet(hDeviceHandle, voltage); @@ -3527,9 +4143,11 @@ ctlOverclockPowerLimitGet( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnOverclockPowerLimitGet_t pfnOverclockPowerLimitGet = (ctl_pfnOverclockPowerLimitGet_t)GetProcAddress(hinstLib, "ctlOverclockPowerLimitGet"); + ctl_pfnOverclockPowerLimitGet_t pfnOverclockPowerLimitGet = (ctl_pfnOverclockPowerLimitGet_t)GetProcAddress(hinstLibPtr, "ctlOverclockPowerLimitGet"); if (pfnOverclockPowerLimitGet) { result = pfnOverclockPowerLimitGet(hDeviceHandle, pSustainedPowerLimit); @@ -3567,9 +4185,11 @@ ctlOverclockPowerLimitSet( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnOverclockPowerLimitSet_t pfnOverclockPowerLimitSet = (ctl_pfnOverclockPowerLimitSet_t)GetProcAddress(hinstLib, "ctlOverclockPowerLimitSet"); + ctl_pfnOverclockPowerLimitSet_t pfnOverclockPowerLimitSet = (ctl_pfnOverclockPowerLimitSet_t)GetProcAddress(hinstLibPtr, "ctlOverclockPowerLimitSet"); if (pfnOverclockPowerLimitSet) { result = pfnOverclockPowerLimitSet(hDeviceHandle, sustainedPowerLimit); @@ -3604,9 +4224,11 @@ ctlOverclockTemperatureLimitGet( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnOverclockTemperatureLimitGet_t pfnOverclockTemperatureLimitGet = (ctl_pfnOverclockTemperatureLimitGet_t)GetProcAddress(hinstLib, "ctlOverclockTemperatureLimitGet"); + ctl_pfnOverclockTemperatureLimitGet_t pfnOverclockTemperatureLimitGet = (ctl_pfnOverclockTemperatureLimitGet_t)GetProcAddress(hinstLibPtr, "ctlOverclockTemperatureLimitGet"); if (pfnOverclockTemperatureLimitGet) { result = pfnOverclockTemperatureLimitGet(hDeviceHandle, pTemperatureLimit); @@ -3641,9 +4263,11 @@ ctlOverclockTemperatureLimitSet( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnOverclockTemperatureLimitSet_t pfnOverclockTemperatureLimitSet = (ctl_pfnOverclockTemperatureLimitSet_t)GetProcAddress(hinstLib, "ctlOverclockTemperatureLimitSet"); + ctl_pfnOverclockTemperatureLimitSet_t pfnOverclockTemperatureLimitSet = (ctl_pfnOverclockTemperatureLimitSet_t)GetProcAddress(hinstLibPtr, "ctlOverclockTemperatureLimitSet"); if (pfnOverclockTemperatureLimitSet) { result = pfnOverclockTemperatureLimitSet(hDeviceHandle, temperatureLimit); @@ -3679,9 +4303,11 @@ ctlPowerTelemetryGet( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnPowerTelemetryGet_t pfnPowerTelemetryGet = (ctl_pfnPowerTelemetryGet_t)GetProcAddress(hinstLib, "ctlPowerTelemetryGet"); + ctl_pfnPowerTelemetryGet_t pfnPowerTelemetryGet = (ctl_pfnPowerTelemetryGet_t)GetProcAddress(hinstLibPtr, "ctlPowerTelemetryGet"); if (pfnPowerTelemetryGet) { result = pfnPowerTelemetryGet(hDeviceHandle, pTelemetryInfo); @@ -3692,6 +4318,46 @@ ctlPowerTelemetryGet( } +/** +* @brief Reset all Overclock Settings to stock +* +* @details +* - Reset all Overclock setting to default using single API call +* - This request resets any changes made to GpuFrequencyOffset, +* GpuVoltageOffset, PowerLimit, TemperatureLimit, GpuLock +* - This Doesn't reset any Fan Curve Changes. It can be reset using +* ctlFanSetDefaultMode +* +* @returns +* - CTL_RESULT_SUCCESS +* - CTL_RESULT_ERROR_UNINITIALIZED +* - CTL_RESULT_ERROR_DEVICE_LOST +* - CTL_RESULT_ERROR_INVALID_NULL_HANDLE +* + `nullptr == hDeviceHandle` +*/ +ctl_result_t CTL_APICALL +ctlOverclockResetToDefault( + ctl_device_adapter_handle_t hDeviceHandle ///< [in][release] Handle to display adapter + ) +{ + ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; + + + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) + { + ctl_pfnOverclockResetToDefault_t pfnOverclockResetToDefault = (ctl_pfnOverclockResetToDefault_t)GetProcAddress(hinstLibPtr, "ctlOverclockResetToDefault"); + if (pfnOverclockResetToDefault) + { + result = pfnOverclockResetToDefault(hDeviceHandle); + } + } + + return result; +} + + /** * @brief Get PCI properties - address, max speed * @@ -3717,9 +4383,11 @@ ctlPciGetProperties( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnPciGetProperties_t pfnPciGetProperties = (ctl_pfnPciGetProperties_t)GetProcAddress(hinstLib, "ctlPciGetProperties"); + ctl_pfnPciGetProperties_t pfnPciGetProperties = (ctl_pfnPciGetProperties_t)GetProcAddress(hinstLibPtr, "ctlPciGetProperties"); if (pfnPciGetProperties) { result = pfnPciGetProperties(hDAhandle, pProperties); @@ -3755,9 +4423,11 @@ ctlPciGetState( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnPciGetState_t pfnPciGetState = (ctl_pfnPciGetState_t)GetProcAddress(hinstLib, "ctlPciGetState"); + ctl_pfnPciGetState_t pfnPciGetState = (ctl_pfnPciGetState_t)GetProcAddress(hinstLibPtr, "ctlPciGetState"); if (pfnPciGetState) { result = pfnPciGetState(hDAhandle, pState); @@ -3803,9 +4473,11 @@ ctlEnumPowerDomains( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnEnumPowerDomains_t pfnEnumPowerDomains = (ctl_pfnEnumPowerDomains_t)GetProcAddress(hinstLib, "ctlEnumPowerDomains"); + ctl_pfnEnumPowerDomains_t pfnEnumPowerDomains = (ctl_pfnEnumPowerDomains_t)GetProcAddress(hinstLibPtr, "ctlEnumPowerDomains"); if (pfnEnumPowerDomains) { result = pfnEnumPowerDomains(hDAhandle, pCount, phPower); @@ -3841,9 +4513,11 @@ ctlPowerGetProperties( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnPowerGetProperties_t pfnPowerGetProperties = (ctl_pfnPowerGetProperties_t)GetProcAddress(hinstLib, "ctlPowerGetProperties"); + ctl_pfnPowerGetProperties_t pfnPowerGetProperties = (ctl_pfnPowerGetProperties_t)GetProcAddress(hinstLibPtr, "ctlPowerGetProperties"); if (pfnPowerGetProperties) { result = pfnPowerGetProperties(hPower, pProperties); @@ -3880,9 +4554,11 @@ ctlPowerGetEnergyCounter( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnPowerGetEnergyCounter_t pfnPowerGetEnergyCounter = (ctl_pfnPowerGetEnergyCounter_t)GetProcAddress(hinstLib, "ctlPowerGetEnergyCounter"); + ctl_pfnPowerGetEnergyCounter_t pfnPowerGetEnergyCounter = (ctl_pfnPowerGetEnergyCounter_t)GetProcAddress(hinstLibPtr, "ctlPowerGetEnergyCounter"); if (pfnPowerGetEnergyCounter) { result = pfnPowerGetEnergyCounter(hPower, pEnergy); @@ -3916,9 +4592,11 @@ ctlPowerGetLimits( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnPowerGetLimits_t pfnPowerGetLimits = (ctl_pfnPowerGetLimits_t)GetProcAddress(hinstLib, "ctlPowerGetLimits"); + ctl_pfnPowerGetLimits_t pfnPowerGetLimits = (ctl_pfnPowerGetLimits_t)GetProcAddress(hinstLibPtr, "ctlPowerGetLimits"); if (pfnPowerGetLimits) { result = pfnPowerGetLimits(hPower, pPowerLimits); @@ -3956,9 +4634,11 @@ ctlPowerSetLimits( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnPowerSetLimits_t pfnPowerSetLimits = (ctl_pfnPowerSetLimits_t)GetProcAddress(hinstLib, "ctlPowerSetLimits"); + ctl_pfnPowerSetLimits_t pfnPowerSetLimits = (ctl_pfnPowerSetLimits_t)GetProcAddress(hinstLibPtr, "ctlPowerSetLimits"); if (pfnPowerSetLimits) { result = pfnPowerSetLimits(hPower, pPowerLimits); @@ -4004,9 +4684,11 @@ ctlEnumTemperatureSensors( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnEnumTemperatureSensors_t pfnEnumTemperatureSensors = (ctl_pfnEnumTemperatureSensors_t)GetProcAddress(hinstLib, "ctlEnumTemperatureSensors"); + ctl_pfnEnumTemperatureSensors_t pfnEnumTemperatureSensors = (ctl_pfnEnumTemperatureSensors_t)GetProcAddress(hinstLibPtr, "ctlEnumTemperatureSensors"); if (pfnEnumTemperatureSensors) { result = pfnEnumTemperatureSensors(hDAhandle, pCount, phTemperature); @@ -4042,9 +4724,11 @@ ctlTemperatureGetProperties( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnTemperatureGetProperties_t pfnTemperatureGetProperties = (ctl_pfnTemperatureGetProperties_t)GetProcAddress(hinstLib, "ctlTemperatureGetProperties"); + ctl_pfnTemperatureGetProperties_t pfnTemperatureGetProperties = (ctl_pfnTemperatureGetProperties_t)GetProcAddress(hinstLibPtr, "ctlTemperatureGetProperties"); if (pfnTemperatureGetProperties) { result = pfnTemperatureGetProperties(hTemperature, pProperties); @@ -4081,9 +4765,11 @@ ctlTemperatureGetState( ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; - if (NULL != hinstLib) + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) { - ctl_pfnTemperatureGetState_t pfnTemperatureGetState = (ctl_pfnTemperatureGetState_t)GetProcAddress(hinstLib, "ctlTemperatureGetState"); + ctl_pfnTemperatureGetState_t pfnTemperatureGetState = (ctl_pfnTemperatureGetState_t)GetProcAddress(hinstLibPtr, "ctlTemperatureGetState"); if (pfnTemperatureGetState) { result = pfnTemperatureGetState(hTemperature, pTemperature); diff --git a/IntelPresentMon/ControlLib/ctlpvttempWrapper.cpp b/IntelPresentMon/ControlLib/ctlpvttempWrapper.cpp new file mode 100644 index 00000000..f543502b --- /dev/null +++ b/IntelPresentMon/ControlLib/ctlpvttempWrapper.cpp @@ -0,0 +1,659 @@ +//=========================================================================== +//Copyright (C) 2022-23 Intel Corporation +// +// +// +//SPDX-License-Identifier: MIT +//-------------------------------------------------------------------------- + +/** + * + * @file ctlpvttemp_api.cpp + * @version v1-r1 + * + */ + +// Note: UWP applications should have defined WINDOWS_UWP in their compiler settings +// Also at this point, it's easier by not enabling pre-compiled option to compile this file +// Not all functionalities are tested for a UWP application + +#include +#include +#include + +//#define CTL_APIEXPORT + +#include "igcl_api.h" +#include "ctlpvttemp_api.h" + +///////////////////////////////////////////////////////////////////////////////// +// +// Implementation of wrapper functions +// +HINSTANCE GetLoaderHandle(void); + + +/** +* @brief Get the Current Overclock GPU Frequency Offset +* +* @details +* - Determine the current frequency offset in effect (refer to +* ::ctlOverclockGpuFrequencyOffsetSetV2() for details). +* - The unit of the value returned is given in +* ::ctl_oc_properties_t::gpuFrequencyOffset::units returned from +* ::ctlOverclockGetProperties() +* - The unit of the value returned can be different for different +* generation of graphics product +* +* @returns +* - CTL_RESULT_SUCCESS +* - CTL_RESULT_ERROR_UNINITIALIZED +* - CTL_RESULT_ERROR_DEVICE_LOST +* - CTL_RESULT_ERROR_INVALID_NULL_HANDLE +* + `nullptr == hDeviceHandle` +* - CTL_RESULT_ERROR_INVALID_NULL_POINTER +* + `nullptr == pOcFrequencyOffset` +*/ +ctl_result_t CTL_APICALL +ctlOverclockGpuFrequencyOffsetGetV2( + ctl_device_adapter_handle_t hDeviceHandle, ///< [in][release] Handle to display adapter + double* pOcFrequencyOffset ///< [in,out] Current GPU Overclock Frequency Offset in units given in + ///< ::ctl_oc_properties_t::gpuFrequencyOffset::units returned from + ///< ::ctlOverclockGetProperties() + ) +{ + ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; + + + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) + { + ctlpvttemp_$xOverclockGpuFrequencyOffsetGetV2_t pfnOverclockGpuFrequencyOffsetGetV2 = (ctlpvttemp_$xOverclockGpuFrequencyOffsetGetV2_t)GetProcAddress(hinstLibPtr, "ctlOverclockGpuFrequencyOffsetGetV2"); + if (pfnOverclockGpuFrequencyOffsetGetV2) + { + result = pfnOverclockGpuFrequencyOffsetGetV2(hDeviceHandle, pOcFrequencyOffset); + } + } + + return result; +} + + +/** +* @brief Set the Overclock Frequency Offset for the GPU +* +* @details +* - The purpose of this function is to increase/decrease the frequency +* offset at which typical workloads will run within the same thermal +* budget. +* - The frequency offset is expressed in units given in +* ::ctl_oc_properties_t::gpuFrequencyOffset::units returned from +* ::ctlOverclockGetProperties() +* - The actual operating frequency for each workload is not guaranteed to +* change exactly by the specified offset. +* - For positive frequency offsets, the factory maximum frequency may +* increase by up to the specified amount. +* - Specifying large values for the frequency offset can lead to +* instability. It is recommended that changes are made in small +* increments and stability/performance measured running intense GPU +* workloads before increasing further. +* - This setting is not persistent through system reboots or driver +* resets/hangs. It is up to the overclock application to reapply the +* settings in those cases. +* - This setting can cause system/device instability. It is up to the +* overclock application to detect if the system has rebooted +* unexpectedly or the device was restarted. When this occurs, the +* application should not reapply the overclock settings automatically +* but instead return to previously known good settings or notify the +* user that the settings are not being applied. +* +* @returns +* - CTL_RESULT_SUCCESS +* - CTL_RESULT_ERROR_UNINITIALIZED +* - CTL_RESULT_ERROR_DEVICE_LOST +* - CTL_RESULT_ERROR_INVALID_NULL_HANDLE +* + `nullptr == hDeviceHandle` +*/ +ctl_result_t CTL_APICALL +ctlOverclockGpuFrequencyOffsetSetV2( + ctl_device_adapter_handle_t hDeviceHandle, ///< [in][release] Handle to display adapter + double ocFrequencyOffset ///< [in] The GPU Overclocking Frequency Offset Desired in units given in + ///< ::ctl_oc_properties_t::gpuFrequencyOffset::units returned from + ///< ::ctlOverclockGetProperties() + ) +{ + ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; + + + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) + { + ctlpvttemp_$xOverclockGpuFrequencyOffsetSetV2_t pfnOverclockGpuFrequencyOffsetSetV2 = (ctlpvttemp_$xOverclockGpuFrequencyOffsetSetV2_t)GetProcAddress(hinstLibPtr, "ctlOverclockGpuFrequencyOffsetSetV2"); + if (pfnOverclockGpuFrequencyOffsetSetV2) + { + result = pfnOverclockGpuFrequencyOffsetSetV2(hDeviceHandle, ocFrequencyOffset); + } + } + + return result; +} + + +/** +* @brief Get the Current Overclock Voltage Offset for the GPU +* +* @details +* - Determine the current maximum voltage offset in effect on the hardware +* (refer to ::ctlOverclockGpuMaxVoltageOffsetSetV2 for details). +* - The unit of the value returned is given in +* ::ctl_oc_properties_t::gpuVoltageOffset::units returned from +* ::ctlOverclockGetProperties() +* - The unit of the value returned can be different for different +* generation of graphics product +* +* @returns +* - CTL_RESULT_SUCCESS +* - CTL_RESULT_ERROR_UNINITIALIZED +* - CTL_RESULT_ERROR_DEVICE_LOST +* - CTL_RESULT_ERROR_INVALID_NULL_HANDLE +* + `nullptr == hDeviceHandle` +* - CTL_RESULT_ERROR_INVALID_NULL_POINTER +* + `nullptr == pOcMaxVoltageOffset` +*/ +ctl_result_t CTL_APICALL +ctlOverclockGpuMaxVoltageOffsetGetV2( + ctl_device_adapter_handle_t hDeviceHandle, ///< [in][release] Handle to display adapter + double* pOcMaxVoltageOffset ///< [in,out] Current Overclock GPU Voltage Offset in Units given in + ///< ::ctl_oc_properties_t::gpuVoltageOffset::units returned from + ///< ::ctlOverclockGetProperties() + ) +{ + ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; + + + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) + { + ctlpvttemp_$xOverclockGpuMaxVoltageOffsetGetV2_t pfnOverclockGpuMaxVoltageOffsetGetV2 = (ctlpvttemp_$xOverclockGpuMaxVoltageOffsetGetV2_t)GetProcAddress(hinstLibPtr, "ctlOverclockGpuMaxVoltageOffsetGetV2"); + if (pfnOverclockGpuMaxVoltageOffsetGetV2) + { + result = pfnOverclockGpuMaxVoltageOffsetGetV2(hDeviceHandle, pOcMaxVoltageOffset); + } + } + + return result; +} + + +/** +* @brief Set the Overclock Voltage Offset for the GPU +* +* @details +* - The purpose of this function is to attempt to run the GPU up to higher +* voltages beyond the part warrantee limits. This can permit running at +* even higher frequencies than can be obtained using the frequency +* offset setting, but at the risk of reducing the lifetime of the part. +* - The voltage offset is expressed in units given in +* ::ctl_oc_properties_t::gpuVoltageOffset::units returned from +* ::ctlOverclockGetProperties() +* - The overclock waiver must be set before calling this function +* otherwise error will be returned. +* - There is no guarantee that a workload can operate at the higher +* frequencies permitted by this setting. Significantly more heat will be +* generated at these high frequencies/voltages which will necessitate a +* good cooling solution. +* +* @returns +* - CTL_RESULT_SUCCESS +* - CTL_RESULT_ERROR_UNINITIALIZED +* - CTL_RESULT_ERROR_DEVICE_LOST +* - CTL_RESULT_ERROR_INVALID_NULL_HANDLE +* + `nullptr == hDeviceHandle` +*/ +ctl_result_t CTL_APICALL +ctlOverclockGpuMaxVoltageOffsetSetV2( + ctl_device_adapter_handle_t hDeviceHandle, ///< [in][release] Handle to display adapter + double ocMaxVoltageOffset ///< [in] The Overclocking Maximum Voltage Desired in units given in + ///< ::ctl_oc_properties_t::gpuVoltageOffset::units returned from + ///< ::ctlOverclockGetProperties() + ) +{ + ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; + + + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) + { + ctlpvttemp_$xOverclockGpuMaxVoltageOffsetSetV2_t pfnOverclockGpuMaxVoltageOffsetSetV2 = (ctlpvttemp_$xOverclockGpuMaxVoltageOffsetSetV2_t)GetProcAddress(hinstLibPtr, "ctlOverclockGpuMaxVoltageOffsetSetV2"); + if (pfnOverclockGpuMaxVoltageOffsetSetV2) + { + result = pfnOverclockGpuMaxVoltageOffsetSetV2(hDeviceHandle, ocMaxVoltageOffset); + } + } + + return result; +} + + +/** +* @brief Get the current Overclock Vram Memory Speed +* +* @details +* - The purpose of this function is to return the current VRAM Memory +* Speed +* - The unit of the value returned is given in +* ctl_oc_properties_t::vramMemSpeedLimit::units returned from +* ::ctlOverclockGetProperties() +* - The unit of the value returned can be different for different +* generation of graphics product +* +* @returns +* - CTL_RESULT_SUCCESS +* - CTL_RESULT_ERROR_UNINITIALIZED +* - CTL_RESULT_ERROR_DEVICE_LOST +* - CTL_RESULT_ERROR_INVALID_NULL_HANDLE +* + `nullptr == hDeviceHandle` +* - CTL_RESULT_ERROR_INVALID_NULL_POINTER +* + `nullptr == pOcVramMemSpeedLimit` +*/ +ctl_result_t CTL_APICALL +ctlOverclockVramMemSpeedLimitGetV2( + ctl_device_adapter_handle_t hDeviceHandle, ///< [in][release] Handle to display adapter + double* pOcVramMemSpeedLimit ///< [in,out] The current VRAM Memory Speed in units given in + ///< ctl_oc_properties_t::vramMemSpeedLimit::units returned from + ///< ::ctlOverclockGetProperties() + ) +{ + ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; + + + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) + { + ctlpvttemp_$xOverclockVramMemSpeedLimitGetV2_t pfnOverclockVramMemSpeedLimitGetV2 = (ctlpvttemp_$xOverclockVramMemSpeedLimitGetV2_t)GetProcAddress(hinstLibPtr, "ctlOverclockVramMemSpeedLimitGetV2"); + if (pfnOverclockVramMemSpeedLimitGetV2) + { + result = pfnOverclockVramMemSpeedLimitGetV2(hDeviceHandle, pOcVramMemSpeedLimit); + } + } + + return result; +} + + +/** +* @brief Set the desired Overclock Vram Memory Speed +* +* @details +* - The purpose of this function is to increase/decrease the Speed of +* VRAM. +* - The Memory Speed is expressed in units given in +* ctl_oc_properties_t::vramMemSpeedLimit::units returned from +* ::ctlOverclockGetProperties() with a minimum step size given by +* ::ctlOverclockGetProperties(). +* - The actual Memory Speed for each workload is not guaranteed to change +* exactly by the specified offset. +* - This setting is not persistent through system reboots or driver +* resets/hangs. It is up to the overclock application to reapply the +* settings in those cases. +* - This setting can cause system/device instability. It is up to the +* overclock application to detect if the system has rebooted +* unexpectedly or the device was restarted. When this occurs, the +* application should not reapply the overclock settings automatically +* but instead return to previously known good settings or notify the +* user that the settings are not being applied. +* - If the memory controller doesn't support changes to memory speed on +* the fly, one of the following return codes will be given: +* - CTL_RESULT_ERROR_RESET_DEVICE_REQUIRED: The requested memory overclock +* will be applied when the device is reset or the system is rebooted. In +* this case, the overclock software should check if the overclock +* request was applied after the reset/reboot. If it was and when the +* overclock application shuts down gracefully and if the overclock +* application wants the setting to be persistent, the application should +* request the same overclock settings again so that they will be applied +* on the next reset/reboot. If this is not done, then every time the +* device is reset and overclock is requested, the device needs to be +* reset a second time. +* - CTL_RESULT_ERROR_FULL_REBOOT_REQUIRED: The requested memory overclock +* will be applied when the system is rebooted. In this case, the +* overclock software should check if the overclock request was applied +* after the reboot. If it was and when the overclock application shuts +* down gracefully and if the overclock application wants the setting to +* be persistent, the application should request the same overclock +* settings again so that they will be applied on the next reset/reboot. +* If this is not done and the overclock setting is requested after the +* reboot has occurred, a second reboot will be required. +* - CTL_RESULT_ERROR_UNSUPPORTED_FEATURE: The Memory Speed Get / Set +* Feature is currently not available or Unsupported in current platform +* +* @returns +* - CTL_RESULT_SUCCESS +* - CTL_RESULT_ERROR_UNINITIALIZED +* - CTL_RESULT_ERROR_DEVICE_LOST +* - CTL_RESULT_ERROR_INVALID_NULL_HANDLE +* + `nullptr == hDeviceHandle` +*/ +ctl_result_t CTL_APICALL +ctlOverclockVramMemSpeedLimitSetV2( + ctl_device_adapter_handle_t hDeviceHandle, ///< [in][release] Handle to display adapter + double ocVramMemSpeedLimit ///< [in] The desired Memory Speed in units given in + ///< ctl_oc_properties_t::vramMemSpeedLimit::units returned from + ///< ::ctlOverclockGetProperties() + ) +{ + ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; + + + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) + { + ctlpvttemp_$xOverclockVramMemSpeedLimitSetV2_t pfnOverclockVramMemSpeedLimitSetV2 = (ctlpvttemp_$xOverclockVramMemSpeedLimitSetV2_t)GetProcAddress(hinstLibPtr, "ctlOverclockVramMemSpeedLimitSetV2"); + if (pfnOverclockVramMemSpeedLimitSetV2) + { + result = pfnOverclockVramMemSpeedLimitSetV2(hDeviceHandle, ocVramMemSpeedLimit); + } + } + + return result; +} + + +/** +* @brief Get the Current Sustained power limit +* +* @details +* - The purpose of this function is to read the current sustained power +* limit. +* - The unit of the value returned is given in +* ::ctl_oc_properties_t::powerLimit::units returned from +* ::ctlOverclockGetProperties() +* - The unit of the value returned can be different for different +* generation of graphics product +* +* @returns +* - CTL_RESULT_SUCCESS +* - CTL_RESULT_ERROR_UNINITIALIZED +* - CTL_RESULT_ERROR_DEVICE_LOST +* - CTL_RESULT_ERROR_INVALID_NULL_HANDLE +* + `nullptr == hDeviceHandle` +* - CTL_RESULT_ERROR_INVALID_NULL_POINTER +* + `nullptr == pSustainedPowerLimit` +*/ +ctl_result_t CTL_APICALL +ctlOverclockPowerLimitGetV2( + ctl_device_adapter_handle_t hDeviceHandle, ///< [in][release] Handle to display adapter + double* pSustainedPowerLimit ///< [in,out] The current Sustained Power limit in Units given in + ///< ::ctl_oc_properties_t::powerLimit::units returned from + ///< ::ctlOverclockGetProperties() + ) +{ + ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; + + + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) + { + ctlpvttemp_$xOverclockPowerLimitGetV2_t pfnOverclockPowerLimitGetV2 = (ctlpvttemp_$xOverclockPowerLimitGetV2_t)GetProcAddress(hinstLibPtr, "ctlOverclockPowerLimitGetV2"); + if (pfnOverclockPowerLimitGetV2) + { + result = pfnOverclockPowerLimitGetV2(hDeviceHandle, pSustainedPowerLimit); + } + } + + return result; +} + + +/** +* @brief Set the Sustained power limit +* +* @details +* - The purpose of this function is to set the maximum sustained power +* limit. If the average GPU power averaged over a few seconds exceeds +* this value, the frequency of the GPU will be throttled. +* - Set a value of 0 to disable this power limit. In this case, the GPU +* frequency will not throttle due to average power but may hit other +* limits. +* - The unit of the PowerLimit to be set is given in +* ::ctl_oc_properties_t::powerLimit::units returned from +* ::ctlOverclockGetProperties() +* - The unit of the value returned can be different for different +* generation of graphics product +* +* @returns +* - CTL_RESULT_SUCCESS +* - CTL_RESULT_ERROR_UNINITIALIZED +* - CTL_RESULT_ERROR_DEVICE_LOST +* - CTL_RESULT_ERROR_INVALID_NULL_HANDLE +* + `nullptr == hDeviceHandle` +*/ +ctl_result_t CTL_APICALL +ctlOverclockPowerLimitSetV2( + ctl_device_adapter_handle_t hDeviceHandle, ///< [in][release] Handle to display adapter + double sustainedPowerLimit ///< [in] The desired sustained power limit in Units given in + ///< ::ctl_oc_properties_t::powerLimit::units returned from + ///< ::ctlOverclockGetProperties() + ) +{ + ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; + + + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) + { + ctlpvttemp_$xOverclockPowerLimitSetV2_t pfnOverclockPowerLimitSetV2 = (ctlpvttemp_$xOverclockPowerLimitSetV2_t)GetProcAddress(hinstLibPtr, "ctlOverclockPowerLimitSetV2"); + if (pfnOverclockPowerLimitSetV2) + { + result = pfnOverclockPowerLimitSetV2(hDeviceHandle, sustainedPowerLimit); + } + } + + return result; +} + + +/** +* @brief Get the current temperature limit +* +* @details +* - The purpose of this function is to read the current thermal limit used +* for Overclocking +* - The unit of the value returned is given in +* ::ctl_oc_properties_t::temperatureLimit::units returned from +* ::ctlOverclockGetProperties() +* - The unit of the value returned can be different for different +* generation of graphics product +* +* @returns +* - CTL_RESULT_SUCCESS +* - CTL_RESULT_ERROR_UNINITIALIZED +* - CTL_RESULT_ERROR_DEVICE_LOST +* - CTL_RESULT_ERROR_INVALID_NULL_HANDLE +* + `nullptr == hDeviceHandle` +* - CTL_RESULT_ERROR_INVALID_NULL_POINTER +* + `nullptr == pTemperatureLimit` +*/ +ctl_result_t CTL_APICALL +ctlOverclockTemperatureLimitGetV2( + ctl_device_adapter_handle_t hDeviceHandle, ///< [in][release] Handle to display adapter + double* pTemperatureLimit ///< [in,out] The current temperature limit in Units given in + ///< ::ctl_oc_properties_t::temperatureLimit::units returned from + ///< ::ctlOverclockGetProperties() + ) +{ + ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; + + + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) + { + ctlpvttemp_$xOverclockTemperatureLimitGetV2_t pfnOverclockTemperatureLimitGetV2 = (ctlpvttemp_$xOverclockTemperatureLimitGetV2_t)GetProcAddress(hinstLibPtr, "ctlOverclockTemperatureLimitGetV2"); + if (pfnOverclockTemperatureLimitGetV2) + { + result = pfnOverclockTemperatureLimitGetV2(hDeviceHandle, pTemperatureLimit); + } + } + + return result; +} + + +/** +* @brief Set the temperature limit +* +* @details +* - The purpose of this function is to change the maximum thermal limit. +* When the GPU temperature exceeds this value, the GPU frequency will be +* throttled. +* - The unit of the value to be set is given in +* ::ctl_oc_properties_t::temperatureLimit::units returned from +* ::ctlOverclockGetProperties() +* +* @returns +* - CTL_RESULT_SUCCESS +* - CTL_RESULT_ERROR_UNINITIALIZED +* - CTL_RESULT_ERROR_DEVICE_LOST +* - CTL_RESULT_ERROR_INVALID_NULL_HANDLE +* + `nullptr == hDeviceHandle` +*/ +ctl_result_t CTL_APICALL +ctlOverclockTemperatureLimitSetV2( + ctl_device_adapter_handle_t hDeviceHandle, ///< [in][release] Handle to display adapter + double temperatureLimit ///< [in] The desired temperature limit in Units given in + ///< ctl_oc_properties_t::temperatureLimit::units returned from + ///< ::ctlOverclockGetProperties() + ) +{ + ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; + + + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) + { + ctlpvttemp_$xOverclockTemperatureLimitSetV2_t pfnOverclockTemperatureLimitSetV2 = (ctlpvttemp_$xOverclockTemperatureLimitSetV2_t)GetProcAddress(hinstLibPtr, "ctlOverclockTemperatureLimitSetV2"); + if (pfnOverclockTemperatureLimitSetV2) + { + result = pfnOverclockTemperatureLimitSetV2(hDeviceHandle, temperatureLimit); + } + } + + return result; +} + + +/** +* @brief Read VF Curve +* +* @details +* - Read the Voltage-Frequency Curve +* +* @returns +* - CTL_RESULT_SUCCESS +* - CTL_RESULT_ERROR_UNINITIALIZED +* - CTL_RESULT_ERROR_DEVICE_LOST +* - CTL_RESULT_ERROR_INVALID_NULL_HANDLE +* + `nullptr == hDeviceAdapter` +* - CTL_RESULT_ERROR_INVALID_ENUMERATION +* + `::CTL_VF_CURVE_TYPE_LIVE < VFCurveType` +* + `::CTL_VF_CURVE_DETAILS_ELABORATE < VFCurveDetail` +* - CTL_RESULT_ERROR_UNKNOWN - "Unknown Error" +*/ +ctl_result_t CTL_APICALL +ctlOverclockReadVFCurve( + ctl_device_adapter_handle_t hDeviceAdapter, ///< [in][release] Handle to control device adapter + ctl_vf_curve_type_t VFCurveType, ///< [in] Type of Curve to read + ctl_vf_curve_details_t VFCurveDetail, ///< [in] Detail of Curve to read + uint32_t * pNumPoints, ///< [in][out] Number of points in the custom VF curve. If the NumPoints is + ///< zero, then the api will update the value with total number of Points + ///< based on requested VFCurveType and VFCurveDetail. If the NumPoints is + ///< non-zero, then the api will read and update the VF points in + ///< pVFCurveTable buffer provided. If the NumPoints doesn't match what the + ///< api returned in the first call, it will return an error. + ctl_voltage_frequency_point_t * pVFCurveTable ///< [in][out] Pointer to array of VF points, to copy the VF curve being + ///< read + ) +{ + ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; + + + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) + { + ctlpvttemp_$xOverclockReadVFCurve_t pfnOverclockReadVFCurve = (ctlpvttemp_$xOverclockReadVFCurve_t)GetProcAddress(hinstLibPtr, "ctlOverclockReadVFCurve"); + if (pfnOverclockReadVFCurve) + { + result = pfnOverclockReadVFCurve(hDeviceAdapter, VFCurveType, VFCurveDetail, pNumPoints, pVFCurveTable); + } + } + + return result; +} + + +/** +* @brief Write Custom VF curve +* +* @details +* - Modify the Voltage-Frequency Curve used by GPU +* - Valid Voltage-Frequency Curve shall have Voltage and Frequency Points +* in increasing order +* - Recommended to create Custom V-F Curve from reading Current V-F Curve +* using ::ctlOverclockReadVFCurve (Read-Modify-Write) +* - If Custom V-F curve write request is Successful, the Applied VF Curve +* might be slightly different than what is originally requested, +* recommended to update the UI by reading the V-F curve again using +* ctlOverclockReadVFCurve (with ctl_vf_curve_type_t::LIVE as input) +* - The overclock waiver must be set before calling this function +* otherwise error will be returned. +* +* @returns +* - CTL_RESULT_SUCCESS +* - CTL_RESULT_ERROR_UNINITIALIZED +* - CTL_RESULT_ERROR_DEVICE_LOST +* - CTL_RESULT_ERROR_INVALID_NULL_HANDLE +* + `nullptr == hDeviceAdapter` +* - CTL_RESULT_ERROR_INVALID_NULL_POINTER +* + `nullptr == pCustomVFCurveTable` +* - CTL_RESULT_ERROR_UNKNOWN - "Unknown Error" +*/ +ctl_result_t CTL_APICALL +ctlOverclockWriteCustomVFCurve( + ctl_device_adapter_handle_t hDeviceAdapter, ///< [in][release] Handle to control device adapter + uint32_t NumPoints, ///< [in] Number of points in the custom VF curve + ctl_voltage_frequency_point_t* pCustomVFCurveTable ///< [in] Pointer to an array of VF Points containing 'NumPoints' Custom VF + ///< points + ) +{ + ctl_result_t result = CTL_RESULT_ERROR_NOT_INITIALIZED; + + + HINSTANCE hinstLibPtr = GetLoaderHandle(); + + if (NULL != hinstLibPtr) + { + ctlpvttemp_$xOverclockWriteCustomVFCurve_t pfnOverclockWriteCustomVFCurve = (ctlpvttemp_$xOverclockWriteCustomVFCurve_t)GetProcAddress(hinstLibPtr, "ctlOverclockWriteCustomVFCurve"); + if (pfnOverclockWriteCustomVFCurve) + { + result = pfnOverclockWriteCustomVFCurve(hDeviceAdapter, NumPoints, pCustomVFCurveTable); + } + } + + return result; +} + + +// +// End of wrapper function implementation +// +///////////////////////////////////////////////////////////////////////////////// diff --git a/IntelPresentMon/ControlLib/ctlpvttemp_api.h b/IntelPresentMon/ControlLib/ctlpvttemp_api.h new file mode 100644 index 00000000..f506bc66 --- /dev/null +++ b/IntelPresentMon/ControlLib/ctlpvttemp_api.h @@ -0,0 +1,758 @@ +//=========================================================================== +// Copyright (C) 2022-23 Intel Corporation +// This software and the related documents are Intel copyrighted materials, and +// your use of them is governed by the express license under which they were +// provided to you ("License"). Unless the License provides otherwise, you may +// not use, modify, copy, publish, distribute, disclose or transmit this software +// or the related documents without Intel's prior written permission. This software +// and the related documents are provided as is, with no express or implied +// warranties, other than those that are expressly stated in the License. +//-------------------------------------------------------------------------- + +/** + * + * @file ctlpvttemp_api.h + * @version v1-r1 + * + */ +#ifndef _CTLPVTTEMP_API_H +#define _CTLPVTTEMP_API_H +#if defined(__cplusplus) +#pragma once +#endif + +// 'core' API headers +#include "igcl_api.h" + +#if defined(__cplusplus) +extern "C" { +#endif + +// Intel 'ctlApi'Pvt private common types +#if !defined(__GNUC__) +#pragma region common_private_temp +#endif +/////////////////////////////////////////////////////////////////////////////// +/// @brief Reuse ctl_result_t as the only type of return error +typedef ctl_result_t ctl_result_t; + +/////////////////////////////////////////////////////////////////////////////// +#ifndef CTL_APICALL +#if defined(_WIN32) +/// @brief Calling convention for all API functions +#define CTL_APICALL __cdecl +#else +#define CTL_APICALL +#endif // defined(_WIN32) +#endif // CTL_APICALL + +/////////////////////////////////////////////////////////////////////////////// +#ifndef CTL_APIEXPORT +#if defined(_WIN32) +/// @brief Microsoft-specific dllexport storage-class attribute +#define CTL_APIEXPORT __declspec(dllexport) +#else +#define CTL_APIEXPORT +#endif // defined(_WIN32) +#endif // CTL_APIEXPORT + +/////////////////////////////////////////////////////////////////////////////// +#ifndef CTL_DLLEXPORT +#if defined(_WIN32) +/// @brief Microsoft-specific dllexport storage-class attribute +#define CTL_DLLEXPORT __declspec(dllexport) +#endif // defined(_WIN32) +#endif // CTL_DLLEXPORT + +/////////////////////////////////////////////////////////////////////////////// +#ifndef CTL_DLLEXPORT +#if __GNUC__ >= 4 +/// @brief GCC-specific dllexport storage-class attribute +#define CTL_DLLEXPORT __attribute__ ((visibility ("default"))) +#else +#define CTL_DLLEXPORT +#endif // __GNUC__ >= 4 +#endif // CTL_DLLEXPORT + +/////////////////////////////////////////////////////////////////////////////// +#ifndef CTL_MAKE_VERSION +/// @brief Test private macro +#define CTL_MAKE_VERSION( _major, _minor ) (( _major << 16 )|( _minor & 0x0000ffff)) +#endif // CTL_MAKE_VERSION + +/////////////////////////////////////////////////////////////////////////////// +/// @brief VF Curve Detail +typedef enum _ctl_vf_curve_details_t +{ + CTL_VF_CURVE_DETAILS_SIMPLIFIED = 0, ///< Read minimum num of VF points for simplified VF curve view + CTL_VF_CURVE_DETAILS_MEDIUM = 1, ///< Read medium num of VF points for more points than simplified view + CTL_VF_CURVE_DETAILS_ELABORATE = 2, ///< Read Maximum num of VF points for detailed VF curve View + CTL_VF_CURVE_DETAILS_MAX + +} ctl_vf_curve_details_t; + +/////////////////////////////////////////////////////////////////////////////// +/// @brief VF Curve type +typedef enum _ctl_vf_curve_type_t +{ + CTL_VF_CURVE_TYPE_STOCK = 0, ///< Read default VF curve + CTL_VF_CURVE_TYPE_LIVE = 1, ///< Read Live VF Curve + CTL_VF_CURVE_TYPE_MAX + +} ctl_vf_curve_type_t; + +/////////////////////////////////////////////////////////////////////////////// +/// @brief Overclock Voltage Frequency Point +typedef struct _ctl_voltage_frequency_point_t +{ + uint32_t Voltage; ///< [in][out] in milliVolts + uint32_t Frequency; ///< [in][out] in MHz + +} ctl_voltage_frequency_point_t; + +/////////////////////////////////////////////////////////////////////////////// +/// @brief Overclock properties +typedef struct _ctl_oc_properties2_t +{ + uint32_t Size; ///< [in] size of this structure + uint8_t Version; ///< [in] version of this structure + bool bSupported; ///< [out] Indicates if the adapter supports overclocking. + ctl_oc_control_info_t gpuFrequencyOffset; ///< [out] related to function ::ctlOverclockGpuFrequencyOffsetSetV2 + ctl_oc_control_info_t gpuVoltageOffset; ///< [out] related to function ::ctlOverclockGpuMaxVoltageOffsetSetV2 + ctl_oc_control_info_t vramFrequencyOffset; ///< [out] Property Field Deprecated / No Longer Supported + ctl_oc_control_info_t vramVoltageOffset; ///< [out] Property Field Deprecated / No Longer Supported + ctl_oc_control_info_t powerLimit; ///< [out] related to function ::ctlOverclockPowerLimitSetV2 + ctl_oc_control_info_t temperatureLimit; ///< [out] related to function ::ctlOverclockTemperatureLimitSetV2 + ctl_oc_control_info_t vramMemSpeedLimit; ///< [out] related to function ::ctlOverclockVramMemSpeedLimitSetV2 + ///< Supported only for Version > 0 + ctl_oc_control_info_t gpuVFCurveVoltageLimit; ///< [out] related to function ::ctlOverclockWriteCustomVFCurve Supported + ///< only for Version > 0 + ctl_oc_control_info_t gpuVFCurveFrequencyLimit; ///< [out] related to function ::ctlOverclockWriteCustomVFCurve Supported + ///< only for Version > 0 + +} ctl_oc_properties2_t; + +/////////////////////////////////////////////////////////////////////////////// +/// @brief Get the Current Overclock GPU Frequency Offset +/// +/// @details +/// - Determine the current frequency offset in effect (refer to +/// ::ctlOverclockGpuFrequencyOffsetSetV2() for details). +/// - The unit of the value returned is given in +/// ::ctl_oc_properties_t::gpuFrequencyOffset::units returned from +/// ::ctlOverclockGetProperties() +/// - The unit of the value returned can be different for different +/// generation of graphics product +/// +/// @returns +/// - CTL_RESULT_SUCCESS +/// - CTL_RESULT_ERROR_UNINITIALIZED +/// - CTL_RESULT_ERROR_DEVICE_LOST +/// - CTL_RESULT_ERROR_INVALID_NULL_HANDLE +/// + `nullptr == hDeviceHandle` +/// - CTL_RESULT_ERROR_INVALID_NULL_POINTER +/// + `nullptr == pOcFrequencyOffset` +CTL_APIEXPORT ctl_result_t CTL_APICALL +ctlOverclockGpuFrequencyOffsetGetV2( + ctl_device_adapter_handle_t hDeviceHandle, ///< [in][release] Handle to display adapter + double* pOcFrequencyOffset ///< [in,out] Current GPU Overclock Frequency Offset in units given in + ///< ::ctl_oc_properties_t::gpuFrequencyOffset::units returned from + ///< ::ctlOverclockGetProperties() + ); + +/////////////////////////////////////////////////////////////////////////////// +/// @brief Set the Overclock Frequency Offset for the GPU +/// +/// @details +/// - The purpose of this function is to increase/decrease the frequency +/// offset at which typical workloads will run within the same thermal +/// budget. +/// - The frequency offset is expressed in units given in +/// ::ctl_oc_properties_t::gpuFrequencyOffset::units returned from +/// ::ctlOverclockGetProperties() +/// - The actual operating frequency for each workload is not guaranteed to +/// change exactly by the specified offset. +/// - For positive frequency offsets, the factory maximum frequency may +/// increase by up to the specified amount. +/// - Specifying large values for the frequency offset can lead to +/// instability. It is recommended that changes are made in small +/// increments and stability/performance measured running intense GPU +/// workloads before increasing further. +/// - This setting is not persistent through system reboots or driver +/// resets/hangs. It is up to the overclock application to reapply the +/// settings in those cases. +/// - This setting can cause system/device instability. It is up to the +/// overclock application to detect if the system has rebooted +/// unexpectedly or the device was restarted. When this occurs, the +/// application should not reapply the overclock settings automatically +/// but instead return to previously known good settings or notify the +/// user that the settings are not being applied. +/// +/// @returns +/// - CTL_RESULT_SUCCESS +/// - CTL_RESULT_ERROR_UNINITIALIZED +/// - CTL_RESULT_ERROR_DEVICE_LOST +/// - CTL_RESULT_ERROR_INVALID_NULL_HANDLE +/// + `nullptr == hDeviceHandle` +CTL_APIEXPORT ctl_result_t CTL_APICALL +ctlOverclockGpuFrequencyOffsetSetV2( + ctl_device_adapter_handle_t hDeviceHandle, ///< [in][release] Handle to display adapter + double ocFrequencyOffset ///< [in] The GPU Overclocking Frequency Offset Desired in units given in + ///< ::ctl_oc_properties_t::gpuFrequencyOffset::units returned from + ///< ::ctlOverclockGetProperties() + ); + +/////////////////////////////////////////////////////////////////////////////// +/// @brief Get the Current Overclock Voltage Offset for the GPU +/// +/// @details +/// - Determine the current maximum voltage offset in effect on the hardware +/// (refer to ::ctlOverclockGpuMaxVoltageOffsetSetV2 for details). +/// - The unit of the value returned is given in +/// ::ctl_oc_properties_t::gpuVoltageOffset::units returned from +/// ::ctlOverclockGetProperties() +/// - The unit of the value returned can be different for different +/// generation of graphics product +/// +/// @returns +/// - CTL_RESULT_SUCCESS +/// - CTL_RESULT_ERROR_UNINITIALIZED +/// - CTL_RESULT_ERROR_DEVICE_LOST +/// - CTL_RESULT_ERROR_INVALID_NULL_HANDLE +/// + `nullptr == hDeviceHandle` +/// - CTL_RESULT_ERROR_INVALID_NULL_POINTER +/// + `nullptr == pOcMaxVoltageOffset` +CTL_APIEXPORT ctl_result_t CTL_APICALL +ctlOverclockGpuMaxVoltageOffsetGetV2( + ctl_device_adapter_handle_t hDeviceHandle, ///< [in][release] Handle to display adapter + double* pOcMaxVoltageOffset ///< [in,out] Current Overclock GPU Voltage Offset in Units given in + ///< ::ctl_oc_properties_t::gpuVoltageOffset::units returned from + ///< ::ctlOverclockGetProperties() + ); + +/////////////////////////////////////////////////////////////////////////////// +/// @brief Set the Overclock Voltage Offset for the GPU +/// +/// @details +/// - The purpose of this function is to attempt to run the GPU up to higher +/// voltages beyond the part warrantee limits. This can permit running at +/// even higher frequencies than can be obtained using the frequency +/// offset setting, but at the risk of reducing the lifetime of the part. +/// - The voltage offset is expressed in units given in +/// ::ctl_oc_properties_t::gpuVoltageOffset::units returned from +/// ::ctlOverclockGetProperties() +/// - The overclock waiver must be set before calling this function +/// otherwise error will be returned. +/// - There is no guarantee that a workload can operate at the higher +/// frequencies permitted by this setting. Significantly more heat will be +/// generated at these high frequencies/voltages which will necessitate a +/// good cooling solution. +/// +/// @returns +/// - CTL_RESULT_SUCCESS +/// - CTL_RESULT_ERROR_UNINITIALIZED +/// - CTL_RESULT_ERROR_DEVICE_LOST +/// - CTL_RESULT_ERROR_INVALID_NULL_HANDLE +/// + `nullptr == hDeviceHandle` +CTL_APIEXPORT ctl_result_t CTL_APICALL +ctlOverclockGpuMaxVoltageOffsetSetV2( + ctl_device_adapter_handle_t hDeviceHandle, ///< [in][release] Handle to display adapter + double ocMaxVoltageOffset ///< [in] The Overclocking Maximum Voltage Desired in units given in + ///< ::ctl_oc_properties_t::gpuVoltageOffset::units returned from + ///< ::ctlOverclockGetProperties() + ); + +/////////////////////////////////////////////////////////////////////////////// +/// @brief Get the current Overclock Vram Memory Speed +/// +/// @details +/// - The purpose of this function is to return the current VRAM Memory +/// Speed +/// - The unit of the value returned is given in +/// ctl_oc_properties_t::vramMemSpeedLimit::units returned from +/// ::ctlOverclockGetProperties() +/// - The unit of the value returned can be different for different +/// generation of graphics product +/// +/// @returns +/// - CTL_RESULT_SUCCESS +/// - CTL_RESULT_ERROR_UNINITIALIZED +/// - CTL_RESULT_ERROR_DEVICE_LOST +/// - CTL_RESULT_ERROR_INVALID_NULL_HANDLE +/// + `nullptr == hDeviceHandle` +/// - CTL_RESULT_ERROR_INVALID_NULL_POINTER +/// + `nullptr == pOcVramMemSpeedLimit` +CTL_APIEXPORT ctl_result_t CTL_APICALL +ctlOverclockVramMemSpeedLimitGetV2( + ctl_device_adapter_handle_t hDeviceHandle, ///< [in][release] Handle to display adapter + double* pOcVramMemSpeedLimit ///< [in,out] The current VRAM Memory Speed in units given in + ///< ctl_oc_properties_t::vramMemSpeedLimit::units returned from + ///< ::ctlOverclockGetProperties() + ); + +/////////////////////////////////////////////////////////////////////////////// +/// @brief Set the desired Overclock Vram Memory Speed +/// +/// @details +/// - The purpose of this function is to increase/decrease the Speed of +/// VRAM. +/// - The Memory Speed is expressed in units given in +/// ctl_oc_properties_t::vramMemSpeedLimit::units returned from +/// ::ctlOverclockGetProperties() with a minimum step size given by +/// ::ctlOverclockGetProperties(). +/// - The actual Memory Speed for each workload is not guaranteed to change +/// exactly by the specified offset. +/// - This setting is not persistent through system reboots or driver +/// resets/hangs. It is up to the overclock application to reapply the +/// settings in those cases. +/// - This setting can cause system/device instability. It is up to the +/// overclock application to detect if the system has rebooted +/// unexpectedly or the device was restarted. When this occurs, the +/// application should not reapply the overclock settings automatically +/// but instead return to previously known good settings or notify the +/// user that the settings are not being applied. +/// - If the memory controller doesn't support changes to memory speed on +/// the fly, one of the following return codes will be given: +/// - CTL_RESULT_ERROR_RESET_DEVICE_REQUIRED: The requested memory overclock +/// will be applied when the device is reset or the system is rebooted. In +/// this case, the overclock software should check if the overclock +/// request was applied after the reset/reboot. If it was and when the +/// overclock application shuts down gracefully and if the overclock +/// application wants the setting to be persistent, the application should +/// request the same overclock settings again so that they will be applied +/// on the next reset/reboot. If this is not done, then every time the +/// device is reset and overclock is requested, the device needs to be +/// reset a second time. +/// - CTL_RESULT_ERROR_FULL_REBOOT_REQUIRED: The requested memory overclock +/// will be applied when the system is rebooted. In this case, the +/// overclock software should check if the overclock request was applied +/// after the reboot. If it was and when the overclock application shuts +/// down gracefully and if the overclock application wants the setting to +/// be persistent, the application should request the same overclock +/// settings again so that they will be applied on the next reset/reboot. +/// If this is not done and the overclock setting is requested after the +/// reboot has occurred, a second reboot will be required. +/// - CTL_RESULT_ERROR_UNSUPPORTED_FEATURE: The Memory Speed Get / Set +/// Feature is currently not available or Unsupported in current platform +/// +/// @returns +/// - CTL_RESULT_SUCCESS +/// - CTL_RESULT_ERROR_UNINITIALIZED +/// - CTL_RESULT_ERROR_DEVICE_LOST +/// - CTL_RESULT_ERROR_INVALID_NULL_HANDLE +/// + `nullptr == hDeviceHandle` +CTL_APIEXPORT ctl_result_t CTL_APICALL +ctlOverclockVramMemSpeedLimitSetV2( + ctl_device_adapter_handle_t hDeviceHandle, ///< [in][release] Handle to display adapter + double ocVramMemSpeedLimit ///< [in] The desired Memory Speed in units given in + ///< ctl_oc_properties_t::vramMemSpeedLimit::units returned from + ///< ::ctlOverclockGetProperties() + ); + +/////////////////////////////////////////////////////////////////////////////// +/// @brief Get the Current Sustained power limit +/// +/// @details +/// - The purpose of this function is to read the current sustained power +/// limit. +/// - The unit of the value returned is given in +/// ::ctl_oc_properties_t::powerLimit::units returned from +/// ::ctlOverclockGetProperties() +/// - The unit of the value returned can be different for different +/// generation of graphics product +/// +/// @returns +/// - CTL_RESULT_SUCCESS +/// - CTL_RESULT_ERROR_UNINITIALIZED +/// - CTL_RESULT_ERROR_DEVICE_LOST +/// - CTL_RESULT_ERROR_INVALID_NULL_HANDLE +/// + `nullptr == hDeviceHandle` +/// - CTL_RESULT_ERROR_INVALID_NULL_POINTER +/// + `nullptr == pSustainedPowerLimit` +CTL_APIEXPORT ctl_result_t CTL_APICALL +ctlOverclockPowerLimitGetV2( + ctl_device_adapter_handle_t hDeviceHandle, ///< [in][release] Handle to display adapter + double* pSustainedPowerLimit ///< [in,out] The current Sustained Power limit in Units given in + ///< ::ctl_oc_properties_t::powerLimit::units returned from + ///< ::ctlOverclockGetProperties() + ); + +/////////////////////////////////////////////////////////////////////////////// +/// @brief Set the Sustained power limit +/// +/// @details +/// - The purpose of this function is to set the maximum sustained power +/// limit. If the average GPU power averaged over a few seconds exceeds +/// this value, the frequency of the GPU will be throttled. +/// - Set a value of 0 to disable this power limit. In this case, the GPU +/// frequency will not throttle due to average power but may hit other +/// limits. +/// - The unit of the PowerLimit to be set is given in +/// ::ctl_oc_properties_t::powerLimit::units returned from +/// ::ctlOverclockGetProperties() +/// - The unit of the value returned can be different for different +/// generation of graphics product +/// +/// @returns +/// - CTL_RESULT_SUCCESS +/// - CTL_RESULT_ERROR_UNINITIALIZED +/// - CTL_RESULT_ERROR_DEVICE_LOST +/// - CTL_RESULT_ERROR_INVALID_NULL_HANDLE +/// + `nullptr == hDeviceHandle` +CTL_APIEXPORT ctl_result_t CTL_APICALL +ctlOverclockPowerLimitSetV2( + ctl_device_adapter_handle_t hDeviceHandle, ///< [in][release] Handle to display adapter + double sustainedPowerLimit ///< [in] The desired sustained power limit in Units given in + ///< ::ctl_oc_properties_t::powerLimit::units returned from + ///< ::ctlOverclockGetProperties() + ); + +/////////////////////////////////////////////////////////////////////////////// +/// @brief Get the current temperature limit +/// +/// @details +/// - The purpose of this function is to read the current thermal limit used +/// for Overclocking +/// - The unit of the value returned is given in +/// ::ctl_oc_properties_t::temperatureLimit::units returned from +/// ::ctlOverclockGetProperties() +/// - The unit of the value returned can be different for different +/// generation of graphics product +/// +/// @returns +/// - CTL_RESULT_SUCCESS +/// - CTL_RESULT_ERROR_UNINITIALIZED +/// - CTL_RESULT_ERROR_DEVICE_LOST +/// - CTL_RESULT_ERROR_INVALID_NULL_HANDLE +/// + `nullptr == hDeviceHandle` +/// - CTL_RESULT_ERROR_INVALID_NULL_POINTER +/// + `nullptr == pTemperatureLimit` +CTL_APIEXPORT ctl_result_t CTL_APICALL +ctlOverclockTemperatureLimitGetV2( + ctl_device_adapter_handle_t hDeviceHandle, ///< [in][release] Handle to display adapter + double* pTemperatureLimit ///< [in,out] The current temperature limit in Units given in + ///< ::ctl_oc_properties_t::temperatureLimit::units returned from + ///< ::ctlOverclockGetProperties() + ); + +/////////////////////////////////////////////////////////////////////////////// +/// @brief Set the temperature limit +/// +/// @details +/// - The purpose of this function is to change the maximum thermal limit. +/// When the GPU temperature exceeds this value, the GPU frequency will be +/// throttled. +/// - The unit of the value to be set is given in +/// ::ctl_oc_properties_t::temperatureLimit::units returned from +/// ::ctlOverclockGetProperties() +/// +/// @returns +/// - CTL_RESULT_SUCCESS +/// - CTL_RESULT_ERROR_UNINITIALIZED +/// - CTL_RESULT_ERROR_DEVICE_LOST +/// - CTL_RESULT_ERROR_INVALID_NULL_HANDLE +/// + `nullptr == hDeviceHandle` +CTL_APIEXPORT ctl_result_t CTL_APICALL +ctlOverclockTemperatureLimitSetV2( + ctl_device_adapter_handle_t hDeviceHandle, ///< [in][release] Handle to display adapter + double temperatureLimit ///< [in] The desired temperature limit in Units given in + ///< ctl_oc_properties_t::temperatureLimit::units returned from + ///< ::ctlOverclockGetProperties() + ); + +/////////////////////////////////////////////////////////////////////////////// +/// @brief Read VF Curve +/// +/// @details +/// - Read the Voltage-Frequency Curve +/// +/// @returns +/// - CTL_RESULT_SUCCESS +/// - CTL_RESULT_ERROR_UNINITIALIZED +/// - CTL_RESULT_ERROR_DEVICE_LOST +/// - CTL_RESULT_ERROR_INVALID_NULL_HANDLE +/// + `nullptr == hDeviceAdapter` +/// - CTL_RESULT_ERROR_INVALID_ENUMERATION +/// + `::CTL_VF_CURVE_TYPE_LIVE < VFCurveType` +/// + `::CTL_VF_CURVE_DETAILS_ELABORATE < VFCurveDetail` +/// - CTL_RESULT_ERROR_UNKNOWN - "Unknown Error" +CTL_APIEXPORT ctl_result_t CTL_APICALL +ctlOverclockReadVFCurve( + ctl_device_adapter_handle_t hDeviceAdapter, ///< [in][release] Handle to control device adapter + ctl_vf_curve_type_t VFCurveType, ///< [in] Type of Curve to read + ctl_vf_curve_details_t VFCurveDetail, ///< [in] Detail of Curve to read + uint32_t * pNumPoints, ///< [in][out] Number of points in the custom VF curve. If the NumPoints is + ///< zero, then the api will update the value with total number of Points + ///< based on requested VFCurveType and VFCurveDetail. If the NumPoints is + ///< non-zero, then the api will read and update the VF points in + ///< pVFCurveTable buffer provided. If the NumPoints doesn't match what the + ///< api returned in the first call, it will return an error. + ctl_voltage_frequency_point_t * pVFCurveTable ///< [in][out] Pointer to array of VF points, to copy the VF curve being + ///< read + ); + +/////////////////////////////////////////////////////////////////////////////// +/// @brief Write Custom VF curve +/// +/// @details +/// - Modify the Voltage-Frequency Curve used by GPU +/// - Valid Voltage-Frequency Curve shall have Voltage and Frequency Points +/// in increasing order +/// - Recommended to create Custom V-F Curve from reading Current V-F Curve +/// using ::ctlOverclockReadVFCurve (Read-Modify-Write) +/// - If Custom V-F curve write request is Successful, the Applied VF Curve +/// might be slightly different than what is originally requested, +/// recommended to update the UI by reading the V-F curve again using +/// ctlOverclockReadVFCurve (with ctl_vf_curve_type_t::LIVE as input) +/// - The overclock waiver must be set before calling this function +/// otherwise error will be returned. +/// +/// @returns +/// - CTL_RESULT_SUCCESS +/// - CTL_RESULT_ERROR_UNINITIALIZED +/// - CTL_RESULT_ERROR_DEVICE_LOST +/// - CTL_RESULT_ERROR_INVALID_NULL_HANDLE +/// + `nullptr == hDeviceAdapter` +/// - CTL_RESULT_ERROR_INVALID_NULL_POINTER +/// + `nullptr == pCustomVFCurveTable` +/// - CTL_RESULT_ERROR_UNKNOWN - "Unknown Error" +CTL_APIEXPORT ctl_result_t CTL_APICALL +ctlOverclockWriteCustomVFCurve( + ctl_device_adapter_handle_t hDeviceAdapter, ///< [in][release] Handle to control device adapter + uint32_t NumPoints, ///< [in] Number of points in the custom VF curve + ctl_voltage_frequency_point_t* pCustomVFCurveTable ///< [in] Pointer to an array of VF Points containing 'NumPoints' Custom VF + ///< points + ); + +/////////////////////////////////////////////////////////////////////////////// +/// @brief Power Telemetry +typedef struct _ctl_power_telemetry2_t +{ + uint32_t Size; ///< [in] size of this structure + uint8_t Version; ///< [in] version of this structure + ctl_oc_telemetry_item_t timeStamp; ///< [out] Snapshot of the timestamp counter that measures the total time + ///< since Jan 1, 1970 UTC. It is a decimal value in seconds with a minimum + ///< accuracy of 1 millisecond. + ctl_oc_telemetry_item_t gpuEnergyCounter; ///< [out] Snapshot of the monotonic energy counter maintained by hardware. + ///< It measures the total energy consumed by the GPU chip. By taking the + ///< delta between two snapshots and dividing by the delta time in seconds, + ///< an application can compute the average power. + ctl_oc_telemetry_item_t gpuVoltage; ///< [out] Instantaneous snapshot of the voltage feeding the GPU chip. It + ///< is measured at the power supply output - chip input will be lower. + ctl_oc_telemetry_item_t gpuCurrentClockFrequency; ///< [out] Instantaneous snapshot of the GPU chip frequency. + ctl_oc_telemetry_item_t gpuCurrentTemperature; ///< [out] Instantaneous snapshot of the GPU chip temperature, read from + ///< the sensor reporting the highest value. + ctl_oc_telemetry_item_t globalActivityCounter; ///< [out] Snapshot of the monotonic global activity counter. It measures + ///< the time in seconds (accurate down to 1 millisecond) that any GPU + ///< engine is busy. By taking the delta between two snapshots and dividing + ///< by the delta time in seconds, an application can compute the average + ///< percentage utilization of the GPU.. + ctl_oc_telemetry_item_t renderComputeActivityCounter; ///< [out] Snapshot of the monotonic 3D/compute activity counter. It + ///< measures the time in seconds (accurate down to 1 millisecond) that any + ///< 3D render/compute engine is busy. By taking the delta between two + ///< snapshots and dividing by the delta time in seconds, an application + ///< can compute the average percentage utilization of all 3D + ///< render/compute blocks in the GPU. + ctl_oc_telemetry_item_t mediaActivityCounter; ///< [out] Snapshot of the monotonic media activity counter. It measures + ///< the time in seconds (accurate down to 1 millisecond) that any media + ///< engine is busy. By taking the delta between two snapshots and dividing + ///< by the delta time in seconds, an application can compute the average + ///< percentage utilization of all media blocks in the GPU. + bool gpuPowerLimited; ///< [out] Instantaneous indication that the desired GPU frequency is being + ///< throttled because the GPU chip is exceeding the maximum power limits. + ///< Increasing the power limits using ::ctlOverclockPowerLimitSet() is one + ///< way to remove this limitation. + bool gpuTemperatureLimited; ///< [out] Instantaneous indication that the desired GPU frequency is being + ///< throttled because the GPU chip is exceeding the temperature limits. + ///< Increasing the temperature limits using + ///< ::ctlOverclockTemperatureLimitSet() is one way to reduce this + ///< limitation. Improving the cooling solution is another way. + bool gpuCurrentLimited; ///< [out] Instantaneous indication that the desired GPU frequency is being + ///< throttled because the GPU chip has exceeded the power supply current + ///< limits. A better power supply is required to reduce this limitation. + bool gpuVoltageLimited; ///< [out] Instantaneous indication that the GPU frequency cannot be + ///< increased because the voltage limits have been reached. Increase the + ///< voltage offset using ::ctlOverclockGpuVoltageOffsetSet() is one way to + ///< reduce this limitation. + bool gpuUtilizationLimited; ///< [out] Instantaneous indication that due to lower GPU utilization, the + ///< hardware has lowered the GPU frequency. + ctl_oc_telemetry_item_t vramEnergyCounter; ///< [out] Snapshot of the monotonic energy counter maintained by hardware. + ///< It measures the total energy consumed by the local memory modules. By + ///< taking the delta between two snapshots and dividing by the delta time + ///< in seconds, an application can compute the average power. + ctl_oc_telemetry_item_t vramVoltage; ///< [out] Instantaneous snapshot of the voltage feeding the memory + ///< modules. + ctl_oc_telemetry_item_t vramCurrentClockFrequency; ///< [out] Instantaneous snapshot of the raw clock frequency driving the + ///< memory modules. + ctl_oc_telemetry_item_t vramCurrentEffectiveFrequency; ///< [out] Instantaneous snapshot of the effective data transfer rate that + ///< the memory modules can sustain based on the current clock frequency.. + ctl_oc_telemetry_item_t vramReadBandwidthCounter; ///< [out] Instantaneous snapshot of the monotonic counter that measures + ///< the read traffic from the memory modules. By taking the delta between + ///< two snapshots and dividing by the delta time in seconds, an + ///< application can compute the average read bandwidth. + ctl_oc_telemetry_item_t vramWriteBandwidthCounter; ///< [out] Instantaneous snapshot of the monotonic counter that measures + ///< the write traffic to the memory modules. By taking the delta between + ///< two snapshots and dividing by the delta time in seconds, an + ///< application can compute the average write bandwidth. + ctl_oc_telemetry_item_t vramCurrentTemperature; ///< [out] Instantaneous snapshot of the GPU chip temperature, read from + ///< the sensor reporting the highest value. + bool vramPowerLimited; ///< [out] Instantaneous indication that the memory frequency is being + ///< throttled because the memory modules are exceeding the maximum power + ///< limits. + bool vramTemperatureLimited; ///< [out] Instantaneous indication that the memory frequency is being + ///< throttled because the memory modules are exceeding the temperature + ///< limits. + bool vramCurrentLimited; ///< [out] Instantaneous indication that the memory frequency is being + ///< throttled because the memory modules have exceeded the power supply + ///< current limits. + bool vramVoltageLimited; ///< [out] Instantaneous indication that the memory frequency cannot be + ///< increased because the voltage limits have been reached. + bool vramUtilizationLimited; ///< [out] Instantaneous indication that due to lower memory traffic, the + ///< hardware has lowered the memory frequency. + ctl_oc_telemetry_item_t totalCardEnergyCounter; ///< [out] Total Card Energy Counter. + ctl_psu_info_t psu[CTL_PSU_COUNT]; ///< [out] PSU voltage and power. + ctl_oc_telemetry_item_t fanSpeed[CTL_FAN_COUNT];///< [out] Fan speed. + ctl_oc_telemetry_item_t gpuVrTemp; ///< [out] GPU VR temperature. Supported for Version > 0. + ctl_oc_telemetry_item_t vramVrTemp; ///< [out] VRAM VR temperature. Supported for Version > 0. + ctl_oc_telemetry_item_t saVrTemp; ///< [out] SA VR temperature. Supported for Version > 0. + ctl_oc_telemetry_item_t gpuEffectiveClock; ///< [out] Effective frequency of the GPU. Supported for Version > 0. + ctl_oc_telemetry_item_t gpuOverVoltagePercent; ///< [out] OverVoltage as a percent between 0 and 100. Positive values + ///< represent fraction of the maximum over-voltage increment being + ///< currently applied. Zero indicates operation at or below default + ///< maximum frequency. Supported for Version > 0. + ctl_oc_telemetry_item_t gpuPowerPercent; ///< [out] GPUPower expressed as a percent representing the fraction of the + ///< default maximum power being drawn currently. Values greater than 100 + ///< indicate power draw beyond default limits. Values above OC Power limit + ///< imply throttling due to power. Supported for Version > 0. + ctl_oc_telemetry_item_t gpuTemperaturePercent; ///< [out] GPUTemperature expressed as a percent of the thermal margin. + ///< Values of 100 or greater indicate thermal throttling and 0 indicates + ///< device at 0 degree Celcius. Supported for Version > 0. + ctl_oc_telemetry_item_t vramReadBandwidth; ///< [out] Vram Read Bandwidth. Supported for Version > 0. + ctl_oc_telemetry_item_t vramWriteBandwidth; ///< [out] Vram Write Bandwidth. Supported for Version > 0. + +} ctl_power_telemetry2_t; + +/////////////////////////////////////////////////////////////////////////////// +/// @brief Forward-declare ctl_voltage_frequency_point_t +typedef struct _ctl_voltage_frequency_point_t ctl_voltage_frequency_point_t; + +/////////////////////////////////////////////////////////////////////////////// +/// @brief Forward-declare ctl_oc_properties2_t +typedef struct _ctl_oc_properties2_t ctl_oc_properties2_t; + +/////////////////////////////////////////////////////////////////////////////// +/// @brief Forward-declare ctl_power_telemetry2_t +typedef struct _ctl_power_telemetry2_t ctl_power_telemetry2_t; + + + +#if !defined(__GNUC__) +#pragma endregion // common_private_temp +#endif + + +/////////////////////////////////////////////////////////////////////////////// +/// @brief Function-pointer for ctlOverclockGpuFrequencyOffsetGetV2 +typedef ctl_result_t (CTL_APICALL *ctlpvttemp_$xOverclockGpuFrequencyOffsetGetV2_t)( + ctl_device_adapter_handle_t, + double* + ); + + +/////////////////////////////////////////////////////////////////////////////// +/// @brief Function-pointer for ctlOverclockGpuFrequencyOffsetSetV2 +typedef ctl_result_t (CTL_APICALL *ctlpvttemp_$xOverclockGpuFrequencyOffsetSetV2_t)( + ctl_device_adapter_handle_t, + double + ); + + +/////////////////////////////////////////////////////////////////////////////// +/// @brief Function-pointer for ctlOverclockGpuMaxVoltageOffsetGetV2 +typedef ctl_result_t (CTL_APICALL *ctlpvttemp_$xOverclockGpuMaxVoltageOffsetGetV2_t)( + ctl_device_adapter_handle_t, + double* + ); + + +/////////////////////////////////////////////////////////////////////////////// +/// @brief Function-pointer for ctlOverclockGpuMaxVoltageOffsetSetV2 +typedef ctl_result_t (CTL_APICALL *ctlpvttemp_$xOverclockGpuMaxVoltageOffsetSetV2_t)( + ctl_device_adapter_handle_t, + double + ); + + +/////////////////////////////////////////////////////////////////////////////// +/// @brief Function-pointer for ctlOverclockVramMemSpeedLimitGetV2 +typedef ctl_result_t (CTL_APICALL *ctlpvttemp_$xOverclockVramMemSpeedLimitGetV2_t)( + ctl_device_adapter_handle_t, + double* + ); + + +/////////////////////////////////////////////////////////////////////////////// +/// @brief Function-pointer for ctlOverclockVramMemSpeedLimitSetV2 +typedef ctl_result_t (CTL_APICALL *ctlpvttemp_$xOverclockVramMemSpeedLimitSetV2_t)( + ctl_device_adapter_handle_t, + double + ); + + +/////////////////////////////////////////////////////////////////////////////// +/// @brief Function-pointer for ctlOverclockPowerLimitGetV2 +typedef ctl_result_t (CTL_APICALL *ctlpvttemp_$xOverclockPowerLimitGetV2_t)( + ctl_device_adapter_handle_t, + double* + ); + + +/////////////////////////////////////////////////////////////////////////////// +/// @brief Function-pointer for ctlOverclockPowerLimitSetV2 +typedef ctl_result_t (CTL_APICALL *ctlpvttemp_$xOverclockPowerLimitSetV2_t)( + ctl_device_adapter_handle_t, + double + ); + + +/////////////////////////////////////////////////////////////////////////////// +/// @brief Function-pointer for ctlOverclockTemperatureLimitGetV2 +typedef ctl_result_t (CTL_APICALL *ctlpvttemp_$xOverclockTemperatureLimitGetV2_t)( + ctl_device_adapter_handle_t, + double* + ); + + +/////////////////////////////////////////////////////////////////////////////// +/// @brief Function-pointer for ctlOverclockTemperatureLimitSetV2 +typedef ctl_result_t (CTL_APICALL *ctlpvttemp_$xOverclockTemperatureLimitSetV2_t)( + ctl_device_adapter_handle_t, + double + ); + + +/////////////////////////////////////////////////////////////////////////////// +/// @brief Function-pointer for ctlOverclockReadVFCurve +typedef ctl_result_t (CTL_APICALL *ctlpvttemp_$xOverclockReadVFCurve_t)( + ctl_device_adapter_handle_t, + ctl_vf_curve_type_t, + ctl_vf_curve_details_t, + uint32_t *, + ctl_voltage_frequency_point_t * + ); + + +/////////////////////////////////////////////////////////////////////////////// +/// @brief Function-pointer for ctlOverclockWriteCustomVFCurve +typedef ctl_result_t (CTL_APICALL *ctlpvttemp_$xOverclockWriteCustomVFCurve_t)( + ctl_device_adapter_handle_t, + uint32_t, + ctl_voltage_frequency_point_t* + ); + + +#if defined(__cplusplus) +} // extern "C" +#endif + +#endif // _CTLPVTTEMP_API_H \ No newline at end of file diff --git a/IntelPresentMon/ControlLib/igcl_api.h b/IntelPresentMon/ControlLib/igcl_api.h index be602596..7916c878 100644 --- a/IntelPresentMon/ControlLib/igcl_api.h +++ b/IntelPresentMon/ControlLib/igcl_api.h @@ -394,11 +394,12 @@ typedef enum _ctl_result_t CTL_RESULT_ERROR_CORE_OVERCLOCK_VOLTAGE_OUTSIDE_RANGE = 0x44000002, ///< The Voltage exceeds the acceptable min/max. CTL_RESULT_ERROR_CORE_OVERCLOCK_FREQUENCY_OUTSIDE_RANGE = 0x44000003, ///< The Frequency exceeds the acceptable min/max. CTL_RESULT_ERROR_CORE_OVERCLOCK_POWER_OUTSIDE_RANGE = 0x44000004, ///< The Power exceeds the acceptable min/max. - CTL_RESULT_ERROR_CORE_OVERCLOCK_TEMPERATURE_OUTSIDE_RANGE = 0x44000005, ///< The Power exceeds the acceptable min/max. + CTL_RESULT_ERROR_CORE_OVERCLOCK_TEMPERATURE_OUTSIDE_RANGE = 0x44000005, ///< The Temperature exceeds the acceptable min/max. CTL_RESULT_ERROR_CORE_OVERCLOCK_IN_VOLTAGE_LOCKED_MODE = 0x44000006,///< The Overclock is in voltage locked mode. CTL_RESULT_ERROR_CORE_OVERCLOCK_RESET_REQUIRED = 0x44000007,///< It indicates that the requested change will not be applied until the ///< device is reset. CTL_RESULT_ERROR_CORE_OVERCLOCK_WAIVER_NOT_SET = 0x44000008,///< The $OverclockWaiverSet function has not been called. + CTL_RESULT_ERROR_CORE_OVERCLOCK_DEPRECATED_API = 0x44000009,///< The error indicates to switch to newer API version if applicable. CTL_RESULT_ERROR_CORE_END = 0x0440FFFF, ///< "Core error code end value, not to be used ///< " CTL_RESULT_ERROR_3D_START = 0x60000000, ///< 3D error code starting value, not to be used @@ -437,6 +438,10 @@ typedef enum _ctl_result_t CTL_RESULT_ERROR_CUSTOM_MODE_STANDARD_CUSTOM_MODE_EXISTS = 0x4800001a, ///< Standard custom mode exists CTL_RESULT_ERROR_CUSTOM_MODE_NON_CUSTOM_MATCHING_MODE_EXISTS = 0x4800001b, ///< Non custom matching mode exists CTL_RESULT_ERROR_CUSTOM_MODE_INSUFFICIENT_MEMORY = 0x4800001c, ///< Custom mode insufficent memory + CTL_RESULT_ERROR_ADAPTER_ALREADY_LINKED = 0x4800001d, ///< Adapter is already linked + CTL_RESULT_ERROR_ADAPTER_NOT_IDENTICAL = 0x4800001e,///< Adapter is not identical for linking + CTL_RESULT_ERROR_ADAPTER_NOT_SUPPORTED_ON_LDA_SECONDARY = 0x4800001f, ///< Adapter is LDA Secondary, so not supporting requested operation + CTL_RESULT_ERROR_SET_FBC_FEATURE_NOT_SUPPORTED = 0x48000020,///< Set FBC Feature not supported CTL_RESULT_ERROR_DISPLAY_END = 0x4800FFFF, ///< "Display error code end value, not to be used ///< " CTL_RESULT_MAX @@ -452,7 +457,7 @@ typedef enum _ctl_result_t /////////////////////////////////////////////////////////////////////////////// #ifndef CTL_MAX_RESERVED_SIZE /// @brief Maximum reserved size for future members. -#define CTL_MAX_RESERVED_SIZE 120 +#define CTL_MAX_RESERVED_SIZE 112 #endif // CTL_MAX_RESERVED_SIZE /////////////////////////////////////////////////////////////////////////////// @@ -469,6 +474,10 @@ typedef enum _ctl_units_t CTL_UNITS_TIME_SECONDS = 7, ///< Type is Time with units in Seconds. CTL_UNITS_MEMORY_BYTES = 8, ///< Type is Memory with units in Bytes. CTL_UNITS_ANGULAR_SPEED_RPM = 9, ///< Type is Angular Speed with units in Revolutions per Minute. + CTL_UNITS_POWER_MILLIWATTS = 10, ///< Type is Power with units in MilliWatts. + CTL_UNITS_PERCENT = 11, ///< Type is Percentage. + CTL_UNITS_MEM_SPEED_GBPS = 12, ///< Type is Memory Speed in Gigabyte per Seconds (Gbps) + CTL_UNITS_VOLTAGE_MILLIVOLTS = 13, ///< Type is Voltage with units in milliVolts. CTL_UNITS_UNKNOWN = 0x4800FFFF, ///< Type of units unknown. CTL_UNITS_MAX @@ -692,10 +701,24 @@ typedef uint32_t ctl_adapter_properties_flags_t; typedef enum _ctl_adapter_properties_flag_t { CTL_ADAPTER_PROPERTIES_FLAG_INTEGRATED = CTL_BIT(0),///< [out] Is Integrated Graphics adapter + CTL_ADAPTER_PROPERTIES_FLAG_LDA_PRIMARY = CTL_BIT(1), ///< [out] Is Primary (Lead) adapter in a Linked Display Adapter (LDA) + ///< chain + CTL_ADAPTER_PROPERTIES_FLAG_LDA_SECONDARY = CTL_BIT(2), ///< [out] Is Secondary (Linked) adapter in a Linked Display Adapter (LDA) + ///< chain CTL_ADAPTER_PROPERTIES_FLAG_MAX = 0x80000000 } ctl_adapter_properties_flag_t; +/////////////////////////////////////////////////////////////////////////////// +/// @brief Adapter Pci Bus, Device, Function +typedef struct _ctl_adapter_bdf_t +{ + uint8_t bus; ///< [out] PCI Bus Number + uint8_t device; ///< [out] PCI device number + uint8_t function; ///< [out] PCI function + +} ctl_adapter_bdf_t; + /////////////////////////////////////////////////////////////////////////////// /// @brief Device Adapter properties typedef struct _ctl_device_adapter_properties_t @@ -717,6 +740,9 @@ typedef struct _ctl_device_adapter_properties_t char name[CTL_MAX_DEVICE_NAME_LEN]; ///< [out] Device name ctl_adapter_properties_flags_t graphics_adapter_properties; ///< [out] Graphics Adapter Properties uint32_t Frequency; ///< [out] Clock frequency for this device. Supported only for Version > 0 + uint16_t pci_subsys_id; ///< [out] PCI SubSys ID, Supported only for Version > 1 + uint16_t pci_subsys_vendor_id; ///< [out] PCI SubSys Vendor ID, Supported only for Version > 1 + ctl_adapter_bdf_t adapter_bdf; ///< [out] Pci Bus, Device, Function. Supported only for Version > 1 char reserved[CTL_MAX_RESERVED_SIZE]; ///< [out] Reserved } ctl_device_adapter_properties_t; @@ -932,6 +958,10 @@ typedef struct _ctl_runtime_path_args_t ctl_runtime_path_args_t; /// @brief Forward-declare ctl_firmware_version_t typedef struct _ctl_firmware_version_t ctl_firmware_version_t; +/////////////////////////////////////////////////////////////////////////////// +/// @brief Forward-declare ctl_adapter_bdf_t +typedef struct _ctl_adapter_bdf_t ctl_adapter_bdf_t; + /////////////////////////////////////////////////////////////////////////////// /// @brief Forward-declare ctl_device_adapter_properties_t typedef struct _ctl_device_adapter_properties_t ctl_device_adapter_properties_t; @@ -1028,6 +1058,10 @@ typedef struct _ctl_sharpness_settings_t ctl_sharpness_settings_t; /// @brief Forward-declare ctl_i2c_access_args_t typedef struct _ctl_i2c_access_args_t ctl_i2c_access_args_t; +/////////////////////////////////////////////////////////////////////////////// +/// @brief Forward-declare ctl_i2c_access_pinpair_args_t +typedef struct _ctl_i2c_access_pinpair_args_t ctl_i2c_access_pinpair_args_t; + /////////////////////////////////////////////////////////////////////////////// /// @brief Forward-declare ctl_aux_access_args_t typedef struct _ctl_aux_access_args_t ctl_aux_access_args_t; @@ -1184,6 +1218,30 @@ typedef struct _ctl_genlock_topology_t ctl_genlock_topology_t; /// @brief Forward-declare ctl_genlock_args_t typedef struct _ctl_genlock_args_t ctl_genlock_args_t; +/////////////////////////////////////////////////////////////////////////////// +/// @brief Forward-declare ctl_vblank_ts_args_t +typedef struct _ctl_vblank_ts_args_t ctl_vblank_ts_args_t; + +/////////////////////////////////////////////////////////////////////////////// +/// @brief Forward-declare ctl_lda_args_t +typedef struct _ctl_lda_args_t ctl_lda_args_t; + +/////////////////////////////////////////////////////////////////////////////// +/// @brief Forward-declare ctl_dce_args_t +typedef struct _ctl_dce_args_t ctl_dce_args_t; + +/////////////////////////////////////////////////////////////////////////////// +/// @brief Forward-declare ctl_wire_format_t +typedef struct _ctl_wire_format_t ctl_wire_format_t; + +/////////////////////////////////////////////////////////////////////////////// +/// @brief Forward-declare ctl_get_set_wire_format_config_t +typedef struct _ctl_get_set_wire_format_config_t ctl_get_set_wire_format_config_t; + +/////////////////////////////////////////////////////////////////////////////// +/// @brief Forward-declare ctl_display_settings_t +typedef struct _ctl_display_settings_t ctl_display_settings_t; + /////////////////////////////////////////////////////////////////////////////// /// @brief Forward-declare ctl_engine_properties_t typedef struct _ctl_engine_properties_t ctl_engine_properties_t; @@ -1371,7 +1429,7 @@ typedef struct _ctl_temp_properties_t ctl_temp_properties_t; #endif // Intel 'ctlApi' for Device Adapter #if !defined(__GNUC__) -#pragma region 3D +#pragma region _3D #endif /////////////////////////////////////////////////////////////////////////////// /// @brief Feature type @@ -1398,6 +1456,9 @@ typedef enum _ctl_3d_feature_t ///< ::ctl_3d_app_profiles_caps_t & ::ctl_3d_app_profiles_t CTL_3D_FEATURE_APP_PROFILE_DETAILS = 12, ///< Game Profile Customization. Refer custom field ::ctl_3d_tier_details_t CTL_3D_FEATURE_EMULATED_TYPED_64BIT_ATOMICS = 13, ///< Emulated Typed 64bit Atomics support in DG2 + CTL_3D_FEATURE_VRR_WINDOWED_BLT = 14, ///< VRR windowed blt. Control VRR for windowed mode game + CTL_3D_FEATURE_GLOBAL_OR_PER_APP = 15, ///< Set global settings or per application settings + CTL_3D_FEATURE_LOW_LATENCY = 16, ///< Low latency mode. Contains generic enum type fields CTL_3D_FEATURE_MAX } ctl_3d_feature_t; @@ -1473,6 +1534,17 @@ typedef enum _ctl_3d_endurance_gaming_mode_t } ctl_3d_endurance_gaming_mode_t; +/////////////////////////////////////////////////////////////////////////////// +/// @brief Low latency mode values possible +typedef enum _ctl_3d_low_latency_types_t +{ + CTL_3D_LOW_LATENCY_TYPES_TURN_OFF = 0, ///< Low latency mode disable + CTL_3D_LOW_LATENCY_TYPES_TURN_ON = 1, ///< Low latency mode enable + CTL_3D_LOW_LATENCY_TYPES_TURN_ON_BOOST_MODE_ON = 2, ///< Low latency mode enable with boost + CTL_3D_LOW_LATENCY_TYPES_MAX + +} ctl_3d_low_latency_types_t; + /////////////////////////////////////////////////////////////////////////////// /// @brief Cmaa values possible typedef enum _ctl_3d_cmaa_types_t @@ -1561,6 +1633,7 @@ typedef struct _ctl_endurance_gaming2_t ///< Battery bool IsFPRequired; ///< [out] Is frame pacing required, dynamic state double TargetFPS; ///< [out] Target FPS for frame pacing + double RefreshRate; ///< [out] Refresh rate used to calculate target fps uint32_t Reserved[4]; ///< [out] Reserved fields } ctl_endurance_gaming2_t; @@ -1658,6 +1731,28 @@ typedef enum _ctl_emulated_typed_64bit_atomics_types_t } ctl_emulated_typed_64bit_atomics_types_t; +/////////////////////////////////////////////////////////////////////////////// +/// @brief VRR windowed BLT control possible. Reserved functionality +typedef enum _ctl_3d_vrr_windowed_blt_reserved_t +{ + CTL_3D_VRR_WINDOWED_BLT_RESERVED_AUTO = 0, ///< VRR windowed BLT auto + CTL_3D_VRR_WINDOWED_BLT_RESERVED_TURN_ON = 1, ///< VRR windowed BLT enable + CTL_3D_VRR_WINDOWED_BLT_RESERVED_TURN_OFF = 2, ///< VRR windowed BLT disable + CTL_3D_VRR_WINDOWED_BLT_RESERVED_MAX + +} ctl_3d_vrr_windowed_blt_reserved_t; + +/////////////////////////////////////////////////////////////////////////////// +/// @brief Global or per app values possible +typedef enum _ctl_3d_global_or_per_app_types_t +{ + CTL_3D_GLOBAL_OR_PER_APP_TYPES_NONE = 0, ///< none + CTL_3D_GLOBAL_OR_PER_APP_TYPES_PER_APP = 1, ///< Opt for per app settings + CTL_3D_GLOBAL_OR_PER_APP_TYPES_GLOBAL = 2, ///< Opt for global settings + CTL_3D_GLOBAL_OR_PER_APP_TYPES_MAX + +} ctl_3d_global_or_per_app_types_t; + /////////////////////////////////////////////////////////////////////////////// /// @brief 3D feature capability details which will have range/supported and /// default values @@ -1739,6 +1834,8 @@ typedef struct _ctl_kmd_load_features_t ///< given adapter. Note that this should contain only the name of the ///< application and not the system specific path int8_t ApplicationNameLength; ///< [in] Length of ApplicationName string + int8_t CallerComponent; ///< [in] Caller component + int64_t Reserved[4]; ///< [in] Reserved field } ctl_kmd_load_features_t; @@ -1786,7 +1883,7 @@ ctlGetSet3DFeature( #if !defined(__GNUC__) -#pragma endregion // 3D +#pragma endregion // _3D #endif // Intel 'ctlApi' for Device Adapter #if !defined(__GNUC__) @@ -1796,6 +1893,10 @@ ctlGetSet3DFeature( /// @brief Handle of a display output instance typedef struct _ctl_display_output_handle_t *ctl_display_output_handle_t; +/////////////////////////////////////////////////////////////////////////////// +/// @brief Handle of a i2c pin-pair instance +typedef struct _ctl_i2c_pin_pair_handle_t *ctl_i2c_pin_pair_handle_t; + /////////////////////////////////////////////////////////////////////////////// /// @brief Check Driver version /// @@ -1872,6 +1973,38 @@ ctlEnumerateDisplayOutputs( ///< instance handles ); +/////////////////////////////////////////////////////////////////////////////// +/// @brief Enumerate I2C Pin Pairs +/// +/// @details +/// - Returns available list of I2C Pin-Pairs on a requested adapter +/// +/// @returns +/// - CTL_RESULT_SUCCESS +/// - CTL_RESULT_ERROR_UNINITIALIZED +/// - CTL_RESULT_ERROR_DEVICE_LOST +/// - CTL_RESULT_ERROR_INVALID_NULL_HANDLE +/// + `nullptr == hDeviceAdapter` +/// - CTL_RESULT_ERROR_INVALID_NULL_POINTER +/// + `nullptr == pCount` +/// - ::CTL_RESULT_ERROR_UNSUPPORTED_VERSION - "Unsupported version" +/// - ::CTL_RESULT_ERROR_INVALID_NULL_POINTER - "The incoming pointer pCount is null" +/// - ::CTL_RESULT_ERROR_INVALID_SIZE - "The supplied Count is not equal to actual number of i2c pin-pair instances" +CTL_APIEXPORT ctl_result_t CTL_APICALL +ctlEnumerateI2CPinPairs( + ctl_device_adapter_handle_t hDeviceAdapter, ///< [in][release] handle to device adapter + uint32_t* pCount, ///< [in,out][release] pointer to the number of i2c pin-pair instances. If + ///< count is zero, then the api will update the value with the total + ///< number of i2c pin-pair instances available. If count is non-zero and + ///< matches the avaialble number of pin-pairs, then the api will only + ///< return the avaialble number of i2c pin-pair instances in phI2cPinPairs. + ctl_i2c_pin_pair_handle_t* phI2cPinPairs ///< [out][optional][release][range(0, *pCount)] array of i2c pin pair + ///< instance handles. Need to be allocated by Caller when supplying the + ///< *pCount > 0. + ///< If Count is not equal to actual number of i2c pin-pair instances, it + ///< will return CTL_RESULT_ERROR_INVALID_SIZE. + ); + /////////////////////////////////////////////////////////////////////////////// /// @brief OS specific Display identifiers typedef union _ctl_os_display_encoder_identifier_t @@ -1921,6 +2054,8 @@ typedef enum _ctl_std_display_feature_flag_t CTL_STD_DISPLAY_FEATURE_FLAG_VESA_COMPRESSION = CTL_BIT(4), ///< [out] Is display compression (VESA DSC) supported CTL_STD_DISPLAY_FEATURE_FLAG_HDR = CTL_BIT(5), ///< [out] Is HDR supported CTL_STD_DISPLAY_FEATURE_FLAG_HDMI_QMS = CTL_BIT(6), ///< [out] Is HDMI QMS supported + CTL_STD_DISPLAY_FEATURE_FLAG_HDR10_PLUS_CERTIFIED = CTL_BIT(7), ///< [out] Is HDR10+ certified + CTL_STD_DISPLAY_FEATURE_FLAG_VESA_HDR_CERTIFIED = CTL_BIT(8), ///< [out] Is VESA HDR certified - for future use CTL_STD_DISPLAY_FEATURE_FLAG_MAX = 0x80000000 } ctl_std_display_feature_flag_t; @@ -1934,6 +2069,7 @@ typedef enum _ctl_intel_display_feature_flag_t CTL_INTEL_DISPLAY_FEATURE_FLAG_DPST = CTL_BIT(0), ///< [out] Is DPST supported CTL_INTEL_DISPLAY_FEATURE_FLAG_LACE = CTL_BIT(1), ///< [out] Is LACE supported CTL_INTEL_DISPLAY_FEATURE_FLAG_DRRS = CTL_BIT(2), ///< [out] Is DRRS supported + CTL_INTEL_DISPLAY_FEATURE_FLAG_ARC_ADAPTIVE_SYNC_CERTIFIED = CTL_BIT(3),///< [out] Is Intel Arc certified adaptive sync display CTL_INTEL_DISPLAY_FEATURE_FLAG_MAX = 0x80000000 } ctl_intel_display_feature_flag_t; @@ -2013,6 +2149,7 @@ typedef enum _ctl_encoder_config_flag_t CTL_ENCODER_CONFIG_FLAG_COLLAGE_DISPLAY = CTL_BIT(7), ///< [out] This BIT will be set if this is a collage display CTL_ENCODER_CONFIG_FLAG_SPLIT_DISPLAY = CTL_BIT(8), ///< [out] This BIT will be set if this is a split display CTL_ENCODER_CONFIG_FLAG_COMPANION_DISPLAY = CTL_BIT(9), ///< [out] This BIT will be set if this is a companion display + CTL_ENCODER_CONFIG_FLAG_MGPU_COLLAGE_DISPLAY = CTL_BIT(10), ///< [out] This BIT will be set if this is a Multi GPU collage display CTL_ENCODER_CONFIG_FLAG_MAX = 0x80000000 } ctl_encoder_config_flag_t; @@ -2107,12 +2244,19 @@ typedef struct _ctl_adapter_display_encoder_properties_t ///< driver which occupies a portion of a real physical display ///< Split=1,Virtual=0 : Indicates the physical display which got split ///< to form multiple split displays - ///< Split=1,Collage=1 : Invalid combination + ///< Split=1,Collage=1 : Invalid combination + ///< MgpuCollage=1,Collage=1,Virtual=1: Indicates the fake display + ///< output created by driver which has the combined resolution of multiple + ///< physical displays spread across multiple GPUs involved in Multi-GPU + ///< collage configuration + ///< MgpuCollage=1,Collage=1,Virtual=0: Indicates the child physical + ///< displays involved in a Multi-GPU collage configuration. These are real + ///< physical outputs ctl_std_display_feature_flags_t FeatureSupportedFlags; ///< [out] Adapter Supported feature flags. Refer ///< ::ctl_std_display_feature_flag_t ctl_intel_display_feature_flags_t AdvancedFeatureSupportedFlags;///< [out] Advanced Features Supported by the Adapter. Refer ///< ::ctl_intel_display_feature_flag_t - uint32_t ReservedFields[16]; ///< [out] Reserved field of 64 bytes + uint32_t ReservedFields[16]; ///< [out] Reserved field of 60 bytes } ctl_adapter_display_encoder_properties_t; @@ -2321,11 +2465,21 @@ ctlSetCurrentSharpness( #endif // CTL_I2C_MAX_DATA_SIZE /////////////////////////////////////////////////////////////////////////////// -/// @brief I2CFlags bitmasks +/// @brief I2C Access Args input Flags bitmasks typedef uint32_t ctl_i2c_flags_t; typedef enum _ctl_i2c_flag_t { - CTL_I2C_FLAG_ATOMICI2C = CTL_BIT(0), ///< Force Atomic I2C + CTL_I2C_FLAG_ATOMICI2C = CTL_BIT(0), ///< Force Atomic I2C. + CTL_I2C_FLAG_1BYTE_INDEX = CTL_BIT(1), ///< 1-byte Indexed operation. If no Index Size flag set, decided based on + ///< Offset Value. + CTL_I2C_FLAG_2BYTE_INDEX = CTL_BIT(2), ///< 2-byte Indexed operation. If no Index Size flag set, decided based on + ///< Offset Value. + CTL_I2C_FLAG_4BYTE_INDEX = CTL_BIT(3), ///< 4-byte Indexed operation. If no Index Size flag set, decided based on + ///< Offset Value. + CTL_I2C_FLAG_SPEED_SLOW = CTL_BIT(4), ///< If no Speed Flag is set, defaults to Best Option possible. + CTL_I2C_FLAG_SPEED_FAST = CTL_BIT(5), ///< If no Speed Flag is set, defaults to Best Option possible. + CTL_I2C_FLAG_SPEED_BIT_BASH = CTL_BIT(6), ///< Uses Slower access using SW bit bashing method. If no Speed Flag is + ///< set, defaults to Best Option possible. CTL_I2C_FLAG_MAX = 0x80000000 } ctl_i2c_flag_t; @@ -2337,7 +2491,7 @@ typedef struct _ctl_i2c_access_args_t uint32_t Size; ///< [in] size of this structure uint8_t Version; ///< [in] version of this structure uint32_t DataSize; ///< [in,out] Valid data size - uint32_t Address; ///< [in] Adreess to read or write + uint32_t Address; ///< [in] Address to read or write ctl_operation_type_t OpType; ///< [in] Operation type, 1 for Read, 2 for Write, for Write operation, App ///< needs to run with admin privileges uint32_t Offset; ///< [in] Offset @@ -2352,7 +2506,7 @@ typedef struct _ctl_i2c_access_args_t /// @brief I2C Access /// /// @details -/// - The application does I2C aceess +/// - Interface to access I2C using display handle as identifier. /// /// @returns /// - CTL_RESULT_SUCCESS @@ -2377,6 +2531,75 @@ ctlI2CAccess( ctl_i2c_access_args_t* pI2cAccessArgs ///< [in,out] I2c access arguments ); +/////////////////////////////////////////////////////////////////////////////// +/// @brief I2C Access on PinPair Args input Flags bitmasks +typedef uint32_t ctl_i2c_pinpair_flags_t; +typedef enum _ctl_i2c_pinpair_flag_t +{ + CTL_I2C_PINPAIR_FLAG_ATOMICI2C = CTL_BIT(0), ///< Force Atomic I2C. + CTL_I2C_PINPAIR_FLAG_1BYTE_INDEX = CTL_BIT(1), ///< 1-byte Indexed operation. If no Index Size flag set, decided based on + ///< Offset Value. + CTL_I2C_PINPAIR_FLAG_2BYTE_INDEX = CTL_BIT(2), ///< 2-byte Indexed operation. If no Index Size flag set, decided based on + ///< Offset Value. + CTL_I2C_PINPAIR_FLAG_4BYTE_INDEX = CTL_BIT(3), ///< 4-byte Indexed operation. If no Index Size flag set, decided based on + ///< Offset Value. + CTL_I2C_PINPAIR_FLAG_SPEED_SLOW = CTL_BIT(4), ///< If no Speed Flag is set, defaults to Best Option possible. + CTL_I2C_PINPAIR_FLAG_SPEED_FAST = CTL_BIT(5), ///< If no Speed Flag is set, defaults to Best Option possible. + CTL_I2C_PINPAIR_FLAG_SPEED_BIT_BASH = CTL_BIT(6), ///< Uses Slower access using SW bit bashing method. If no Speed Flag is + ///< set, defaults to Best Option possible. + CTL_I2C_PINPAIR_FLAG_MAX = 0x80000000 + +} ctl_i2c_pinpair_flag_t; + +/////////////////////////////////////////////////////////////////////////////// +/// @brief I2C access on Pin Pair arguments +typedef struct _ctl_i2c_access_pinpair_args_t +{ + uint32_t Size; ///< [in] size of this structure + uint8_t Version; ///< [in] version of this structure + uint32_t DataSize; ///< [in,out] Valid data size + uint32_t Address; ///< [in] Address to read or write + ctl_operation_type_t OpType; ///< [in] Operation type, 1 for Read, 2 for Write, for Write operation, App + ///< needs to run with admin privileges + uint32_t Offset; ///< [in] Offset + ctl_i2c_pinpair_flags_t Flags; ///< [in] I2C Flags. Refer ::ctl_i2c_pinpair_flag_t + uint8_t Data[CTL_I2C_MAX_DATA_SIZE]; ///< [in,out] Data array + uint32_t ReservedFields[4]; ///< [in] Reserved for future use, must be set to Zero. + +} ctl_i2c_access_pinpair_args_t; + +/////////////////////////////////////////////////////////////////////////////// +/// @brief I2C Access On Pin Pair +/// +/// @details +/// - Interface to access I2C using pin-pair handle as identifier. +/// +/// @returns +/// - CTL_RESULT_SUCCESS +/// - CTL_RESULT_ERROR_UNINITIALIZED +/// - CTL_RESULT_ERROR_DEVICE_LOST +/// - CTL_RESULT_ERROR_INVALID_NULL_HANDLE +/// + `nullptr == hI2cPinPair` +/// - CTL_RESULT_ERROR_INVALID_NULL_POINTER +/// + `nullptr == pI2cAccessArgs` +/// - ::CTL_RESULT_ERROR_UNSUPPORTED_VERSION - "Unsupported version" +/// - ::CTL_RESULT_ERROR_INVALID_OPERATION_TYPE - "Invalid operation type" +/// - ::CTL_RESULT_ERROR_INVALID_SIZE - "Invalid I2C data size" +/// - ::CTL_RESULT_ERROR_INVALID_ARGUMENT - "Invalid Args passed" +/// - ::CTL_RESULT_ERROR_INSUFFICIENT_PERMISSIONS - "Insufficient permissions" +/// - ::CTL_RESULT_ERROR_INVALID_NULL_POINTER - "Invalid null pointer" +/// - ::CTL_RESULT_ERROR_NULL_OS_DISPLAY_OUTPUT_HANDLE - "Null OS display output handle" +/// - ::CTL_RESULT_ERROR_NULL_OS_INTERFACE - "Null OS interface" +/// - ::CTL_RESULT_ERROR_NULL_OS_ADAPATER_HANDLE - "Null OS adapter handle" +/// - ::CTL_RESULT_ERROR_KMD_CALL - "Kernal mode driver call failure" +/// - ::CTL_RESULT_ERROR_INVALID_NULL_HANDLE - "Invalid or Null handle passed" +/// - ::CTL_RESULT_ERROR_EXTERNAL_DISPLAY_ATTACHED - "Write to Address not allowed when Display is connected" +CTL_APIEXPORT ctl_result_t CTL_APICALL +ctlI2CAccessOnPinPair( + ctl_i2c_pin_pair_handle_t hI2cPinPair, ///< [in] Handle to I2C pin pair. + ctl_i2c_access_pinpair_args_t* pI2cAccessArgs ///< [in,out] I2c access arguments. + ); + /////////////////////////////////////////////////////////////////////////////// #ifndef CTL_AUX_MAX_DATA_SIZE /// @brief Aux Maximum data size @@ -2404,7 +2627,7 @@ typedef struct _ctl_aux_access_args_t ctl_operation_type_t OpType; ///< [in] Operation type, 1 for Read, 2 for Write, for Write operation, App ///< needs to run with admin privileges ctl_aux_flags_t Flags; ///< [in] Aux Flags. Refer ::ctl_aux_flag_t - uint32_t Address; ///< [in] Adreess to read or write + uint32_t Address; ///< [in] Address to read or write uint64_t RAD; ///< [in] RAD, For Future use, to be used for branch devices, Interface ///< will be provided to get RAD uint32_t PortID; ///< [in] Port ID, For Future use, to be used for SST tiled devices @@ -2417,7 +2640,7 @@ typedef struct _ctl_aux_access_args_t /// @brief Aux Access /// /// @details -/// - The application does Aux aceess, PSR needs to be disabled for AUX +/// - The application does Aux access, PSR needs to be disabled for AUX /// call. /// /// @returns @@ -2456,6 +2679,7 @@ typedef enum _ctl_power_optimization_flag_t CTL_POWER_OPTIMIZATION_FLAG_LRR = CTL_BIT(3), ///< Low refresh rate (LRR/ALRR/UBRR), UBRR is supported only for IGCC and ///< NDA clients. UBZRR and UBLRR both can not be enabled at the same time, ///< only one can be enabled at a given time + CTL_POWER_OPTIMIZATION_FLAG_LACE = CTL_BIT(4), ///< Lighting Aware Contrast Enhancement CTL_POWER_OPTIMIZATION_FLAG_MAX = 0x80000000 } ctl_power_optimization_flag_t; @@ -2470,6 +2694,8 @@ typedef enum _ctl_power_optimization_dpst_flag_t CTL_POWER_OPTIMIZATION_DPST_FLAG_OPST = CTL_BIT(2), ///< Intel OLED Power Saving Technology CTL_POWER_OPTIMIZATION_DPST_FLAG_ELP = CTL_BIT(3), ///< TCON based Edge Luminance Profile CTL_POWER_OPTIMIZATION_DPST_FLAG_EPSM = CTL_BIT(4), ///< Extra power saving mode + CTL_POWER_OPTIMIZATION_DPST_FLAG_APD = CTL_BIT(5), ///< Adaptive Pixel Dimming + CTL_POWER_OPTIMIZATION_DPST_FLAG_PIXOPTIX = CTL_BIT(6), ///< TCON+ based DPST like solution CTL_POWER_OPTIMIZATION_DPST_FLAG_MAX = 0x80000000 } ctl_power_optimization_dpst_flag_t; @@ -2580,7 +2806,8 @@ typedef struct _ctl_power_optimization_dpst_t uint8_t MaxLevel; ///< [out] Maximum supported aggressiveness level uint8_t Level; ///< [in,out] Current aggressiveness level to be set ctl_power_optimization_dpst_flags_t SupportedFeatures; ///< [out] Supported features - ctl_power_optimization_dpst_flags_t EnabledFeatures;///< [in,out] Features enabled or to be enabled + ctl_power_optimization_dpst_flags_t EnabledFeatures;///< [in,out] Features enabled or to be enabled. Fill only one feature for + ///< SET call } ctl_power_optimization_dpst_t; @@ -2678,6 +2905,7 @@ ctlGetPowerOptimizationSetting( /// - ::CTL_RESULT_ERROR_UNSUPPORTED_VERSION - "Unsupported version" /// - ::CTL_RESULT_ERROR_INVALID_POWERFEATURE_OPTIMIZATION_FLAG - "Unsupported PowerOptimizationFeature" /// - ::CTL_RESULT_ERROR_INVALID_POWERSOURCE_TYPE_FOR_DPST - "DPST is supported only in DC Mode" +/// - ::CTL_RESULT_ERROR_SET_FBC_FEATURE_NOT_SUPPORTED - "Set FBC Feature not supported" CTL_APIEXPORT ctl_result_t CTL_APICALL ctlSetPowerOptimizationSetting( ctl_display_output_handle_t hDisplayOutput, ///< [in][release] Handle to display output @@ -2831,6 +3059,8 @@ typedef enum _ctl_pixtx_color_model_t CTL_PIXTX_COLOR_MODEL_YCBCR_422_LR = 3, ///< Color model YCBCR 422 limited range CTL_PIXTX_COLOR_MODEL_YCBCR_420_FR = 4, ///< Color model YCBCR 420 full range CTL_PIXTX_COLOR_MODEL_YCBCR_420_LR = 5, ///< Color model YCBCR 420 limited range + CTL_PIXTX_COLOR_MODEL_YCBCR_444_FR = 6, ///< Color model YCBCR 444 full range + CTL_PIXTX_COLOR_MODEL_YCBCR_444_LR = 7, ///< Color model YCBCR 444 limited range CTL_PIXTX_COLOR_MODEL_MAX } ctl_pixtx_color_model_t; @@ -2881,8 +3111,9 @@ typedef struct _ctl_pixtx_1dlut_config_t ///< sampling also but not vice versa. uint32_t NumSamplesPerChannel; ///< [in,out] Number of samples per channel. Resampled internally based on ///< HW capability for uniformly sampled LUT.Maximum supported value is - ///< MAX_NUM_SAMPLES_PER_CHANNEL_1D_LUT Caller needs to use exact sampling - ///< position given in pSamplePositions for non-uniformly sampled LUTs. + ///< ::CTL_MAX_NUM_SAMPLES_PER_CHANNEL_1D_LUT Caller needs to use exact + ///< sampling position given in pSamplePositions for non-uniformly sampled + ///< LUTs. uint32_t NumChannels; ///< [in,out] Number of channels, 1 for Grey scale LUT, 3 for RGB LUT double* pSampleValues; ///< [in,out] Pointer to sample values, R array followed by G and B arrays ///< in case of multi-channel LUT. Allocation size for pSampleValues should @@ -3203,14 +3434,21 @@ typedef struct _ctl_scaling_settings_t uint32_t Size; ///< [in] size of this structure uint8_t Version; ///< [in] version of this structure bool Enable; ///< [in,out] State of the scaler - ctl_scaling_type_flags_t ScalingType; ///< [in,out] Requested scaling types. Refer ::ctl_scaling_type_flag_t - uint32_t CustomScalingX; ///< [in,out] Custom Scaling X resolution - uint32_t CustomScalingY; ///< [in,out] Custom Scaling Y resolution + ctl_scaling_type_flags_t ScalingType; ///< [in,out] Requested scaling type. In Get call this field indicates + ///< 'currunt' scaling set. Refer ::ctl_scaling_type_flag_t + uint32_t CustomScalingX; ///< [in,out] Custom Scaling X in percentage. This is percentage of current + ///< OS resolution. Valid values are 0 to 100. Up to 11% of native + ///< resolution can be downscaled + uint32_t CustomScalingY; ///< [in,out] Custom Scaling Y in percentage. This is percentage of current + ///< OS resolution. Valid values are 0 to 100. Up to 11% of native + ///< resolution can be downscaled bool HardwareModeSet; ///< [in] Flag to indicate hardware modeset should be done to apply the ///< scaling.Setting this to true would result in a flash on the screen. If ///< this flag is set to false , API will request the OS to do a virtual ///< modeset , but the OS can ignore this request and do a hardware modeset ///< in some instances + ctl_scaling_type_flags_t PreferredScalingType; ///< [out] Indicates OS persisted scaling type. This field is only valid + ///< when version > 0. Refer ::ctl_scaling_type_flag_t } ctl_scaling_settings_t; @@ -3883,7 +4121,8 @@ typedef struct _ctl_combined_display_args_t ///< configuration uint32_t CombinedDesktopWidth; ///< [in,out] Width of desired combined display configuration uint32_t CombinedDesktopHeight; ///< [in,out] Height of desired combined display configuration - ctl_combined_display_child_info_t* pChildInfo; ///< [in,out] List of child display information respective to each output + ctl_combined_display_child_info_t* pChildInfo; ///< [in,out] List of child display information respective to each output. + ///< Up to 16 displays are supported with up to 4 displays per GPU. ctl_display_output_handle_t hCombinedDisplayOutput; ///< [in,out] Handle to combined display output } ctl_combined_display_args_t; @@ -3892,7 +4131,16 @@ typedef struct _ctl_combined_display_args_t /// @brief Get/Set Combined Display /// /// @details -/// - To get or set combined display. +/// - To get or set combined display with given Child Targets on a Single +/// GPU or across identical GPUs. Multi-GPU(MGPU) combined display is +/// reserved i.e. it is not public and requires special application GUID. +/// MGPU Combined Display will get activated or deactivated in next boot. +/// MGPU scenario will internally link the associated adapters via Linked +/// Display Adapter Call, with supplied hDeviceAdapter being the LDA +/// Primary. If Genlock and enabled in Driver registry and supported by +/// given Display Config, MGPU Combined Display will enable MGPU Genlock +/// with supplied hDeviceAdapter being the Genlock Primary Adapter and the +/// First Child Display being the Primary Display. /// /// @returns /// - CTL_RESULT_SUCCESS @@ -3911,6 +4159,7 @@ typedef struct _ctl_combined_display_args_t /// - ::CTL_RESULT_ERROR_NULL_OS_ADAPATER_HANDLE - "Null OS adapter handle" /// - ::CTL_RESULT_ERROR_KMD_CALL - "Kernel mode driver call failure" /// - ::CTL_RESULT_ERROR_FEATURE_NOT_SUPPORTED - "Combined Display feature is not supported in this platform" +/// - ::CTL_RESULT_ERROR_ADAPTER_NOT_SUPPORTED_ON_LDA_SECONDARY - "Unsupported (secondary) adapter handle passed" CTL_APIEXPORT ctl_result_t CTL_APICALL ctlGetSetCombinedDisplay( ctl_device_adapter_handle_t hDeviceAdapter, ///< [in][release] Handle to control device adapter @@ -3999,11 +4248,417 @@ typedef struct _ctl_genlock_args_t CTL_APIEXPORT ctl_result_t CTL_APICALL ctlGetSetDisplayGenlock( ctl_device_adapter_handle_t* hDeviceAdapter, ///< [in][release] Handle to control device adapter - ctl_genlock_args_t** pGenlockArgs, ///< [in,out] Display Genlock operation and information + ctl_genlock_args_t* pGenlockArgs, ///< [in,out] Display Genlock operation and information uint32_t AdapterCount, ///< [in] Number of device adapters ctl_device_adapter_handle_t* hFailureDeviceAdapter ///< [out] Handle to address the failure device adapter in an error case ); +/////////////////////////////////////////////////////////////////////////////// +#ifndef CTL_MAX_DISPLAYS_FOR_MGPU_COLLAGE +/// @brief Maximum number of displays for Single Large Screen +#define CTL_MAX_DISPLAYS_FOR_MGPU_COLLAGE 16 +#endif // CTL_MAX_DISPLAYS_FOR_MGPU_COLLAGE + +/////////////////////////////////////////////////////////////////////////////// +/// @brief Vblank timestamp arguments +typedef struct _ctl_vblank_ts_args_t +{ + uint32_t Size; ///< [in] size of this structure + uint8_t Version; ///< [in] version of this structure + uint8_t NumOfTargets; ///< [out] Number of child targets + uint64_t VblankTS[CTL_MAX_DISPLAYS_FOR_MGPU_COLLAGE]; ///< [out] List of vblank timestamps in microseconds per child target + +} ctl_vblank_ts_args_t; + +/////////////////////////////////////////////////////////////////////////////// +/// @brief Get Vblank Timestamp +/// +/// @details +/// - To get a list of vblank timestamps in microseconds for each child +/// target of a display. +/// +/// @returns +/// - CTL_RESULT_SUCCESS +/// - CTL_RESULT_ERROR_UNINITIALIZED +/// - CTL_RESULT_ERROR_DEVICE_LOST +/// - CTL_RESULT_ERROR_INVALID_NULL_HANDLE +/// + `nullptr == hDisplayOutput` +/// - CTL_RESULT_ERROR_INVALID_NULL_POINTER +/// + `nullptr == pVblankTSArgs` +/// - ::CTL_RESULT_ERROR_UNSUPPORTED_VERSION - "Unsupported version" +/// - ::CTL_RESULT_ERROR_INSUFFICIENT_PERMISSIONS - "Insufficient permissions" +/// - ::CTL_RESULT_ERROR_NULL_OS_DISPLAY_OUTPUT_HANDLE - "Null OS display output handle" +/// - ::CTL_RESULT_ERROR_NULL_OS_INTERFACE - "Null OS interface" +/// - ::CTL_RESULT_ERROR_NULL_OS_ADAPATER_HANDLE - "Null OS adapter handle" +/// - ::CTL_RESULT_ERROR_KMD_CALL - "Kernel mode driver call failure" +CTL_APIEXPORT ctl_result_t CTL_APICALL +ctlGetVblankTimestamp( + ctl_display_output_handle_t hDisplayOutput, ///< [in] Handle to display output + ctl_vblank_ts_args_t* pVblankTSArgs ///< [out] Get vblank timestamp arguments + ); + +/////////////////////////////////////////////////////////////////////////////// +/// @brief Link Display Adapters Arguments +typedef struct _ctl_lda_args_t +{ + uint32_t Size; ///< [in] size of this structure + uint8_t Version; ///< [in] version of this structure + uint8_t NumAdapters; ///< [in,out] Numbers of adapters to be linked. Up to 4 adapters are + ///< supported + ctl_device_adapter_handle_t* hLinkedAdapters; ///< [in,out][release] List of Control device adapter handles to be linked, + ///< first one being Primary Adapter + uint64_t Reserved[4]; ///< [out] Reserved fields. Set to zero. + +} ctl_lda_args_t; + +/////////////////////////////////////////////////////////////////////////////// +/// @brief Link Display Adapters +/// +/// @details +/// - To Link Display Adapters. +/// +/// @returns +/// - CTL_RESULT_SUCCESS +/// - CTL_RESULT_ERROR_UNINITIALIZED +/// - CTL_RESULT_ERROR_DEVICE_LOST +/// - CTL_RESULT_ERROR_INVALID_NULL_HANDLE +/// + `nullptr == hPrimaryAdapter` +/// - CTL_RESULT_ERROR_INVALID_NULL_POINTER +/// + `nullptr == pLdaArgs` +/// - ::CTL_RESULT_ERROR_UNSUPPORTED_VERSION - "Unsupported version" +/// - ::CTL_RESULT_ERROR_INVALID_NULL_POINTER - "Invalid null pointer" +/// - ::CTL_RESULT_ERROR_NULL_OS_INTERFACE - "Null OS interface" +/// - ::CTL_RESULT_ERROR_NULL_OS_ADAPATER_HANDLE - "Null OS adapter handle" +/// - ::CTL_RESULT_ERROR_KMD_CALL - "Kernel mode driver call failure" +/// - ::CTL_RESULT_ERROR_ADAPTER_ALREADY_LINKED - "Adapter is already linked" +CTL_APIEXPORT ctl_result_t CTL_APICALL +ctlLinkDisplayAdapters( + ctl_device_adapter_handle_t hPrimaryAdapter, ///< [in][release] Handle to Primary adapter in LDA chain + ctl_lda_args_t* pLdaArgs ///< [in] Link Display Adapters Arguments + ); + +/////////////////////////////////////////////////////////////////////////////// +/// @brief Unlink Display Adapters +/// +/// @details +/// - To Unlink Display Adapters +/// +/// @returns +/// - CTL_RESULT_SUCCESS +/// - CTL_RESULT_ERROR_UNINITIALIZED +/// - CTL_RESULT_ERROR_DEVICE_LOST +/// - CTL_RESULT_ERROR_INVALID_NULL_HANDLE +/// + `nullptr == hPrimaryAdapter` +/// - ::CTL_RESULT_ERROR_UNSUPPORTED_VERSION - "Unsupported version" +/// - ::CTL_RESULT_ERROR_NULL_OS_INTERFACE - "Null OS interface" +/// - ::CTL_RESULT_ERROR_NULL_OS_ADAPATER_HANDLE - "Null OS adapter handle" +/// - ::CTL_RESULT_ERROR_KMD_CALL - "Kernel mode driver call failure" +/// - ::CTL_RESULT_ERROR_ADAPTER_NOT_SUPPORTED_ON_LDA_SECONDARY - "Unsupported (secondary) adapter handle passed" +CTL_APIEXPORT ctl_result_t CTL_APICALL +ctlUnlinkDisplayAdapters( + ctl_device_adapter_handle_t hPrimaryAdapter ///< [in][release] Handle to Primary adapter in LDA chain + ); + +/////////////////////////////////////////////////////////////////////////////// +/// @brief Get Linked Display Adapters +/// +/// @details +/// - To return list of Linked Display Adapters. +/// +/// @returns +/// - CTL_RESULT_SUCCESS +/// - CTL_RESULT_ERROR_UNINITIALIZED +/// - CTL_RESULT_ERROR_DEVICE_LOST +/// - CTL_RESULT_ERROR_INVALID_NULL_HANDLE +/// + `nullptr == hPrimaryAdapter` +/// - CTL_RESULT_ERROR_INVALID_NULL_POINTER +/// + `nullptr == pLdaArgs` +/// - ::CTL_RESULT_ERROR_UNSUPPORTED_VERSION - "Unsupported version" +/// - ::CTL_RESULT_ERROR_INVALID_NULL_POINTER - "Invalid null pointer" +/// - ::CTL_RESULT_ERROR_NULL_OS_INTERFACE - "Null OS interface" +/// - ::CTL_RESULT_ERROR_NULL_OS_ADAPATER_HANDLE - "Null OS adapter handle" +/// - ::CTL_RESULT_ERROR_KMD_CALL - "Kernel mode driver call failure" +/// - ::CTL_RESULT_ERROR_ADAPTER_NOT_SUPPORTED_ON_LDA_SECONDARY - "Unsupported (secondary) adapter handle passed" +CTL_APIEXPORT ctl_result_t CTL_APICALL +ctlGetLinkedDisplayAdapters( + ctl_device_adapter_handle_t hPrimaryAdapter, ///< [in][release] Handle to Primary adapter in LDA chain + ctl_lda_args_t* pLdaArgs ///< [out] Link Display Adapters Arguments + ); + +/////////////////////////////////////////////////////////////////////////////// +/// @brief Get/Set Dynamic Contrast Enhancement arguments +typedef struct _ctl_dce_args_t +{ + uint32_t Size; ///< [in] size of this structure + uint8_t Version; ///< [in] version of this structure + bool Set; ///< [in] Flag to indicate Set or Get operation + uint32_t TargetBrightnessPercent; ///< [in] Target brightness percent + double PhaseinSpeedMultiplier; ///< [in] Phase-in speed multiplier for brightness to take effect + uint32_t NumBins; ///< [in,out] Number of histogram bins + bool Enable; ///< [in,out] For get calls, this represents current state & for set this + ///< represents future state + bool IsSupported; ///< [out] is DCE feature supported + uint32_t* pHistogram; ///< [out] Bin wise histogram data of size NumBins * sizeof(uint32_t) for + ///< current frame + +} ctl_dce_args_t; + +/////////////////////////////////////////////////////////////////////////////// +/// @brief Get/Set Dynamic Contrast Enhancement +/// +/// @details +/// - To get the DCE feature status and, if feature is enabled, returns the +/// current histogram, or to set the brightness at the phase-in speed +/// +/// @returns +/// - CTL_RESULT_SUCCESS +/// - CTL_RESULT_ERROR_UNINITIALIZED +/// - CTL_RESULT_ERROR_DEVICE_LOST +/// - CTL_RESULT_ERROR_INVALID_NULL_HANDLE +/// + `nullptr == hDisplayOutput` +/// - CTL_RESULT_ERROR_INVALID_NULL_POINTER +/// + `nullptr == pDceArgs` +/// - ::CTL_RESULT_ERROR_UNSUPPORTED_VERSION - "Unsupported version" +/// - ::CTL_RESULT_ERROR_NULL_OS_DISPLAY_OUTPUT_HANDLE - "Null OS display output handle" +/// - ::CTL_RESULT_ERROR_NULL_OS_INTERFACE - "Null OS interface" +/// - ::CTL_RESULT_ERROR_NULL_OS_ADAPATER_HANDLE - "Null OS adapter handle" +/// - ::CTL_RESULT_ERROR_KMD_CALL - "Kernel mode driver call failure" +/// - ::CTL_RESULT_ERROR_INVALID_NULL_HANDLE - "Invalid or Null handle passed" +/// - ::CTL_RESULT_ERROR_INVALID_NULL_POINTER - "Invalid null pointer" +/// - ::CTL_RESULT_ERROR_INVALID_OPERATION_TYPE - "Invalid operation type" +/// - ::CTL_RESULT_ERROR_INVALID_ARGUMENT - "Invalid combination of parameters" +CTL_APIEXPORT ctl_result_t CTL_APICALL +ctlGetSetDynamicContrastEnhancement( + ctl_display_output_handle_t hDisplayOutput, ///< [in] Handle to display output + ctl_dce_args_t* pDceArgs ///< [in,out] Dynamic Contrast Enhancement arguments + ); + +/////////////////////////////////////////////////////////////////////////////// +/// @brief Color model +typedef enum _ctl_wire_format_color_model_t +{ + CTL_WIRE_FORMAT_COLOR_MODEL_RGB = 0, ///< Color model RGB + CTL_WIRE_FORMAT_COLOR_MODEL_YCBCR_420 = 1, ///< Color model YCBCR 420 + CTL_WIRE_FORMAT_COLOR_MODEL_YCBCR_422 = 2, ///< Color model YCBCR 422 + CTL_WIRE_FORMAT_COLOR_MODEL_YCBCR_444 = 3, ///< Color model YCBCR 444 + CTL_WIRE_FORMAT_COLOR_MODEL_MAX + +} ctl_wire_format_color_model_t; + +/////////////////////////////////////////////////////////////////////////////// +/// @brief Operation type +typedef enum _ctl_wire_format_operation_type_t +{ + CTL_WIRE_FORMAT_OPERATION_TYPE_GET = 0, ///< Get request + CTL_WIRE_FORMAT_OPERATION_TYPE_SET = 1, ///< Set request + CTL_WIRE_FORMAT_OPERATION_TYPE_RESTORE_DEFAULT = 2, ///< Restore to default values + CTL_WIRE_FORMAT_OPERATION_TYPE_MAX + +} ctl_wire_format_operation_type_t; + +/////////////////////////////////////////////////////////////////////////////// +/// @brief Wire Format +typedef struct _ctl_wire_format_t +{ + uint32_t Size; ///< [in] size of this structure + uint8_t Version; ///< [in] version of this structure + ctl_wire_format_color_model_t ColorModel; ///< [in,out] Color model + ctl_output_bpc_flags_t ColorDepth; ///< [in,out] Color Depth + +} ctl_wire_format_t; + +/////////////////////////////////////////////////////////////////////////////// +#ifndef CTL_MAX_WIREFORMAT_COLOR_MODELS_SUPPORTED +/// @brief Maximum Wire Formats Supported +#define CTL_MAX_WIREFORMAT_COLOR_MODELS_SUPPORTED 4 +#endif // CTL_MAX_WIREFORMAT_COLOR_MODELS_SUPPORTED + +/////////////////////////////////////////////////////////////////////////////// +/// @brief Get Set Wire Format +typedef struct _ctl_get_set_wire_format_config_t +{ + uint32_t Size; ///< [in] size of this structure + uint8_t Version; ///< [in] version of this structure + ctl_wire_format_operation_type_t Operation; ///< [in] Get/Set Operation + ctl_wire_format_t SupportedWireFormat[CTL_MAX_WIREFORMAT_COLOR_MODELS_SUPPORTED]; ///< [out] Array of WireFormats supported + ctl_wire_format_t WireFormat; ///< [in,out] Current/Requested WireFormat based on Operation. During SET + ///< Operation, if multiple bpc is set, the MIN bpc will be applied + +} ctl_get_set_wire_format_config_t; + +/////////////////////////////////////////////////////////////////////////////// +/// @brief Get/Set Color Format and Color Depth +/// +/// @details +/// - Get and Set the Color Format and Color Depth of a target +/// +/// @returns +/// - CTL_RESULT_SUCCESS +/// - CTL_RESULT_ERROR_UNINITIALIZED +/// - CTL_RESULT_ERROR_DEVICE_LOST +/// - CTL_RESULT_ERROR_INVALID_NULL_HANDLE +/// + `nullptr == hDisplayOutput` +/// - CTL_RESULT_ERROR_INVALID_NULL_POINTER +/// + `nullptr == pGetSetWireFormatSetting` +/// - ::CTL_RESULT_ERROR_UNSUPPORTED_VERSION - "Unsupported version" +/// - ::CTL_RESULT_ERROR_INVALID_ARGUMENT - "Invalid data passed as argument, WireFormat is not supported" +/// - ::CTL_RESULT_ERROR_DISPLAY_NOT_ACTIVE - "Display not active" +/// - ::CTL_RESULT_ERROR_INVALID_OPERATION_TYPE - "Invalid operation type" +/// - ::CTL_RESULT_ERROR_NULL_OS_DISPLAY_OUTPUT_HANDLE - "Null OS display output handle" +/// - ::CTL_RESULT_ERROR_NULL_OS_INTERFACE - "Null OS interface" +/// - ::CTL_RESULT_ERROR_NULL_OS_ADAPATER_HANDLE - "Null OS adapter handle" +CTL_APIEXPORT ctl_result_t CTL_APICALL +ctlGetSetWireFormat( + ctl_display_output_handle_t hDisplayOutput, ///< [in][release] Handle to display output + ctl_get_set_wire_format_config_t* pGetSetWireFormatSetting ///< [in][release] Get/Set Wire Format settings to be fetched/applied + ); + +/////////////////////////////////////////////////////////////////////////////// +/// @brief Various display settings +typedef uint32_t ctl_display_setting_flags_t; +typedef enum _ctl_display_setting_flag_t +{ + CTL_DISPLAY_SETTING_FLAG_LOW_LATENCY = CTL_BIT(0), ///< Low latency + CTL_DISPLAY_SETTING_FLAG_SOURCE_TM = CTL_BIT(1),///< Source tone mapping + CTL_DISPLAY_SETTING_FLAG_CONTENT_TYPE = CTL_BIT(2), ///< Content type + CTL_DISPLAY_SETTING_FLAG_QUANTIZATION_RANGE = CTL_BIT(3), ///< Quantization range, full range or limited range + CTL_DISPLAY_SETTING_FLAG_PICTURE_AR = CTL_BIT(4), ///< Picture aspect ratio + CTL_DISPLAY_SETTING_FLAG_AUDIO = CTL_BIT(5), ///< Audio settings + CTL_DISPLAY_SETTING_FLAG_MAX = 0x80000000 + +} ctl_display_setting_flag_t; + +/////////////////////////////////////////////////////////////////////////////// +/// @brief Low latency setting +typedef enum _ctl_display_setting_low_latency_t +{ + CTL_DISPLAY_SETTING_LOW_LATENCY_DEFAULT = 0, ///< Default + CTL_DISPLAY_SETTING_LOW_LATENCY_DISABLED = 1, ///< Disabled + CTL_DISPLAY_SETTING_LOW_LATENCY_ENABLED = 2, ///< Enabled + CTL_DISPLAY_SETTING_LOW_LATENCY_MAX + +} ctl_display_setting_low_latency_t; + +/////////////////////////////////////////////////////////////////////////////// +/// @brief Source tone mapping setting +typedef enum _ctl_display_setting_sourcetm_t +{ + CTL_DISPLAY_SETTING_SOURCETM_DEFAULT = 0, ///< Default + CTL_DISPLAY_SETTING_SOURCETM_DISABLED = 1, ///< Disabled + CTL_DISPLAY_SETTING_SOURCETM_ENABLED = 2, ///< Enabled + CTL_DISPLAY_SETTING_SOURCETM_MAX + +} ctl_display_setting_sourcetm_t; + +/////////////////////////////////////////////////////////////////////////////// +/// @brief Content type settings +typedef enum _ctl_display_setting_content_type_t +{ + CTL_DISPLAY_SETTING_CONTENT_TYPE_DEFAULT = 0, ///< Default content type used by driver. Driver will use internal + ///< techniques to determine content type and indicate to panel + CTL_DISPLAY_SETTING_CONTENT_TYPE_DISABLED = 1, ///< Content type indication is disabled + CTL_DISPLAY_SETTING_CONTENT_TYPE_DESKTOP = 2, ///< Typical desktop with a mix of text and graphics + CTL_DISPLAY_SETTING_CONTENT_TYPE_MEDIA = 3, ///< Video or media content + CTL_DISPLAY_SETTING_CONTENT_TYPE_GAMING = 4, ///< Gaming content + CTL_DISPLAY_SETTING_CONTENT_TYPE_MAX + +} ctl_display_setting_content_type_t; + +/////////////////////////////////////////////////////////////////////////////// +/// @brief Quantization range +typedef enum _ctl_display_setting_quantization_range_t +{ + CTL_DISPLAY_SETTING_QUANTIZATION_RANGE_DEFAULT = 0, ///< Default based on video format + CTL_DISPLAY_SETTING_QUANTIZATION_RANGE_LIMITED_RANGE = 1, ///< Limited range + CTL_DISPLAY_SETTING_QUANTIZATION_RANGE_FULL_RANGE = 2, ///< Full range + CTL_DISPLAY_SETTING_QUANTIZATION_RANGE_MAX + +} ctl_display_setting_quantization_range_t; + +/////////////////////////////////////////////////////////////////////////////// +/// @brief Picture aspect ratio +typedef uint32_t ctl_display_setting_picture_ar_flags_t; +typedef enum _ctl_display_setting_picture_ar_flag_t +{ + CTL_DISPLAY_SETTING_PICTURE_AR_FLAG_DEFAULT = CTL_BIT(0), ///< Default picture aspect ratio + CTL_DISPLAY_SETTING_PICTURE_AR_FLAG_DISABLED = CTL_BIT(1), ///< Picture aspect ratio indication is explicitly disabled + CTL_DISPLAY_SETTING_PICTURE_AR_FLAG_AR_4_3 = CTL_BIT(2),///< Aspect ratio of 4:3 + CTL_DISPLAY_SETTING_PICTURE_AR_FLAG_AR_16_9 = CTL_BIT(3), ///< Aspect ratio of 16:9 + CTL_DISPLAY_SETTING_PICTURE_AR_FLAG_AR_64_27 = CTL_BIT(4), ///< Aspect ratio of 64:27 or 21:9 anamorphic + CTL_DISPLAY_SETTING_PICTURE_AR_FLAG_AR_256_135 = CTL_BIT(5),///< Aspect ratio of 256:135 + CTL_DISPLAY_SETTING_PICTURE_AR_FLAG_MAX = 0x80000000 + +} ctl_display_setting_picture_ar_flag_t; + +/////////////////////////////////////////////////////////////////////////////// +/// @brief Audio settings +typedef enum _ctl_display_setting_audio_t +{ + CTL_DISPLAY_SETTING_AUDIO_DEFAULT = 0, ///< Default audio settings, always enumerated and enabled if display + ///< supports it + CTL_DISPLAY_SETTING_AUDIO_DISABLED = 1, ///< Forcefully disable display audio end point enumeration to OS + CTL_DISPLAY_SETTING_AUDIO_MAX + +} ctl_display_setting_audio_t; + +/////////////////////////////////////////////////////////////////////////////// +/// @brief Get/Set end display settings +typedef struct _ctl_display_settings_t +{ + uint32_t Size; ///< [in] size of this structure + uint8_t Version; ///< [in] version of this structure + bool Set; ///< [in] Flag to indicate Set or Get operation. Default option for all + ///< features are reserved for Set=true calls, which will reset the setting + ///< to driver defaults. + ctl_display_setting_flags_t SupportedFlags; ///< [out] Display setting flags supported by the display. + ctl_display_setting_flags_t ControllableFlags; ///< [out] Display setting flags which can be controlled by the caller. + ///< Features which doesn't have this flag set cannot be changed by caller. + ctl_display_setting_flags_t ValidFlags; ///< [in,out] Display setting flags which caller can use to indicate the + ///< features it's interested in. This cannot have a bit set which is not + ///< supported by SupportedFlags and ControllableFlags. + ctl_display_setting_low_latency_t LowLatency; ///< [in,out] Low latency state of panel. For HDR10+ Gaming this need to be + ///< in ENABLED state. + ctl_display_setting_sourcetm_t SourceTM; ///< [in,out] Source tone mapping state known to panel. For HDR10+ Gaming + ///< this need to be in ENABLED state. + ctl_display_setting_content_type_t ContentType; ///< [in,out] Source content type known to panel. + ctl_display_setting_quantization_range_t QuantizationRange; ///< [in,out] Quantization range + ctl_display_setting_picture_ar_flags_t SupportedPictureAR; ///< [out] Supported Picture aspect ratios + ctl_display_setting_picture_ar_flag_t PictureAR;///< [in,out] Picture aspect ratio + ctl_display_setting_audio_t AudioSettings; ///< [in,out] Audio settings + uint32_t Reserved[25]; ///< [out] Reserved fields for future enumerations + +} ctl_display_settings_t; + +/////////////////////////////////////////////////////////////////////////////// +/// @brief Get/Set Display settings +/// +/// @details +/// - To get/set end display settings like low latency, HDR10+ signaling +/// etc. which are controlled via info-frames/secondary data packets +/// +/// @returns +/// - CTL_RESULT_SUCCESS +/// - CTL_RESULT_ERROR_UNINITIALIZED +/// - CTL_RESULT_ERROR_DEVICE_LOST +/// - CTL_RESULT_ERROR_INVALID_NULL_HANDLE +/// + `nullptr == hDisplayOutput` +/// - CTL_RESULT_ERROR_INVALID_NULL_POINTER +/// + `nullptr == pDisplaySettings` +/// - ::CTL_RESULT_ERROR_UNSUPPORTED_VERSION - "Unsupported version" +/// - ::CTL_RESULT_ERROR_NULL_OS_DISPLAY_OUTPUT_HANDLE - "Null OS display output handle" +/// - ::CTL_RESULT_ERROR_NULL_OS_INTERFACE - "Null OS interface" +/// - ::CTL_RESULT_ERROR_NULL_OS_ADAPATER_HANDLE - "Null OS adapter handle" +/// - ::CTL_RESULT_ERROR_KMD_CALL - "Kernel mode driver call failure" +/// - ::CTL_RESULT_ERROR_INVALID_NULL_HANDLE - "Invalid or Null handle passed" +/// - ::CTL_RESULT_ERROR_INVALID_NULL_POINTER - "Invalid null pointer" +/// - ::CTL_RESULT_ERROR_INVALID_OPERATION_TYPE - "Invalid operation type" +/// - ::CTL_RESULT_ERROR_INVALID_ARGUMENT - "Invalid combination of parameters" +CTL_APIEXPORT ctl_result_t CTL_APICALL +ctlGetSetDisplaySettings( + ctl_display_output_handle_t hDisplayOutput, ///< [in] Handle to display output + ctl_display_settings_t* pDisplaySettings ///< [in,out] End display capabilities + ); + #if !defined(__GNUC__) #pragma endregion // display @@ -4428,6 +5083,7 @@ typedef enum _ctl_freq_domain_t { CTL_FREQ_DOMAIN_GPU = 0, ///< GPU Core Domain. CTL_FREQ_DOMAIN_MEMORY = 1, ///< Local Memory Domain. + CTL_FREQ_DOMAIN_MEDIA = 2, ///< Media Domain CTL_FREQ_DOMAIN_MAX } ctl_freq_domain_t; @@ -4458,14 +5114,17 @@ typedef struct _ctl_freq_range_t uint8_t Version; ///< [in] version of this structure double min; ///< [in,out] The min frequency in MHz below which hardware frequency ///< management will not request frequencies. On input, setting to 0 will - ///< permit the frequency to go down to the hardware minimum. On output, a - ///< negative value indicates that no external minimum frequency limit is - ///< in effect. + ///< permit the frequency to go down to the hardware minimum while setting + ///< to -1 will return the min frequency limit to the factory value (can be + ///< larger than the hardware min). On output, a negative value indicates + ///< that no external minimum frequency limit is in effect. double max; ///< [in,out] The max frequency in MHz above which hardware frequency ///< management will not request frequencies. On input, setting to 0 or a ///< very big number will permit the frequency to go all the way up to the - ///< hardware maximum. On output, a negative number indicates that no - ///< external maximum frequency limit is in effect. + ///< hardware maximum while setting to -1 will return the max frequency to + ///< the factory value (which can be less than the hardware max). On + ///< output, a negative number indicates that no external maximum frequency + ///< limit is in effect. } ctl_freq_range_t; @@ -5307,8 +5966,8 @@ typedef struct _ctl_oc_properties_t bool bSupported; ///< [out] Indicates if the adapter supports overclocking. ctl_oc_control_info_t gpuFrequencyOffset; ///< [out] related to function ::ctlOverclockGpuFrequencyOffsetSet ctl_oc_control_info_t gpuVoltageOffset; ///< [out] related to function ::ctlOverclockGpuVoltageOffsetSet - ctl_oc_control_info_t vramFrequencyOffset; ///< [out] related to function ::ctlOverclockVramFrequencyOffsetSet - ctl_oc_control_info_t vramVoltageOffset; ///< [out] related to function ::ctlOverclockVramVoltageOffsetSet + ctl_oc_control_info_t vramFrequencyOffset; ///< [out] Property Field Deprecated / No Longer Supported + ctl_oc_control_info_t vramVoltageOffset; ///< [out] Property Field Deprecated / No Longer Supported ctl_oc_control_info_t powerLimit; ///< [out] related to function ::ctlOverclockPowerLimitSet ctl_oc_control_info_t temperatureLimit; ///< [out] related to function ::ctlOverclockTemperatureLimitSet @@ -5935,6 +6594,27 @@ ctlPowerTelemetryGet( ctl_power_telemetry_t* pTelemetryInfo ///< [out] The overclocking properties for the specified domain. ); +/////////////////////////////////////////////////////////////////////////////// +/// @brief Reset all Overclock Settings to stock +/// +/// @details +/// - Reset all Overclock setting to default using single API call +/// - This request resets any changes made to GpuFrequencyOffset, +/// GpuVoltageOffset, PowerLimit, TemperatureLimit, GpuLock +/// - This Doesn't reset any Fan Curve Changes. It can be reset using +/// ctlFanSetDefaultMode +/// +/// @returns +/// - CTL_RESULT_SUCCESS +/// - CTL_RESULT_ERROR_UNINITIALIZED +/// - CTL_RESULT_ERROR_DEVICE_LOST +/// - CTL_RESULT_ERROR_INVALID_NULL_HANDLE +/// + `nullptr == hDeviceHandle` +CTL_APIEXPORT ctl_result_t CTL_APICALL +ctlOverclockResetToDefault( + ctl_device_adapter_handle_t hDeviceHandle ///< [in][release] Handle to display adapter + ); + #if !defined(__GNUC__) #pragma endregion // overclock @@ -6474,6 +7154,15 @@ typedef ctl_result_t (CTL_APICALL *ctl_pfnEnumerateDisplayOutputs_t)( ); +/////////////////////////////////////////////////////////////////////////////// +/// @brief Function-pointer for ctlEnumerateI2CPinPairs +typedef ctl_result_t (CTL_APICALL *ctl_pfnEnumerateI2CPinPairs_t)( + ctl_device_adapter_handle_t, + uint32_t*, + ctl_i2c_pin_pair_handle_t* + ); + + /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for ctlGetDeviceProperties typedef ctl_result_t (CTL_APICALL *ctl_pfnGetDeviceProperties_t)( @@ -6539,6 +7228,14 @@ typedef ctl_result_t (CTL_APICALL *ctl_pfnI2CAccess_t)( ); +/////////////////////////////////////////////////////////////////////////////// +/// @brief Function-pointer for ctlI2CAccessOnPinPair +typedef ctl_result_t (CTL_APICALL *ctl_pfnI2CAccessOnPinPair_t)( + ctl_i2c_pin_pair_handle_t, + ctl_i2c_access_pinpair_args_t* + ); + + /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for ctlAUXAccess typedef ctl_result_t (CTL_APICALL *ctl_pfnAUXAccess_t)( @@ -6752,12 +7449,67 @@ typedef ctl_result_t (CTL_APICALL *ctl_pfnGetSetCombinedDisplay_t)( /// @brief Function-pointer for ctlGetSetDisplayGenlock typedef ctl_result_t (CTL_APICALL *ctl_pfnGetSetDisplayGenlock_t)( ctl_device_adapter_handle_t*, - ctl_genlock_args_t**, + ctl_genlock_args_t*, uint32_t, ctl_device_adapter_handle_t* ); +/////////////////////////////////////////////////////////////////////////////// +/// @brief Function-pointer for ctlGetVblankTimestamp +typedef ctl_result_t (CTL_APICALL *ctl_pfnGetVblankTimestamp_t)( + ctl_display_output_handle_t, + ctl_vblank_ts_args_t* + ); + + +/////////////////////////////////////////////////////////////////////////////// +/// @brief Function-pointer for ctlLinkDisplayAdapters +typedef ctl_result_t (CTL_APICALL *ctl_pfnLinkDisplayAdapters_t)( + ctl_device_adapter_handle_t, + ctl_lda_args_t* + ); + + +/////////////////////////////////////////////////////////////////////////////// +/// @brief Function-pointer for ctlUnlinkDisplayAdapters +typedef ctl_result_t (CTL_APICALL *ctl_pfnUnlinkDisplayAdapters_t)( + ctl_device_adapter_handle_t + ); + + +/////////////////////////////////////////////////////////////////////////////// +/// @brief Function-pointer for ctlGetLinkedDisplayAdapters +typedef ctl_result_t (CTL_APICALL *ctl_pfnGetLinkedDisplayAdapters_t)( + ctl_device_adapter_handle_t, + ctl_lda_args_t* + ); + + +/////////////////////////////////////////////////////////////////////////////// +/// @brief Function-pointer for ctlGetSetDynamicContrastEnhancement +typedef ctl_result_t (CTL_APICALL *ctl_pfnGetSetDynamicContrastEnhancement_t)( + ctl_display_output_handle_t, + ctl_dce_args_t* + ); + + +/////////////////////////////////////////////////////////////////////////////// +/// @brief Function-pointer for ctlGetSetWireFormat +typedef ctl_result_t (CTL_APICALL *ctl_pfnGetSetWireFormat_t)( + ctl_display_output_handle_t, + ctl_get_set_wire_format_config_t* + ); + + +/////////////////////////////////////////////////////////////////////////////// +/// @brief Function-pointer for ctlGetSetDisplaySettings +typedef ctl_result_t (CTL_APICALL *ctl_pfnGetSetDisplaySettings_t)( + ctl_display_output_handle_t, + ctl_display_settings_t* + ); + + /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for ctlEnumEngineGroups typedef ctl_result_t (CTL_APICALL *ctl_pfnEnumEngineGroups_t)( @@ -7082,6 +7834,13 @@ typedef ctl_result_t (CTL_APICALL *ctl_pfnPowerTelemetryGet_t)( ); +/////////////////////////////////////////////////////////////////////////////// +/// @brief Function-pointer for ctlOverclockResetToDefault +typedef ctl_result_t (CTL_APICALL *ctl_pfnOverclockResetToDefault_t)( + ctl_device_adapter_handle_t + ); + + /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for ctlPciGetProperties typedef ctl_result_t (CTL_APICALL *ctl_pfnPciGetProperties_t)( diff --git a/IntelPresentMon/Core/source/pmon/RawFrameDataMetricList.h b/IntelPresentMon/Core/source/pmon/RawFrameDataMetricList.h index cfbff38f..c4274a95 100644 --- a/IntelPresentMon/Core/source/pmon/RawFrameDataMetricList.h +++ b/IntelPresentMon/Core/source/pmon/RawFrameDataMetricList.h @@ -41,8 +41,10 @@ namespace p2c::pmon Element{.metricId = PM_METRIC_DISPLAY_LATENCY, .deviceId = 0 }, Element{.metricId = PM_METRIC_DISPLAYED_TIME, .deviceId = 0 }, Element{.metricId = PM_METRIC_ANIMATION_ERROR, .deviceId = 0 }, + Element{.metricId = PM_METRIC_ANIMATION_TIME, .deviceId = 0 }, Element{.metricId = PM_METRIC_ALL_INPUT_TO_PHOTON_LATENCY, .deviceId = 0 }, Element{.metricId = PM_METRIC_CLICK_TO_PHOTON_LATENCY, .deviceId = 0 }, + Element{.metricId = PM_METRIC_INSTRUMENTED_LATENCY, .deviceId = 0 }, Element{.metricId = PM_METRIC_GPU_POWER, .deviceId = activeDeviceId }, Element{.metricId = PM_METRIC_GPU_VOLTAGE, .deviceId = activeDeviceId }, diff --git a/IntelPresentMon/Core/source/pmon/RawFrameDataWriter.cpp b/IntelPresentMon/Core/source/pmon/RawFrameDataWriter.cpp index 29c6174c..a9e76365 100644 --- a/IntelPresentMon/Core/source/pmon/RawFrameDataWriter.cpp +++ b/IntelPresentMon/Core/source/pmon/RawFrameDataWriter.cpp @@ -136,6 +136,7 @@ namespace p2c::pmon if (metricId == PM_METRIC_DISPLAYED_TIME || metricId == PM_METRIC_DISPLAY_LATENCY || metricId == PM_METRIC_ANIMATION_ERROR || + metricId == PM_METRIC_ANIMATION_TIME || metricId == PM_METRIC_CLICK_TO_PHOTON_LATENCY || metricId == PM_METRIC_ALL_INPUT_TO_PHOTON_LATENCY) { flags |= Annotation_::FLAG_NAN_MEANS_NOT_AVAILABLE; diff --git a/IntelPresentMon/Interprocess/source/metadata/EnumFrameType.h b/IntelPresentMon/Interprocess/source/metadata/EnumFrameType.h index b6de5b72..83766999 100644 --- a/IntelPresentMon/Interprocess/source/metadata/EnumFrameType.h +++ b/IntelPresentMon/Interprocess/source/metadata/EnumFrameType.h @@ -7,4 +7,5 @@ X_(FRAME_TYPE, UNSPECIFIED, "Unspecified", "", "Frame rendered by unspecified technique") \ X_(FRAME_TYPE, APPLICATION, "Application", "", "Frame rendered by the target application") \ X_(FRAME_TYPE, REPEATED, "Application", "", "Frame rendered by the taget application") \ - X_(FRAME_TYPE, AMD_AFMF, "AMD_AFMF", "", "Frame generated by AMD Fluid Motion Frames") + X_(FRAME_TYPE, INTEL_XEFG, "Intel XeSS-FG", "", "Frame generated by Intel XeSS-FG") \ + X_(FRAME_TYPE, AMD_AFMF, "AMD AFMF", "", "Frame generated by AMD Fluid Motion Frames") diff --git a/IntelPresentMon/Interprocess/source/metadata/MetricList.h b/IntelPresentMon/Interprocess/source/metadata/MetricList.h index b2044c27..80519f9b 100644 --- a/IntelPresentMon/Interprocess/source/metadata/MetricList.h +++ b/IntelPresentMon/Interprocess/source/metadata/MetricList.h @@ -31,6 +31,7 @@ \ X_(PM_METRIC_DISPLAYED_TIME, PM_METRIC_TYPE_DYNAMIC_FRAME, PM_UNIT_MILLISECONDS, PM_DATA_TYPE_DOUBLE, PM_DATA_TYPE_DOUBLE, 0, PM_DEVICE_TYPE_INDEPENDENT, FULL_STATS) \ X_(PM_METRIC_ANIMATION_ERROR, PM_METRIC_TYPE_DYNAMIC_FRAME, PM_UNIT_MILLISECONDS, PM_DATA_TYPE_DOUBLE, PM_DATA_TYPE_DOUBLE, 0, PM_DEVICE_TYPE_INDEPENDENT, FULL_STATS) \ + X_(PM_METRIC_ANIMATION_TIME, PM_METRIC_TYPE_FRAME_EVENT, PM_UNIT_MILLISECONDS, PM_DATA_TYPE_DOUBLE, PM_DATA_TYPE_DOUBLE, 0, PM_DEVICE_TYPE_INDEPENDENT, PM_STAT_NONE) \ \ X_(PM_METRIC_SYNC_INTERVAL, PM_METRIC_TYPE_DYNAMIC_FRAME, PM_UNIT_VERTICAL_BLANKS, PM_DATA_TYPE_INT32, PM_DATA_TYPE_INT32, 0, PM_DEVICE_TYPE_INDEPENDENT, PM_STAT_MID_POINT) \ X_(PM_METRIC_PRESENT_FLAGS, PM_METRIC_TYPE_DYNAMIC_FRAME, PM_UNIT_DIMENSIONLESS, PM_DATA_TYPE_UINT32, PM_DATA_TYPE_UINT32, 0, PM_DEVICE_TYPE_INDEPENDENT, PM_STAT_MID_POINT) \ @@ -84,4 +85,6 @@ X_(PM_METRIC_CPU_TEMPERATURE, PM_METRIC_TYPE_DYNAMIC_FRAME, PM_UNIT_CELSIUS, PM_DATA_TYPE_DOUBLE, PM_DATA_TYPE_DOUBLE, 0, PM_DEVICE_TYPE_GRAPHICS_ADAPTER, FULL_STATS) \ X_(PM_METRIC_CPU_FREQUENCY, PM_METRIC_TYPE_DYNAMIC_FRAME, PM_UNIT_MEGAHERTZ, PM_DATA_TYPE_DOUBLE, PM_DATA_TYPE_DOUBLE, 0, PM_DEVICE_TYPE_GRAPHICS_ADAPTER, FULL_STATS) \ X_(PM_METRIC_CPU_CORE_UTILITY, PM_METRIC_TYPE_DYNAMIC, PM_UNIT_PERCENT, PM_DATA_TYPE_DOUBLE, PM_DATA_TYPE_VOID, 0, PM_DEVICE_TYPE_INDEPENDENT, FULL_STATS) \ - X_(PM_METRIC_ALL_INPUT_TO_PHOTON_LATENCY, PM_METRIC_TYPE_DYNAMIC_FRAME, PM_UNIT_MILLISECONDS, PM_DATA_TYPE_DOUBLE, PM_DATA_TYPE_DOUBLE, 0, PM_DEVICE_TYPE_INDEPENDENT, PM_STAT_NON_ZERO_AVG, PM_STAT_PERCENTILE_01, PM_STAT_PERCENTILE_05, PM_STAT_PERCENTILE_10, PM_STAT_MAX) + X_(PM_METRIC_ALL_INPUT_TO_PHOTON_LATENCY, PM_METRIC_TYPE_DYNAMIC_FRAME, PM_UNIT_MILLISECONDS, PM_DATA_TYPE_DOUBLE, PM_DATA_TYPE_DOUBLE, 0, PM_DEVICE_TYPE_INDEPENDENT, PM_STAT_NON_ZERO_AVG, PM_STAT_PERCENTILE_01, PM_STAT_PERCENTILE_05, PM_STAT_PERCENTILE_10, PM_STAT_MAX) \ +\ + X_(PM_METRIC_INSTRUMENTED_LATENCY, PM_METRIC_TYPE_DYNAMIC_FRAME, PM_UNIT_MILLISECONDS, PM_DATA_TYPE_DOUBLE, PM_DATA_TYPE_DOUBLE, 0, PM_DEVICE_TYPE_INDEPENDENT, FULL_STATS) \ No newline at end of file diff --git a/IntelPresentMon/PMInstaller/PresentMon.wxs b/IntelPresentMon/PMInstaller/PresentMon.wxs index d91a9c96..9befe820 100644 --- a/IntelPresentMon/PMInstaller/PresentMon.wxs +++ b/IntelPresentMon/PMInstaller/PresentMon.wxs @@ -4,7 +4,7 @@ Id="*" Name="Intel(R) PresentMon" Language="1033" - Version="2.1.0.0" + Version="2.3.0.0" Manufacturer="Intel(R) Corporation" UpgradeCode="CD0D489E-0FE7-452D-90D9-F94F3F5FF410"> @@ -16,7 +16,7 @@ - + diff --git a/IntelPresentMon/PresentMonAPI2/PresentMonAPI.h b/IntelPresentMon/PresentMonAPI2/PresentMonAPI.h index ea5a44f1..0aab317d 100644 --- a/IntelPresentMon/PresentMonAPI2/PresentMonAPI.h +++ b/IntelPresentMon/PresentMonAPI2/PresentMonAPI.h @@ -115,6 +115,9 @@ extern "C" { PM_METRIC_ANIMATION_ERROR, PM_METRIC_ALL_INPUT_TO_PHOTON_LATENCY, + PM_METRIC_INSTRUMENTED_LATENCY, + PM_METRIC_ANIMATION_TIME, + }; enum PM_METRIC_TYPE @@ -225,6 +228,7 @@ extern "C" { PM_FRAME_TYPE_UNSPECIFIED, PM_FRAME_TYPE_APPLICATION, PM_FRAME_TYPE_REPEATED, + PM_FRAME_TYPE_INTEL_XEFG = 50, PM_FRAME_TYPE_AMD_AFMF = 100, }; diff --git a/IntelPresentMon/PresentMonAPI2/PresentMonAPI2.rc b/IntelPresentMon/PresentMonAPI2/PresentMonAPI2.rc index cae893fe..660ee6ae 100644 Binary files a/IntelPresentMon/PresentMonAPI2/PresentMonAPI2.rc and b/IntelPresentMon/PresentMonAPI2/PresentMonAPI2.rc differ diff --git a/IntelPresentMon/PresentMonAPI2Tests/CsvHelper.h b/IntelPresentMon/PresentMonAPI2Tests/CsvHelper.h index 918fcf9c..7c982f00 100644 --- a/IntelPresentMon/PresentMonAPI2Tests/CsvHelper.h +++ b/IntelPresentMon/PresentMonAPI2Tests/CsvHelper.h @@ -40,9 +40,13 @@ enum Header { Header_DisplayLatency, Header_DisplayedTime, Header_AnimationError, + Header_AnimationTime, Header_ClickToPhotonLatency, Header_AllInputToPhotonLatency, + // App Provided Metrics + Header_InstrumentedLatency, + // --v1_metrics Header_Runtime, Header_Dropped, @@ -76,6 +80,7 @@ struct v2Metrics { uint32_t presentFlags = 0; uint32_t allowsTearing = 0; PM_PRESENT_MODE presentMode = PM_PRESENT_MODE_UNKNOWN; + PM_FRAME_TYPE frameType = PM_FRAME_TYPE_NOT_SET; uint64_t cpuFrameQpc = 0; double cpuFrameTime = 0.; double cpuBusy = 0.; @@ -88,8 +93,10 @@ struct v2Metrics { std::optional displayLatency; std::optional displayedTime; std::optional animationError; + std::optional animationTime; std::optional clickToPhotonLatency; std::optional AllInputToPhotonLatency; + std::optional InstrumentedLatency; }; constexpr char const* GetHeaderString(Header h) @@ -119,6 +126,7 @@ constexpr char const* GetHeaderString(Header h) case Header_DisplayLatency: return "DisplayLatency"; case Header_DisplayedTime: return "DisplayedTime"; case Header_AnimationError: return "AnimationError"; + case Header_AnimationTime: return "AnimationTime"; case Header_ClickToPhotonLatency: return "ClickToPhotonLatency"; case Header_AllInputToPhotonLatency: return "AllInputToPhotonLatency"; @@ -138,6 +146,9 @@ constexpr char const* GetHeaderString(Header h) case Header_WasBatched: return "WasBatched"; case Header_DwmNotified: return "DwmNotified"; + + case Header_InstrumentedLatency: return "InstrumentedLatency"; + default: return ""; } } @@ -245,10 +256,33 @@ void CharConvert::Convert(const std::string data, T& convertedData, Header co else if (data == "Hardware Composed: Independent Flip") { convertedData = PM_PRESENT_MODE_HARDWARE_COMPOSED_INDEPENDENT_FLIP; } + else if (data == "Other") { + convertedData = PM_PRESENT_MODE_UNKNOWN; + } else { Assert::Fail(CreateErrorString(Header_PresentMode, line).c_str()); } } + else if constexpr (std::is_same::value) { + if (data == "NotSet") { + convertedData = PM_FRAME_TYPE_NOT_SET; + } + else if (data == "Unspecified") { + convertedData = PM_FRAME_TYPE_UNSPECIFIED; + } + else if (data == "Application") { + convertedData = PM_FRAME_TYPE_APPLICATION; + } + else if (data == "Repeated") { + convertedData = PM_FRAME_TYPE_REPEATED; + } + else if (data == "AMD_AFMF") { + convertedData = PM_FRAME_TYPE_AMD_AFMF; + } + else { + Assert::Fail(CreateErrorString(Header_FrameType, line).c_str()); + } + } else { Assert::Fail(CreateErrorString(UnknownHeader, line).c_str()); @@ -297,7 +331,7 @@ class CsvParser { bool Open(std::wstring const& path, uint32_t processId); void Close(); bool VerifyBlobAgainstCsv(const std::string& processName, const unsigned int& processId, - PM_QUERY_ELEMENT(&queryElements)[19], pmapi::BlobContainer& blobs); + PM_QUERY_ELEMENT(&queryElements)[22], pmapi::BlobContainer& blobs); bool ResetCsv(); private: @@ -326,7 +360,7 @@ CsvParser::CsvParser() {} bool CsvParser::VerifyBlobAgainstCsv(const std::string& processName, const unsigned int& processId, - PM_QUERY_ELEMENT(&queryElements)[19], pmapi::BlobContainer& blobs) + PM_QUERY_ELEMENT(&queryElements)[22], pmapi::BlobContainer& blobs) { for (auto pBlob : blobs) { @@ -338,19 +372,24 @@ bool CsvParser::VerifyBlobAgainstCsv(const std::string& processName, const unsig const auto presentFlags = *reinterpret_cast(&pBlob[queryElements[3].dataOffset]); const auto allowsTearing = *reinterpret_cast(&pBlob[queryElements[4].dataOffset]); const auto presentMode = *reinterpret_cast(&pBlob[queryElements[5].dataOffset]); - const auto cpuFrameQpc = *reinterpret_cast(&pBlob[queryElements[6].dataOffset]); - const auto cpuFrameTime = *reinterpret_cast(&pBlob[queryElements[7].dataOffset]); - const auto cpuBusy = *reinterpret_cast(&pBlob[queryElements[8].dataOffset]); - const auto cpuWait = *reinterpret_cast(&pBlob[queryElements[9].dataOffset]); - const auto gpuLatency = *reinterpret_cast(&pBlob[queryElements[10].dataOffset]); - const auto gpuTime = *reinterpret_cast(&pBlob[queryElements[11].dataOffset]); - const auto gpuBusy = *reinterpret_cast(&pBlob[queryElements[12].dataOffset]); - const auto gpuWait = *reinterpret_cast(&pBlob[queryElements[13].dataOffset]); - const auto displayLatency = *reinterpret_cast(&pBlob[queryElements[14].dataOffset]); - const auto displayedTime = *reinterpret_cast(&pBlob[queryElements[15].dataOffset]); - const auto animationError = *reinterpret_cast(&pBlob[queryElements[16].dataOffset]); - const auto allInputToPhotonLatency = *reinterpret_cast(&pBlob[queryElements[17].dataOffset]); - const auto clickToPhotonLatency = *reinterpret_cast(&pBlob[queryElements[18].dataOffset]); + const auto frameType = *reinterpret_cast(&pBlob[queryElements[6].dataOffset]); + const auto cpuFrameQpc = *reinterpret_cast(&pBlob[queryElements[7].dataOffset]); + const auto cpuFrameTime = *reinterpret_cast(&pBlob[queryElements[8].dataOffset]); + const auto cpuBusy = *reinterpret_cast(&pBlob[queryElements[9].dataOffset]); + const auto cpuWait = *reinterpret_cast(&pBlob[queryElements[10].dataOffset]); + const auto gpuLatency = *reinterpret_cast(&pBlob[queryElements[11].dataOffset]); + const auto gpuTime = *reinterpret_cast(&pBlob[queryElements[12].dataOffset]); + const auto gpuBusy = *reinterpret_cast(&pBlob[queryElements[13].dataOffset]); + const auto gpuWait = *reinterpret_cast(&pBlob[queryElements[14].dataOffset]); + const auto displayLatency = *reinterpret_cast(&pBlob[queryElements[15].dataOffset]); + const auto displayedTime = *reinterpret_cast(&pBlob[queryElements[16].dataOffset]); + const auto animationError = *reinterpret_cast(&pBlob[queryElements[17].dataOffset]); + const auto animationTime = *reinterpret_cast(&pBlob[queryElements[18].dataOffset]); + const auto allInputToPhotonLatency = *reinterpret_cast(&pBlob[queryElements[19].dataOffset]); + const auto clickToPhotonLatency = *reinterpret_cast(&pBlob[queryElements[20].dataOffset]); + const auto instrumentedLatency = *reinterpret_cast(&pBlob[queryElements[21].dataOffset]); + + // Read rows until we find one with the process we are interested in // or we are out of data. @@ -381,7 +420,7 @@ bool CsvParser::VerifyBlobAgainstCsv(const std::string& processName, const unsig columnsMatch = Validate(v2MetricRow_.processId, processId_); break; case Header_SwapChainAddress: - columnsMatch = Validate(v2MetricRow_.swapChain, swapChain); + columnsMatch = Validate(v2MetricRow_.swapChain, swapChain); break; case Header_Runtime: columnsMatch = Validate(v2MetricRow_.runtime, graphicsRuntime); @@ -398,6 +437,9 @@ bool CsvParser::VerifyBlobAgainstCsv(const std::string& processName, const unsig case Header_PresentMode: columnsMatch = Validate(v2MetricRow_.presentMode, presentMode); break; + case Header_FrameType: + columnsMatch = Validate(v2MetricRow_.frameType, frameType); + break; case Header_CPUStartQPC: columnsMatch = Validate(v2MetricRow_.cpuFrameQpc, cpuFrameQpc); break; @@ -468,6 +510,21 @@ bool CsvParser::VerifyBlobAgainstCsv(const std::string& processName, const unsig } } break; + case Header_AnimationTime: + if (v2MetricRow_.animationTime.has_value()) { + columnsMatch = Validate(v2MetricRow_.animationTime.value(), animationTime); + } + else + { + if (std::isnan(animationTime)) { + columnsMatch = true; + } + else + { + columnsMatch = false; + } + } + break; case Header_ClickToPhotonLatency: if (v2MetricRow_.clickToPhotonLatency.has_value()) { columnsMatch = Validate(v2MetricRow_.clickToPhotonLatency.value(), clickToPhotonLatency); @@ -498,6 +555,21 @@ bool CsvParser::VerifyBlobAgainstCsv(const std::string& processName, const unsig } } break; + case Header_InstrumentedLatency: + if (v2MetricRow_.InstrumentedLatency.has_value()) { + columnsMatch = Validate(v2MetricRow_.InstrumentedLatency.value(), instrumentedLatency); + } + else + { + if (std::isnan(instrumentedLatency)) { + columnsMatch = true; + } + else + { + columnsMatch = false; + } + } + break; default: columnsMatch = true; break; @@ -597,6 +669,7 @@ bool CsvParser::Open(std::wstring const& path, uint32_t processId) { Header_PresentFlags, Header_AllowsTearing, Header_PresentMode, + Header_FrameType, Header_CPUStartQPC, Header_FrameTime, Header_CPUBusy, @@ -609,8 +682,10 @@ bool CsvParser::Open(std::wstring const& path, uint32_t processId) { Header_DisplayLatency, Header_DisplayedTime, Header_AnimationError, + Header_AnimationTime, Header_ClickToPhotonLatency, - Header_AllInputToPhotonLatency}); + Header_AllInputToPhotonLatency, + Header_InstrumentedLatency }); if (!columnsOK) { Assert::Fail(L"Missing required columns"); @@ -697,6 +772,12 @@ void CsvParser::ConvertToMetricDataType(const char* data, Header columnId) converter.Convert(data, v2MetricRow_.presentMode, columnId, line_); } break; + case Header_FrameType: + { + CharConvert converter; + converter.Convert(data, v2MetricRow_.frameType, columnId, line_); + } + break; case Header_CPUStartQPC: { CharConvert converter; @@ -791,6 +872,19 @@ void CsvParser::ConvertToMetricDataType(const char* data, Header columnId) } } break; + case Header_AnimationTime: + { + if (strncmp(data, "NA", 2) != 0) { + double convertedData = 0.; + CharConvert converter; + converter.Convert(data, convertedData, columnId, line_); + v2MetricRow_.animationTime = convertedData; + } + else { + v2MetricRow_.animationTime.reset(); + } + } + break; case Header_ClickToPhotonLatency: { if (strncmp(data, "NA", 2) != 0) { @@ -817,6 +911,21 @@ void CsvParser::ConvertToMetricDataType(const char* data, Header columnId) } } break; + case Header_InstrumentedLatency: + { + if (strncmp(data, "NA", 2) != 0) { + double convertedData = 0.; + CharConvert converter; + converter.Convert(data, convertedData, columnId, line_); + v2MetricRow_.InstrumentedLatency = convertedData; + } + else + { + v2MetricRow_.InstrumentedLatency.reset(); + } + } + break; + default: Assert::Fail(CreateErrorString(UnknownHeader, line_).c_str()); } diff --git a/IntelPresentMon/PresentMonAPI2Tests/EtlTests.cpp b/IntelPresentMon/PresentMonAPI2Tests/EtlTests.cpp index 6676df03..12973c3d 100644 --- a/IntelPresentMon/PresentMonAPI2Tests/EtlTests.cpp +++ b/IntelPresentMon/PresentMonAPI2Tests/EtlTests.cpp @@ -17,7 +17,6 @@ namespace EtlTests switch (present_mode) { case PM_PRESENT_MODE::PM_PRESENT_MODE_HARDWARE_LEGACY_FLIP: return "Hardware: Legacy Flip"; - case PM_PRESENT_MODE::PM_PRESENT_MODE_HARDWARE_LEGACY_COPY_TO_FRONT_BUFFER: return "Hardware: Legacy Copy to front buffer"; case PM_PRESENT_MODE::PM_PRESENT_MODE_HARDWARE_INDEPENDENT_FLIP: @@ -31,7 +30,7 @@ namespace EtlTests case PM_PRESENT_MODE::PM_PRESENT_MODE_COMPOSED_COPY_WITH_CPU_GDI: return "Composed: Copy with CPU GDI"; default: - return("Present Mode: Unknown"); + return("Other"); } } @@ -138,7 +137,7 @@ namespace EtlTests const uint32_t& processId, const std::string& processName, CsvParser& goldCsvFile) { using namespace std::chrono_literals; pmapi::ProcessTracker processTracker; - static constexpr uint32_t numberOfBlobs = 150u; + static constexpr uint32_t numberOfBlobs = 4000u; PM_QUERY_ELEMENT queryElements[]{ //{ PM_METRIC_APPLICATION, PM_STAT_NONE, 0, 0 }, @@ -148,6 +147,7 @@ namespace EtlTests { PM_METRIC_PRESENT_FLAGS, PM_STAT_NONE, 0, 0 }, { PM_METRIC_ALLOWS_TEARING, PM_STAT_NONE, 0, 0 }, { PM_METRIC_PRESENT_MODE, PM_STAT_NONE, 0, 0 }, + { PM_METRIC_FRAME_TYPE, PM_STAT_NONE, 0, 0 }, { PM_METRIC_CPU_START_QPC, PM_STAT_NONE, 0, 0 }, { PM_METRIC_CPU_FRAME_TIME, PM_STAT_NONE, 0, 0 }, { PM_METRIC_CPU_BUSY, PM_STAT_NONE, 0, 0 }, @@ -159,8 +159,10 @@ namespace EtlTests { PM_METRIC_DISPLAY_LATENCY, PM_STAT_NONE, 0, 0 }, { PM_METRIC_DISPLAYED_TIME, PM_STAT_NONE, 0, 0 }, { PM_METRIC_ANIMATION_ERROR, PM_STAT_NONE, 0, 0 }, + { PM_METRIC_ANIMATION_TIME, PM_STAT_NONE, 0, 0 }, { PM_METRIC_ALL_INPUT_TO_PHOTON_LATENCY, PM_STAT_NONE, 0, 0}, - { PM_METRIC_CLICK_TO_PHOTON_LATENCY, PM_STAT_NONE, 0, 0} + { PM_METRIC_CLICK_TO_PHOTON_LATENCY, PM_STAT_NONE, 0, 0}, + { PM_METRIC_INSTRUMENTED_LATENCY, PM_STAT_NONE, 0, 0 } }; auto frameQuery = pSession->RegisterFrameQuery(queryElements); @@ -1653,6 +1655,150 @@ namespace EtlTests } } + RunTestCaseV2(std::move(pSession), processId, processName, goldCsvFile); + goldCsvFile.Close(); + } + TEST_METHOD(Tc6v2CPXellOn10796Ext) + { + namespace bp = boost::process; + using namespace std::string_literals; + using namespace std::chrono_literals; + + const uint32_t processId = 10796; + const std::string processName = "cpLauncher.exe"; + + bp::ipstream out; // Stream for reading the process's output + bp::opstream in; // Stream for writing to the process's input + + const auto pipeName = R"(\\.\pipe\test-pipe-pmsvc-2)"s; + const auto introName = "PM_intro_test_nsm_2"s; + const auto etlName = "F:\\EtlTesting\\test_case_6.etl"; + const auto goldCsvName = L"F:\\EtlTesting\\test_case_6.csv"; + + CsvParser goldCsvFile; + if (!goldCsvFile.Open(goldCsvName, processId)) { + return; + } + + oChild.emplace("PresentMonService.exe"s, + "--timed-stop"s, "60000"s, + "--control-pipe"s, pipeName, + "--nsm-prefix"s, "pmon_nsm_utest_"s, + "--intro-nsm"s, introName, + "--etl-test-file"s, etlName, + bp::std_out > out, bp::std_in < in); + + std::this_thread::sleep_for(1000ms); + + std::unique_ptr pSession; + { + try + { + pSession = std::make_unique(pipeName.c_str(), introName.c_str()); + } + catch (const std::exception& e) { + std::cout << "Error: " << e.what() << std::endl; + Assert::AreEqual(false, true, L"*** Connecting to service via named pipe"); + return; + } + } + + RunTestCaseV2(std::move(pSession), processId, processName, goldCsvFile); + goldCsvFile.Close(); + } + TEST_METHOD(Tc7v2CPXellOnFgOn11320Ext) + { + namespace bp = boost::process; + using namespace std::string_literals; + using namespace std::chrono_literals; + + const uint32_t processId = 11320; + const std::string processName = "cpLauncher.exe"; + + bp::ipstream out; // Stream for reading the process's output + bp::opstream in; // Stream for writing to the process's input + + const auto pipeName = R"(\\.\pipe\test-pipe-pmsvc-2)"s; + const auto introName = "PM_intro_test_nsm_2"s; + const auto etlName = "F:\\EtlTesting\\test_case_7.etl"; + const auto goldCsvName = L"F:\\EtlTesting\\test_case_7.csv"; + + CsvParser goldCsvFile; + if (!goldCsvFile.Open(goldCsvName, processId)) { + return; + } + + oChild.emplace("PresentMonService.exe"s, + "--timed-stop"s, "60000"s, + "--control-pipe"s, pipeName, + "--nsm-prefix"s, "pmon_nsm_utest_"s, + "--intro-nsm"s, introName, + "--etl-test-file"s, etlName, + bp::std_out > out, bp::std_in < in); + + std::this_thread::sleep_for(1000ms); + + std::unique_ptr pSession; + { + try + { + pSession = std::make_unique(pipeName.c_str(), introName.c_str()); + } + catch (const std::exception& e) { + std::cout << "Error: " << e.what() << std::endl; + Assert::AreEqual(false, true, L"*** Connecting to service via named pipe"); + return; + } + } + + RunTestCaseV2(std::move(pSession), processId, processName, goldCsvFile); + goldCsvFile.Close(); + } + TEST_METHOD(Tc8v2ACSXellOnFgOn6920Ext) + { + namespace bp = boost::process; + using namespace std::string_literals; + using namespace std::chrono_literals; + + const uint32_t processId = 6920; + const std::string processName = "scimitar_engine_win64_vs2022_llvm_fusion_dx12_px.exe"; + + bp::ipstream out; // Stream for reading the process's output + bp::opstream in; // Stream for writing to the process's input + + const auto pipeName = R"(\\.\pipe\test-pipe-pmsvc-2)"s; + const auto introName = "PM_intro_test_nsm_2"s; + const auto etlName = "F:\\EtlTesting\\test_case_7.etl"; + const auto goldCsvName = L"F:\\EtlTesting\\test_case_7.csv"; + + CsvParser goldCsvFile; + if (!goldCsvFile.Open(goldCsvName, processId)) { + return; + } + + oChild.emplace("PresentMonService.exe"s, + "--timed-stop"s, "60000"s, + "--control-pipe"s, pipeName, + "--nsm-prefix"s, "pmon_nsm_utest_"s, + "--intro-nsm"s, introName, + "--etl-test-file"s, etlName, + bp::std_out > out, bp::std_in < in); + + std::this_thread::sleep_for(1000ms); + + std::unique_ptr pSession; + { + try + { + pSession = std::make_unique(pipeName.c_str(), introName.c_str()); + } + catch (const std::exception& e) { + std::cout << "Error: " << e.what() << std::endl; + Assert::AreEqual(false, true, L"*** Connecting to service via named pipe"); + return; + } + } + RunTestCaseV2(std::move(pSession), processId, processName, goldCsvFile); goldCsvFile.Close(); } diff --git a/IntelPresentMon/PresentMonMiddleware/ActionClient.h b/IntelPresentMon/PresentMonMiddleware/ActionClient.h index da50cc27..e4e0b446 100644 --- a/IntelPresentMon/PresentMonMiddleware/ActionClient.h +++ b/IntelPresentMon/PresentMonMiddleware/ActionClient.h @@ -4,7 +4,7 @@ #include "../Interprocess/source/act/AsyncActionManager.h" #include "../CommonUtilities/pipe/Pipe.h" #include "../PresentMonService/AllActions.h" -#include "../CommonUtilities/BuildId.h" +#include "../Versioning/BuildId.h" namespace pmon::mid { @@ -22,7 +22,7 @@ namespace pmon::mid pipe_{ pipe::DuplexPipe::Connect(pipeName_, ioctx_) } { auto res = DispatchSync(OpenSession::Params{ - .clientPid = thisPid_, .clientBuildId = BuildIdShortHash() + .clientPid = thisPid_, .clientBuildId = bid::BuildIdShortHash() }); pmlog_info(std::format("Opened session with server, build id = [{}]", res.serviceBuildId)); } diff --git a/IntelPresentMon/PresentMonMiddleware/ConcreteMiddleware.cpp b/IntelPresentMon/PresentMonMiddleware/ConcreteMiddleware.cpp index 9242ccf5..e367b097 100644 --- a/IntelPresentMon/PresentMonMiddleware/ConcreteMiddleware.cpp +++ b/IntelPresentMon/PresentMonMiddleware/ConcreteMiddleware.cpp @@ -293,6 +293,7 @@ namespace pmon::mid case PM_METRIC_DROPPED_FRAMES: case PM_METRIC_CLICK_TO_PHOTON_LATENCY: case PM_METRIC_ALL_INPUT_TO_PHOTON_LATENCY: + case PM_METRIC_INSTRUMENTED_LATENCY: pQuery->accumFpsData = true; break; case PM_METRIC_GPU_POWER: @@ -473,6 +474,13 @@ struct FrameMetrics { double mAnimationError; double mClickToPhotonLatency; double mAllInputPhotonLatency; + FrameType mFrameType; + double mInstrumentedDisplayLatency; + + double mInstrumentedRenderLatency; + double mInstrumentedSleep; + double mInstrumentedGpuLatency; + double mInstrumentedReadyTimeToDisplayLatency; }; // Copied from: PresentMon/OutputThread.cpp @@ -480,17 +488,21 @@ void UpdateChain( fpsSwapChainData* chain, PmNsmPresentEvent const& p) { - if (p.FinalState == PresentResult::Presented) { // Used when calculating animation error - if (chain->mLastPresentIsValid == true) { - chain->mLastDisplayedCPUStart = chain->mLastPresent.PresentStartTime + chain->mLastPresent.TimeInPresent; + if (p.AppSimStartTime != 0) { + chain->mLastDisplayedSimStart = p.AppSimStartTime; + } else if (chain->mLastPresentIsValid == true) { + chain->mLastDisplayedSimStart = chain->mLastPresent.PresentStartTime + + chain->mLastPresent.TimeInPresent; } + uint64_t mLastDisplayedScreenTime = p.DisplayedCount == 0 ? 0 : p.Displayed_ScreenTime[0]; + // IntelPresentMon specifics: if (chain->display_count == 0) { - chain->display_0_screen_time = p.ScreenTime; + chain->display_0_screen_time = mLastDisplayedScreenTime; } - chain->display_n_screen_time = p.ScreenTime; + chain->mLastDisplayedScreenTime = mLastDisplayedScreenTime; chain->display_count += 1; } @@ -500,143 +512,254 @@ void UpdateChain( } // Copied from: PresentMon/OutputThread.cpp -void ReportMetrics( +static void ReportMetricsHelper( FakePMTraceSession const& pmSession, fpsSwapChainData* chain, PmNsmPresentEvent* p, - PmNsmPresentEvent* nextPresent, PmNsmPresentEvent const* nextDisplayedPresent) { - // Ignore repeated frames - if (p->FrameType == FrameType::Repeated) { - if (p->FrameId == chain->mLastPresent.FrameId) { - return; - } - - if (p->FrameId == nextPresent->FrameId && - nextPresent->ScreenTime != 0) { - nextPresent->ScreenTime = p->ScreenTime; - return; - } - - p->FrameType = FrameType::Application; - } - - // PB = PresentStartTime - // PE = PresentEndTime - // D = ScreenTime + // Figure out what display index to start processing. // - // chain->mLastPresent: PB--PE----D - // p: | PB--PE----D - // nextPresent: | | | PB--PE - // ... | | | | PB--PE - // nextDisplayedPresent: | | | | PB--PE----D - // | | | | | - // mCPUStart/mCPUBusy: |------->| | | | - // mCPUWait: |-->| | | - // mDisplayLatency: |----------------->| | - // mDisplayedTime: |---------------------->| - - bool includeFrameData = chain->mIncludeFrameData && (p->FrameId != nextPresent->FrameId || p->FrameType == FrameType::Application); - - bool displayed = p->FinalState == PresentResult::Presented; - double msGPUDuration = 0.0; - - FrameMetrics metrics; - metrics.mCPUStart = chain->mLastPresent.PresentStartTime + chain->mLastPresent.TimeInPresent; - - if (includeFrameData) { - msGPUDuration = pmSession.TimestampDeltaToUnsignedMilliSeconds(p->GPUStartTime, p->ReadyTime); - metrics.mCPUBusy = pmSession.TimestampDeltaToUnsignedMilliSeconds(metrics.mCPUStart, p->PresentStartTime); - metrics.mCPUWait = pmSession.TimestampDeltaToMilliSeconds(p->TimeInPresent); - metrics.mGPULatency = pmSession.TimestampDeltaToUnsignedMilliSeconds(metrics.mCPUStart, p->GPUStartTime); - metrics.mGPUBusy = pmSession.TimestampDeltaToMilliSeconds(p->GPUDuration); - metrics.mVideoBusy = pmSession.TimestampDeltaToMilliSeconds(p->GPUVideoDuration); - metrics.mGPUWait = std::max(0.0, msGPUDuration - metrics.mGPUBusy); - } else { - metrics.mCPUBusy = 0.0; - metrics.mCPUWait = 0.0; - metrics.mGPULatency = 0.0; - metrics.mGPUBusy = 0.0; - metrics.mVideoBusy = 0.0; - metrics.mGPUWait = 0.0; + // The following cases are expected: + // p.Displayed empty and nextDisplayedPresent == nullptr: process p as not displayed + // p.Displayed with size N and nextDisplayedPresent == nullptr: process p.Displayed[0..N-2] as displayed, postponing N-1 + // p.Displayed with size N and nextDisplayedPresent != nullptr: process p.Displayed[N-1] as displayed + auto displayCount = p->DisplayedCount; + bool displayed = p->FinalState == PresentResult::Presented && displayCount > 0; + size_t displayIndex = displayed && nextDisplayedPresent != nullptr ? displayCount - 1 : 0; + + // Figure out what display index to attribute cpu work, gpu work, animation error, and input + // latency to. Start looking from the current display index. + size_t appIndex = 0; + for (size_t i = displayIndex; i < displayCount; ++i) { + if (p->Displayed_FrameType[i] == FrameType::NotSet || + p->Displayed_FrameType[i] == FrameType::Application) { + appIndex = i; + break; + } } - if (displayed) { - metrics.mDisplayLatency = pmSession.TimestampDeltaToUnsignedMilliSeconds(metrics.mCPUStart, p->ScreenTime); - metrics.mDisplayedTime = pmSession.TimestampDeltaToUnsignedMilliSeconds(p->ScreenTime, nextDisplayedPresent->ScreenTime); - metrics.mAnimationError = chain->mLastDisplayedCPUStart == 0 ? 0 : pmSession.TimestampDeltaToMilliSeconds(p->ScreenTime - chain->display_n_screen_time, - metrics.mCPUStart - chain->mLastDisplayedCPUStart); - // If we have an input time that was associated with a dropped frame calculate the latency - // based on this Presents screen time. - auto updatedInputTime = chain->mLastReceivedNotDisplayedAllInputTime == 0 ? 0 : - pmSession.TimestampDeltaToUnsignedMilliSeconds(chain->mLastReceivedNotDisplayedAllInputTime, p->ScreenTime); - // If this present doesn't have an input associated with it use the time from the latest input time calculated - // above. If there is an input associated with the Present use it. - metrics.mAllInputPhotonLatency = p->InputTime == 0 ? updatedInputTime : - pmSession.TimestampDeltaToUnsignedMilliSeconds(p->InputTime, p->ScreenTime); - // Do the same for the mouse click input - updatedInputTime = chain->mLastReceivedNotDisplayedMouseClickTime == 0 ? 0 : - pmSession.TimestampDeltaToUnsignedMilliSeconds(chain->mLastReceivedNotDisplayedMouseClickTime, p->ScreenTime); - metrics.mClickToPhotonLatency = p->MouseClickTime == 0 ? updatedInputTime : - pmSession.TimestampDeltaToUnsignedMilliSeconds(p->MouseClickTime, p->ScreenTime); - - chain->mLastReceivedNotDisplayedAllInputTime = 0; - chain->mLastReceivedNotDisplayedMouseClickTime = 0; - } else { - metrics.mDisplayLatency = 0.0; - metrics.mDisplayedTime = 0.0; - metrics.mAnimationError = 0.0; - metrics.mClickToPhotonLatency = 0.0; - metrics.mAllInputPhotonLatency = 0.0; - if (p->InputTime != 0) { - chain->mLastReceivedNotDisplayedAllInputTime = p->InputTime; + do { + // PB = PresentStartTime + // PE = PresentEndTime + // D = ScreenTime + // + // chain->mLastPresent: PB--PE----D + // p: | PB--PE----D + // ... | | | | PB--PE + // nextDisplayedPresent: | | | | PB--PE----D + // | | | | | + // mCPUStart/mCPUBusy: |------->| | | | + // mCPUWait: |-->| | | + // mDisplayLatency: |----------------->| | + // mDisplayedTime: |---------------------->| + + // Lookup the ScreenTime and next ScreenTime + uint64_t screenTime = 0; + uint64_t nextScreenTime = 0; + if (displayed) { + screenTime = p->Displayed_ScreenTime[displayIndex]; + + if (displayIndex + 1 < displayCount) { + nextScreenTime = p->Displayed_ScreenTime[displayIndex + 1]; + } else if (nextDisplayedPresent != nullptr) { + nextScreenTime = nextDisplayedPresent->Displayed_ScreenTime[0]; + } else { + return; + } } - if (p->MouseClickTime != 0) { - chain->mLastReceivedNotDisplayedMouseClickTime = p->MouseClickTime; + + double msGPUDuration = 0.0; + + FrameMetrics metrics; + + metrics.mCPUStart = chain->mLastPresent.PresentStartTime + chain->mLastPresent.TimeInPresent; + + if (displayIndex == appIndex) { + msGPUDuration = pmSession.TimestampDeltaToUnsignedMilliSeconds(p->GPUStartTime, p->ReadyTime); + metrics.mCPUBusy = pmSession.TimestampDeltaToUnsignedMilliSeconds(metrics.mCPUStart, p->PresentStartTime); + metrics.mCPUWait = pmSession.TimestampDeltaToMilliSeconds(p->TimeInPresent); + metrics.mGPULatency = pmSession.TimestampDeltaToUnsignedMilliSeconds(metrics.mCPUStart, p->GPUStartTime); + metrics.mGPUBusy = pmSession.TimestampDeltaToMilliSeconds(p->GPUDuration); + metrics.mVideoBusy = pmSession.TimestampDeltaToMilliSeconds(p->GPUVideoDuration); + metrics.mGPUWait = std::max(0.0, msGPUDuration - metrics.mGPUBusy); + // Need both AppSleepStart and AppSleepEnd to calculate XellSleep + metrics.mInstrumentedSleep = (p->AppSleepEndTime == 0 || p->AppSleepStartTime == 0) ? 0 : + pmSession.TimestampDeltaToUnsignedMilliSeconds(p->AppSleepStartTime, p->AppSleepEndTime); + // If there isn't a valid sleep end time use the sim start time + auto instrumentedStartTime = p->AppSleepEndTime != 0 ? p->AppSleepEndTime : p->AppSimStartTime; + // If neither the sleep end time or sim start time is valid, there is no + // way to calculate the Xell Gpu latency + metrics.mInstrumentedGpuLatency = instrumentedStartTime == 0 ? 0 : + pmSession.TimestampDeltaToUnsignedMilliSeconds(instrumentedStartTime, p->GPUStartTime); + } else { + metrics.mCPUBusy = 0; + metrics.mCPUWait = 0; + metrics.mGPULatency = 0; + metrics.mGPUBusy = 0; + metrics.mVideoBusy = 0; + metrics.mGPUWait = 0; + metrics.mInstrumentedSleep = 0; + metrics.mInstrumentedGpuLatency = 0; + } + + if (displayed) { + metrics.mDisplayLatency = pmSession.TimestampDeltaToUnsignedMilliSeconds(metrics.mCPUStart, screenTime); + metrics.mDisplayedTime = pmSession.TimestampDeltaToUnsignedMilliSeconds(screenTime, nextScreenTime); + // If AppRenderSubmitStart is valid calculate the render latency + metrics.mInstrumentedRenderLatency = p->AppRenderSubmitStartTime == 0 ? 0 : + pmSession.TimestampDeltaToUnsignedMilliSeconds(p->AppRenderSubmitStartTime, screenTime); + metrics.mInstrumentedReadyTimeToDisplayLatency = pmSession.TimestampDeltaToUnsignedMilliSeconds(p->ReadyTime, screenTime); + // If there isn't a valid sleep end time use the sim start time + auto xellStartTime = p->AppSleepEndTime != 0 ? p->AppSleepEndTime : p->AppSimStartTime; + // If neither the sleep end time or sim start time is valid, there is no + // way to calculate the Xell Gpu latency + metrics.mInstrumentedDisplayLatency = xellStartTime == 0 ? 0 : + pmSession.TimestampDeltaToUnsignedMilliSeconds(xellStartTime, screenTime); + } else { + metrics.mDisplayLatency = 0; + metrics.mDisplayedTime = 0; + metrics.mInstrumentedRenderLatency = 0; + metrics.mInstrumentedReadyTimeToDisplayLatency = 0; + metrics.mInstrumentedDisplayLatency = 0; + } + + if (displayIndex == appIndex) { + if (displayed) { + auto updatedInputTime = chain->mLastReceivedNotDisplayedAllInputTime == 0 ? 0 : + pmSession.TimestampDeltaToUnsignedMilliSeconds(chain->mLastReceivedNotDisplayedAllInputTime, screenTime); + metrics.mAllInputPhotonLatency = p->InputTime == 0 ? updatedInputTime : + pmSession.TimestampDeltaToUnsignedMilliSeconds(p->InputTime, screenTime); + + updatedInputTime = chain->mLastReceivedNotDisplayedMouseClickTime == 0 ? 0 : + pmSession.TimestampDeltaToUnsignedMilliSeconds(chain->mLastReceivedNotDisplayedMouseClickTime, screenTime); + metrics.mClickToPhotonLatency = p->MouseClickTime == 0 ? updatedInputTime : + pmSession.TimestampDeltaToUnsignedMilliSeconds(p->MouseClickTime, screenTime); + + chain->mLastReceivedNotDisplayedAllInputTime = 0; + chain->mLastReceivedNotDisplayedMouseClickTime = 0; + } + else { + metrics.mClickToPhotonLatency = 0; + metrics.mAllInputPhotonLatency = 0; + if (p->InputTime != 0) { + chain->mLastReceivedNotDisplayedAllInputTime = p->InputTime; + } + if (p->MouseClickTime != 0) { + chain->mLastReceivedNotDisplayedMouseClickTime = p->MouseClickTime; + } + } + } else { + metrics.mClickToPhotonLatency = 0; + metrics.mAllInputPhotonLatency = 0; } - } - if (p->FrameId == nextPresent->FrameId) { - if (includeFrameData) { - chain->mIncludeFrameData = false; + if (displayed && displayIndex == appIndex && chain->mLastDisplayedSimStart != 0) { + // Calculate the sim start time based on if AppSimStartTime is non-zero + auto simStartTime = p->AppSimStartTime != 0 ? p->AppSimStartTime : metrics.mCPUStart; + metrics.mAnimationError = pmSession.TimestampDeltaToMilliSeconds(screenTime - chain->mLastDisplayedScreenTime, + simStartTime - chain->mLastDisplayedSimStart); + chain->mAnimationError.push_back(std::abs(metrics.mAnimationError)); + } else { + metrics.mAnimationError = 0; } - } else { - UpdateChain(chain, *p); - } - // IntelPresentMon specifics: + if (p->DisplayedCount == 0) { + metrics.mFrameType = FrameType::NotSet; + } else { + metrics.mFrameType = p->Displayed_FrameType[displayIndex]; + } - if (includeFrameData) { - chain->mCPUBusy .push_back(metrics.mCPUBusy); - chain->mCPUWait .push_back(metrics.mCPUWait); - chain->mGPULatency .push_back(metrics.mGPULatency); - chain->mGPUBusy .push_back(metrics.mGPUBusy); - chain->mVideoBusy .push_back(metrics.mVideoBusy); - chain->mGPUWait .push_back(metrics.mGPUWait); - chain->mAnimationError.push_back(std::abs(metrics.mAnimationError)); - } + if (displayIndex == appIndex) { + chain->mCPUBusy .push_back(metrics.mCPUBusy); + chain->mCPUWait .push_back(metrics.mCPUWait); + chain->mGPULatency .push_back(metrics.mGPULatency); + chain->mGPUBusy .push_back(metrics.mGPUBusy); + chain->mVideoBusy .push_back(metrics.mVideoBusy); + chain->mGPUWait .push_back(metrics.mGPUWait); + chain->mInstrumentedSleep .push_back(metrics.mInstrumentedSleep); + chain->mInstrumentedGpuLatency.push_back(metrics.mInstrumentedGpuLatency); + } - if (displayed) { - if (chain->mAppDisplayedTime.empty() || p->FrameType == FrameType::NotSet || p->FrameType == FrameType::Application) { - chain->mAppDisplayedTime.push_back(metrics.mDisplayedTime); + if (displayed) { + chain->mDisplayLatency .push_back(metrics.mDisplayLatency); + chain->mDisplayedTime .push_back(metrics.mDisplayedTime); + chain->mDropped .push_back(0.0); } else { - chain->mAppDisplayedTime.back() += metrics.mDisplayedTime; + chain->mDropped .push_back(1.0); + } + + if (displayed) { + if (chain->mAppDisplayedTime.empty() || displayIndex == appIndex) { + chain->mAppDisplayedTime.push_back(metrics.mDisplayedTime); + } else { + chain->mAppDisplayedTime.back() += metrics.mDisplayedTime; + } } - if (p->MouseClickTime) { - chain->mClickToPhotonLatency.push_back(metrics.mClickToPhotonLatency); + if (displayed && displayIndex == appIndex) { + if (metrics.mAllInputPhotonLatency != 0) { + chain->mAllInputToPhotonLatency.push_back(metrics.mAllInputPhotonLatency); + } + if (metrics.mClickToPhotonLatency != 0) { + chain->mClickToPhotonLatency.push_back(metrics.mClickToPhotonLatency); + } } - if (p->InputTime) { - chain->mAllInputToPhotonLatency.push_back(metrics.mAllInputPhotonLatency); + if (displayed && displayIndex == appIndex) { + if (metrics.mInstrumentedRenderLatency != 0) { + chain->mInstrumentedRenderLatency.push_back(metrics.mInstrumentedRenderLatency); + } + if (metrics.mInstrumentedDisplayLatency != 0) { + chain->mInstrumentedDisplayLatency.push_back(metrics.mInstrumentedDisplayLatency); + } + if (metrics.mInstrumentedReadyTimeToDisplayLatency != 0) { + chain->mInstrumentedReadyTimeToDisplayLatency.push_back(metrics.mInstrumentedReadyTimeToDisplayLatency); + } } - chain->mDisplayLatency.push_back(metrics.mDisplayLatency); - chain->mDisplayedTime .push_back(metrics.mDisplayedTime); - chain->mDropped .push_back(0.0); + displayIndex += 1; + } while (displayIndex < displayCount); + + UpdateChain(chain, *p); +} + +static void ReportMetrics( + FakePMTraceSession const& pmSession, + fpsSwapChainData* chain, + PmNsmPresentEvent* p) +{ + // For the chain's first present, we just initialize mLastPresent to give a baseline for the + // first frame. + if (!chain->mLastPresentIsValid) { + UpdateChain(chain, *p); + return; + } + + // If chain->mPendingPresents is non-empty, then it contains a displayed present followed by + // some number of discarded presents. If the displayed present has multiple Displayed entries, + // all but the last have already been handled. + // + // If p is displayed, then we can complete all pending presents, and complete any flips in p + // except for the last one, but then we have to add p to the pending list to wait for the next + // displayed frame. + // + // If p is not displayed, we can process it now unless it is blocked behind an earlier present + // waiting for the next displayed one, in which case we need to add it to the pending list as + // well. + if (p->FinalState == PresentResult::Presented) { + for (auto& p2 : chain->mPendingPresents) { + ReportMetricsHelper(pmSession, chain, &p2, p); + } + ReportMetricsHelper(pmSession, chain, p, nullptr); + chain->mPendingPresents.clear(); + chain->mPendingPresents.push_back(*p); } else { - chain->mDropped .push_back(1.0); + if (chain->mPendingPresents.empty()) { + ReportMetricsHelper(pmSession, chain, p, nullptr); + } else { + chain->mPendingPresents.push_back(*p); + } } } @@ -733,24 +856,7 @@ void ReportMetrics( // The following code block copied from: PresentMon/OutputThread.cpp if (chain->mLastPresentIsValid) { - auto numPendingPresents = chain->mPendingPresents.size(); - if (numPendingPresents > 0) { - if (presentEvent->FinalState == PresentResult::Presented) { - size_t i = 1; - for ( ; i < numPendingPresents; ++i) { - ReportMetrics(pmSession, chain, &chain->mPendingPresents[i - 1], &chain->mPendingPresents[i], presentEvent); - } - ReportMetrics(pmSession, chain, &chain->mPendingPresents[i - 1], presentEvent, presentEvent); - chain->mPendingPresents.clear(); - } else { - if (chain->mPendingPresents[0].FinalState != PresentResult::Presented) { - ReportMetrics(pmSession, chain, &chain->mPendingPresents[0], presentEvent, nullptr); - chain->mPendingPresents.clear(); - } - } - } - - chain->mPendingPresents.push_back(*presentEvent); + ReportMetrics(pmSession, chain, presentEvent); } else { UpdateChain(chain, *presentEvent); } @@ -952,16 +1058,23 @@ void ReportMetrics( SetActiveGraphicsAdapter(*devId); } + uint64_t simStartTime = 0; + auto iter = appSimStartTime.find(processId); + if (iter != appSimStartTime.end()) { + simStartTime = iter->second; + } + // context transmits various data that applies to each gather command in the query - PM_FRAME_QUERY::Context ctx{ nsm_hdr->start_qpc, pShmClient->GetQpcFrequency().QuadPart }; + PM_FRAME_QUERY::Context ctx{ nsm_hdr->start_qpc, pShmClient->GetQpcFrequency().QuadPart, simStartTime }; - for (uint32_t i = 0; i < frames_to_copy; i++) { + while (frames_copied < frames_to_copy) { const PmNsmFrameData* pCurrentFrameData = nullptr; + const PmNsmFrameData* pNextFrameData = nullptr; const PmNsmFrameData* pFrameDataOfLastPresented = nullptr; const PmNsmFrameData* pFrameDataOfNextDisplayed = nullptr; const PmNsmFrameData* pFrameDataOfLastDisplayed = nullptr; const PmNsmFrameData* pPreviousFrameDataOfLastDisplayed = nullptr; - const auto status = pShmClient->ConsumePtrToNextNsmFrameData(&pCurrentFrameData, + const auto status = pShmClient->ConsumePtrToNextNsmFrameData(&pCurrentFrameData, &pNextFrameData, &pFrameDataOfNextDisplayed, &pFrameDataOfLastPresented, &pFrameDataOfLastDisplayed, &pPreviousFrameDataOfLastDisplayed); if (status != PM_STATUS::PM_STATUS_SUCCESS) { pmlog_error("Error while trying to get frame data from shared memory").diag(); @@ -976,14 +1089,35 @@ void ReportMetrics( pFrameDataOfLastPresented, pFrameDataOfLastDisplayed, pPreviousFrameDataOfLastDisplayed); - pQuery->GatherToBlob(ctx, pBlob); - pBlob += pQuery->GetBlobSize(); - frames_copied++; - } + if (simStartTime == 0 && ctx.firstAppSimStartTime != 0) { + simStartTime = ctx.firstAppSimStartTime; + } + + if (ctx.dropped) { + pQuery->GatherToBlob(ctx, pBlob); + pBlob += pQuery->GetBlobSize(); + frames_copied++; + } else { + while (ctx.sourceFrameDisplayIndex < ctx.pSourceFrameData->present_event.DisplayedCount) { + pQuery->GatherToBlob(ctx, pBlob); + pBlob += pQuery->GetBlobSize(); + frames_copied++; + ctx.sourceFrameDisplayIndex++; + } + } + } + // Check to see if the next frame produces more frames than we can store in the + // the blob. + if (frames_copied + pNextFrameData->present_event.DisplayedCount >= frames_to_copy) { + break; + } } // Set to the actual number of frames copied numFrames = frames_copied; + if (simStartTime != 0) { + appSimStartTime[processId] = simStartTime; + } } void ConcreteMiddleware::CalculateFpsMetric(fpsSwapChainData& swapChain, const PM_QUERY_ELEMENT& element, uint8_t* pBlob, LARGE_INTEGER qpcFrequency) @@ -1011,7 +1145,7 @@ void ReportMetrics( reinterpret_cast(pBlob[element.dataOffset]) = swapChain.mLastPresent.SupportsTearing; break; case PM_METRIC_FRAME_TYPE: - reinterpret_cast(pBlob[element.dataOffset]) = (PM_FRAME_TYPE)swapChain.mLastPresent.FrameType; + reinterpret_cast(pBlob[element.dataOffset]) = (PM_FRAME_TYPE)(swapChain.mLastPresent.DisplayedCount == 0 ? FrameType::NotSet : swapChain.mLastPresent.Displayed_FrameType[0]); break; case PM_METRIC_CPU_BUSY: output = CalculateStatistic(swapChain.mCPUBusy, element.stat); @@ -1057,29 +1191,24 @@ void ReportMetrics( break; case PM_METRIC_PRESENTED_FPS: { - std::vector presented_fps(swapChain.mCPUBusy.size()); + std::vector presented_fts(swapChain.mCPUBusy.size()); for (size_t i = 0; i < swapChain.mCPUBusy.size(); ++i) { - presented_fps[i] = 1000.0 / (swapChain.mCPUBusy[i] + swapChain.mCPUWait[i]); + presented_fts[i] = swapChain.mCPUBusy[i] + swapChain.mCPUWait[i]; } - output = CalculateStatistic(presented_fps, element.stat); + output = CalculateStatistic(presented_fts, element.stat, true); + output = output == 0 ? 0 : 1000.0 / output; break; } case PM_METRIC_APPLICATION_FPS: { - std::vector application_fps(swapChain.mAppDisplayedTime.size()); - for (size_t i = 0; i < swapChain.mAppDisplayedTime.size(); ++i) { - application_fps[i] = 1000.0 / swapChain.mAppDisplayedTime[i]; - } - output = CalculateStatistic(application_fps, element.stat); + output = CalculateStatistic(swapChain.mAppDisplayedTime, element.stat, true); + output = output == 0 ? 0 : 1000.0 / output; break; } case PM_METRIC_DISPLAYED_FPS: { - std::vector displayed_fps(swapChain.mDisplayedTime.size()); - for (size_t i = 0; i < swapChain.mDisplayedTime.size(); ++i) { - displayed_fps[i] = 1000.0 / swapChain.mDisplayedTime[i]; - } - output = CalculateStatistic(displayed_fps, element.stat); + output = CalculateStatistic(swapChain.mDisplayedTime, element.stat, true); + output = output == 0 ? 0 : 1000.0 / output; break; } case PM_METRIC_DROPPED_FRAMES: @@ -1091,6 +1220,9 @@ void ReportMetrics( case PM_METRIC_ALL_INPUT_TO_PHOTON_LATENCY: output = CalculateStatistic(swapChain.mAllInputToPhotonLatency, element.stat); break; + case PM_METRIC_INSTRUMENTED_LATENCY: + output = CalculateStatistic(swapChain.mInstrumentedDisplayLatency, element.stat); + break; default: output = 0.; break; @@ -1114,8 +1246,8 @@ void ReportMetrics( } return; } - - double ConcreteMiddleware::CalculateStatistic(std::vector& inData, PM_STAT stat) const + + double ConcreteMiddleware::CalculateStatistic(std::vector& inData, PM_STAT stat, bool invert) const { if (inData.size() == 1) { return inData[0]; @@ -1133,17 +1265,21 @@ void ReportMetrics( } return sum / inData.size(); } - case PM_STAT_PERCENTILE_99: return CalculatePercentile(inData, 0.99); - case PM_STAT_PERCENTILE_95: return CalculatePercentile(inData, 0.95); - case PM_STAT_PERCENTILE_90: return CalculatePercentile(inData, 0.90); - case PM_STAT_PERCENTILE_01: return CalculatePercentile(inData, 0.01); - case PM_STAT_PERCENTILE_05: return CalculatePercentile(inData, 0.05); - case PM_STAT_PERCENTILE_10: return CalculatePercentile(inData, 0.10); + case PM_STAT_PERCENTILE_99: return CalculatePercentile(inData, 0.99, invert); + case PM_STAT_PERCENTILE_95: return CalculatePercentile(inData, 0.95, invert); + case PM_STAT_PERCENTILE_90: return CalculatePercentile(inData, 0.90, invert); + case PM_STAT_PERCENTILE_01: return CalculatePercentile(inData, 0.01, invert); + case PM_STAT_PERCENTILE_05: return CalculatePercentile(inData, 0.05, invert); + case PM_STAT_PERCENTILE_10: return CalculatePercentile(inData, 0.10, invert); case PM_STAT_MAX: { double max = inData[0]; for (size_t i = 1; i < inData.size(); ++i) { - max = std::max(max, inData[i]); + if (invert) { + max = std::min(max, inData[i]); + } else { + max = std::max(max, inData[i]); + } } return max; } @@ -1151,7 +1287,12 @@ void ReportMetrics( { double min = inData[0]; for (size_t i = 1; i < inData.size(); ++i) { - min = std::min(min, inData[i]); + if (invert) { + min = std::max(min, inData[i]); + } + else { + min = std::min(min, inData[i]); + } } return min; } @@ -1189,8 +1330,11 @@ void ReportMetrics( } // Calculate percentile using linear interpolation between the closet ranks - double ConcreteMiddleware::CalculatePercentile(std::vector& inData, double percentile) const + double ConcreteMiddleware::CalculatePercentile(std::vector& inData, double percentile, bool invert) const { + if (invert) { + percentile = 1.0 - percentile; + } percentile = std::min(std::max(percentile, 0.), 1.); double integral_part_as_double; @@ -1589,6 +1733,7 @@ void ReportMetrics( case PM_METRIC_DISPLAYED_TIME: case PM_METRIC_ANIMATION_ERROR: case PM_METRIC_APPLICATION: + case PM_METRIC_INSTRUMENTED_LATENCY: CalculateFpsMetric(swapChain, qe, pBlob, qpcFrequency); break; case PM_METRIC_CPU_VENDOR: diff --git a/IntelPresentMon/PresentMonMiddleware/ConcreteMiddleware.h b/IntelPresentMon/PresentMonMiddleware/ConcreteMiddleware.h index 66177e98..809a8b1a 100644 --- a/IntelPresentMon/PresentMonMiddleware/ConcreteMiddleware.h +++ b/IntelPresentMon/PresentMonMiddleware/ConcreteMiddleware.h @@ -53,6 +53,12 @@ namespace pmon::mid std::vector mClickToPhotonLatency; std::vector mAllInputToPhotonLatency; std::vector mDropped; + std::vector mInstrumentedDisplayLatency; + + std::vector mInstrumentedSleep; + std::vector mInstrumentedRenderLatency; + std::vector mInstrumentedGpuLatency; + std::vector mInstrumentedReadyTimeToDisplayLatency; // QPC of last received input data that did not make it to the screen due // to the Present() being dropped @@ -60,9 +66,9 @@ namespace pmon::mid uint64_t mLastReceivedNotDisplayedMouseClickTime; // begin/end screen times to optimize average calculation: - uint64_t display_n_screen_time = 0; // The last presented frame's ScreenTime (qpc) + uint64_t mLastDisplayedScreenTime = 0; // The last presented frame's ScreenTime (qpc) uint64_t display_0_screen_time = 0; // The first presented frame's ScreenTime (qpc) - uint64_t mLastDisplayedCPUStart = 0; // The CPU start of the last presented frame + uint64_t mLastDisplayedSimStart = 0; // The simulation start of the last presented frame uint32_t display_count = 0; // The number of presented frames }; @@ -112,8 +118,8 @@ namespace pmon::mid void CalculateFpsMetric(fpsSwapChainData& swapChain, const PM_QUERY_ELEMENT& element, uint8_t* pBlob, LARGE_INTEGER qpcFrequency); void CalculateGpuCpuMetric(std::unordered_map& metricInfo, const PM_QUERY_ELEMENT& element, uint8_t* pBlob); - double CalculateStatistic(std::vector& inData, PM_STAT stat) const; - double CalculatePercentile(std::vector& inData, double percentile) const; + double CalculateStatistic(std::vector& inData, PM_STAT stat, bool invert = false) const; + double CalculatePercentile(std::vector& inData, double percentile, bool invert) const; bool GetGpuMetricData(size_t telemetry_item_bit, PresentMonPowerTelemetryInfo& power_telemetry_info, std::unordered_map& metricInfo); bool GetCpuMetricData(size_t telemetryBit, CpuTelemetryInfo& cpuTelemetry, std::unordered_map& metricInfo); void GetStaticCpuMetrics(); @@ -132,6 +138,8 @@ namespace pmon::mid uint32_t clientProcessId = 0; // Stream clients mapping to process id std::map> presentMonStreamClients; + // App sim start time for each process id + std::map appSimStartTime; std::unique_ptr pComms; // Dynamic query handle to frame data delta std::unordered_map, uint64_t> queryFrameDataDeltas; diff --git a/IntelPresentMon/PresentMonMiddleware/FrameEventQuery.cpp b/IntelPresentMon/PresentMonMiddleware/FrameEventQuery.cpp index 0238ec93..6a8b9621 100644 --- a/IntelPresentMon/PresentMonMiddleware/FrameEventQuery.cpp +++ b/IntelPresentMon/PresentMonMiddleware/FrameEventQuery.cpp @@ -114,6 +114,42 @@ namespace uint16_t outputPaddingSize_; uint16_t inputIndex_; }; + class CopyGatherFrameTypeCommand_ : public mid::GatherCommand_ + { + public: + CopyGatherFrameTypeCommand_(size_t nextAvailableByteOffset, uint16_t index = 0) + : + inputIndex_{ index } + { + outputPaddingSize_ = (uint16_t)util::GetPadding(nextAvailableByteOffset, alignof(FrameType)); + outputOffset_ = uint32_t(nextAvailableByteOffset) + outputPaddingSize_; + } + void Gather(Context& ctx, uint8_t* pDestBlob) const override + { + auto val = ctx.pSourceFrameData->present_event.Displayed_FrameType[ctx.sourceFrameDisplayIndex]; + // Currently not reporting out not set or repeated frames. + if (val == FrameType::NotSet || val == FrameType::Repeated) { + val = FrameType::Application; + } + reinterpret_cast&>(pDestBlob[outputOffset_]) = val; + } + uint32_t GetBeginOffset() const override + { + return outputOffset_ - outputPaddingSize_; + } + uint32_t GetEndOffset() const override + { + return outputOffset_ + alignof(FrameType); + } + uint32_t GetOutputOffset() const override + { + return outputOffset_; + } + private: + uint32_t outputOffset_; + uint16_t outputPaddingSize_; + uint16_t inputIndex_; + }; template class QpcDurationGatherCommand_ : public pmon::mid::GatherCommand_ { @@ -127,8 +163,13 @@ namespace { const auto qpcDuration = ctx.pSourceFrameData->present_event.*pMember; if (qpcDuration != 0) { - const auto val = ctx.performanceCounterPeriodMs * double(qpcDuration); - reinterpret_cast(pDestBlob[outputOffset_]) = val; + if (ctx.sourceFrameDisplayIndex == ctx.appIndex) { + const auto val = ctx.performanceCounterPeriodMs * double(qpcDuration); + reinterpret_cast(pDestBlob[outputOffset_]) = val; + } + else { + reinterpret_cast(pDestBlob[outputOffset_]) = 0.; + } } else { reinterpret_cast(pDestBlob[outputOffset_]) = 0.; @@ -150,42 +191,119 @@ namespace uint32_t outputOffset_; uint16_t outputPaddingSize_; }; - template - class QpcDifferenceGatherCommand_ : public pmon::mid::GatherCommand_ + template + class QpcDeltaGatherCommand_ : public pmon::mid::GatherCommand_ { public: - QpcDifferenceGatherCommand_(size_t nextAvailableByteOffset) + QpcDeltaGatherCommand_(size_t nextAvailableByteOffset) { outputPaddingSize_ = (uint16_t)util::GetPadding(nextAvailableByteOffset, alignof(double)); outputOffset_ = uint32_t(nextAvailableByteOffset) + outputPaddingSize_; } void Gather(Context& ctx, uint8_t* pDestBlob) const override { - if constexpr (doDroppedCheck) { - if (ctx.dropped) { - reinterpret_cast(pDestBlob[outputOffset_]) = - std::numeric_limits::quiet_NaN(); - return; + const auto qpcFrom = ctx.pSourceFrameData->present_event.*pFromMember; + const auto qpcTo = ctx.pSourceFrameData->present_event.*pToMember; + if (qpcFrom != 0) { + if (ctx.sourceFrameDisplayIndex == ctx.appIndex) { + const auto val = TimestampDeltaToUnsignedMilliSeconds(qpcFrom, qpcTo, ctx.performanceCounterPeriodMs); + reinterpret_cast(pDestBlob[outputOffset_]) = val; } - } - uint64_t start = ctx.pSourceFrameData->present_event.*pStart; - if constexpr (doZeroCheck) { - if (start == 0ull) { + else { reinterpret_cast(pDestBlob[outputOffset_]) = std::numeric_limits::quiet_NaN(); - return; } } - if constexpr (allowNegative) { - auto qpcDurationDouble = double(ctx.pSourceFrameData->present_event.*pEnd) - double(start); - const auto val = ctx.performanceCounterPeriodMs * qpcDurationDouble; - reinterpret_cast(pDestBlob[outputOffset_]) = val; + else { + reinterpret_cast(pDestBlob[outputOffset_]) = + std::numeric_limits::quiet_NaN(); + } + } + uint32_t GetBeginOffset() const override + { + return outputOffset_ - outputPaddingSize_; + } + uint32_t GetEndOffset() const override + { + return outputOffset_ + alignof(double); + } + uint32_t GetOutputOffset() const override + { + return outputOffset_; + } + private: + uint32_t outputOffset_; + uint16_t outputPaddingSize_; + }; + class GpuTimeGatherCommand_ : public pmon::mid::GatherCommand_ + { + public: + GpuTimeGatherCommand_(size_t nextAvailableByteOffset) + { + outputPaddingSize_ = (uint16_t)util::GetPadding(nextAvailableByteOffset, alignof(double)); + outputOffset_ = uint32_t(nextAvailableByteOffset) + outputPaddingSize_; + } + void Gather(Context& ctx, uint8_t* pDestBlob) const override + { + if (ctx.sourceFrameDisplayIndex == ctx.appIndex) { + const auto gpuDuration = TimestampDeltaToUnsignedMilliSeconds(ctx.pSourceFrameData->present_event.GPUStartTime, + ctx.pSourceFrameData->present_event.ReadyTime, ctx.performanceCounterPeriodMs); + const auto gpuBusy = TimestampDeltaToMilliSeconds(ctx.pSourceFrameData->present_event.GPUDuration, + ctx.performanceCounterPeriodMs); + const auto gpuWait = std::max(0., gpuDuration - gpuBusy); + reinterpret_cast(pDestBlob[outputOffset_]) = gpuBusy + gpuWait; } else { + reinterpret_cast(pDestBlob[outputOffset_]) = 0.; + } + } + uint32_t GetBeginOffset() const override + { + return outputOffset_ - outputPaddingSize_; + } + uint32_t GetEndOffset() const override + { + return outputOffset_ + alignof(double); + } + uint32_t GetOutputOffset() const override + { + return outputOffset_; + } + private: + uint32_t outputOffset_; + uint16_t outputPaddingSize_; + }; + class ClickToPhotonGatherCommand_ : public pmon::mid::GatherCommand_ + { + public: + ClickToPhotonGatherCommand_(size_t nextAvailableByteOffset) + { + outputPaddingSize_ = (uint16_t)util::GetPadding(nextAvailableByteOffset, alignof(double)); + outputOffset_ = uint32_t(nextAvailableByteOffset) + outputPaddingSize_; + } + void Gather(Context& ctx, uint8_t* pDestBlob) const override + { + if (ctx.dropped) { + reinterpret_cast(pDestBlob[outputOffset_]) = + std::numeric_limits::quiet_NaN(); + return; + } + uint64_t start = ctx.pSourceFrameData->present_event.InputTime; + if (start == 0ull) { + reinterpret_cast(pDestBlob[outputOffset_]) = + std::numeric_limits::quiet_NaN(); + return; + } + if (ctx.sourceFrameDisplayIndex == ctx.appIndex) { const auto val = TimestampDeltaToUnsignedMilliSeconds(start, - ctx.pSourceFrameData->present_event.*pEnd, ctx.performanceCounterPeriodMs); + ctx.pSourceFrameData->present_event.Displayed_ScreenTime[ctx.sourceFrameDisplayIndex], ctx.performanceCounterPeriodMs); reinterpret_cast(pDestBlob[outputOffset_]) = val; } + else + { + reinterpret_cast(pDestBlob[outputOffset_]) = + std::numeric_limits::quiet_NaN(); + } } uint32_t GetBeginOffset() const override { @@ -226,7 +344,7 @@ namespace private: uint32_t outputOffset_; }; - template + template class StartDifferenceGatherCommand_ : public pmon::mid::GatherCommand_ { public: @@ -237,9 +355,29 @@ namespace } void Gather(Context& ctx, uint8_t* pDestBlob) const override { - const auto qpcDuration = ctx.pSourceFrameData->present_event.*pEnd - ctx.qpcStart; - const auto val = ctx.performanceCounterPeriodMs * double(qpcDuration); - reinterpret_cast(pDestBlob[outputOffset_]) = val; + if constexpr (calcAnimationTime) { + if constexpr (doDroppedCheck) { + if (ctx.dropped) { + reinterpret_cast(pDestBlob[outputOffset_]) = + std::numeric_limits::quiet_NaN(); + return; + } + } + if (ctx.sourceFrameDisplayIndex != ctx.appIndex) { + reinterpret_cast(pDestBlob[outputOffset_]) = 0.; + return; + } + const auto firstSimStartTime = ctx.firstAppSimStartTime != 0 ? ctx.firstAppSimStartTime : + ctx.qpcStart; + const auto currentSimTime = ctx.pSourceFrameData->present_event.*pEnd != 0 ? ctx.pSourceFrameData->present_event.*pEnd : + ctx.cpuStart; + const auto val = TimestampDeltaToUnsignedMilliSeconds(firstSimStartTime, currentSimTime, ctx.performanceCounterPeriodMs); + reinterpret_cast(pDestBlob[outputOffset_]) = val; + } else { + const auto qpcDuration = ctx.cpuStart - ctx.qpcStart; + const auto val = ctx.performanceCounterPeriodMs * double(qpcDuration); + reinterpret_cast(pDestBlob[outputOffset_]) = val; + } } uint32_t GetBeginOffset() const override { @@ -298,9 +436,14 @@ namespace return; } } - const auto val = TimestampDeltaToUnsignedMilliSeconds(ctx.cpuStart, - ctx.pSourceFrameData->present_event.*pEnd, ctx.performanceCounterPeriodMs); - reinterpret_cast(pDestBlob[outputOffset_]) = val; + if (ctx.sourceFrameDisplayIndex == ctx.appIndex) { + const auto val = TimestampDeltaToUnsignedMilliSeconds(ctx.cpuStart, + ctx.pSourceFrameData->present_event.*pEnd, ctx.performanceCounterPeriodMs); + reinterpret_cast(pDestBlob[outputOffset_]) = val; + } + else{ + reinterpret_cast(pDestBlob[outputOffset_]) = 0.; + } } uint32_t GetBeginOffset() const override { @@ -318,38 +461,123 @@ namespace uint32_t outputOffset_; uint16_t outputPaddingSize_; }; - template - class DisplayDifferenceGatherCommand_ : public pmon::mid::GatherCommand_ + template + class DisplayLatencyGatherCommand_ : public pmon::mid::GatherCommand_ { public: - DisplayDifferenceGatherCommand_(size_t nextAvailableByteOffset) + DisplayLatencyGatherCommand_(size_t nextAvailableByteOffset) { outputPaddingSize_ = (uint16_t)util::GetPadding(nextAvailableByteOffset, alignof(double)); outputOffset_ = uint32_t(nextAvailableByteOffset) + outputPaddingSize_; } void Gather(Context& ctx, uint8_t* pDestBlob) const override { - if constexpr (doDroppedCheck) { - if (ctx.dropped) { + if (ctx.dropped) { + reinterpret_cast(pDestBlob[outputOffset_]) = + std::numeric_limits::quiet_NaN(); + return; + } + + uint64_t startQpc = 0; + if constexpr (isXellRenderLatency) { + if (ctx.sourceFrameDisplayIndex == ctx.appIndex) { + if (ctx.pSourceFrameData->present_event.AppRenderSubmitStartTime == 0) { + reinterpret_cast(pDestBlob[outputOffset_]) = + std::numeric_limits::quiet_NaN(); + return; + } + const auto val = TimestampDeltaToUnsignedMilliSeconds(ctx.pSourceFrameData->present_event.AppRenderSubmitStartTime, + ctx.pSourceFrameData->present_event.Displayed_ScreenTime[ctx.sourceFrameDisplayIndex], + ctx.performanceCounterPeriodMs); + reinterpret_cast(pDestBlob[outputOffset_]) = val; + return; + } else { reinterpret_cast(pDestBlob[outputOffset_]) = std::numeric_limits::quiet_NaN(); return; } - } - if constexpr (doZeroCheck) { - const auto val = TimestampDeltaToUnsignedMilliSeconds(ctx.pSourceFrameData->present_event.*pStart, - ctx.nextDisplayedQpc, ctx.performanceCounterPeriodMs); - if (val == 0.) { + } else if constexpr (isXellRenderEndToDisplayLatency) { + if (ctx.sourceFrameDisplayIndex == ctx.appIndex) { + const auto val = TimestampDeltaToUnsignedMilliSeconds(ctx.pSourceFrameData->present_event.ReadyTime, + ctx.pSourceFrameData->present_event.Displayed_ScreenTime[ctx.sourceFrameDisplayIndex], + ctx.performanceCounterPeriodMs); + reinterpret_cast(pDestBlob[outputOffset_]) = val; + return; + } else { reinterpret_cast(pDestBlob[outputOffset_]) = std::numeric_limits::quiet_NaN(); + return; } - else { + } else if constexpr (isXellDisplayLatency) { + if (ctx.sourceFrameDisplayIndex == ctx.appIndex) { + if (ctx.pSourceFrameData->present_event.AppSleepEndTime == 0 && + ctx.pSourceFrameData->present_event.AppSimStartTime == 0) { + reinterpret_cast(pDestBlob[outputOffset_]) = + std::numeric_limits::quiet_NaN(); + return; + } + const auto xellStartTime = ctx.pSourceFrameData->present_event.AppSleepEndTime != 0 ? + ctx.pSourceFrameData->present_event.AppSleepEndTime : + ctx.pSourceFrameData->present_event.AppSimStartTime; + const auto val = TimestampDeltaToUnsignedMilliSeconds(xellStartTime, + ctx.pSourceFrameData->present_event.Displayed_ScreenTime[ctx.sourceFrameDisplayIndex], + ctx.performanceCounterPeriodMs); reinterpret_cast(pDestBlob[outputOffset_]) = val; + return; + } else { + reinterpret_cast(pDestBlob[outputOffset_]) = + std::numeric_limits::quiet_NaN(); + return; } + } else { + const auto val = TimestampDeltaToUnsignedMilliSeconds(ctx.cpuStart, + ctx.pSourceFrameData->present_event.Displayed_ScreenTime[ctx.sourceFrameDisplayIndex], + ctx.performanceCounterPeriodMs); + reinterpret_cast(pDestBlob[outputOffset_]) = val; + return; + } + } + uint32_t GetBeginOffset() const override + { + return outputOffset_ - outputPaddingSize_; + } + uint32_t GetEndOffset() const override + { + return outputOffset_ + alignof(double); + } + uint32_t GetOutputOffset() const override + { + return outputOffset_; + } + private: + uint32_t outputOffset_; + uint16_t outputPaddingSize_; + }; + class DisplayDifferenceGatherCommand_ : public pmon::mid::GatherCommand_ + { + public: + DisplayDifferenceGatherCommand_(size_t nextAvailableByteOffset) + { + outputPaddingSize_ = (uint16_t)util::GetPadding(nextAvailableByteOffset, alignof(double)); + outputOffset_ = uint32_t(nextAvailableByteOffset) + outputPaddingSize_; + } + void Gather(Context& ctx, uint8_t* pDestBlob) const override + { + if (ctx.dropped) { + reinterpret_cast(pDestBlob[outputOffset_]) = + std::numeric_limits::quiet_NaN(); + return; + } + auto ScreenTime = ctx.pSourceFrameData->present_event.Displayed_ScreenTime[ctx.sourceFrameDisplayIndex]; + auto NextScreenTime = ctx.sourceFrameDisplayIndex == ctx.pSourceFrameData->present_event.DisplayedCount - 1 + ? ctx.nextDisplayedQpc + : ctx.pSourceFrameData->present_event.Displayed_ScreenTime[ctx.sourceFrameDisplayIndex + 1]; + const auto val = TimestampDeltaToUnsignedMilliSeconds(ScreenTime, NextScreenTime, ctx.performanceCounterPeriodMs); + if (val == 0.) { + reinterpret_cast(pDestBlob[outputOffset_]) = + std::numeric_limits::quiet_NaN(); } else { - const auto val = TimestampDeltaToUnsignedMilliSeconds(ctx.pSourceFrameData->present_event.*pStart, - ctx.nextDisplayedQpc, ctx.performanceCounterPeriodMs); reinterpret_cast(pDestBlob[outputOffset_]) = val; } } @@ -369,7 +597,7 @@ namespace uint32_t outputOffset_; uint16_t outputPaddingSize_; }; - template + template class AnimationErrorGatherCommand_ : public pmon::mid::GatherCommand_ { public: @@ -388,14 +616,35 @@ namespace } } if constexpr (doZeroCheck) { - if (ctx.previousDisplayedCpuStartQpc == 0) { + if (ctx.previousDisplayedSimStartQpc == 0 && ctx.lastDisplayedCpuStart == 0) { reinterpret_cast(pDestBlob[outputOffset_]) = 0.0; return; } } - const auto val = TimestampDeltaToMilliSeconds(ctx.pSourceFrameData->present_event.*pStart - ctx.previousDisplayedQpc, - ctx.cpuStart - ctx.previousDisplayedCpuStartQpc, ctx.performanceCounterPeriodMs); - reinterpret_cast(pDestBlob[outputOffset_]) = val; + if (ctx.sourceFrameDisplayIndex == ctx.appIndex) { + auto ScreenTime = ctx.pSourceFrameData->present_event.Displayed_ScreenTime[ctx.sourceFrameDisplayIndex]; + auto PrevScreenTime = ctx.previousDisplayedQpc; // Always use application display time for animation error + auto SimStartTime = ctx.pSourceFrameData->present_event.AppSimStartTime != 0 ? + ctx.pSourceFrameData->present_event.AppSimStartTime : + ctx.cpuStart; + auto PrevSimStartTime = ctx.previousDisplayedSimStartQpc != 0 ? + ctx.previousDisplayedSimStartQpc : + ctx.lastDisplayedCpuStart; + // If the simulation start time is less than the last displated simulation start time it means + // we are transitioning to app provider events. + if (SimStartTime > PrevSimStartTime) { + const auto val = TimestampDeltaToMilliSeconds(ScreenTime - PrevScreenTime, + SimStartTime - PrevSimStartTime, ctx.performanceCounterPeriodMs); + reinterpret_cast(pDestBlob[outputOffset_]) = val; + } else { + reinterpret_cast(pDestBlob[outputOffset_]) = 0.0; + return; + } + } + else { + reinterpret_cast(pDestBlob[outputOffset_]) = + std::numeric_limits::quiet_NaN(); + } } uint32_t GetBeginOffset() const override { @@ -419,12 +668,17 @@ namespace CpuFrameQpcFrameTimeCommand_(size_t nextAvailableByteOffset) : outputOffset_{ (uint32_t)nextAvailableByteOffset } {} void Gather(Context& ctx, uint8_t* pDestBlob) const override { - const auto cpuBusy = TimestampDeltaToUnsignedMilliSeconds(ctx.cpuStart, ctx.pSourceFrameData->present_event.PresentStartTime, - ctx.performanceCounterPeriodMs); - const auto cpuWait = TimestampDeltaToMilliSeconds(ctx.pSourceFrameData->present_event.TimeInPresent, - ctx.performanceCounterPeriodMs); + if (ctx.sourceFrameDisplayIndex == ctx.appIndex) { + const auto cpuBusy = TimestampDeltaToUnsignedMilliSeconds(ctx.cpuStart, ctx.pSourceFrameData->present_event.PresentStartTime, + ctx.performanceCounterPeriodMs); + const auto cpuWait = TimestampDeltaToMilliSeconds(ctx.pSourceFrameData->present_event.TimeInPresent, + ctx.performanceCounterPeriodMs); - reinterpret_cast(pDestBlob[outputOffset_]) = cpuBusy + cpuWait; + reinterpret_cast(pDestBlob[outputOffset_]) = cpuBusy + cpuWait; + } + else { + reinterpret_cast(pDestBlob[outputOffset_]) = 0.; + } } uint32_t GetBeginOffset() const override { @@ -447,12 +701,17 @@ namespace GpuWaitGatherCommand_(size_t nextAvailableByteOffset) : outputOffset_{ (uint32_t)nextAvailableByteOffset } {} void Gather(Context& ctx, uint8_t* pDestBlob) const override { - const auto gpuDuration = TimestampDeltaToUnsignedMilliSeconds(ctx.pSourceFrameData->present_event.GPUStartTime, - ctx.pSourceFrameData->present_event.ReadyTime, ctx.performanceCounterPeriodMs); - const auto gpuBusy = TimestampDeltaToMilliSeconds(ctx.pSourceFrameData->present_event.GPUDuration, - ctx.performanceCounterPeriodMs); - const auto val = std::max(0., gpuDuration - gpuBusy); - reinterpret_cast(pDestBlob[outputOffset_]) = val; + if (ctx.sourceFrameDisplayIndex == ctx.appIndex) { + const auto gpuDuration = TimestampDeltaToUnsignedMilliSeconds(ctx.pSourceFrameData->present_event.GPUStartTime, + ctx.pSourceFrameData->present_event.ReadyTime, ctx.performanceCounterPeriodMs); + const auto gpuBusy = TimestampDeltaToMilliSeconds(ctx.pSourceFrameData->present_event.GPUDuration, + ctx.performanceCounterPeriodMs); + const auto val = std::max(0., gpuDuration - gpuBusy); + reinterpret_cast(pDestBlob[outputOffset_]) = val; + } + else { + reinterpret_cast(pDestBlob[outputOffset_]) = 0.; + } } uint32_t GetBeginOffset() const override { @@ -469,7 +728,7 @@ namespace private: uint32_t outputOffset_; }; - template + template class InputLatencyGatherCommand_ : public pmon::mid::GatherCommand_ { public: @@ -490,25 +749,29 @@ namespace double updatedInputTime = 0.; double val = 0.; - if (isMouseClick) { - updatedInputTime = ctx.lastReceivedNotDisplayedClickQpc == 0 ? 0. : - TimestampDeltaToUnsignedMilliSeconds(ctx.lastReceivedNotDisplayedClickQpc, - ctx.pSourceFrameData->present_event.*pEnd, ctx.performanceCounterPeriodMs); - val = ctx.pSourceFrameData->present_event.*pStart == 0 ? updatedInputTime : - TimestampDeltaToUnsignedMilliSeconds(ctx.pSourceFrameData->present_event.*pStart, - ctx.pSourceFrameData->present_event.*pEnd, - ctx.performanceCounterPeriodMs); - ctx.lastReceivedNotDisplayedClickQpc = 0; - } - else { - updatedInputTime = ctx.lastReceivedNotDisplayedAllInputTime == 0 ? 0. : - TimestampDeltaToUnsignedMilliSeconds(ctx.lastReceivedNotDisplayedAllInputTime, - ctx.pSourceFrameData->present_event.*pEnd, ctx.performanceCounterPeriodMs); - val = ctx.pSourceFrameData->present_event.*pStart == 0 ? updatedInputTime : - TimestampDeltaToUnsignedMilliSeconds(ctx.pSourceFrameData->present_event.*pStart, - ctx.pSourceFrameData->present_event.*pEnd, - ctx.performanceCounterPeriodMs); - ctx.lastReceivedNotDisplayedAllInputTime = 0; + if (ctx.sourceFrameDisplayIndex == ctx.appIndex) { + if (isMouseClick) { + updatedInputTime = ctx.lastReceivedNotDisplayedClickQpc == 0 ? 0. : + TimestampDeltaToUnsignedMilliSeconds(ctx.lastReceivedNotDisplayedClickQpc, + ctx.pSourceFrameData->present_event.Displayed_ScreenTime[ctx.sourceFrameDisplayIndex], + ctx.performanceCounterPeriodMs); + val = ctx.pSourceFrameData->present_event.*pStart == 0 ? updatedInputTime : + TimestampDeltaToUnsignedMilliSeconds(ctx.pSourceFrameData->present_event.*pStart, + ctx.pSourceFrameData->present_event.Displayed_ScreenTime[ctx.sourceFrameDisplayIndex], + ctx.performanceCounterPeriodMs); + ctx.lastReceivedNotDisplayedClickQpc = 0; + } + else { + updatedInputTime = ctx.lastReceivedNotDisplayedAllInputTime == 0 ? 0. : + TimestampDeltaToUnsignedMilliSeconds(ctx.lastReceivedNotDisplayedAllInputTime, + ctx.pSourceFrameData->present_event.Displayed_ScreenTime[ctx.sourceFrameDisplayIndex], + ctx.performanceCounterPeriodMs); + val = ctx.pSourceFrameData->present_event.*pStart == 0 ? updatedInputTime : + TimestampDeltaToUnsignedMilliSeconds(ctx.pSourceFrameData->present_event.*pStart, + ctx.pSourceFrameData->present_event.Displayed_ScreenTime[ctx.sourceFrameDisplayIndex], + ctx.performanceCounterPeriodMs); + ctx.lastReceivedNotDisplayedAllInputTime = 0; + } } if (val == 0.) { @@ -623,7 +886,7 @@ std::unique_ptr PM_FRAME_QUERY::MapQueryElementToGatherComm case PM_METRIC_ALLOWS_TEARING: return std::make_unique>(pos); case PM_METRIC_FRAME_TYPE: - return std::make_unique>(pos); + return std::make_unique(pos); case PM_METRIC_SYNC_INTERVAL: return std::make_unique>(pos); @@ -692,7 +955,7 @@ std::unique_ptr PM_FRAME_QUERY::MapQueryElementToGatherComm case PM_METRIC_PRESENT_FLAGS: return std::make_unique>(pos); case PM_METRIC_CPU_START_TIME: - return std::make_unique>(pos); + return std::make_unique>(pos); case PM_METRIC_CPU_FRAME_TIME: return std::make_unique(pos); case PM_METRIC_CPU_BUSY: @@ -700,22 +963,25 @@ std::unique_ptr PM_FRAME_QUERY::MapQueryElementToGatherComm case PM_METRIC_CPU_WAIT: return std::make_unique>(pos); case PM_METRIC_GPU_TIME: - return std::make_unique>(pos); + return std::make_unique(pos); case PM_METRIC_GPU_WAIT: return std::make_unique(pos); case PM_METRIC_DISPLAYED_TIME: - return std::make_unique>(pos); + return std::make_unique(pos); case PM_METRIC_ANIMATION_ERROR: - return std::make_unique>(pos); + return std::make_unique>(pos); + case PM_METRIC_ANIMATION_TIME: + return std::make_unique>(pos); case PM_METRIC_GPU_LATENCY: return std::make_unique>(pos); case PM_METRIC_DISPLAY_LATENCY: - return std::make_unique>(pos); + return std::make_unique>(pos); case PM_METRIC_CLICK_TO_PHOTON_LATENCY: - return std::make_unique>(pos); + return std::make_unique>(pos); case PM_METRIC_ALL_INPUT_TO_PHOTON_LATENCY: - return std::make_unique>(pos); - + return std::make_unique>(pos); + case PM_METRIC_INSTRUMENTED_LATENCY: + return std::make_unique>(pos); default: pmlog_error("unknown metric id").pmwatch((int)q.metric).diag(); return {}; @@ -729,7 +995,8 @@ void PM_FRAME_QUERY::Context::UpdateSourceData(const PmNsmFrameData* pSourceFram const PmNsmFrameData* pPreviousFrameDataOfLastDisplayed) { pSourceFrameData = pSourceFrameData_in; - dropped = pSourceFrameData->present_event.FinalState != PresentResult::Presented; + sourceFrameDisplayIndex = 0; + dropped = pSourceFrameData->present_event.FinalState != PresentResult::Presented && pSourceFrameData->present_event.DisplayedCount == 0; if (dropped) { if (pSourceFrameData->present_event.MouseClickTime != 0) { lastReceivedNotDisplayedClickQpc = pSourceFrameData->present_event.MouseClickTime; @@ -739,34 +1006,56 @@ void PM_FRAME_QUERY::Context::UpdateSourceData(const PmNsmFrameData* pSourceFram } } + if (firstAppSimStartTime == 0) { + firstAppSimStartTime = pSourceFrameData->present_event.AppSimStartTime; + } + if (pFrameDataOfLastPresented) { - cpuStart = pFrameDataOfLastPresented->present_event.PresentStartTime + pFrameDataOfLastPresented->present_event.TimeInPresent; + cpuStart = pFrameDataOfLastPresented->present_event.PresentStartTime + + pFrameDataOfLastPresented->present_event.TimeInPresent; } else { // TODO: log issue or invalidate related columns or drop frame (or some combination) pmlog_info("null pFrameDataOfLastPresented"); cpuStart = 0; } + if (pFrameDataOfNextDisplayed) { - nextDisplayedQpc = pFrameDataOfNextDisplayed->present_event.ScreenTime; + nextDisplayedQpc = pFrameDataOfNextDisplayed->present_event.Displayed_ScreenTime[0]; } else { // TODO: log issue or invalidate related columns or drop frame (or some combination) pmlog_info("null pFrameDataOfNextDisplayed"); nextDisplayedQpc = 0; } - if (pFrameDataOfLastDisplayed) { - previousDisplayedQpc = pFrameDataOfLastDisplayed->present_event.ScreenTime; + + if (pFrameDataOfLastDisplayed && pFrameDataOfLastDisplayed->present_event.DisplayedCount > 0) { + previousDisplayedQpc = pFrameDataOfLastDisplayed->present_event.Displayed_ScreenTime[pFrameDataOfLastDisplayed->present_event.DisplayedCount - 1]; + previousDisplayedSimStartQpc = pFrameDataOfLastDisplayed->present_event.AppSimStartTime; } else { // TODO: log issue or invalidate related columns or drop frame (or some combination) pmlog_info("null pFrameDataOfLastDisplayed"); previousDisplayedQpc = 0; + previousDisplayedSimStartQpc = 0; } + if (pPreviousFrameDataOfLastDisplayed) { - previousDisplayedCpuStartQpc = pPreviousFrameDataOfLastDisplayed->present_event.PresentStartTime + pPreviousFrameDataOfLastDisplayed->present_event.TimeInPresent; + // Similar to above calculation for cpu start however this time using data from + // the last displayed present + lastDisplayedCpuStart = pPreviousFrameDataOfLastDisplayed->present_event.PresentStartTime + + pPreviousFrameDataOfLastDisplayed->present_event.TimeInPresent; } else { - previousDisplayedCpuStartQpc = 0; + pmlog_info("null pPreviousFrameDataOfLastDisplayed"); + lastDisplayedCpuStart = 0; + } + appIndex = 0; + for (size_t i = 0; i < pSourceFrameData->present_event.DisplayedCount; ++i) { + if (pSourceFrameData->present_event.Displayed_FrameType[i] == FrameType::NotSet || + pSourceFrameData->present_event.Displayed_FrameType[i] == FrameType::Application) { + appIndex = i; + break; + } } } diff --git a/IntelPresentMon/PresentMonMiddleware/FrameEventQuery.h b/IntelPresentMon/PresentMonMiddleware/FrameEventQuery.h index 01d49317..c786bf3c 100644 --- a/IntelPresentMon/PresentMonMiddleware/FrameEventQuery.h +++ b/IntelPresentMon/PresentMonMiddleware/FrameEventQuery.h @@ -22,8 +22,9 @@ struct PM_FRAME_QUERY struct Context { // functions - Context(uint64_t qpcStart, long long perfCounterFrequency) : qpcStart{ qpcStart }, - performanceCounterPeriodMs{ perfCounterFrequency != 0.f ? 1000.0 / perfCounterFrequency : 0.f } {} + Context(uint64_t qpcStart, long long perfCounterFrequency, uint64_t appSimStartTime) : qpcStart{ qpcStart }, + performanceCounterPeriodMs{ perfCounterFrequency != 0.f ? 1000.0 / perfCounterFrequency : 0.f }, + firstAppSimStartTime { appSimStartTime} {} void UpdateSourceData(const PmNsmFrameData* pSourceFrameData_in, const PmNsmFrameData* pFrameDataOfNextDisplayed, const PmNsmFrameData* pFrameDataofLastPresented, @@ -31,21 +32,29 @@ struct PM_FRAME_QUERY const PmNsmFrameData* pPreviousFrameDataOfLastDisplayed); // data const PmNsmFrameData* pSourceFrameData = nullptr; + uint32_t sourceFrameDisplayIndex = 0; const double performanceCounterPeriodMs{}; const uint64_t qpcStart{}; bool dropped{}; // Start qpc of the previous frame, displayed or not uint64_t cpuStart = 0; - // Start qpc of the previously DISPLAYED frame. - uint64_t previousDisplayedCpuStartQpc = 0; + // The simulation start of the last displayed frame + uint64_t previousDisplayedSimStartQpc = 0; + // Start cpustart qpc of the previously displayed frame + uint64_t lastDisplayedCpuStart = 0; // Screen time qpc of the previously displayed frame. uint64_t previousDisplayedQpc = 0; - // Screen time qpc of the next displayed frame + // Screen time qpc of the first display in the next displayed PmNsmFrameData uint64_t nextDisplayedQpc = 0; + // Display index to attribute cpu work, gpu work, animation error and + // input latency + size_t appIndex = 0; // Click time qpc of non displayed frame uint64_t lastReceivedNotDisplayedClickQpc = 0; // All other input time qpc of non displayed frame uint64_t lastReceivedNotDisplayedAllInputTime = 0; + // The first app sim start time + uint64_t firstAppSimStartTime = 0; }; // functions PM_FRAME_QUERY(std::span queryElements); diff --git a/IntelPresentMon/PresentMonMiddleware/MockMiddleware.cpp b/IntelPresentMon/PresentMonMiddleware/MockMiddleware.cpp index d1df52d5..06d3e531 100644 --- a/IntelPresentMon/PresentMonMiddleware/MockMiddleware.cpp +++ b/IntelPresentMon/PresentMonMiddleware/MockMiddleware.cpp @@ -199,7 +199,7 @@ namespace pmon::mid } const auto numFramesToProcess = std::min(numFrames, (uint32_t)frames.size()); const auto blobSize = pQuery->GetBlobSize(); - PM_FRAME_QUERY::Context ctx{ 0ull, 0ll }; + PM_FRAME_QUERY::Context ctx{ 0ull, 0ll , 0ull}; for (uint32_t i = 0; i < numFramesToProcess; i++) { // TODO: feed actual prev/next frames into this function ctx.UpdateSourceData(&frames.front(), nullptr, nullptr, nullptr, nullptr); diff --git a/IntelPresentMon/PresentMonMiddleware/PresentMonMiddleware.vcxproj b/IntelPresentMon/PresentMonMiddleware/PresentMonMiddleware.vcxproj index e270e497..30a25139 100644 --- a/IntelPresentMon/PresentMonMiddleware/PresentMonMiddleware.vcxproj +++ b/IntelPresentMon/PresentMonMiddleware/PresentMonMiddleware.vcxproj @@ -45,6 +45,9 @@ {bf43064b-01f0-4c69-91fb-c2122baf621d} + + {c73aa532-e532-4d93-9279-905444653c08} + 17.0 diff --git a/IntelPresentMon/PresentMonMiddleware/PresentMonMiddleware.vcxproj.filters b/IntelPresentMon/PresentMonMiddleware/PresentMonMiddleware.vcxproj.filters index c3e858cb..2a8ee1ae 100644 --- a/IntelPresentMon/PresentMonMiddleware/PresentMonMiddleware.vcxproj.filters +++ b/IntelPresentMon/PresentMonMiddleware/PresentMonMiddleware.vcxproj.filters @@ -1,4 +1,4 @@ - + @@ -53,5 +53,8 @@ Source Files + + Source Files + \ No newline at end of file diff --git a/IntelPresentMon/PresentMonService/MockPresentMonSession.cpp b/IntelPresentMon/PresentMonService/MockPresentMonSession.cpp index c3ddfead..d32d78f4 100644 --- a/IntelPresentMon/PresentMonService/MockPresentMonSession.cpp +++ b/IntelPresentMon/PresentMonService/MockPresentMonSession.cpp @@ -99,6 +99,7 @@ PM_STATUS MockPresentMonSession::StartTraceSession(uint32_t processId) { pm_consumer_->mTrackGPUVideo = false; pm_consumer_->mTrackInput = true; pm_consumer_->mTrackFrameType = true; + pm_consumer_->mTrackAppTiming = true; if (opt.etwSessionName.AsOptional().has_value()) { pm_session_name_ = @@ -193,6 +194,7 @@ void MockPresentMonSession::AddPresents( // If mStartTimestamp contains a value an etl file is being processed. // Set this value in the streamer to have the correct start time. streamer_.SetStartQpc(trace_session_.mStartTimestamp.QuadPart); + streamer_.SetStreamMode(StreamMode::kOfflineEtl); for (auto n = presentEvents.size(); i < n; ++i) { auto presentEvent = presentEvents[i]; @@ -252,6 +254,23 @@ void MockPresentMonSession::AddPresents( chain->mLastDisplayedPresentQPC = 0; } + // Remove Repeated flips if they are in Application->Repeated or Repeated->Application sequences. + for (size_t i = 0, n = presentEvent->Displayed.size(); i + 1 < n; ) { + if (presentEvent->Displayed[i].first == FrameType::Application && + presentEvent->Displayed[i + 1].first == FrameType::Repeated) { + presentEvent->Displayed.erase(presentEvent->Displayed.begin() + i + 1); + n -= 1; + } + else if (presentEvent->Displayed[i].first == FrameType::Repeated && + presentEvent->Displayed[i + 1].first == FrameType::Application) { + presentEvent->Displayed.erase(presentEvent->Displayed.begin() + i); + n -= 1; + } + else { + i += 1; + } + } + // Last producer and last consumer are internal fields // Remove for public build // Send data to streamer if we have more than single present event @@ -264,7 +283,7 @@ void MockPresentMonSession::AddPresents( chain->mLastPresentQPC = presentEvent->PresentStartTime; if (presentEvent->FinalState == PresentResult::Presented) { - chain->mLastDisplayedPresentQPC = presentEvent->ScreenTime; + chain->mLastDisplayedPresentQPC = presentEvent->Displayed.empty() ? 0 : presentEvent->Displayed[0].second; } else if (chain->mLastDisplayedPresentQPC == chain->mLastPresentQPC) { chain->mLastDisplayedPresentQPC = 0; diff --git a/IntelPresentMon/PresentMonService/PresentMonService.rc b/IntelPresentMon/PresentMonService/PresentMonService.rc index 64ef11d8..b978d72e 100644 Binary files a/IntelPresentMon/PresentMonService/PresentMonService.rc and b/IntelPresentMon/PresentMonService/PresentMonService.rc differ diff --git a/IntelPresentMon/PresentMonService/PresentMonService.vcxproj b/IntelPresentMon/PresentMonService/PresentMonService.vcxproj index 4ace4e0d..062833b3 100644 --- a/IntelPresentMon/PresentMonService/PresentMonService.vcxproj +++ b/IntelPresentMon/PresentMonService/PresentMonService.vcxproj @@ -261,6 +261,9 @@ {bf43064b-01f0-4c69-91fb-c2122baf621d} + + {c73aa532-e532-4d93-9279-905444653c08} + diff --git a/IntelPresentMon/PresentMonService/RealtimePresentMonSession.cpp b/IntelPresentMon/PresentMonService/RealtimePresentMonSession.cpp index d7415bb2..ba2ee6e9 100644 --- a/IntelPresentMon/PresentMonService/RealtimePresentMonSession.cpp +++ b/IntelPresentMon/PresentMonService/RealtimePresentMonSession.cpp @@ -130,6 +130,7 @@ PM_STATUS RealtimePresentMonSession::StartTraceSession() { pm_consumer_->mTrackGPUVideo = false; pm_consumer_->mTrackInput = true; pm_consumer_->mTrackFrameType = true; + pm_consumer_->mTrackAppTiming = true; auto& opt = clio::Options::Get(); if (opt.etwSessionName.AsOptional().has_value()) { @@ -231,7 +232,9 @@ void RealtimePresentMonSession::AddPresents( if (p->FinalState == PresentResult::Presented) { const auto per = util::GetTimestampPeriodSeconds(); const auto now = util::GetCurrentTimestamp(); - const auto lag = util::TimestampDeltaToSeconds(p->ScreenTime, now, per); + // TODO: Presents can now have multiple displayed frames if we are tracking + // frame types. For now take the first displayed frame for logging stats + const auto lag = util::TimestampDeltaToSeconds(p->Displayed[0].second, now, per); pmlog_verb(svc::v::etwq)(std::format("Frame [{}] lag: {} ms", p->FrameId, lag * 1000.)); } } @@ -295,6 +298,23 @@ void RealtimePresentMonSession::AddPresents( chain->mLastDisplayedPresentQPC = 0; } + // Remove Repeated flips if they are in Application->Repeated or Repeated->Application sequences. + for (size_t i = 0, n = presentEvent->Displayed.size(); i + 1 < n; ) { + if (presentEvent->Displayed[i].first == FrameType::Application && + presentEvent->Displayed[i + 1].first == FrameType::Repeated) { + presentEvent->Displayed.erase(presentEvent->Displayed.begin() + i + 1); + n -= 1; + } + else if (presentEvent->Displayed[i].first == FrameType::Repeated && + presentEvent->Displayed[i + 1].first == FrameType::Application) { + presentEvent->Displayed.erase(presentEvent->Displayed.begin() + i); + n -= 1; + } + else { + i += 1; + } + } + if (chain->mPresentHistoryCount > 0) { // Last producer and last consumer are internal fields // Remove for public build @@ -308,7 +328,7 @@ void RealtimePresentMonSession::AddPresents( chain->mLastPresentQPC = presentEvent->PresentStartTime; if (presentEvent->FinalState == PresentResult::Presented) { - chain->mLastDisplayedPresentQPC = presentEvent->ScreenTime; + chain->mLastDisplayedPresentQPC = presentEvent->Displayed.empty() ? 0 : presentEvent->Displayed[0].second; } else if (chain->mLastDisplayedPresentQPC == chain->mLastPresentQPC) { chain->mLastDisplayedPresentQPC = 0; diff --git a/IntelPresentMon/PresentMonService/ServiceMain.cpp b/IntelPresentMon/PresentMonService/ServiceMain.cpp index 9d7e6f17..45323ec6 100644 --- a/IntelPresentMon/PresentMonService/ServiceMain.cpp +++ b/IntelPresentMon/PresentMonService/ServiceMain.cpp @@ -8,8 +8,11 @@ #include "CliOptions.h" #include "LogSetup.h" #include "Registry.h" +#include "../Versioning/BuildId.h" +#include "../CommonUtilities/log/GlobalPolicy.h" TCHAR serviceName[MaxBufferLength] = TEXT("Intel PresentMon Service"); +using namespace pmon; // common entry point whether invoked as service or as app int CommonEntry(DWORD argc, LPTSTR* argv, bool asApp) @@ -24,6 +27,13 @@ int CommonEntry(DWORD argc, LPTSTR* argv, bool asApp) // configure logging based on CLI arguments and registry settings logsetup::ConfigureLogging(asApp); + // annouce versioning etc. + pmlog_info(std::format("Starting service, build #{} ({}) [{}], logging @{} (log build @{})", + bid::BuildIdShortHash(), bid::BuildIdDirtyFlag() ? "dirty" : "clean", + bid::BuildIdTimestamp(), + log::GetLevelName(log::GlobalPolicy::Get().GetLogLevel()), + log::GetLevelName(PMLOG_BUILD_LEVEL_))); + if (asApp) { auto& svc = ConsoleDebugMockService::Get(); svc.Run(); diff --git a/IntelPresentMon/PresentMonService/acts/OpenSession.h b/IntelPresentMon/PresentMonService/acts/OpenSession.h index eeff5704..1e7ac001 100644 --- a/IntelPresentMon/PresentMonService/acts/OpenSession.h +++ b/IntelPresentMon/PresentMonService/acts/OpenSession.h @@ -1,6 +1,6 @@ #pragma once #include "../ActionHelper.h" -#include "../../CommonUtilities/BuildId.h" +#include "../../Versioning/BuildId.h" #include #define ACTNAME OpenSession @@ -37,8 +37,8 @@ namespace pmon::svc::acts stx.clientBuildId = in.clientBuildId; ctx.pSvc->SignalClientSessionOpened(); pmlog_info(std::format("Open action for session #{} pid={}; [BID] cli={} svc={}", - stx.pPipe->GetId(), in.clientPid, in.clientBuildId, BuildIdShortHash())); - return Response{ .serviceBuildId = BuildIdShortHash() }; + stx.pPipe->GetId(), in.clientPid, in.clientBuildId, bid::BuildIdShortHash())); + return Response{ .serviceBuildId = bid::BuildIdShortHash() }; } }; diff --git a/IntelPresentMon/PresentMonUtils/StreamFormat.h b/IntelPresentMon/PresentMonUtils/StreamFormat.h index b171296a..edd6dd40 100644 --- a/IntelPresentMon/PresentMonUtils/StreamFormat.h +++ b/IntelPresentMon/PresentMonUtils/StreamFormat.h @@ -63,24 +63,38 @@ struct PmNsmPresentEvent uint32_t ProcessId; // ID of the process that presented uint32_t ThreadId; // ID of the thread that presented uint64_t TimeInPresent; // QPC duration between runtime present start and end - uint64_t GPUStartTime; // QPC value when the frame's first DMA packet started - uint64_t ReadyTime; // QPC value when the frame's last DMA packet completed + uint64_t GPUStartTime; // QPC value when the frame's first DMA packet started + uint64_t ReadyTime; // QPC value when the frame's last DMA packet completed - uint64_t GPUDuration; // QPC duration during which a frame's DMA packet was - // running on any node + uint64_t GPUDuration; // QPC duration during which a frame's DMA packet was + // running on any node uint64_t - GPUVideoDuration; // QPC duration during which a frame's DMA packet was - // running on a video node (if mTrackGPUVideo==true) - uint64_t ScreenTime; // QPC value when the present was displayed on screen - + GPUVideoDuration; // QPC duration during which a frame's DMA packet was + // running on a video node (if mTrackGPUVideo==true) uint64_t InputTime; // Earliest QPC value for all keyboard/mouse input used by this frame uint64_t MouseClickTime; // Earliest QPC value when the mouse was clicked and used by this frame + uint64_t AppSleepStartTime; // QPC value of app sleep start time provided by Intel App Provider + uint64_t AppSleepEndTime; // QPC value of app sleep end time provided by Intel App Provider + uint64_t AppSimStartTime; // QPC value of app sim start time provided by Intel App Provider + uint64_t AppSimEndTime; // QPC value of app sim end time provided by Intel App Provider + uint64_t AppRenderSubmitStartTime; // QPC value of app render submit start time provided by Intel App Provider + uint64_t AppRenderSubmitEndTime; // QPC value of app render submit end time provided by Intel App Provider + uint64_t AppPresentStartTime; // QPC value of app present start time provided by Intel App Provider + uint64_t AppPresentEndTime; // QPC value of app present end time provided by Intel App Provider + uint64_t AppInputTime; // QPC value of app input time provided by Intel App Provider + InputDeviceType AppInputType; // Input type provided by Intel App Provider + // Extra present parameters obtained through DXGI or D3D9 present uint64_t SwapChainAddress; int32_t SyncInterval; uint32_t PresentFlags; + // (FrameType, DisplayedQPC) for each time the frame was displayed + uint64_t Displayed_ScreenTime[16]; + FrameType Displayed_FrameType[16]; + uint32_t DisplayedCount; + // Keys used to index into PMTraceConsumer's tracking data structures: uint64_t CompositionSurfaceLuid; // mPresentByWin32KPresentHistoryToken uint64_t Win32KPresentCount; // mPresentByWin32KPresentHistoryToken diff --git a/IntelPresentMon/SampleClient/SampleClient.args.json b/IntelPresentMon/SampleClient/SampleClient.args.json index dae2615a..a79b3f27 100644 --- a/IntelPresentMon/SampleClient/SampleClient.args.json +++ b/IntelPresentMon/SampleClient/SampleClient.args.json @@ -46,6 +46,14 @@ "Id": "edf9d064-e8f2-4c3c-8ab3-a70ae989a245", "Command": "--log-demo 29916" }, + { + "Id": "78f46a64-b667-4d83-91f5-48b1332ca0c0", + "Command": "--diag-demo 32612" + }, + { + "Id": "edf9d064-e8f2-4c3c-8ab3-a70ae989a245", + "Command": "--log-demo 29916" + }, { "Id": "de172ca4-f013-4f7c-99e2-5b93c03c4ec5", "Command": "--log-demo 19" diff --git a/IntelPresentMon/Streamer/StreamClient.cpp b/IntelPresentMon/Streamer/StreamClient.cpp index 25885c7e..806657d3 100644 --- a/IntelPresentMon/Streamer/StreamClient.cpp +++ b/IntelPresentMon/Streamer/StreamClient.cpp @@ -155,29 +155,33 @@ PM_STATUS StreamClient::RecordFrame(PM_FRAME_DATA** out_frame_data) { } } -const PmNsmFrameData* StreamClient::PeekNextDisplayedFrame() +void StreamClient::PeekNextFrames(const PmNsmFrameData** pNextFrame, + const PmNsmFrameData** pNextDisplayedFrame) { - uint64_t peekIndex = next_dequeue_idx_; + *pNextFrame = nullptr; + *pNextDisplayedFrame = nullptr; if (recording_frame_data_) { auto nsm_view = GetNamedSharedMemView(); auto nsm_hdr = nsm_view->GetHeader(); if (!nsm_hdr->process_active) { // Service destroyed the named shared memory. - return nullptr; + return; } - const PmNsmFrameData* pNsmData = nullptr; - pNsmData = ReadFrameByIdx(peekIndex); - while (pNsmData) { - if (pNsmData->present_event.ScreenTime != 0) { - return pNsmData; + uint64_t peekIndex{ next_dequeue_idx_ }; + auto pTempFrameData = ReadFrameByIdx(peekIndex); + *pNextFrame = pTempFrameData; + while (pTempFrameData) { + if (pTempFrameData->present_event.DisplayedCount != 0) { + *pNextDisplayedFrame = pTempFrameData; + return; } // advance to next frame with circular buffer wrapping behavior peekIndex = (peekIndex + 1) % nsm_view->GetHeader()->max_entries; - pNsmData = ReadFrameByIdx(peekIndex); + pTempFrameData = ReadFrameByIdx(peekIndex); } } - return nullptr; + return; } void StreamClient::PeekPreviousFrames(const PmNsmFrameData** pFrameDataOfLastPresented, @@ -254,6 +258,7 @@ void StreamClient::PeekPreviousFrames(const PmNsmFrameData** pFrameDataOfLastPre } PM_STATUS StreamClient::ConsumePtrToNextNsmFrameData(const PmNsmFrameData** pNsmData, + const PmNsmFrameData** pNextFrame, const PmNsmFrameData** pFrameDataOfNextDisplayed, const PmNsmFrameData** pFrameDataOfLastPresented, const PmNsmFrameData** pFrameDataOfLastDisplayed, @@ -318,6 +323,7 @@ PM_STATUS StreamClient::ConsumePtrToNextNsmFrameData(const PmNsmFrameData** pNsm // Set the rest of the incoming frame pointers in // preparation for the various frame data peeks and // reads + *pNextFrame = nullptr; *pFrameDataOfNextDisplayed = nullptr; *pFrameDataOfLastPresented = nullptr; *pFrameDataOfLastDisplayed = nullptr; @@ -334,13 +340,14 @@ PM_STATUS StreamClient::ConsumePtrToNextNsmFrameData(const PmNsmFrameData** pNsm // the frame to be incremented. Can change this when done debugging so we don't have to // reset the dequeue index. next_dequeue_idx_ = (next_dequeue_idx_ + 1) % nsm_hdr->max_entries; - *pFrameDataOfNextDisplayed = PeekNextDisplayedFrame(); + PeekNextFrames(pNextFrame, pFrameDataOfNextDisplayed); if (*pFrameDataOfNextDisplayed == nullptr) { // We were unable to get the next displayed frame. It might not have been displayed // yet. Reset the next_dequeue_idx back to where we first started. next_dequeue_idx_ = previous_dequeue_idx; - // Also reset the current frame data pointer + // Also reset the current and next frame data pointers *pNsmData = nullptr; + *pNextFrame = nullptr; return PM_STATUS::PM_STATUS_SUCCESS; } PeekPreviousFrames(pFrameDataOfLastPresented, pFrameDataOfLastDisplayed, pPreviousFrameDataOfLastDisplayed); @@ -380,11 +387,11 @@ void StreamClient::CopyFrameData(uint64_t start_qpc, // displayed frame. if (src_frame->present_event.last_displayed_qpc > 0) { dst_frame->ms_between_display_change = - QpcDeltaToMs(src_frame->present_event.ScreenTime - + QpcDeltaToMs(src_frame->present_event.Displayed_ScreenTime[0] - src_frame->present_event.last_displayed_qpc, GetQpcFrequency()); } - dst_frame->ms_until_displayed = QpcDeltaToMs(src_frame->present_event.ScreenTime - + dst_frame->ms_until_displayed = QpcDeltaToMs(src_frame->present_event.Displayed_ScreenTime[0] - src_frame->present_event.PresentStartTime, GetQpcFrequency()); } else { diff --git a/IntelPresentMon/Streamer/StreamClient.h b/IntelPresentMon/Streamer/StreamClient.h index c8e0e804..56584de3 100644 --- a/IntelPresentMon/Streamer/StreamClient.h +++ b/IntelPresentMon/Streamer/StreamClient.h @@ -23,7 +23,8 @@ class StreamClient { // Dequeue a frame of data from shared mem and update the last_read_idx PM_STATUS RecordFrame(PM_FRAME_DATA** out_frame_data); // Dequeue a frame of data from shared mem and update the last_read_idx (just get pointer to NsmData) - PM_STATUS ConsumePtrToNextNsmFrameData(const PmNsmFrameData** pNsmData, + PM_STATUS ConsumePtrToNextNsmFrameData(const PmNsmFrameData** pNsmData, + const PmNsmFrameData** pNextFrame, const PmNsmFrameData** pFrameDataOfNextDisplayed, const PmNsmFrameData** pFrameDataOfLastPresented, const PmNsmFrameData** pFrameDataOfLastDisplayed, @@ -49,7 +50,8 @@ class StreamClient { private: uint64_t CheckPendingReadFrames(); - const PmNsmFrameData* PeekNextDisplayedFrame(); + void PeekNextFrames(const PmNsmFrameData** pNextFrame, + const PmNsmFrameData** pNextDisplayedFrame); void PeekPreviousFrames(const PmNsmFrameData** pFrameDataOfLastPresented, const PmNsmFrameData** pFrameDataOfLastDisplayed, const PmNsmFrameData** pPreviousFrameDataOfLastDisplayed); diff --git a/IntelPresentMon/Streamer/Streamer.cpp b/IntelPresentMon/Streamer/Streamer.cpp index 96a74fc9..800b3176 100644 --- a/IntelPresentMon/Streamer/Streamer.cpp +++ b/IntelPresentMon/Streamer/Streamer.cpp @@ -78,14 +78,30 @@ void Streamer::CopyFromPresentMonPresentEvent( nsm_present_event->TimeInPresent = present_event->TimeInPresent; nsm_present_event->GPUStartTime = present_event->GPUStartTime; nsm_present_event->ReadyTime = present_event->ReadyTime; - nsm_present_event->ScreenTime = present_event->ScreenTime; nsm_present_event->InputTime = present_event->InputTime; nsm_present_event->MouseClickTime = present_event->MouseClickTime; + nsm_present_event->AppSleepStartTime = present_event->AppSleepStartTime; + nsm_present_event->AppSleepEndTime = present_event->AppSleepEndTime; + nsm_present_event->AppSimStartTime = present_event->AppSimStartTime; + nsm_present_event->AppSimEndTime = present_event->AppSimEndTime; + nsm_present_event->AppRenderSubmitStartTime = present_event->AppRenderSubmitStartTime; + nsm_present_event->AppRenderSubmitEndTime = present_event->AppRenderSubmitEndTime; + nsm_present_event->AppPresentStartTime = present_event->AppPresentStartTime; + nsm_present_event->AppPresentEndTime = present_event->AppPresentEndTime; + nsm_present_event->AppInputTime = present_event->AppInputSample.first; + nsm_present_event->AppInputType = present_event->AppInputSample.second; + nsm_present_event->SwapChainAddress = present_event->SwapChainAddress; nsm_present_event->SyncInterval = present_event->SyncInterval; nsm_present_event->PresentFlags = present_event->PresentFlags; + nsm_present_event->DisplayedCount = (uint32_t) min(present_event->Displayed.size(), _countof(nsm_present_event->Displayed_ScreenTime)); + for (uint32_t i = 0; i < nsm_present_event->DisplayedCount; ++i) { + nsm_present_event->Displayed_ScreenTime[i] = present_event->Displayed[i].second; + nsm_present_event->Displayed_FrameType[i] = present_event->Displayed[i].first; + } + nsm_present_event->CompositionSurfaceLuid = present_event->CompositionSurfaceLuid; nsm_present_event->Win32KPresentCount = present_event->Win32KPresentCount; @@ -110,7 +126,6 @@ void Streamer::CopyFromPresentMonPresentEvent( nsm_present_event->PresentMode = present_event->PresentMode; nsm_present_event->FinalState = present_event->FinalState; nsm_present_event->InputType = present_event->InputType; - nsm_present_event->FrameType = present_event->FrameType; nsm_present_event->SupportsTearing = present_event->SupportsTearing; nsm_present_event->WaitForFlipEvent = present_event->WaitForFlipEvent; @@ -186,6 +201,10 @@ void Streamer::ProcessPresentEvent( } PmNsmFrameData data = {}; + if (present_event->PresentStartTime == 2694939860393) + { + auto i = 20; + } // Copy the passed in PresentEvent data into the PmNsmFrameData // structure. CopyFromPresentMonPresentEvent(present_event, &data.present_event); diff --git a/IntelPresentMon/ULT/PmFrameGenerator.cpp b/IntelPresentMon/ULT/PmFrameGenerator.cpp index 8315290b..8ba91c17 100644 --- a/IntelPresentMon/ULT/PmFrameGenerator.cpp +++ b/IntelPresentMon/ULT/PmFrameGenerator.cpp @@ -741,10 +741,10 @@ bool PmFrameGenerator::CalculateFpsMetrics( pmft_frames_[current_frame_number].time_in_seconds; swap_chain->cpu_0_time = swap_chain->cpu_n_time; if (pmft_frames_[current_frame_number].dropped == false) { - swap_chain->display_n_screen_time = + swap_chain->mLastDisplayedScreenTime = pmft_frames_[current_frame_number].time_in_seconds + (pmft_frames_[current_frame_number].ms_until_displayed / 1000.); - swap_chain->display_0_screen_time = swap_chain->display_n_screen_time; + swap_chain->display_0_screen_time = swap_chain->mLastDisplayedScreenTime; swap_chain->dropped.push_back(0); } else { swap_chain->dropped.push_back(1); @@ -776,7 +776,7 @@ bool PmFrameGenerator::CalculateFpsMetrics( 1. / (swap_chain->display_0_screen_time - current_display_screen_time_s)); } else { - swap_chain->display_n_screen_time = current_display_screen_time_s; + swap_chain->mLastDisplayedScreenTime = current_display_screen_time_s; } swap_chain->display_0_screen_time = current_display_screen_time_s; swap_chain->dropped.push_back(0); @@ -800,7 +800,7 @@ bool PmFrameGenerator::CalculateFpsMetrics( CalcMetricStats(swap_chain.gpu_sum_ms, temp_fps_data.gpu_busy); // Overwrite the average both the display and cpu average fps. auto avg_fps = - swap_chain.display_n_screen_time - swap_chain.display_0_screen_time; + swap_chain.mLastDisplayedScreenTime - swap_chain.display_0_screen_time; avg_fps /= swap_chain.display_fps.size(); avg_fps = 1. / avg_fps; temp_fps_data.displayed_fps.avg = avg_fps; diff --git a/IntelPresentMon/ULT/PmFrameGenerator.h b/IntelPresentMon/ULT/PmFrameGenerator.h index 097fedb2..7bb5925f 100644 --- a/IntelPresentMon/ULT/PmFrameGenerator.h +++ b/IntelPresentMon/ULT/PmFrameGenerator.h @@ -207,7 +207,7 @@ class PmFrameGenerator { std::vector frame_times_ms; std::vector gpu_sum_ms; std::vector dropped; - double display_n_screen_time = 0.; + double mLastDisplayedScreenTime = 0.; double display_0_screen_time = 0.; double cpu_n_time = 0.; double cpu_0_time = 0.; diff --git a/IntelPresentMon/CommonUtilities/BuildId.cpp b/IntelPresentMon/Versioning/BuildId.cpp similarity index 95% rename from IntelPresentMon/CommonUtilities/BuildId.cpp rename to IntelPresentMon/Versioning/BuildId.cpp index 98018063..4eb32c24 100644 --- a/IntelPresentMon/CommonUtilities/BuildId.cpp +++ b/IntelPresentMon/Versioning/BuildId.cpp @@ -1,7 +1,7 @@ #include "BuildId.h" #include "generated/build_id.h" -namespace pmon::util +namespace pmon::bid { const char* BuildIdShortHash() noexcept { diff --git a/IntelPresentMon/CommonUtilities/BuildId.h b/IntelPresentMon/Versioning/BuildId.h similarity index 91% rename from IntelPresentMon/CommonUtilities/BuildId.h rename to IntelPresentMon/Versioning/BuildId.h index 2e8b85ad..c6a5cf22 100644 --- a/IntelPresentMon/CommonUtilities/BuildId.h +++ b/IntelPresentMon/Versioning/BuildId.h @@ -1,6 +1,6 @@ #pragma once -namespace pmon::util +namespace pmon::bid { const char* BuildIdShortHash() noexcept; const char* BuildIdLongHash() noexcept; diff --git a/IntelPresentMon/Versioning/Versioning.vcxproj b/IntelPresentMon/Versioning/Versioning.vcxproj new file mode 100644 index 00000000..bbebb587 --- /dev/null +++ b/IntelPresentMon/Versioning/Versioning.vcxproj @@ -0,0 +1,122 @@ + + + + + Debug + x64 + + + Release + x64 + + + + + + + + + + + + + + 17.0 + Win32Proj + {c73aa532-e532-4d93-9279-905444653c08} + Versioning + 10.0 + + + + StaticLibrary + true + v143 + Unicode + + + StaticLibrary + false + v143 + true + Unicode + + + + + + + + + + + + + + + + + BuildGenerateSources + BuildGenerateSources + + + BuildGenerateSources + BuildGenerateSources + + + false + + + + Level3 + true + _DEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreadedDebug + + + + + true + + + scripts\pre-build.bat + + + Generating Build IDs + + + force-run-nonexist.fake + + + + + Level3 + true + true + true + NDEBUG;_LIB;%(PreprocessorDefinitions) + true + MultiThreaded + + + + + true + true + true + + + scripts\pre-build.bat + + + Generating Build IDs + + + force-run-nonexist.fake + + + + + + \ No newline at end of file diff --git a/IntelPresentMon/Versioning/Versioning.vcxproj.filters b/IntelPresentMon/Versioning/Versioning.vcxproj.filters new file mode 100644 index 00000000..3a0a3631 --- /dev/null +++ b/IntelPresentMon/Versioning/Versioning.vcxproj.filters @@ -0,0 +1,33 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Header Files + + + + + Source Files + + + + + Source Files + + + + \ No newline at end of file diff --git a/IntelPresentMon/CommonUtilities/generated/.gitignore b/IntelPresentMon/Versioning/generated/.gitignore similarity index 100% rename from IntelPresentMon/CommonUtilities/generated/.gitignore rename to IntelPresentMon/Versioning/generated/.gitignore diff --git a/IntelPresentMon/CommonUtilities/build-scripts/pre-build.bat b/IntelPresentMon/Versioning/scripts/pre-build.bat similarity index 100% rename from IntelPresentMon/CommonUtilities/build-scripts/pre-build.bat rename to IntelPresentMon/Versioning/scripts/pre-build.bat diff --git a/IntelPresentMon/metrics.csv b/IntelPresentMon/metrics.csv index c6c28b3b..225699bb 100644 --- a/IntelPresentMon/metrics.csv +++ b/IntelPresentMon/metrics.csv @@ -26,6 +26,7 @@ PM_METRIC_VIDEO_BUSY,,Video Busy,How long the GPU video encode/decode engines we PM_METRIC_DISPLAY_LATENCY,,Display Latency,How long it took from the start of this frame until the frame was displayed on the screen. PM_METRIC_DISPLAYED_TIME,,Displayed Time,"How long the frame was displayed on the screen, or 'NA' if the frame was not displayed." PM_METRIC_ANIMATION_ERROR,,Animation Error,"The difference between the previous frame's CPU delta and display delta." +PM_METRIC_ANIMATION_TIME,,Animation Time,The time the CPU started animation work on this frame. PM_METRIC_CLICK_TO_PHOTON_LATENCY,,Click-To-Photon Latency,How long it took from the earliest mouse click that contributed to this frame until this frame was displayed. PM_METRIC_ALL_INPUT_TO_PHOTON_LATENCY,,All-Input-To-Photon Latency,How long it took from the earliest keyboard or mouse interaction that contributed to this frame until this frame was displayed. ,,, @@ -79,4 +80,6 @@ PM_METRIC_CPU_POWER_LIMIT,1,CPU Power Limit,Power limit of the CPU. PM_METRIC_CPU_POWER,1,CPU Power,Power consumed by the CPU. PM_METRIC_CPU_TEMPERATURE,1,CPU Temperature,Temperature of the CPU. PM_METRIC_CPU_FREQUENCY,1,CPU Frequency,Clock speed of the CPU. -PM_METRIC_CPU_CORE_UTILITY,1,CPU Core Utility,Amount of CPU processing utility being used per core. \ No newline at end of file +PM_METRIC_CPU_CORE_UTILITY,1,CPU Core Utility,Amount of CPU processing utility being used per core. +,,, +PM_METRIC_INSTRUMENTED_LATENCY,,Instrumented Latency,Instrumented Frame Start To Display Latency,How long it took from the instrumented start of this frame until the frame was displayed on the screen. \ No newline at end of file diff --git a/PresentData/Debug.cpp b/PresentData/Debug.cpp index 36bc18c5..2e19400d 100644 --- a/PresentData/Debug.cpp +++ b/PresentData/Debug.cpp @@ -178,7 +178,8 @@ wchar_t const* PMPFrameTypeToString(Intel_PresentMon::FrameType type) case Intel_PresentMon::FrameType::Unspecified: return L"Unspecified"; case Intel_PresentMon::FrameType::Original: return L"Original"; case Intel_PresentMon::FrameType::Repeated: return L"Repeated"; - case Intel_PresentMon::FrameType::AMD_AFMF: return L"AMD_AFMF"; + case Intel_PresentMon::FrameType::Intel_XEFG: return L"Intel XeSS-FG"; + case Intel_PresentMon::FrameType::AMD_AFMF: return L"AMD AFMF"; } assert(false); @@ -191,10 +192,21 @@ void PrintFrameType(FrameType type) case FrameType::Unspecified: wprintf(L"Unspecified"); break; case FrameType::Application: wprintf(L"Application"); break; case FrameType::Repeated: wprintf(L"Repeated"); break; - case FrameType::AMD_AFMF: wprintf(L"AMD_AFMF"); break; + case FrameType::Intel_XEFG: wprintf(L"Intel XeSS-FG"); break; + case FrameType::AMD_AFMF: wprintf(L"AMD AFMF"); break; default: wprintf(L"Unknown (%u)", type); assert(false); break; } } +void PrintInputType(uint32_t type) +{ + using namespace Intel_PresentMon; + switch (type) { + case InputType::Unspecified: wprintf(L"Unspecified"); break; + case InputType::MouseClick: wprintf(L"MouseClick"); break; + case InputType::KeyboardClick: wprintf(L"KeyboardClick"); break; + default: wprintf(L"Unknown (%u)", type); assert(false); break; + } +} void PrintEventHeader(EVENT_HEADER const& hdr) { @@ -231,6 +243,7 @@ void PrintEventHeader(EVENT_RECORD* eventRecord, EventMetadata* metadata, char c else if (propFunc == PrintDmaPacketType) PrintDmaPacketType(metadata->GetEventData(eventRecord, propName)); else if (propFunc == PrintPresentFlags) PrintPresentFlags(metadata->GetEventData(eventRecord, propName)); else if (propFunc == PrintPresentHistoryModel) PrintPresentHistoryModel(metadata->GetEventData(eventRecord, propName)); + else if (propFunc == PrintInputType) PrintInputType(metadata->GetEventData(eventRecord, propName)); else assert(false); } wprintf(L"\n"); @@ -252,7 +265,6 @@ void FlushModifiedPresent() } FLUSH_MEMBER(PrintTimeDelta, TimeInPresent) FLUSH_MEMBER(PrintTime, ReadyTime) - FLUSH_MEMBER(PrintTime, ScreenTime) FLUSH_MEMBER(PrintTime, InputTime) FLUSH_MEMBER(PrintTime, MouseClickTime) FLUSH_MEMBER(PrintTime, GPUStartTime) @@ -278,9 +290,27 @@ void FlushModifiedPresent() FLUSH_MEMBER(PrintBool, PresentFailed) FLUSH_MEMBER(PrintBool, WaitingForPresentStop) FLUSH_MEMBER(PrintBool, WaitingForFlipFrameType) - FLUSH_MEMBER(PrintFrameType, FrameType) + FLUSH_MEMBER(PrintBool, DoneWaitingForFlipFrameType) + FLUSH_MEMBER(PrintBool, WaitingForFrameId) #undef FLUSH_MEMBER + // Displayed + if (gModifiedPresent->Displayed != gOriginalPresentValues.Displayed) { + if (changedCount++ == 0) { + wprintf(L"%*hsp%u", 17 + 6 + 6, "", gModifiedPresent->FrameId); + } + wprintf(L" Displayed="); + auto first = true; + for (auto const& pr : gModifiedPresent->Displayed) { + wprintf(L"%c ", first ? L'[' : L','); + PrintFrameType(pr.first); + wprintf(L":"); + PrintTime(pr.second); + first = false; + } + wprintf(L"%c]", first ? L'[' : L' '); + } + // PresentIds if (gModifiedPresent->PresentIds != gOriginalPresentValues.PresentIds) { if (changedCount++ == 0) { @@ -407,7 +437,8 @@ void VerboseTraceEventImpl(PMTraceConsumer* pmConsumer, EVENT_RECORD* eventRecor case Blit_Info::Id: PrintEventHeader(eventRecord, metadata, "Blit_Info", { L"hwnd", PrintU64x, L"bRedirectedPresent", PrintU32 }); break; case BlitCancel_Info::Id: PrintEventHeader(hdr, "BlitCancel_Info"); break; - case FlipMultiPlaneOverlay_Info::Id: PrintEventHeader(hdr, "FlipMultiPlaneOverlay_Info"); break; + case FlipMultiPlaneOverlay_Info::Id: PrintEventHeader(eventRecord, metadata, "FlipMultiPlaneOverlay_Info", { L"VidPnSourceId", PrintU32, + L"LayerIndex", PrintU32 }); break; case Present_Info::Id: PrintEventHeader(hdr, "DxgKrnl_Present_Info"); break; case MMIOFlip_Info::Id: PrintEventHeader(eventRecord, metadata, "MMIOFlip_Info", { L"FlipSubmitSequence", PrintU64, }); break; @@ -645,7 +676,68 @@ void VerboseTraceEventImpl(PMTraceConsumer* pmConsumer, EVENT_RECORD* eventRecor } } } - return; + if (pmConsumer->mTrackPMMeasurements) { + switch (hdr.EventDescriptor.Id) { + case MeasuredInput_Info::Id: + PrintEventHeader(eventRecord, metadata, "PM_Measurement_Input", { L"InputType", PrintInputType, L"Time", PrintU64x }); + break; + case MeasuredScreenChange_Info::Id: + PrintEventHeader(eventRecord, metadata, "PM_Measurement_ScreenChange", { L"Time", PrintU64x }); + break; + } + return; + } + + if (pmConsumer->mTrackAppTiming) { + switch (hdr.EventDescriptor.Id) { + case Intel_PresentMon::AppSleepStart_Info::Id: { + DebugAssert(eventRecord->UserDataLength == sizeof(Intel_PresentMon::AppSleepStart_Info_Props)); + PrintEventHeader(eventRecord, metadata, "PM_AppSleepStart", { L"FrameId", PrintU32 }); + } + return; + case Intel_PresentMon::AppSleepEnd_Info::Id: { + DebugAssert(eventRecord->UserDataLength == sizeof(Intel_PresentMon::AppSleepEnd_Info_Props)); + PrintEventHeader(eventRecord, metadata, "PM_AppSleepEnd", { L"FrameId", PrintU32 }); + } + return; + case Intel_PresentMon::AppSimulationStart_Info::Id: { + DebugAssert(eventRecord->UserDataLength == sizeof(Intel_PresentMon::AppSimulationStart_Info_Props)); + PrintEventHeader(eventRecord, metadata, "PM_AppSimulationStart", { L"FrameId", PrintU32 }); + } + return; + case Intel_PresentMon::AppSimulationEnd_Info::Id: { + DebugAssert(eventRecord->UserDataLength == sizeof(Intel_PresentMon::AppSimulationEnd_Info_Props)); + PrintEventHeader(eventRecord, metadata, "PM_AppSimulationEnd", { L"FrameId", PrintU32 }); + } + return; + case Intel_PresentMon::AppRenderSubmitStart_Info::Id: { + DebugAssert(eventRecord->UserDataLength == sizeof(Intel_PresentMon::AppRenderSubmitStart_Info_Props)); + PrintEventHeader(eventRecord, metadata, "PM_AppRenderSubmitStart", { L"FrameId", PrintU32 }); + } + return; + case Intel_PresentMon::AppRenderSubmitEnd_Info::Id: { + DebugAssert(eventRecord->UserDataLength == sizeof(Intel_PresentMon::AppRenderSubmitEnd_Info_Props)); + PrintEventHeader(eventRecord, metadata, "PM_AppRenderSubmitEnd", { L"FrameId", PrintU32 }); + } + return; + case Intel_PresentMon::AppPresentStart_Info::Id: { + DebugAssert(eventRecord->UserDataLength == sizeof(Intel_PresentMon::AppPresentStart_Info_Props)); + PrintEventHeader(eventRecord, metadata, "PM_AppPresentStart", { L"FrameId", PrintU32 }); + } + return; + case Intel_PresentMon::AppPresentEnd_Info::Id: { + DebugAssert(eventRecord->UserDataLength == sizeof(Intel_PresentMon::AppPresentEnd_Info_Props)); + PrintEventHeader(eventRecord, metadata, "PM_AppPresentEnd", { L"FrameId", PrintU32 }); + } + return; + case Intel_PresentMon::AppInputSample_Info::Id: { + DebugAssert(eventRecord->UserDataLength == sizeof(Intel_PresentMon::AppInputSample_Info_Props)); + PrintEventHeader(eventRecord, metadata, "PM_AppInputSample", { L"FrameId", PrintU32, + L"InputType", PrintInputType}); + } + return; + } + } } if (hdr.ProviderId == NT_Process::GUID) { diff --git a/PresentData/ETW/Intel_PresentMon.h b/PresentData/ETW/Intel_PresentMon.h index 57b10bbb..8f7835a8 100644 --- a/PresentData/ETW/Intel_PresentMon.h +++ b/PresentData/ETW/Intel_PresentMon.h @@ -11,7 +11,9 @@ struct __declspec(uuid("{ECAA4712-4644-442F-B94C-A32F6CF8A499}")) GUID_STRUCT; static const auto GUID = __uuidof(GUID_STRUCT); enum class Keyword : uint64_t { - FrameTypes = 0x1, + FrameTypes = 0x1, + Measurements = 0x2, + Application = 0x20, }; enum class Level : uint8_t { @@ -29,7 +31,18 @@ enum class Level : uint8_t { static Keyword const Keyword = (Keyword) keyword_; \ } -EVENT_DESCRIPTOR_DECL(FlipFrameType_Info , 0x0002, 0x00, 0x00, 0x04, 0x00, 0x0002, 0x0000000000000001); +EVENT_DESCRIPTOR_DECL(AppInputSample_Info, 0x003a, 0x00, 0x00, 0x04, 0x00, 0x003a, 0x0000000000000020); +EVENT_DESCRIPTOR_DECL(AppPresentEnd_Info, 0x0039, 0x00, 0x00, 0x04, 0x00, 0x0039, 0x0000000000000020); +EVENT_DESCRIPTOR_DECL(AppPresentStart_Info, 0x0038, 0x00, 0x00, 0x04, 0x00, 0x0038, 0x0000000000000020); +EVENT_DESCRIPTOR_DECL(AppRenderSubmitEnd_Info, 0x0037, 0x00, 0x00, 0x04, 0x00, 0x0037, 0x0000000000000020); +EVENT_DESCRIPTOR_DECL(AppRenderSubmitStart_Info, 0x0036, 0x00, 0x00, 0x04, 0x00, 0x0036, 0x0000000000000020); +EVENT_DESCRIPTOR_DECL(AppSimulationEnd_Info, 0x0035, 0x00, 0x00, 0x04, 0x00, 0x0035, 0x0000000000000020); +EVENT_DESCRIPTOR_DECL(AppSimulationStart_Info, 0x0034, 0x00, 0x00, 0x04, 0x00, 0x0034, 0x0000000000000020); +EVENT_DESCRIPTOR_DECL(AppSleepEnd_Info, 0x0033, 0x00, 0x00, 0x04, 0x00, 0x0033, 0x0000000000000020); +EVENT_DESCRIPTOR_DECL(AppSleepStart_Info, 0x0032, 0x00, 0x00, 0x04, 0x00, 0x0032, 0x0000000000000020); +EVENT_DESCRIPTOR_DECL(FlipFrameType_Info, 0x0002, 0x00, 0x00, 0x04, 0x00, 0x0002, 0x0000000000000001); +EVENT_DESCRIPTOR_DECL(MeasuredInput_Info, 0x000a, 0x00, 0x00, 0x04, 0x00, 0x000a, 0x0000000000000002); +EVENT_DESCRIPTOR_DECL(MeasuredScreenChange_Info, 0x000b, 0x00, 0x00, 0x04, 0x00, 0x000b, 0x0000000000000002); EVENT_DESCRIPTOR_DECL(PresentFrameType_Info, 0x0001, 0x00, 0x00, 0x04, 0x00, 0x0001, 0x0000000000000001); #undef EVENT_DESCRIPTOR_DECL @@ -38,11 +51,64 @@ enum class FrameType : uint8_t { Unspecified = 0, Original = 1, Repeated = 2, + Intel_XEFG = 50, AMD_AFMF = 100, }; +enum class InputType : uint32_t { + Unspecified = 0, + MouseClick = 1, + KeyboardClick = 2, +}; + #pragma pack(push, 1) +struct AppInputSample_Info_Props { + uint32_t FrameId; + InputType InputType; +}; + +struct AppPresentEnd_Info_Props { + uint32_t FrameId; +}; + +struct AppPresentStart_Info_Props { + uint32_t FrameId; +}; + +struct AppRenderSubmitEnd_Info_Props { + uint32_t FrameId; +}; + +struct AppRenderSubmitStart_Info_Props { + uint32_t FrameId; +}; + +struct AppSimulationEnd_Info_Props { + uint32_t FrameId; +}; + +struct AppSimulationStart_Info_Props { + uint32_t FrameId; +}; + +struct AppSleepEnd_Info_Props { + uint32_t FrameId; +}; + +struct AppSleepStart_Info_Props { + uint32_t FrameId; +}; + +struct MeasuredInput_Info_Props { + uint64_t Time; + InputType InputType; +}; + +struct MeasuredScreenChange_Info_Props { + uint64_t Time; +}; + struct FlipFrameType_Info_Props { uint32_t VidPnSourceId; uint32_t LayerIndex; diff --git a/PresentData/PresentMonTraceConsumer.cpp b/PresentData/PresentMonTraceConsumer.cpp index 06bac1fd..0af68601 100644 --- a/PresentData/PresentMonTraceConsumer.cpp +++ b/PresentData/PresentMonTraceConsumer.cpp @@ -41,6 +41,7 @@ static inline FrameType ConvertPMPFrameTypeToFrameType(Intel_PresentMon::FrameTy case Intel_PresentMon::FrameType::Unspecified: return FrameType::Unspecified; case Intel_PresentMon::FrameType::Original: return FrameType::Application; case Intel_PresentMon::FrameType::Repeated: return FrameType::Repeated; + case Intel_PresentMon::FrameType::Intel_XEFG: return FrameType::Intel_XEFG; case Intel_PresentMon::FrameType::AMD_AFMF: return FrameType::AMD_AFMF; } @@ -48,6 +49,51 @@ static inline FrameType ConvertPMPFrameTypeToFrameType(Intel_PresentMon::FrameTy return FrameType::Unspecified; } +// Returns true if a ScreenTime has been set for this present. +static inline bool HasScreenTime(std::shared_ptr const& p) +{ + for (auto const& pr : p->Displayed) { + if (pr.second != 0) { + return true; + } + } + return false; +} + +// Set a ScreenTime for this present. +// +// If a ScreenTime has not yet been set, add it to Displayed and set Presented. +// +// Otherwise, if the set ScreenTime has no FrameType, overwrite both ScreenTime and FrameType. +// +// Otherwise, if the set ScreenTime is zero, overwrite ScreenTime. +// +// Otherwise, if the call has a FrameType, add it to the list. +static inline void SetScreenTime(std::shared_ptr const& p, uint64_t screenTime, FrameType frameType = FrameType::NotSet) +{ + DebugAssert(screenTime != 0); + + auto displayedCount = p->Displayed.size(); + if (displayedCount == 0) { + p->Displayed.emplace_back(frameType, screenTime); + p->FinalState = PresentResult::Presented; + } else if (p->Displayed.back().first == FrameType::NotSet) { + p->Displayed.back().first = frameType; + p->Displayed.back().second = screenTime; + } else if (p->Displayed.back().second == 0) { + DebugAssert(frameType == FrameType::NotSet); + for (size_t i = 0; i < displayedCount; ++i) { + if (p->Displayed[i].second == 0) { + p->Displayed.back().second = screenTime; + p->FinalState = PresentResult::Presented; + break; + } + } + } else if (frameType != FrameType::NotSet) { + p->Displayed.emplace_back(frameType, screenTime); + } +} + PresentEvent::PresentEvent() : PresentStartTime(0) , ProcessId(0) @@ -57,9 +103,19 @@ PresentEvent::PresentEvent() , ReadyTime(0) , GPUDuration(0) , GPUVideoDuration(0) - , ScreenTime(0) , InputTime(0) , MouseClickTime(0) + , AppFrameId(0) + , AppSleepStartTime(0) + , AppSleepEndTime(0) + , AppSimStartTime(0) + , AppSimEndTime(0) + , AppRenderSubmitStartTime(0) + , AppRenderSubmitEndTime(0) + , AppPresentStartTime(0) + , AppPresentEndTime(0) + , AppInputSample{ 0, InputDeviceType::None } + , SwapChainAddress(0) , SyncInterval(-1) , PresentFlags(0) @@ -84,7 +140,6 @@ PresentEvent::PresentEvent() , PresentMode(PresentMode::Unknown) , FinalState(PresentResult::Unknown) , InputType(InputDeviceType::None) - , FrameType(FrameType::NotSet) , SupportsTearing(false) , WaitForFlipEvent(false) @@ -100,6 +155,8 @@ PresentEvent::PresentEvent() , WaitingForPresentStop(false) , WaitingForFlipFrameType(false) + , DoneWaitingForFlipFrameType(false) + , WaitingForFrameId(false) { } @@ -228,7 +285,7 @@ void PMTraceConsumer::HandleDxgkBlt(EVENT_HEADER const& hdr, uint64_t hwnd, bool // QueuePacket_Start SubmitSequence MMIOFLIP bPresent=1 // QueuePacket_Stop SubmitSequence // PresentStop -void PMTraceConsumer::HandleDxgkFlip(EVENT_HEADER const& hdr, int32_t flipInterval, bool isMMIOFlip, bool isMPOFlip) +std::shared_ptr PMTraceConsumer::HandleDxgkFlip(EVENT_HEADER const& hdr) { // First, lookup the in-progress present on the same thread. // @@ -263,8 +320,8 @@ void PMTraceConsumer::HandleDxgkFlip(EVENT_HEADER const& hdr, int32_t flipInterv // If we did see a PresentStart, then use this present if (presentEvent->Runtime != Runtime::Other) { // There may be duplicate flip events for MPO situations, so only handle the first. - if ( presentEvent->PresentMode != PresentMode::Unknown) { - return; + if (presentEvent->PresentMode != PresentMode::Unknown) { + return nullptr; } break; } @@ -276,7 +333,7 @@ void PMTraceConsumer::HandleDxgkFlip(EVENT_HEADER const& hdr, int32_t flipInterv // Create a new present for this flip if (!IsProcessTrackedForFiltering(hdr.ProcessId)) { - return; + return nullptr; } presentEvent = std::make_shared(); @@ -295,19 +352,6 @@ void PMTraceConsumer::HandleDxgkFlip(EVENT_HEADER const& hdr, int32_t flipInterv presentEvent->PresentMode = PresentMode::Hardware_Legacy_Flip; - if (flipInterval != -1) { - presentEvent->SyncInterval = flipInterval; - } - if (isMMIOFlip) { - presentEvent->WaitForFlipEvent = true; - } - if (isMPOFlip) { - presentEvent->WaitForMPOFlipEvent = true; - } - if (!isMMIOFlip && flipInterval == 0) { - presentEvent->SupportsTearing = true; - } - // If this is the DWM thread, make any presents waiting for DWM dependent on it (i.e., they will // be displayed when it is). if (hdr.ThreadId == DwmPresentThreadId) { @@ -318,6 +362,8 @@ void PMTraceConsumer::HandleDxgkFlip(EVENT_HEADER const& hdr, int32_t flipInterv } std::swap(presentEvent->DependentPresents, mPresentsWaitingForDWM); } + + return presentEvent; } void PMTraceConsumer::HandleDxgkQueueSubmit( @@ -350,7 +396,7 @@ void PMTraceConsumer::HandleDxgkQueueSubmit( present->SeenDxgkPresent = true; // If the work is already done, complete it now. - if (present->ScreenTime != 0) { + if (HasScreenTime(present)) { CompletePresent(present); } } @@ -426,8 +472,7 @@ void PMTraceConsumer::HandleDxgkQueueComplete(uint64_t timestamp, uint64_t hCont pEvent->ReadyTime = timestamp; } - pEvent->ScreenTime = timestamp; - pEvent->FinalState = PresentResult::Presented; + SetScreenTime(pEvent, timestamp); // Sometimes, the queue packets associated with a present will complete // before the DxgKrnl PresentInfo event is fired. For blit presents in @@ -478,7 +523,6 @@ void PMTraceConsumer::HandleDxgkMMIOFlip(uint64_t timestamp, uint32_t submitSequ { auto pEvent = FindPresentBySubmitSequence(submitSequence); if (pEvent != nullptr) { - VerboseTraceBeforeModifyingPresent(pEvent.get()); pEvent->ReadyTime = timestamp; @@ -487,9 +531,9 @@ void PMTraceConsumer::HandleDxgkMMIOFlip(uint64_t timestamp, uint32_t submitSequ } if (flags & (uint32_t) Microsoft_Windows_DxgKrnl::SetVidPnSourceAddressFlags::FlipImmediate) { - pEvent->FinalState = PresentResult::Presented; - pEvent->ScreenTime = timestamp; + SetScreenTime(pEvent, timestamp); pEvent->SupportsTearing = true; + if (pEvent->PresentMode == PresentMode::Hardware_Legacy_Flip) { CompletePresent(pEvent); } @@ -505,8 +549,7 @@ void PMTraceConsumer::HandleDxgkSyncDPC(uint64_t timestamp, uint32_t submitSeque if (pEvent != nullptr) { VerboseTraceBeforeModifyingPresent(pEvent.get()); - pEvent->ScreenTime = timestamp; - pEvent->FinalState = PresentResult::Presented; + SetScreenTime(pEvent, timestamp); // For Hardware_Legacy_Flip, we are done tracking the present. If we // aren't expecting a subsequent *SyncMultiPlaneDPC_Info event, then we @@ -551,11 +594,15 @@ void PMTraceConsumer::HandleDxgkPresentHistory( VerboseTraceBeforeModifyingPresent(presentEvent.get()); presentEvent->ReadyTime = 0; - presentEvent->ScreenTime = 0; presentEvent->SupportsTearing = false; - presentEvent->FinalState = PresentResult::Unknown; presentEvent->DxgkPresentHistoryToken = token; + if (presentEvent->Displayed.size() == 1 && + presentEvent->Displayed[0].first == FrameType::NotSet) { + presentEvent->Displayed.clear(); + presentEvent->FinalState = PresentResult::Unknown; + } + auto iter = mPresentByDxgkPresentHistoryToken.find(token); if (iter != mPresentByDxgkPresentHistoryToken.end()) { RemoveLostPresent(iter->second); @@ -678,7 +725,16 @@ void PMTraceConsumer::HandleDXGKEvent(EVENT_RECORD* pEventRecord) auto FlipInterval = desc[0].GetData(); auto MMIOFlip = desc[1].GetData() != 0; - HandleDxgkFlip(hdr, FlipInterval, MMIOFlip, false); + auto p = HandleDxgkFlip(hdr); + if (p != nullptr) { + p->SyncInterval = FlipInterval; + + if (MMIOFlip) { + p->WaitForFlipEvent = true; + } else if (FlipInterval == 0) { + p->SupportsTearing = true; + } + } return; } case Microsoft_Windows_DxgKrnl::IndependentFlip_Info::Id: @@ -704,8 +760,26 @@ void PMTraceConsumer::HandleDXGKEvent(EVENT_RECORD* pEventRecord) return; } case Microsoft_Windows_DxgKrnl::FlipMultiPlaneOverlay_Info::Id: - HandleDxgkFlip(hdr, -1, true, true); + { + EventDataDesc desc[] = { + { L"VidPnSourceId" }, + { L"LayerIndex" }, + }; + mMetadata.GetEventData(pEventRecord, desc, _countof(desc)); + auto VidPnSourceId = desc[0].GetData(); + auto LayerIndex = desc[1].GetData(); + + auto p = HandleDxgkFlip(hdr); + if (p != nullptr) { + p->WaitForFlipEvent = true; + p->WaitForMPOFlipEvent = true; + + if (p->SwapChainAddress == 0) { + p->SwapChainAddress = GenerateVidPnLayerId(VidPnSourceId, LayerIndex); + } + } return; + } // QueuPacket_Start are used for render queue packets // QueuPacket_Start_2 are used for monitor wait packets // QueuPacket_Start_3 are used for monitor signal packets @@ -803,11 +877,7 @@ void PMTraceConsumer::HandleDXGKEvent(EVENT_RECORD* pEventRecord) // this the present screen time. if (FlipEntryStatusAfterFlip != (uint32_t) Microsoft_Windows_DxgKrnl::FlipEntryStatus::FlipWaitHSync) { - present->FinalState = PresentResult::Presented; - - if (FlipEntryStatusAfterFlip == (uint32_t) Microsoft_Windows_DxgKrnl::FlipEntryStatus::FlipWaitComplete) { - present->ScreenTime = hdr.TimeStamp.QuadPart; - } + SetScreenTime(present, hdr.TimeStamp.QuadPart); if (present->PresentMode == PresentMode::Hardware_Legacy_Flip) { CompletePresent(present); @@ -889,8 +959,7 @@ void PMTraceConsumer::HandleDXGKEvent(EVENT_RECORD* pEventRecord) // overwrite it in that case. if (pEvent->FinalState != PresentResult::Presented) { VerboseTraceBeforeModifyingPresent(pEvent.get()); - pEvent->ScreenTime = hdr.TimeStamp.QuadPart; - pEvent->FinalState = PresentResult::Presented; + SetScreenTime(pEvent, hdr.TimeStamp.QuadPart); } // Complete the present. @@ -929,8 +998,7 @@ void PMTraceConsumer::HandleDXGKEvent(EVENT_RECORD* pEventRecord) // If this is a deferred blit that's already seen QueuePacket_Stop, // then complete it now. - if (present->PresentMode == PresentMode::Hardware_Legacy_Copy_To_Front_Buffer && - present->ScreenTime != 0) { + if (present->PresentMode == PresentMode::Hardware_Legacy_Copy_To_Front_Buffer && HasScreenTime(present)) { CompletePresent(present); } } @@ -1162,16 +1230,25 @@ void PMTraceConsumer::HandleDXGKEvent(EVENT_RECORD* pEventRecord) auto ii = mPresentByVidPnLayerId.find(vidPnLayerId); if (ii != mPresentByVidPnLayerId.end()) { auto p2 = ii->second; - mPresentByVidPnLayerId.erase(ii); // Remove first because UpdateReadyCount() may - // call StopTrackingPresent() + p2->PresentIds.clear(); + mPresentByVidPnLayerId.erase(ii); VerboseTraceBeforeModifyingPresent(p2.get()); + p2->DoneWaitingForFlipFrameType = true; + if (p2->WaitingForFlipFrameType) { p2->WaitingForFlipFrameType = false; - UpdateReadyCount(p2, true); - } else { - p2->PresentIds.clear(); + StopTrackingPresent(p2); + + for (auto p3 : p2->DependentPresents) { + VerboseTraceBeforeModifyingPresent(p3.get()); + p3->WaitingForFlipFrameType = false; + StopTrackingPresent(p2); + } + + UpdateReadyCount(true); } + VerboseTraceBeforeModifyingPresent(nullptr); } } @@ -1186,7 +1263,7 @@ void PMTraceConsumer::HandleDXGKEvent(EVENT_RECORD* pEventRecord) // Apply any pending FlipFrameType events auto ii = mPendingFlipFrameTypeEvents.find(vidPnLayerId); if (ii != mPendingFlipFrameTypeEvents.end()) { - if (present != nullptr) { + if (present != nullptr && ii->second.PresentId == PresentId[i]) { ApplyFlipFrameType(present, ii->second.Timestamp, ii->second.FrameType); } mPendingFlipFrameTypeEvents.erase(ii); @@ -1217,11 +1294,16 @@ void PMTraceConsumer::HandleWin7DxgkFlip(EVENT_RECORD* pEventRecord) using namespace Microsoft_Windows_DxgKrnl::Win7; auto pFlipEvent = reinterpret_cast(pEventRecord->UserData); - HandleDxgkFlip( - pEventRecord->EventHeader, - pFlipEvent->FlipInterval, - pFlipEvent->MMIOFlip != 0, - false); + auto p = HandleDxgkFlip(pEventRecord->EventHeader); + if (p != nullptr) { + p->SyncInterval = pFlipEvent->FlipInterval; + + if (pFlipEvent->MMIOFlip != 0) { + p->WaitForFlipEvent = true; + } else if (pFlipEvent->FlipInterval == 0) { + p->SupportsTearing = true; + } + } } void PMTraceConsumer::HandleWin7DxgkPresentHistory(EVENT_RECORD* pEventRecord) @@ -1445,7 +1527,7 @@ void PMTraceConsumer::HandleWin32kEvent(EVENT_RECORD* pEventRecord) presentEvent->Win32KBindId = 0; mPresentByWin32KPresentHistoryToken.erase(eventIter); - if (!presentEvent->SeenInFrameEvent && (presentEvent->FinalState == PresentResult::Unknown || presentEvent->ScreenTime == 0)) { + if (!presentEvent->SeenInFrameEvent && presentEvent->FinalState == PresentResult::Unknown) { VerboseTraceBeforeModifyingPresent(presentEvent.get()); presentEvent->FinalState = PresentResult::Discarded; CompletePresent(presentEvent); @@ -1717,11 +1799,11 @@ void PMTraceConsumer::StopTrackingPresent(std::shared_ptr const& p if (ii != mPresentByThreadId.end() && ii->second == p) { mPresentByThreadId.erase(ii); } - if (p->DriverThreadId != 0) { - ii = mPresentByThreadId.find(p->DriverThreadId); - if (ii != mPresentByThreadId.end() && ii->second == p) { - mPresentByThreadId.erase(ii); - } + } + if (p->DriverThreadId != 0) { + auto ii = mPresentByThreadId.find(p->DriverThreadId); + if (ii != mPresentByThreadId.end() && ii->second == p) { + mPresentByThreadId.erase(ii); } } @@ -1806,6 +1888,14 @@ void PMTraceConsumer::StopTrackingPresent(std::shared_ptr const& p } p->PresentInDwmWaitingStruct = false; } + + if (p->AppFrameId != 0) { + auto eventIter = mPresentByAppFrameId.find(p->AppFrameId); + if (eventIter != mPresentByAppFrameId.end()) { + mPresentByAppFrameId.erase(eventIter); + } + } + } void PMTraceConsumer::RemoveLostPresent(std::shared_ptr p) @@ -1850,44 +1940,75 @@ void PMTraceConsumer::CompletePresent(std::shared_ptr const& p) return; } - // Complete the present. + // Mark the present as completed. VerboseTraceBeforeModifyingPresent(p.get()); p->IsCompleted = true; - // If this is a DWM present, complete any other present that contributed to - // it. A DWM present only completes each HWND's most-recent Composed_Flip - // PresentEvent, so we mark any others as discarded. + // It is possible for a present to be displayed or discarded before Present_Stop. If this + // happens, we stop tracking the present (except for mPresentByThreadId which is required by + // Present_Stop to lookup the present) but do not add the present to the dequeue list yet. + // Present_Stop will check if the present is completed and add it to the dequeue list if so. + if (!p->IsLost && p->Runtime != Runtime::Other && p->TimeInPresent == 0) { + VerboseTraceBeforeModifyingPresent(p.get()); + p->WaitingForPresentStop = true; + } + + // If flip frame type tracking is enabled, we defer the completion because we may see subsequent + // FlipFrameType events that need to refer back to this PresentEvent. The deferral will be + // completed when we see another MMIOFlipMultiPlaneOverlay3_Info event for the same + // (VidPnSourceId, LayerIndex) pair. + if (!p->IsLost && !p->DoneWaitingForFlipFrameType && mEnableFlipFrameTypeEvents && p->FinalState == PresentResult::Presented) { + VerboseTraceBeforeModifyingPresent(p.get()); + p->WaitingForFlipFrameType = true; + } + + // If this is a DWM present, update the dependent presents' final state and complete them as + // well. // - // PresentEvents that become lost are not removed from DependentPresents - // tracking, so we need to protect against lost events (but they have - // already been added to mCompletedPresents etc.). + // Note: we need to check if the dependent presents are already completed because if they were + // completed or lost elsewhere during analysis, they wouldn't have been removed from the + // DependentPresents list. if (!p->DependentPresents.empty()) { - std::unordered_set completedComposedFlipHwnds; - for (auto ii = p->DependentPresents.rbegin(), ie = p->DependentPresents.rend(); ii != ie; ++ii) { - auto p2 = *ii; - if (!p2->IsCompleted) { - if (p2->PresentMode == PresentMode::Composed_Flip && !completedComposedFlipHwnds.emplace(p2->Hwnd).second) { - VerboseTraceBeforeModifyingPresent(p2.get()); - p2->FinalState = PresentResult::Discarded; - } else if (p2->FinalState != PresentResult::Discarded) { - VerboseTraceBeforeModifyingPresent(p2.get()); - p2->FinalState = p->FinalState; - p2->ScreenTime = p->ScreenTime; - } - - if (p->IsLost) { - VerboseTraceBeforeModifyingPresent(p2.get()); - p2->IsLost = true; + if (p->IsLost) { + for (auto p2 : p->DependentPresents) { + VerboseTraceBeforeModifyingPresent(p2.get()); + p2->IsLost = true; + } + } else { + // If there are multiple dependent presents from the same HWND, then discard all but the + // last one. + std::unordered_set completedComposedFlipHwnds; + for (auto ii = p->DependentPresents.rbegin(), ie = p->DependentPresents.rend(); ii != ie; ++ii) { + auto p2 = *ii; + if (!p2->IsCompleted) { + if ((p2->PresentMode == PresentMode::Composed_Flip || + p2->PresentMode == PresentMode::Composed_Copy_GPU_GDI || + p2->PresentMode == PresentMode::Composed_Copy_CPU_GDI) && + !completedComposedFlipHwnds.emplace(p2->Hwnd).second) { + VerboseTraceBeforeModifyingPresent(p2.get()); + p2->FinalState = PresentResult::Discarded; + p2->Displayed.clear(); + } else if (p2->FinalState != PresentResult::Discarded) { + VerboseTraceBeforeModifyingPresent(p2.get()); + p2->FinalState = p->FinalState; + p2->Displayed = p->Displayed; + p2->WaitingForFlipFrameType = p->WaitingForFlipFrameType; + p2->DoneWaitingForFlipFrameType = p->DoneWaitingForFlipFrameType; + } } } } - for (auto p2 : p->DependentPresents) { + + for (auto ii = p->DependentPresents.rbegin(), ie = p->DependentPresents.rend(); ii != ie; ++ii) { + auto p2 = *ii; if (!p2->IsCompleted) { CompletePresent(p2); } } - p->DependentPresents.clear(); - p->DependentPresents.shrink_to_fit(); + if (!p->WaitingForFlipFrameType) { + p->DependentPresents.clear(); + p->DependentPresents.shrink_to_fit(); + } } // If presented, remove any earlier presents made on the same swap chain. @@ -1905,145 +2026,130 @@ void PMTraceConsumer::CompletePresent(std::shared_ptr const& p) p2->IsLost = true; } - if (p2->WaitingForFlipFrameType) { - VerboseTraceBeforeModifyingPresent(p2.get()); - p2->WaitingForFlipFrameType = false; - UpdateReadyCount(p2, true); - } else { - CompletePresent(p2); - } + CompletePresent(p2); } } } - // It is possible for a present to be displayed or discarded before Present_Stop. If this - // happens, we stop tracking the present (except for mPresentByThreadId which is required by - // Present_Stop to lookup the present) but do not add the present to the dequeue list yet. - // Present_Stop will check if the present is completed and add it to the dequeue list if so. - if (!p->IsLost && p->Runtime != Runtime::Other && p->TimeInPresent == 0) { - VerboseTraceBeforeModifyingPresent(p.get()); - p->WaitingForPresentStop = true; - } - - // If flip frame type tracking is enabled, we defer the completion because we may see subsequent - // FlipFrameType events that need to refer back to this PresentEvent. The deferral will be - // completed when we see another MMIOFlipMultiPlaneOverlay3_Info event for the same - // (VidPnSourceId, LayerIndex) pair. - if (mTrackFrameType && !p->PresentIds.empty()) { - VerboseTraceBeforeModifyingPresent(p.get()); - p->WaitingForFlipFrameType = true; - } - // Remove the present from tracking structures. StopTrackingPresent(p); - DebugAssert(p->IsCompleted); - DebugAssert(p->CompositionSurfaceLuid == 0); - DebugAssert(p->Win32KPresentCount == 0); - DebugAssert(p->Win32KBindId == 0); - DebugAssert(p->DxgkPresentHistoryToken == 0); - DebugAssert(p->DxgkPresentHistoryTokenData == 0); - DebugAssert(p->DxgkContext == 0); - DebugAssert(p->Hwnd == 0); - DebugAssert(p->QueueSubmitSequence == 0); - DebugAssert(p->RingIndex == UINT32_MAX); - DebugAssert(p->PresentInDwmWaitingStruct == false); - - // Add the present to the completed list - AddPresentToCompletedList(p); -} - -void PMTraceConsumer::AddPresentToCompletedList(std::shared_ptr const& present) -{ - std::unique_lock lock(mPresentEventMutex); - - uint32_t index; - // if completed buffer is full - if (mCompletedCount == PRESENTEVENT_CIRCULAR_BUFFER_SIZE) { - // if we are in offline ETL processing mode, block instead of overwriting events - // unless either A) the buffer is full of non-ready events or B) backpressure disabled via CLI option - if (!mIsRealtimeSession && mReadyCount != 0 && !mDisableOfflineBackpressure) { - mCompletedRingCondition.wait(lock, [this] { return mCompletedCount < PRESENTEVENT_CIRCULAR_BUFFER_SIZE; }); - index = GetRingIndex(mCompletedIndex + mCompletedCount); - mCompletedCount++; - } - // Completed present overflow routine (when not blocking): - // If the completed list is full, throw away the oldest completed present, if it IsLost; or this - // present, if it IsLost; or the oldest completed present. - else { - if (!mCompletedPresents[mCompletedIndex]->IsLost && present->IsLost) { - return; - } + // If the present has a PresentFrameType, try to merge it with an existing present first. + auto present = p; + auto presentStartTime = p->PresentStartTime; + if (present->WaitingForFrameId) { + std::unique_lock lock(mPresentEventMutex); + for (uint32_t i = mReadyCount; i < mCompletedCount; ++i) { + auto const& p2 = mCompletedPresents[GetRingIndex(mCompletedIndex + i)]; + if (p2->WaitingForFrameId && p2->ProcessId == present->ProcessId) { + VerboseTraceBeforeModifyingPresent(p2.get()); + if (p2->FrameId == present->FrameId) { + p2->Displayed.insert(p2->Displayed.end(), present->Displayed.begin(), present->Displayed.end()); + if (p2->InputTime < present->InputTime || p2->MouseClickTime < present->MouseClickTime) { + p2->InputTime = present->InputTime; + p2->MouseClickTime = present->MouseClickTime; + p2->InputType = present->InputType; + } + present = nullptr; + break; + } - index = mCompletedIndex; - mCompletedIndex = GetRingIndex(mCompletedIndex + 1); - if (mReadyCount > 0) { - mReadyCount--; + p2->WaitingForFrameId = false; } } - // otherwise, completed buffer still has available space - } else { - index = GetRingIndex(mCompletedIndex + mCompletedCount); - mCompletedCount++; } - mCompletedPresents[index] = present; - - // update ready count WITHOUT locking mutex as it is already locked here - UpdateReadyCount(present, false); + // lock mutex across this sequence: + // 1) add present to completed 2) update ready count 3) clear out stale deferred frames + { + std::unique_lock lock(mPresentEventMutex); + + // Add the present to the completed list + if (present != nullptr) { + uint32_t index; + // if completed buffer is full + if (mCompletedCount == PRESENTEVENT_CIRCULAR_BUFFER_SIZE) { + // if we are in offline ETL processing mode, block instead of overwriting events + // unless either A) the buffer is full of non-ready events or B) backpressure disabled via CLI option + if (!mIsRealtimeSession && mReadyCount != 0 && !mDisableOfflineBackpressure) { + mCompletedRingCondition.wait(lock, [this] { return mCompletedCount < PRESENTEVENT_CIRCULAR_BUFFER_SIZE; }); + index = GetRingIndex(mCompletedIndex + mCompletedCount); + mCompletedCount++; + } + // Completed present overflow routine (when not blocking): + // If the completed list is full, throw away the oldest completed present, if it IsLost; or this + // present, if it IsLost; or the oldest completed present. + else { + if (!mCompletedPresents[mCompletedIndex]->IsLost && present->IsLost) { + return; + } - // It's possible for a deferred condition to never be cleared. e.g., a process' last present - // doesn't get a Present_Stop event. When this happens the deferred present will prevent all - // subsequent presents from other processes from being dequeued until the ring buffer wraps and - // forces it out, which is likely longer than we want to wait. So we check here if there is - // a stuck deferred present and clear the deferral if it gets too old. - if (mReadyCount == 0 && mCompletedCount > 0) { - auto const& deferredPresent = mCompletedPresents[mCompletedIndex]; - if (present->PresentStartTime >= deferredPresent->PresentStartTime && - present->PresentStartTime - deferredPresent->PresentStartTime > mDeferralTimeLimit) { - VerboseTraceBeforeModifyingPresent(deferredPresent.get()); - deferredPresent->IsLost = true; - deferredPresent->WaitingForPresentStop = false; - deferredPresent->WaitingForFlipFrameType = false; - // UpdateReadyCount also locks the mPresentEventMutex so unlock here - lock.unlock(); - UpdateReadyCount(deferredPresent, false); + index = mCompletedIndex; + mCompletedIndex = GetRingIndex(mCompletedIndex + 1); + if (mReadyCount > 0) { + mReadyCount--; + } + } + // otherwise, completed buffer still has available space + } + else { + index = GetRingIndex(mCompletedIndex + mCompletedCount); + mCompletedCount++; + } + // place the present in the completed presents ring buffer + mCompletedPresents[index] = present; + } + + // Update the ready count (do not lock mutex in this function, already locked) + UpdateReadyCount(false); + + // clear out stale deferred frames + // It's possible for a deferred condition to never be cleared. e.g., a process' last present + // doesn't get a Present_Stop event. When this happens the deferred present will prevent all + // subsequent presents from other processes from being dequeued until the ring buffer wraps and + // forces it out, which is likely longer than we want to wait. So we check here if there is + // a stuck deferred present and clear the deferral if it gets too old. + if (mReadyCount == 0 && mCompletedCount > 0) { + auto const& deferredPresent = mCompletedPresents[mCompletedIndex]; + if (presentStartTime >= deferredPresent->PresentStartTime && + presentStartTime - deferredPresent->PresentStartTime > mDeferralTimeLimit) { + VerboseTraceBeforeModifyingPresent(deferredPresent.get()); + if (deferredPresent->WaitingForPresentStop) { + deferredPresent->WaitingForPresentStop = false; + deferredPresent->IsLost = true; + } + deferredPresent->WaitingForFlipFrameType = false; + StopTrackingPresent(deferredPresent); + UpdateReadyCount(false); + } } } } -void PMTraceConsumer::UpdateReadyCount(std::shared_ptr const& present, bool useLock) +void PMTraceConsumer::UpdateReadyCount(bool useLock) { - if (!present->WaitingForPresentStop && - !present->WaitingForFlipFrameType) { - - StopTrackingPresent(present); - - bool newPresentsReady = false; - { - std::unique_lock lck{ mPresentEventMutex, std::defer_lock }; - if (useLock) { - lck.lock(); - } - else { - assert(!lck.try_lock()); - } - - uint32_t i = GetRingIndex(mCompletedIndex + mReadyCount); - if (present == mCompletedPresents[i]) { - DebugAssert(mReadyCount < mCompletedCount); - do { - mReadyCount += 1; - newPresentsReady = true; - i = GetRingIndex(i + 1); - } while (mReadyCount < mCompletedCount && !mCompletedPresents[i]->WaitingForPresentStop - && !mCompletedPresents[i]->WaitingForFlipFrameType); - } + bool newPresentsReady = false; + { + std::unique_lock lck{ mPresentEventMutex, std::defer_lock }; + if (useLock) { + lck.lock(); } - if (newPresentsReady) { - SignalEventsReady(); + else { + assert(!lck.try_lock()); + } + for (; mReadyCount < mCompletedCount; ++mReadyCount) { + newPresentsReady = true; + auto const& p = mCompletedPresents[GetRingIndex(mCompletedIndex + mReadyCount)]; + if (p->WaitingForPresentStop || + p->WaitingForFlipFrameType || + p->WaitingForFrameId) { + break; + } } } + if (newPresentsReady) { + SignalEventsReady(); + } } void PMTraceConsumer::SetThreadPresent(uint32_t threadId, std::shared_ptr const& present) @@ -2179,6 +2285,16 @@ void PMTraceConsumer::RuntimePresentStart(Runtime runtime, EVENT_HEADER const& h present->SwapChainAddress = swapchainAddr; present->PresentFlags = dxgiPresentFlags; present->SyncInterval = syncInterval; + + present->AppFrameId = 0; + present->AppSleepStartTime = 0; + present->AppSleepEndTime = 0; + present->AppSimStartTime = 0; + present->AppSimEndTime = 0; + present->AppRenderSubmitStartTime = 0; + present->AppRenderSubmitEndTime = 0; + present->AppPresentStartTime = 0; + present->AppPresentEndTime = 0; ApplyPresentFrameType(present); @@ -2198,6 +2314,30 @@ void PMTraceConsumer::RuntimePresentStop(Runtime runtime, EVENT_HEADER const& hd } auto present = eventIter->second; + if (mNextAppFrameId != 0) { + auto ii = mPendingAppTimingDataByAppFrameId.find(mNextAppFrameId); + if (ii != mPendingAppTimingDataByAppFrameId.end()) { + if (present->ProcessId == ii->second.AppProcessId) { + present->AppFrameId = mNextAppFrameId; + present->AppSimStartTime = ii->second.AppSimStartTime; + present->AppSimEndTime = ii->second.AppSimEndTime; + present->AppSleepStartTime = ii->second.AppSleepStartTime; + present->AppSleepEndTime = ii->second.AppSleepEndTime; + present->AppRenderSubmitStartTime = ii->second.AppRenderSubmitStartTime; + present->AppRenderSubmitEndTime = ii->second.AppRenderSubmitEndTime; + present->AppPresentStartTime = ii->second.AppPresentStartTime; + present->AppPresentEndTime = ii->second.AppPresentEndTime; + present->AppInputSample.first = ii->second.AppInputSample.first; + present->AppInputSample.second = ii->second.AppInputSample.second; + // Will no longer track the pending timing data as now we have + // a present event for tracking the app provider data + mPendingAppTimingDataByAppFrameId.erase(ii); + // Start tracking using the app frame id to this present + mPresentByAppFrameId.emplace(mNextAppFrameId, present); + } + } + } + // Set the runtime and Present_Stop time. VerboseTraceBeforeModifyingPresent(present.get()); present->Runtime = runtime; @@ -2206,9 +2346,11 @@ void PMTraceConsumer::RuntimePresentStop(Runtime runtime, EVENT_HEADER const& hd // If this present completed early and was deferred until the Present_Stop, then no more // analysis is needed; we just clear the deferral. if (present->WaitingForPresentStop) { + VerboseTraceBeforeModifyingPresent(present.get()); present->WaitingForPresentStop = false; + mPresentByThreadId.erase(eventIter); - UpdateReadyCount(present, true); + UpdateReadyCount(true); return; } @@ -2332,6 +2474,304 @@ void PMTraceConsumer::HandleProcessEvent(EVENT_RECORD* pEventRecord) SignalEventsReady(); } +InputDeviceType ConvertIntelProviderInputTypes(Intel_PresentMon::InputType ipmInputType) { + switch (ipmInputType) { + case Intel_PresentMon::InputType::Unspecified: return InputDeviceType::Unknown; + case Intel_PresentMon::InputType::MouseClick: return InputDeviceType::Mouse; + case Intel_PresentMon::InputType::KeyboardClick: return InputDeviceType::Keyboard; + } + DebugAssert(false); + return InputDeviceType::Unknown; +} + +bool PMTraceConsumer::UpdateAppTimingPresent(const EVENT_RECORD* pEventRecord) { + switch (pEventRecord->EventHeader.EventDescriptor.Id) { + case Intel_PresentMon::AppSleepStart_Info::Id: { + DebugAssert(pEventRecord->UserDataLength == sizeof(Intel_PresentMon::AppSleepStart_Info_Props)); + auto props = (Intel_PresentMon::AppSleepStart_Info_Props*)pEventRecord->UserData; + auto timestamp = pEventRecord->EventHeader.TimeStamp.QuadPart; + auto ii = mPresentByAppFrameId.find(props->FrameId); + if (ii != mPresentByAppFrameId.end()) { + DebugAssert(ii->second->ProcessId == pEventRecord->EventHeader.ProcessId); + ii->second->AppSleepStartTime = timestamp; + return true; + } + } + return false; + case Intel_PresentMon::AppSleepEnd_Info::Id: { + DebugAssert(pEventRecord->UserDataLength == sizeof(Intel_PresentMon::AppSleepEnd_Info_Props)); + auto props = (Intel_PresentMon::AppSleepEnd_Info_Props*)pEventRecord->UserData; + auto timestamp = pEventRecord->EventHeader.TimeStamp.QuadPart; + auto ii = mPresentByAppFrameId.find(props->FrameId); + if (ii != mPresentByAppFrameId.end()) { + DebugAssert(ii->second->ProcessId == pEventRecord->EventHeader.ProcessId); + ii->second->AppSleepEndTime = timestamp; + return true; + } + } + return false; + case Intel_PresentMon::AppSimulationStart_Info::Id: { + DebugAssert(pEventRecord->UserDataLength == sizeof(Intel_PresentMon::AppSimulationStart_Info_Props)); + auto props = (Intel_PresentMon::AppSimulationStart_Info_Props*)pEventRecord->UserData; + auto timestamp = pEventRecord->EventHeader.TimeStamp.QuadPart; + auto ii = mPresentByAppFrameId.find(props->FrameId); + if (ii != mPresentByAppFrameId.end()) { + DebugAssert(ii->second->ProcessId == pEventRecord->EventHeader.ProcessId); + ii->second->AppSimStartTime = timestamp; + return true; + } + } + return false; + case Intel_PresentMon::AppSimulationEnd_Info::Id: { + DebugAssert(pEventRecord->UserDataLength == sizeof(Intel_PresentMon::AppSimulationEnd_Info_Props)); + auto props = (Intel_PresentMon::AppSimulationEnd_Info_Props*)pEventRecord->UserData; + auto timestamp = pEventRecord->EventHeader.TimeStamp.QuadPart; + auto ii = mPresentByAppFrameId.find(props->FrameId); + if (ii != mPresentByAppFrameId.end()) { + DebugAssert(ii->second->ProcessId == pEventRecord->EventHeader.ProcessId); + ii->second->AppSimEndTime = timestamp; + return true; + } + } + return false; + case Intel_PresentMon::AppRenderSubmitStart_Info::Id: { + DebugAssert(pEventRecord->UserDataLength == sizeof(Intel_PresentMon::AppRenderSubmitStart_Info_Props)); + auto props = (Intel_PresentMon::AppRenderSubmitStart_Info_Props*)pEventRecord->UserData; + auto timestamp = pEventRecord->EventHeader.TimeStamp.QuadPart; + auto ii = mPresentByAppFrameId.find(props->FrameId); + if (ii != mPresentByAppFrameId.end()) { + DebugAssert(ii->second->ProcessId == pEventRecord->EventHeader.ProcessId); + ii->second->AppRenderSubmitStartTime = timestamp; + return true; + } + } + return false; + case Intel_PresentMon::AppRenderSubmitEnd_Info::Id: { + DebugAssert(pEventRecord->UserDataLength == sizeof(Intel_PresentMon::AppRenderSubmitEnd_Info_Props)); + auto props = (Intel_PresentMon::AppRenderSubmitStart_Info_Props*)pEventRecord->UserData; + auto timestamp = pEventRecord->EventHeader.TimeStamp.QuadPart; + auto ii = mPresentByAppFrameId.find(props->FrameId); + if (ii != mPresentByAppFrameId.end()) { + DebugAssert(ii->second->ProcessId == pEventRecord->EventHeader.ProcessId); + ii->second->AppRenderSubmitEndTime = timestamp; + return true; + } + } + return false; + case Intel_PresentMon::AppPresentStart_Info::Id: { + // The Present Start event is what we use to set the next + // app frame id on Present start. + } + return false; + case Intel_PresentMon::AppPresentEnd_Info::Id: { + DebugAssert(pEventRecord->UserDataLength == sizeof(Intel_PresentMon::AppPresentEnd_Info_Props)); + auto props = (Intel_PresentMon::AppPresentEnd_Info_Props*)pEventRecord->UserData; + auto timestamp = pEventRecord->EventHeader.TimeStamp.QuadPart; + auto ii = mPresentByAppFrameId.find(props->FrameId); + if (ii != mPresentByAppFrameId.end()) { + DebugAssert(ii->second->ProcessId == pEventRecord->EventHeader.ProcessId); + ii->second->AppPresentEndTime = timestamp; + return true; + } + } + return false; + case Intel_PresentMon::AppInputSample_Info::Id: { + //DebugAssert(pEventRecord->UserDataLength == sizeof(Intel_PresentMon::AppInputSample_Info_Props)); + auto structSize = sizeof(Intel_PresentMon::AppInputSample_Info_Props); + if (structSize != pEventRecord->UserDataLength) { + + } + auto props = (Intel_PresentMon::AppInputSample_Info_Props*)pEventRecord->UserData; + auto timestamp = pEventRecord->EventHeader.TimeStamp.QuadPart; + auto ii = mPresentByAppFrameId.find(props->FrameId); + if (ii != mPresentByAppFrameId.end()) { + DebugAssert(ii->second->ProcessId == pEventRecord->EventHeader.ProcessId); + ii->second->AppInputSample.first = timestamp; + ii->second->AppInputSample.second = ConvertIntelProviderInputTypes(props->InputType); + return true; + } + } + return false; + } + return false; +} + +void PMTraceConsumer::UpdatePendingAppTimingData(const EVENT_RECORD* pEventRecord) { + + switch (pEventRecord->EventHeader.EventDescriptor.Id) { + case Intel_PresentMon::AppSleepStart_Info::Id: { + DebugAssert(pEventRecord->UserDataLength == sizeof(Intel_PresentMon::AppSleepStart_Info_Props)); + auto props = (Intel_PresentMon::AppSleepStart_Info_Props*)pEventRecord->UserData; + auto processId = pEventRecord->EventHeader.ProcessId; + auto timestamp = pEventRecord->EventHeader.TimeStamp.QuadPart; + auto ii = mPendingAppTimingDataByAppFrameId.find(props->FrameId); + if (ii != mPendingAppTimingDataByAppFrameId.end()) { + DebugAssert(ii->second.AppProcessId == processId); + ii->second.AppSleepStartTime = timestamp; + } + else { + AppTimingData data; + data.AppSleepStartTime = timestamp; + data.AppProcessId = processId; + mPendingAppTimingDataByAppFrameId.emplace(props->FrameId, data); + } + } + return; + case Intel_PresentMon::AppSleepEnd_Info::Id: { + DebugAssert(pEventRecord->UserDataLength == sizeof(Intel_PresentMon::AppSleepEnd_Info_Props)); + auto props = (Intel_PresentMon::AppSleepEnd_Info_Props*)pEventRecord->UserData; + auto processId = pEventRecord->EventHeader.ProcessId; + auto timestamp = pEventRecord->EventHeader.TimeStamp.QuadPart; + auto ii = mPendingAppTimingDataByAppFrameId.find(props->FrameId); + if (ii != mPendingAppTimingDataByAppFrameId.end()) { + DebugAssert(ii->second.AppProcessId == processId); + ii->second.AppSleepEndTime = timestamp; + } + else { + AppTimingData data; + data.AppSleepEndTime = timestamp; + data.AppProcessId = processId; + mPendingAppTimingDataByAppFrameId.emplace(props->FrameId, data); + } + } + return; + case Intel_PresentMon::AppSimulationStart_Info::Id: { + DebugAssert(pEventRecord->UserDataLength == sizeof(Intel_PresentMon::AppSimulationStart_Info_Props)); + auto props = (Intel_PresentMon::AppSimulationStart_Info_Props*)pEventRecord->UserData; + auto processId = pEventRecord->EventHeader.ProcessId; + auto timestamp = pEventRecord->EventHeader.TimeStamp.QuadPart; + auto ii = mPendingAppTimingDataByAppFrameId.find(props->FrameId); + if (ii != mPendingAppTimingDataByAppFrameId.end()) { + DebugAssert(ii->second.AppProcessId == processId); + ii->second.AppSimStartTime = timestamp; + } + else { + AppTimingData data; + data.AppSimStartTime = timestamp; + data.AppProcessId = processId; + mPendingAppTimingDataByAppFrameId.emplace(props->FrameId, data); + } + } + return; + case Intel_PresentMon::AppSimulationEnd_Info::Id: { + DebugAssert(pEventRecord->UserDataLength == sizeof(Intel_PresentMon::AppSimulationEnd_Info_Props)); + auto props = (Intel_PresentMon::AppSimulationEnd_Info_Props*)pEventRecord->UserData; + auto processId = pEventRecord->EventHeader.ProcessId; + auto timestamp = pEventRecord->EventHeader.TimeStamp.QuadPart; + auto ii = mPendingAppTimingDataByAppFrameId.find(props->FrameId); + if (ii != mPendingAppTimingDataByAppFrameId.end()) { + DebugAssert(ii->second.AppProcessId == processId); + ii->second.AppSimEndTime = timestamp; + } + else { + AppTimingData data; + data.AppSimEndTime = timestamp; + data.AppProcessId = processId; + mPendingAppTimingDataByAppFrameId.emplace(props->FrameId, data); + } + } + return; + case Intel_PresentMon::AppRenderSubmitStart_Info::Id: { + DebugAssert(pEventRecord->UserDataLength == sizeof(Intel_PresentMon::AppRenderSubmitStart_Info_Props)); + auto props = (Intel_PresentMon::AppRenderSubmitStart_Info_Props*)pEventRecord->UserData; + auto processId = pEventRecord->EventHeader.ProcessId; + auto timestamp = pEventRecord->EventHeader.TimeStamp.QuadPart; + auto ii = mPendingAppTimingDataByAppFrameId.find(props->FrameId); + if (ii != mPendingAppTimingDataByAppFrameId.end()) { + DebugAssert(ii->second.AppProcessId == processId); + ii->second.AppRenderSubmitStartTime = timestamp; + } + else { + AppTimingData data; + data.AppRenderSubmitStartTime = timestamp; + data.AppProcessId = processId; + mPendingAppTimingDataByAppFrameId.emplace(props->FrameId, data); + } + } + return; + case Intel_PresentMon::AppRenderSubmitEnd_Info::Id: { + DebugAssert(pEventRecord->UserDataLength == sizeof(Intel_PresentMon::AppRenderSubmitEnd_Info_Props)); + auto props = (Intel_PresentMon::AppRenderSubmitStart_Info_Props*)pEventRecord->UserData; + auto processId = pEventRecord->EventHeader.ProcessId; + auto timestamp = pEventRecord->EventHeader.TimeStamp.QuadPart; + auto ii = mPendingAppTimingDataByAppFrameId.find(props->FrameId); + if (ii != mPendingAppTimingDataByAppFrameId.end()) { + DebugAssert(ii->second.AppProcessId == processId); + ii->second.AppRenderSubmitEndTime = timestamp; + } + else { + AppTimingData data; + data.AppRenderSubmitEndTime = timestamp; + data.AppProcessId = processId; + mPendingAppTimingDataByAppFrameId.emplace(props->FrameId, data); + } + } + return; + case Intel_PresentMon::AppPresentStart_Info::Id: { + DebugAssert(pEventRecord->UserDataLength == sizeof(Intel_PresentMon::AppPresentStart_Info_Props)); + auto props = (Intel_PresentMon::AppPresentStart_Info_Props*)pEventRecord->UserData; + auto processId = pEventRecord->EventHeader.ProcessId; + auto timestamp = pEventRecord->EventHeader.TimeStamp.QuadPart; + // Save off the application frame id for next created present event + mNextAppFrameId = props->FrameId; + // Add the application frame id to the save application timing data + auto ii = mPendingAppTimingDataByAppFrameId.find(props->FrameId); + if (ii != mPendingAppTimingDataByAppFrameId.end()) { + DebugAssert(ii->second.AppProcessId == processId); + ii->second.AppPresentStartTime = timestamp; + } + else { + AppTimingData data; + data.AppPresentStartTime = timestamp; + data.AppProcessId = processId; + mPendingAppTimingDataByAppFrameId.emplace(props->FrameId, data); + } + } + return; + case Intel_PresentMon::AppPresentEnd_Info::Id: { + DebugAssert(pEventRecord->UserDataLength == sizeof(Intel_PresentMon::AppPresentEnd_Info_Props)); + auto props = (Intel_PresentMon::AppPresentEnd_Info_Props*)pEventRecord->UserData; + auto processId = pEventRecord->EventHeader.ProcessId; + auto timestamp = pEventRecord->EventHeader.TimeStamp.QuadPart; + auto ii = mPendingAppTimingDataByAppFrameId.find(props->FrameId); + if (ii != mPendingAppTimingDataByAppFrameId.end()) { + DebugAssert(ii->second.AppProcessId == processId); + ii->second.AppPresentEndTime = timestamp; + } + else { + AppTimingData data; + data.AppPresentEndTime = timestamp; + data.AppProcessId = processId; + mPendingAppTimingDataByAppFrameId.emplace(props->FrameId, data); + } + } + return; + case Intel_PresentMon::AppInputSample_Info::Id: { + //DebugAssert(pEventRecord->UserDataLength == sizeof(Intel_PresentMon::AppInputSample_Info_Props)); + auto props = (Intel_PresentMon::AppInputSample_Info_Props*)pEventRecord->UserData; + auto processId = pEventRecord->EventHeader.ProcessId; + auto timestamp = pEventRecord->EventHeader.TimeStamp.QuadPart; + auto ii = mPendingAppTimingDataByAppFrameId.find(props->FrameId); + if (ii != mPendingAppTimingDataByAppFrameId.end()) { + DebugAssert(ii->second.AppProcessId == processId); + ii->second.AppInputSample.first = timestamp; + ii->second.AppInputSample.second = ConvertIntelProviderInputTypes(props->InputType); + } + else { + AppTimingData data; + data.AppInputSample.first = timestamp; + data.AppProcessId = processId; + //data.AppInputSample.second = ConvertIntelProviderInputTypes(props->InputType); + //mPendingAppTimingDataByAppFrameId.emplace(props->FrameId, data); + // These are coming in backwards for xell 0.9.1 + data.AppInputSample.second = ConvertIntelProviderInputTypes((Intel_PresentMon::InputType)props->FrameId); + mPendingAppTimingDataByAppFrameId.emplace((uint32_t)props->InputType, data); + } + } + return; + } +} + void PMTraceConsumer::HandleIntelPresentMonEvent(EVENT_RECORD* pEventRecord) { if (mTrackFrameType) { @@ -2369,12 +2809,48 @@ void PMTraceConsumer::HandleIntelPresentMonEvent(EVENT_RECORD* pEventRecord) auto jj = present->PresentIds.find(vidPnLayerId); if (jj == present->PresentIds.end() || jj->second != props->PresentId) { DeferFlipFrameType(vidPnLayerId, props->PresentId, timestamp, frameType); - return; + } else { + ApplyFlipFrameType(present, timestamp, frameType); } + } + return; + } + } - // Create a PresentEvent for this flip time - ApplyFlipFrameType(present, timestamp, frameType); - } + if (mTrackPMMeasurements) { + switch (pEventRecord->EventHeader.EventDescriptor.Id) { + case Intel_PresentMon::MeasuredInput_Info::Id: { + EventDataDesc desc[] = { + { L"InputType" }, + { L"Time" }, + }; + mMetadata.GetEventData(pEventRecord, desc, _countof(desc)); + auto InputType = desc[0].GetData(); + auto Time = desc[1].GetData(); + + (void) InputType, Time; + // TODO + + } return; + + case Intel_PresentMon::MeasuredScreenChange_Info::Id: { + EventDataDesc desc[] = { + { L"Time" }, + }; + mMetadata.GetEventData(pEventRecord, desc, _countof(desc)); + auto Time = desc[0].GetData(); + + (void) Time; + // TODO + + } return; + } + } + + + if (mTrackAppTiming) { + if (!UpdateAppTimingPresent(pEventRecord)) { + UpdatePendingAppTimingData(pEventRecord); return; } } @@ -2402,31 +2878,29 @@ void PMTraceConsumer::ApplyFlipFrameType( uint64_t timestamp, FrameType frameType) { - // Create a copy of the present for this flip to add to the complete list, and mark the base - // present as lost. - auto copy = std::make_shared(); - *copy = *present; - copy->IsLost = false; - copy->WaitingForFlipFrameType = false; + DebugAssert(frameType != FrameType::NotSet); - VerboseTraceBeforeModifyingPresent(present.get()); - present->IsLost = true; - - VerboseTraceBeforeModifyingPresent(copy.get()); - copy->ScreenTime = timestamp; - copy->FrameType = frameType; - copy->FinalState = PresentResult::Presented; + for (auto p2 : present->DependentPresents) { + if (p2->FinalState != PresentResult::Discarded) { + VerboseTraceBeforeModifyingPresent(p2.get()); + SetScreenTime(p2, timestamp, frameType); + } + } - AddPresentToCompletedList(copy); + VerboseTraceBeforeModifyingPresent(present.get()); + SetScreenTime(present, timestamp, frameType); } void PMTraceConsumer::ApplyPresentFrameType( std::shared_ptr const& present) { + DebugAssert(present->Displayed.empty()); + auto ii = mPendingPresentFrameTypeEvents.find(present->ThreadId); if (ii != mPendingPresentFrameTypeEvents.end()) { - present->FrameId = ii->second.FrameId; - present->FrameType = ii->second.FrameType; + present->FrameId = ii->second.FrameId; + present->Displayed.emplace_back(ii->second.FrameType, 0); + present->WaitingForFrameId = true; mPendingPresentFrameTypeEvents.erase(ii); } } @@ -2497,7 +2971,3 @@ void PMTraceConsumer::DequeuePresentEvents(std::vector AppInputSample = { 0, InputDeviceType::None }; +}; + // A ProcessEvent occurs whenever a Process starts or stops. struct ProcessEvent { std::wstring ImageFileName; // The name of the process exe file. This is only available on process start events. @@ -171,15 +185,28 @@ struct PresentEvent { uint64_t GPUDuration; // QPC duration during which a frame's DMA packet was running on // ... any node (if mTrackGPUVideo==false) or non-video nodes (if mTrackGPUVideo==true) uint64_t GPUVideoDuration; // QPC duration during which a frame's DMA packet was running on a video node (if mTrackGPUVideo==true) - uint64_t ScreenTime; // QPC value when the present was displayed on screen uint64_t InputTime; // Earliest QPC value when the keyboard/mouse were tapped/moved and used by this frame uint64_t MouseClickTime; // Earliest QPC value when the mouse was clicked and used by this frame + uint32_t AppFrameId; + uint64_t AppSleepStartTime; // QPC value of app sleep start time provided by Intel App Provider + uint64_t AppSleepEndTime; // QPC value of app sleep end time provided by Intel App Provider + uint64_t AppSimStartTime; // QPC value of app sim start time provided by Intel App Provider + uint64_t AppSimEndTime; // QPC value of app sim end time provided by Intel App Provider + uint64_t AppRenderSubmitStartTime; // QPC value of app render submit start time provided by Intel App Provider + uint64_t AppRenderSubmitEndTime; // QPC value of app render submit end time provided by Intel App Provider + uint64_t AppPresentStartTime; // QPC value of app present start time provided by Intel App Provider + uint64_t AppPresentEndTime; // QPC value of app present end time provided by Intel App Provider + std::pair AppInputSample; // QPC value of app input data provided by Intel App Provider + // Extra present parameters obtained through DXGI or D3D9 present uint64_t SwapChainAddress; int32_t SyncInterval; uint32_t PresentFlags; + // (FrameType, DisplayedQPC) for each time the frame was displayed + std::vector> Displayed; + // Keys used to index into PMTraceConsumer's tracking data structures: uint64_t CompositionSurfaceLuid; // mPresentByWin32KPresentHistoryToken uint64_t Win32KPresentCount; // mPresentByWin32KPresentHistoryToken @@ -211,7 +238,6 @@ struct PresentEvent { PresentMode PresentMode; PresentResult FinalState; InputDeviceType InputType; - FrameType FrameType; bool SupportsTearing; bool WaitForFlipEvent; bool WaitForMPOFlipEvent; @@ -233,8 +259,16 @@ struct PresentEvent { bool WaitingForPresentStop; // If WaitingForFlipFrameType, the present is waiting for a FlipFrameType event (or, until an - // MMIOFlipMultiPlaneOverlay3_Info event signals a higher present id). + // MMIOFlipMultiPlaneOverlay3_Info event signals a higher present id). If + // DoneWaitingForFlipFrameType, then the present did WaitingForFlipFrameType but is no longer + // waiting. bool WaitingForFlipFrameType; + bool DoneWaitingForFlipFrameType; + + // If WaitingForFrameId, the present is waiting for another present with the same FrameId (or, + // until a PresentFrameType_Info event with a different FrameId). + bool WaitingForFrameId; + PresentEvent(); private: @@ -251,11 +285,13 @@ struct PMTraceConsumer bool mFilteredProcessIds = false; // Whether to filter presents to specific processes // Whether the analysis should track... - bool mTrackDisplay = true; // ... presents to the display. - bool mTrackGPU = false; // ... GPU work. - bool mTrackGPUVideo = false; // ... GPU video work (separately from non-video GPU work). - bool mTrackInput = false; // ... keyboard/mouse latency. - bool mTrackFrameType = false; // ... the frame type communicated through the Intel-PresentMon provider. + bool mTrackDisplay = true; // ... presents to the display. + bool mTrackGPU = false; // ... GPU work. + bool mTrackGPUVideo = false; // ... GPU video work (separately from non-video GPU work). + bool mTrackInput = false; // ... keyboard/mouse latency. + bool mTrackFrameType = false; // ... the frame type communicated through the Intel-PresentMon provider. + bool mTrackPMMeasurements = false; // ... external measurements provided through the Intel-PresentMon provider + bool mTrackAppTiming = false; // ... app timing data communicated through the Intel-PresentMon provider. // When PresentEvents are missing data that may still arrive later, they get put into a deferred // state until the data arrives. This time limit specifies how long a PresentEvent can be @@ -299,6 +335,7 @@ struct PMTraceConsumer uint32_t mCompletedIndex = 0; // The index of mCompletedPresents of the oldest completed present. uint32_t mCompletedCount = 0; // The total number of presents in mCompletedPresents. uint32_t mReadyCount = 0; // The number of presents in mCompletedPresents, starting at mCompletedIndex, that are ready to be dequeued. + uint32_t mNextAppFrameId = 0; // If not zero, the application frame id when creating the next present // Mutexs to protect consumer/dequeue access from different threads: std::mutex mProcessEventMutex; @@ -397,8 +434,9 @@ struct PMTraceConsumer std::unordered_map> mPresentByDxgkContext; // DxgkContex -> PresentEvent std::unordered_map> mPresentByVidPnLayerId; // VidPnLayerId -> PresentEvent std::unordered_map> mLastPresentByWindow; // HWND -> PresentEvent - std::unordered_map mReceivedMouseClickByHwnd; // HWND -> MouseClickData + std::unordered_map> mPresentByAppFrameId; // Intel provider app frame id -> PresentEvent + std::unordered_map mPendingAppTimingDataByAppFrameId; // Intel provider app frame id -> AppTimingData // mGpuTrace tracks work executed on the GPU. GpuTrace mGpuTrace; @@ -442,7 +480,7 @@ struct PMTraceConsumer PMTraceConsumer& operator=(PMTraceConsumer&&) = delete; void HandleDxgkBlt(EVENT_HEADER const& hdr, uint64_t hwnd, bool redirectedPresent); - void HandleDxgkFlip(EVENT_HEADER const& hdr, int32_t flipInterval, bool isMMIOFlip, bool isMPOFlip); + std::shared_ptr HandleDxgkFlip(EVENT_HEADER const& hdr); void HandleDxgkQueueSubmit(EVENT_HEADER const& hdr, uint64_t hContext, uint32_t submitSequence, uint32_t packetType, bool isPresentPacket, bool isWin7); void HandleDxgkQueueComplete(uint64_t timestamp, uint64_t hContext, uint32_t submitSequence); void HandleDxgkMMIOFlip(uint64_t timestamp, uint32_t submitSequence, uint32_t flags); @@ -481,12 +519,13 @@ struct PMTraceConsumer void CompletePresent(std::shared_ptr const& present); void RemoveLostPresent(std::shared_ptr present); - void AddPresentToCompletedList(std::shared_ptr const& present); - void UpdateReadyCount(std::shared_ptr const& present, bool useLock); + void UpdateReadyCount(bool useLock); void DeferFlipFrameType(uint64_t vidPnLayerId, uint64_t presentId, uint64_t timestamp, FrameType frameType); void ApplyFlipFrameType(std::shared_ptr const& present, uint64_t timestamp, FrameType frameType); void ApplyPresentFrameType(std::shared_ptr const& present); + void UpdatePendingAppTimingData(const EVENT_RECORD* pEventRecord); + bool UpdateAppTimingPresent(const EVENT_RECORD* pEventRecord); void SignalEventsReady(); }; diff --git a/PresentData/PresentMonTraceSession.cpp b/PresentData/PresentMonTraceSession.cpp index 3f8d45ff..dccad47d 100644 --- a/PresentData/PresentMonTraceSession.cpp +++ b/PresentData/PresentMonTraceSession.cpp @@ -348,14 +348,30 @@ ULONG EnableProviders( if (status != ERROR_SUCCESS) return status; // Intel_PresentMon - if (pmConsumer->mTrackFrameType) { + if (pmConsumer->mTrackFrameType || pmConsumer->mTrackPMMeasurements || pmConsumer->mTrackAppTiming) { provider.ClearFilter(); - provider.AddEvent(); - provider.AddEvent(); + if (pmConsumer->mTrackFrameType) { + provider.AddEvent(); + provider.AddEvent(); + } + if (pmConsumer->mTrackPMMeasurements) { + provider.AddEvent(); + provider.AddEvent(); + } + if (pmConsumer->mTrackAppTiming) { + provider.AddEvent(); + provider.AddEvent(); + provider.AddEvent(); + provider.AddEvent(); + provider.AddEvent(); + provider.AddEvent(); + provider.AddEvent(); + provider.AddEvent(); + provider.AddEvent(); + } status = provider.Enable(sessionHandle, Intel_PresentMon::GUID); if (status != ERROR_SUCCESS) return status; } - return ERROR_SUCCESS; } @@ -561,7 +577,7 @@ ULONG PMTraceSession::Start( mIsRealtimeSession, // IS_REALTIME_SESSION mPMConsumer->mTrackDisplay, // TRACK_DISPLAY mPMConsumer->mTrackInput, // TRACK_INPUT - mPMConsumer->mTrackFrameType); // TRACK_PRESENTMON + mPMConsumer->mTrackFrameType || mPMConsumer->mTrackPMMeasurements || mPMConsumer->mTrackAppTiming); // TRACK_PRESENTMON mTraceHandle = OpenTraceW(&traceProps); if (mTraceHandle == INVALID_PROCESSTRACE_HANDLE) { diff --git a/PresentMon.props b/PresentMon.props index d1aa57c4..9644f78d 100644 --- a/PresentMon.props +++ b/PresentMon.props @@ -2,7 +2,7 @@ - dev + 2.3.0 $(Platform) diff --git a/PresentMon.sln b/PresentMon.sln index 1ae453b1..338ffd7c 100644 --- a/PresentMon.sln +++ b/PresentMon.sln @@ -95,6 +95,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CommonUtilities", "IntelPre EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Provider", "Provider\Provider.vcxproj", "{807370FB-ADE0-403A-A278-DF50893E5F94}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Versioning", "IntelPresentMon\Versioning\Versioning.vcxproj", "{C73AA532-E532-4D93-9279-905444653C08}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|x64 = Debug|x64 @@ -390,6 +392,15 @@ Global {807370FB-ADE0-403A-A278-DF50893E5F94}.Release-EDSS|x64.Build.0 = Release|x64 {807370FB-ADE0-403A-A278-DF50893E5F94}.Release-EDSS|x86.ActiveCfg = Release|Win32 {807370FB-ADE0-403A-A278-DF50893E5F94}.Release-EDSS|x86.Build.0 = Release|Win32 + {C73AA532-E532-4D93-9279-905444653C08}.Debug|x64.ActiveCfg = Debug|x64 + {C73AA532-E532-4D93-9279-905444653C08}.Debug|x64.Build.0 = Debug|x64 + {C73AA532-E532-4D93-9279-905444653C08}.Debug|x86.ActiveCfg = Debug|x64 + {C73AA532-E532-4D93-9279-905444653C08}.Release|x64.ActiveCfg = Release|x64 + {C73AA532-E532-4D93-9279-905444653C08}.Release|x64.Build.0 = Release|x64 + {C73AA532-E532-4D93-9279-905444653C08}.Release|x86.ActiveCfg = Release|x64 + {C73AA532-E532-4D93-9279-905444653C08}.Release-EDSS|x64.ActiveCfg = Release|x64 + {C73AA532-E532-4D93-9279-905444653C08}.Release-EDSS|x64.Build.0 = Release|x64 + {C73AA532-E532-4D93-9279-905444653C08}.Release-EDSS|x86.ActiveCfg = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -424,6 +435,7 @@ Global {F612934B-9333-4628-9076-7DFE0B5C3E0C} = {6DCB803B-9FCE-456C-87B9-1365F59BD190} {08A704D8-CA1C-45E9-8EDE-542A1A43B53E} = {B4CC5828-9638-42EC-A692-E81E8227DD84} {807370FB-ADE0-403A-A278-DF50893E5F94} = {61877103-313D-4140-8449-834D5D73C72E} + {C73AA532-E532-4D93-9279-905444653C08} = {B4CC5828-9638-42EC-A692-E81E8227DD84} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {485BBDCE-E37E-4C3F-A336-A96029B45E1B} diff --git a/PresentMon/CommandLine.cpp b/PresentMon/CommandLine.cpp index 1d48025c..3303f817 100644 --- a/PresentMon/CommandLine.cpp +++ b/PresentMon/CommandLine.cpp @@ -294,7 +294,9 @@ void PrintUsage() LR"(--terminate_after_timed)", LR"(When using --timed, terminate PresentMon after the timed capture completes.)", LR"(--Beta Options)", nullptr, - LR"(--track_frame_type)", LR"(Track the type of each displayed frame; requires application and/or driver instrumentation using Intel-PresentMon provider.)", + LR"(--track_frame_type)", LR"(Track the type of each displayed frame; requires application and/or driver instrumentation using Intel-PresentMon provider.)", + LR"(--track_hw_measurements)", LR"(Tracks HW-measured latency and/or power data coming from a LMT and/or PCAT device.)", + LR"(--track_app_timing)", LR"(Track app timines for each displayed frame; requires application and/or driver instrumentation using Intel-PresentMon provider.)", }; // Layout @@ -386,6 +388,8 @@ bool ParseCommandLine(int argc, wchar_t** argv) args->mTrackGPU = true; args->mTrackGPUVideo = false; args->mTrackFrameType = false; + args->mTrackPMMeasurements = false; + args->mTrackAppTiming = false; args->mScrollLockIndicator = false; args->mExcludeDropped = false; args->mTerminateExistingSession = false; @@ -453,7 +457,9 @@ bool ParseCommandLine(int argc, wchar_t** argv) else if (ParseArg(argv[i], L"terminate_after_timed")) { args->mTerminateAfterTimer = true; continue; } // Beta options: - else if (ParseArg(argv[i], L"track_frame_type")) { args->mTrackFrameType = true; continue; } + else if (ParseArg(argv[i], L"track_frame_type")) { args->mTrackFrameType = true; continue; } + else if (ParseArg(argv[i], L"track_hw_measurements")) { args->mTrackPMMeasurements = true; continue; } + else if (ParseArg(argv[i], L"track_app_timing")) { args->mTrackAppTiming = true; continue; } // Hidden options: #if PRESENTMON_ENABLE_DEBUG_TRACE diff --git a/PresentMon/CsvOutput.cpp b/PresentMon/CsvOutput.cpp index bcdcf374..eec5cee4 100644 --- a/PresentMon/CsvOutput.cpp +++ b/PresentMon/CsvOutput.cpp @@ -34,10 +34,16 @@ const char* RuntimeToString(Runtime rt) } } +// If frame type debug is necessary uncomment +// the following line. If we want to have +// this based on _DEBUG we will need to double +// the number of ULT cases. +// #define DEBUG_FRAME_TYPE + const char* FrameTypeToString(FrameType ft) { switch (ft) { - #ifdef _DEBUG + #ifdef DEBUG_FRAME_TYPE case FrameType::NotSet: return "NotSet"; case FrameType::Repeated: return "Repeated"; #else @@ -45,7 +51,8 @@ const char* FrameTypeToString(FrameType ft) case FrameType::Repeated: #endif case FrameType::Application: return "Application"; - case FrameType::AMD_AFMF: return "AMD_AFMF"; + case FrameType::Intel_XEFG: return "Intel XeSS-FG"; + case FrameType::AMD_AFMF: return "AMD AFMF"; } return "Unknown"; @@ -239,11 +246,11 @@ void WriteCsvRow( break; } if (args.mWriteDisplayTime) { - if (p.ScreenTime == 0) { + if (metrics.qpcScreenTime == 0) { fwprintf(fp, L",NA"); } else { - fwprintf(fp, L",%.*lf", DBL_DIG - 1, 0.001 * pmSession.TimestampToMilliSeconds(p.ScreenTime)); + fwprintf(fp, L",%.*lf", DBL_DIG - 1, 0.001 * pmSession.TimestampToMilliSeconds(metrics.qpcScreenTime)); } } if (args.mWriteFrameId) { @@ -295,17 +302,24 @@ void WriteCsvHeader(FILE* fp) if (args.mTrackDisplay) { fwprintf(fp, L",DisplayLatency" L",DisplayedTime" - L",AnimationError"); + L",AnimationError" + L",AnimationTime"); } if (args.mTrackInput) { fwprintf(fp, L",AllInputToPhotonLatency"); fwprintf(fp, L",ClickToPhotonLatency"); } + if (args.mTrackAppTiming) { + fwprintf(fp, L",InstrumentedLatency"); + } if (args.mWriteDisplayTime) { fwprintf(fp, L",DisplayTimeAbs"); } if (args.mWriteFrameId) { fwprintf(fp, L",FrameId"); + if (args.mTrackAppTiming) { + fwprintf(fp, L",AppFrameId"); + } } fwprintf(fp, L"\n"); @@ -335,7 +349,7 @@ void WriteCsvRow( PresentModeToString(p.PresentMode)); } if (args.mTrackFrameType) { - fwprintf(fp, L",%hs", FrameTypeToString(p.FrameType)); + fwprintf(fp, L",%hs", FrameTypeToString(metrics.mFrameType)); } switch (args.mTimeUnit) { case TimeUnit::MilliSeconds: @@ -360,9 +374,11 @@ void WriteCsvRow( ns); } break; } + fwprintf(fp, L",%.4lf,%.4lf,%.4lf", metrics.mCPUBusy + metrics.mCPUWait, - metrics.mCPUBusy, - metrics.mCPUWait); + metrics.mCPUBusy, + metrics.mCPUWait); + if (args.mTrackGPU) { fwprintf(fp, L",%.4lf,%.4lf,%.4lf,%.4lf", metrics.mGPULatency, metrics.mGPUBusy + metrics.mGPUWait, @@ -374,11 +390,12 @@ void WriteCsvRow( } if (args.mTrackDisplay) { if (metrics.mDisplayedTime == 0.0) { - fwprintf(fp, L",NA,NA,NA"); + fwprintf(fp, L",NA,NA,NA,NA"); } else { - fwprintf(fp, L",%.4lf,%.4lf,%.4lf", metrics.mDisplayLatency, - metrics.mDisplayedTime, - metrics.mAnimationError); + fwprintf(fp, L",%.4lf,%.4lf,%.4lf,%.4lf", metrics.mDisplayLatency, + metrics.mDisplayedTime, + metrics.mAnimationError, + metrics.mAnimationTime); } } if (args.mTrackInput) { @@ -394,16 +411,29 @@ void WriteCsvRow( fwprintf(fp, L",%.4lf", metrics.mClickToPhotonLatency); } } + if (args.mTrackAppTiming) { + if (metrics.mInstrumentedLatency == 0.0) { + fwprintf(fp, L",NA"); + } + else { + fwprintf(fp, L",%.4lf", metrics.mInstrumentedLatency); + } + } + if (args.mWriteDisplayTime) { - if (p.ScreenTime == 0) { + if (metrics.mScreenTime == 0) { fwprintf(fp, L",NA"); } else { - fwprintf(fp, L",%.4lf", pmSession.TimestampToMilliSeconds(p.ScreenTime)); + fwprintf(fp, L",%.4lf", pmSession.TimestampToMilliSeconds(metrics.mScreenTime)); } } if (args.mWriteFrameId) { fwprintf(fp, L",%u", p.FrameId); + if (args.mTrackAppTiming) { + fwprintf(fp, L",%u", p.AppFrameId); + } + } fwprintf(fp, L"\n"); diff --git a/PresentMon/MainThread.cpp b/PresentMon/MainThread.cpp index b3ae7240..c0bf7989 100644 --- a/PresentMon/MainThread.cpp +++ b/PresentMon/MainThread.cpp @@ -254,13 +254,14 @@ int wmain(int argc, wchar_t** argv) // Create event consumers PMTraceConsumer pmConsumer; - pmConsumer.mTrackDisplay = args.mTrackDisplay; - pmConsumer.mTrackGPU = args.mTrackGPU; - pmConsumer.mTrackGPUVideo = args.mTrackGPUVideo; - pmConsumer.mTrackInput = args.mTrackInput; - pmConsumer.mTrackFrameType = args.mTrackFrameType; + pmConsumer.mTrackDisplay = args.mTrackDisplay; + pmConsumer.mTrackGPU = args.mTrackGPU; + pmConsumer.mTrackGPUVideo = args.mTrackGPUVideo; + pmConsumer.mTrackInput = args.mTrackInput; + pmConsumer.mTrackFrameType = args.mTrackFrameType; + pmConsumer.mTrackPMMeasurements = args.mTrackPMMeasurements; + pmConsumer.mTrackAppTiming = args.mTrackAppTiming; pmConsumer.mDisableOfflineBackpressure = args.mDisableOfflineBackpressure; - if (args.mTargetPid != 0) { pmConsumer.mFilteredProcessIds = true; pmConsumer.AddTrackedProcessForFiltering(args.mTargetPid); diff --git a/PresentMon/OutputThread.cpp b/PresentMon/OutputThread.cpp index d7f8eea1..7d496a8f 100644 --- a/PresentMon/OutputThread.cpp +++ b/PresentMon/OutputThread.cpp @@ -238,14 +238,21 @@ static void UpdateChain( std::shared_ptr const& p) { if (p->FinalState == PresentResult::Presented) { - if (chain->mLastPresent != nullptr) { - chain->mLastDisplayedCPUStart = chain->mLastPresent->PresentStartTime + chain->mLastPresent->TimeInPresent; + if (p->AppSimStartTime != 0) { + chain->mLastDisplayedSimStartTime = p->AppSimStartTime; + if (chain->mFirstAppSimStartTime == 0) { + // Received the first app sim start time. + chain->mFirstAppSimStartTime = p->AppSimStartTime; + } + + } else if (chain->mLastPresent != nullptr) { + chain->mLastDisplayedSimStartTime = chain->mLastPresent->PresentStartTime + + chain->mLastPresent->TimeInPresent; } - chain->mLastDisplayedScreenTime = p->ScreenTime; + chain->mLastDisplayedScreenTime = p->Displayed.empty() ? 0 : p->Displayed.back().second; } chain->mLastPresent = p; - chain->mIncludeFrameData = true; } static void ReportMetrics1( @@ -258,16 +265,19 @@ static void ReportMetrics1( { bool displayed = p->FinalState == PresentResult::Presented; + uint64_t screenTime = p->Displayed.empty() ? 0 : p->Displayed[0].second; + FrameMetrics1 metrics; metrics.msBetweenPresents = chain->mLastPresent == nullptr ? 0 : pmSession.TimestampDeltaToUnsignedMilliSeconds(chain->mLastPresent->PresentStartTime, p->PresentStartTime); metrics.msInPresentApi = pmSession.TimestampDeltaToMilliSeconds(p->TimeInPresent); metrics.msUntilRenderComplete = pmSession.TimestampDeltaToMilliSeconds(p->PresentStartTime, p->ReadyTime); - metrics.msUntilDisplayed = !displayed ? 0 : pmSession.TimestampDeltaToUnsignedMilliSeconds(p->PresentStartTime, p->ScreenTime); - metrics.msBetweenDisplayChange = !displayed || chain->mLastDisplayedScreenTime == 0 ? 0 : pmSession.TimestampDeltaToUnsignedMilliSeconds(chain->mLastDisplayedScreenTime, p->ScreenTime); + metrics.msUntilDisplayed = !displayed ? 0 : pmSession.TimestampDeltaToUnsignedMilliSeconds(p->PresentStartTime, screenTime); + metrics.msBetweenDisplayChange = !displayed || chain->mLastDisplayedScreenTime == 0 ? 0 : pmSession.TimestampDeltaToUnsignedMilliSeconds(chain->mLastDisplayedScreenTime, screenTime); metrics.msUntilRenderStart = pmSession.TimestampDeltaToMilliSeconds(p->PresentStartTime, p->GPUStartTime); metrics.msGPUDuration = pmSession.TimestampDeltaToMilliSeconds(p->GPUDuration); metrics.msVideoDuration = pmSession.TimestampDeltaToMilliSeconds(p->GPUVideoDuration); metrics.msSinceInput = p->InputTime == 0 ? 0 : pmSession.TimestampDeltaToMilliSeconds(p->PresentStartTime - p->InputTime); + metrics.qpcScreenTime = screenTime; if (isRecording) { UpdateCsv(pmSession, processInfo, *p, metrics); @@ -287,122 +297,288 @@ static void ReportMetrics1( UpdateChain(chain, p); } -static void ReportMetrics( +static void CalculateAnimationTime( + PMTraceSession const& pmSession, + const uint64_t& firstAppSimStartTime, + const uint64_t& currentSimTime, + double& animationTime) { + + auto firstSimStartTime = firstAppSimStartTime != 0 ? firstAppSimStartTime : pmSession.mStartTimestamp.QuadPart; + if (currentSimTime > firstSimStartTime) { + animationTime = pmSession.TimestampDeltaToMilliSeconds(firstSimStartTime, currentSimTime); + } else { + animationTime = 0.; + } +} + +static void ReportMetricsHelper( PMTraceSession const& pmSession, ProcessInfo* processInfo, SwapChainData* chain, std::shared_ptr const& p, - std::shared_ptr const& nextPresent, PresentEvent const* nextDisplayedPresent, bool isRecording, bool computeAvg) { - // Ignore repeated frames - if (p->FrameType == FrameType::Repeated) { - if (p->FrameId == chain->mLastPresent->FrameId) { - return; + // Figure out what display index to start processing. + // + // The following cases are expected: + // p.Displayed empty and nextDisplayedPresent == nullptr: process p as not displayed + // p.Displayed with size N and nextDisplayedPresent == nullptr: process p.Displayed[0..N-2] as displayed, postponing N-1 + // p.Displayed with size N and nextDisplayedPresent != nullptr: process p.Displayed[N-1] as displayed + auto displayCount = p->Displayed.size(); + bool displayed = p->FinalState == PresentResult::Presented && displayCount > 0; + size_t displayIndex = displayed && nextDisplayedPresent != nullptr ? displayCount - 1 : 0; + + // Figure out what display index to attribute cpu work, gpu work, animation error, and input + // latency to. Start looking from the current display index. + size_t appIndex = 0; + for (size_t i = displayIndex; i < displayCount; ++i) { + if (p->Displayed[i].first == FrameType::NotSet || + p->Displayed[i].first == FrameType::Application) { + appIndex = i; + break; } + } + + do { + // PB = PresentStartTime + // PE = PresentEndTime + // D = ScreenTime + // + // chain->mLastPresent: PB--PE----D + // p: | PB--PE----D + // ... | | | | PB--PE + // nextDisplayedPresent: | | | | PB--PE----D + // | | | | | + // mCPUStart/mCPUBusy: |------->| | | | + // mCPUWait: |-->| | | + // mDisplayLatency: |----------------->| | + // mDisplayedTime: |---------------------->| + + // Lookup the ScreenTime and next ScreenTime + uint64_t screenTime = 0; + uint64_t nextScreenTime = 0; + if (displayed) { + screenTime = p->Displayed[displayIndex].second; - if (p->FrameId == nextPresent->FrameId && - nextPresent->ScreenTime != 0) { - nextPresent->ScreenTime = p->ScreenTime; - return; + if (displayIndex + 1 < displayCount) { + nextScreenTime = p->Displayed[displayIndex + 1].second; + } else if (nextDisplayedPresent != nullptr) { + nextScreenTime = nextDisplayedPresent->Displayed[0].second; + } else { + return; + } } - p->FrameType = FrameType::Application; - } + double msGPUDuration = 0.0; + + FrameMetrics metrics; + metrics.mCPUStart = chain->mLastPresent->PresentStartTime + chain->mLastPresent->TimeInPresent; + + if (displayIndex == appIndex) { + msGPUDuration = pmSession.TimestampDeltaToUnsignedMilliSeconds(p->GPUStartTime, p->ReadyTime); + metrics.mCPUBusy = pmSession.TimestampDeltaToUnsignedMilliSeconds(metrics.mCPUStart, p->PresentStartTime); + metrics.mCPUWait = pmSession.TimestampDeltaToMilliSeconds(p->TimeInPresent); + metrics.mGPULatency = pmSession.TimestampDeltaToUnsignedMilliSeconds(metrics.mCPUStart, p->GPUStartTime); + metrics.mGPUBusy = pmSession.TimestampDeltaToMilliSeconds(p->GPUDuration); + metrics.mVideoBusy = pmSession.TimestampDeltaToMilliSeconds(p->GPUVideoDuration); + metrics.mGPUWait = std::max(0.0, msGPUDuration - metrics.mGPUBusy); + // Need both AppSleepStart and AppSleepEnd to calculate XellSleep + metrics.mInstrumentedSleep = (p->AppSleepEndTime == 0 || p->AppSleepStartTime == 0) ? 0 : + pmSession.TimestampDeltaToUnsignedMilliSeconds(p->AppSleepStartTime, p->AppSleepEndTime); + // If there isn't a valid sleep end time use the sim start time + auto InstrumentedStartTime = p->AppSleepEndTime != 0 ? p->AppSleepEndTime : p->AppSimStartTime; + // If neither the sleep end time or sim start time is valid, there is no + // way to calculate the Xell Gpu latency + metrics.mInstrumentedGpuLatency = InstrumentedStartTime == 0 ? 0 : + pmSession.TimestampDeltaToUnsignedMilliSeconds(InstrumentedStartTime, p->GPUStartTime); + } else { + metrics.mCPUBusy = 0; + metrics.mCPUWait = 0; + metrics.mGPULatency = 0; + metrics.mGPUBusy = 0; + metrics.mVideoBusy = 0; + metrics.mGPUWait = 0; + metrics.mInstrumentedSleep = 0; + metrics.mInstrumentedGpuLatency = 0; + } - // PB = PresentStartTime - // PE = PresentEndTime - // D = ScreenTime - // - // chain->mLastPresent: PB--PE----D - // p: | PB--PE----D - // nextPresent: | | | PB--PE - // ... | | | | PB--PE - // nextDisplayedPresent: | | | | PB--PE----D - // | | | | | - // mCPUStart/mCPUBusy: |------->| | | | - // mCPUWait: |-->| | | - // mDisplayLatency: |----------------->| | - // mDisplayedTime: |---------------------->| - - bool includeFrameData = chain->mIncludeFrameData && (p->FrameId != nextPresent->FrameId || p->FrameType == FrameType::Application); + if (displayed) { + metrics.mDisplayLatency = pmSession.TimestampDeltaToUnsignedMilliSeconds(metrics.mCPUStart, screenTime); + metrics.mDisplayedTime = pmSession.TimestampDeltaToUnsignedMilliSeconds(screenTime, nextScreenTime); + metrics.mScreenTime = screenTime; + // If we have AppRenderSubmitStart calculate the render latency + metrics.mInstrumentedRenderLatency = p->AppRenderSubmitStartTime == 0 ? 0 : + pmSession.TimestampDeltaToUnsignedMilliSeconds(p->AppRenderSubmitStartTime, screenTime); + metrics.mReadyTimeToDisplayLatency = pmSession.TimestampDeltaToUnsignedMilliSeconds(p->ReadyTime, screenTime); + // If there isn't a valid sleep end time use the sim start time + auto InstrumentedStartTime = p->AppSleepEndTime != 0 ? p->AppSleepEndTime : p->AppSimStartTime; + // If neither the sleep end time or sim start time is valid, there is no + // way to calculate the Xell Gpu latency + metrics.mInstrumentedLatency = InstrumentedStartTime == 0 ? 0 : + pmSession.TimestampDeltaToUnsignedMilliSeconds(InstrumentedStartTime, screenTime); + } else { + metrics.mDisplayLatency = 0; + metrics.mDisplayedTime = 0; + metrics.mScreenTime = 0; + metrics.mInstrumentedLatency = 0; + metrics.mInstrumentedRenderLatency = 0; + metrics.mReadyTimeToDisplayLatency = 0; + } + + if (displayIndex == appIndex) { + if (displayed) { + auto updatedInputTime = chain->mLastReceivedNotDisplayedAllInputTime == 0 ? 0 : + pmSession.TimestampDeltaToUnsignedMilliSeconds(chain->mLastReceivedNotDisplayedAllInputTime, screenTime); + metrics.mAllInputPhotonLatency = p->InputTime == 0 ? updatedInputTime : + pmSession.TimestampDeltaToUnsignedMilliSeconds(p->InputTime, screenTime); + + updatedInputTime = chain->mLastReceivedNotDisplayedMouseClickTime == 0 ? 0 : + pmSession.TimestampDeltaToUnsignedMilliSeconds(chain->mLastReceivedNotDisplayedMouseClickTime, screenTime); + metrics.mClickToPhotonLatency = p->MouseClickTime == 0 ? updatedInputTime : + pmSession.TimestampDeltaToUnsignedMilliSeconds(p->MouseClickTime, screenTime); + + updatedInputTime = chain->mLastReceivedNotDisplayedAppProviderInputTime == 0 ? 0 : + pmSession.TimestampDeltaToUnsignedMilliSeconds(chain->mLastReceivedNotDisplayedAppProviderInputTime, screenTime); + metrics.mInstrumentedInputTime = p->AppInputSample.first == 0 ? updatedInputTime : + pmSession.TimestampDeltaToUnsignedMilliSeconds(p->AppInputSample.first, screenTime); + + chain->mLastReceivedNotDisplayedAllInputTime = 0; + chain->mLastReceivedNotDisplayedMouseClickTime = 0; + chain->mLastReceivedNotDisplayedAppProviderInputTime = 0; + } else { + metrics.mClickToPhotonLatency = 0; + metrics.mAllInputPhotonLatency = 0; + metrics.mInstrumentedInputTime = 0; + if (p->InputTime != 0) { + chain->mLastReceivedNotDisplayedAllInputTime = p->InputTime; + } + if (p->MouseClickTime != 0) { + chain->mLastReceivedNotDisplayedMouseClickTime = p->MouseClickTime; + } + if (p->AppInputSample.first != 0) { + chain->mLastReceivedNotDisplayedAppProviderInputTime = p->AppInputSample.first; + } + } + } else { + metrics.mClickToPhotonLatency = 0; + metrics.mAllInputPhotonLatency = 0; + metrics.mInstrumentedInputTime = 0; + } - bool displayed = p->FinalState == PresentResult::Presented; - double msGPUDuration = 0.0; - - FrameMetrics metrics; - metrics.mCPUStart = chain->mLastPresent->PresentStartTime + chain->mLastPresent->TimeInPresent; - - if (includeFrameData) { - msGPUDuration = pmSession.TimestampDeltaToUnsignedMilliSeconds(p->GPUStartTime, p->ReadyTime); - metrics.mCPUBusy = pmSession.TimestampDeltaToUnsignedMilliSeconds(metrics.mCPUStart, p->PresentStartTime); - metrics.mCPUWait = pmSession.TimestampDeltaToMilliSeconds(p->TimeInPresent); - metrics.mGPULatency = pmSession.TimestampDeltaToUnsignedMilliSeconds(metrics.mCPUStart, p->GPUStartTime); - metrics.mGPUBusy = pmSession.TimestampDeltaToMilliSeconds(p->GPUDuration); - metrics.mVideoBusy = pmSession.TimestampDeltaToMilliSeconds(p->GPUVideoDuration); - metrics.mGPUWait = std::max(0.0, msGPUDuration - metrics.mGPUBusy); - } else { - metrics.mCPUBusy = 0; - metrics.mCPUWait = 0; - metrics.mGPULatency = 0; - metrics.mGPUBusy = 0; - metrics.mVideoBusy = 0; - metrics.mGPUWait = 0; - } - - if (displayed) { - metrics.mDisplayLatency = pmSession.TimestampDeltaToUnsignedMilliSeconds(metrics.mCPUStart, p->ScreenTime); - metrics.mDisplayedTime = pmSession.TimestampDeltaToUnsignedMilliSeconds(p->ScreenTime, nextDisplayedPresent->ScreenTime); - metrics.mAnimationError = chain->mLastDisplayedCPUStart == 0 ? 0 : pmSession.TimestampDeltaToMilliSeconds(p->ScreenTime - chain->mLastDisplayedScreenTime, - metrics.mCPUStart - chain->mLastDisplayedCPUStart); - auto updatedInputTime = chain->mLastReceivedNotDisplayedAllInputTime == 0 ? 0 : - pmSession.TimestampDeltaToUnsignedMilliSeconds(chain->mLastReceivedNotDisplayedAllInputTime, p->ScreenTime); - metrics.mAllInputPhotonLatency = p->InputTime == 0 ? updatedInputTime : pmSession.TimestampDeltaToUnsignedMilliSeconds(p->InputTime, p->ScreenTime); - - updatedInputTime = chain->mLastReceivedNotDisplayedMouseClickTime == 0 ? 0 : - pmSession.TimestampDeltaToUnsignedMilliSeconds(chain->mLastReceivedNotDisplayedMouseClickTime, p->ScreenTime); - metrics.mClickToPhotonLatency = p->MouseClickTime == 0 ? updatedInputTime : pmSession.TimestampDeltaToUnsignedMilliSeconds(p->MouseClickTime, p->ScreenTime); - - chain->mLastReceivedNotDisplayedAllInputTime = 0; - chain->mLastReceivedNotDisplayedMouseClickTime = 0; + if (displayed && displayIndex == appIndex) { + // Calculate the sim start time based on if AppSimStartTime is non-zero + auto simStartTime = p->AppSimStartTime != 0 ? p->AppSimStartTime : metrics.mCPUStart; - } else { - metrics.mDisplayLatency = 0; - metrics.mDisplayedTime = 0; - metrics.mAnimationError = 0; - metrics.mClickToPhotonLatency = 0; - metrics.mAllInputPhotonLatency = 0; - if (p->InputTime != 0) { - chain->mLastReceivedNotDisplayedAllInputTime = p->InputTime; + if (chain->mLastDisplayedSimStartTime != 0) { + // If the simulation start time is less than the last displated simulation start time it means + // we are transitioning to app provider events. + if (simStartTime > chain->mLastDisplayedSimStartTime) { + metrics.mAnimationError = pmSession.TimestampDeltaToMilliSeconds(screenTime - chain->mLastDisplayedScreenTime, + simStartTime - chain->mLastDisplayedSimStartTime); + } + else { + metrics.mAnimationError = 0; + } + } else { + metrics.mAnimationError = 0; + } + // If we have a value in app sim start and we haven't set the first + // sim start time then we are transitioning from using cpu start to + // an application provided timestamp. Set the animation time to zero + // for the first frame. + if (p->AppSimStartTime != 0 && chain->mFirstAppSimStartTime == 0) { + metrics.mAnimationTime = 0.; + } else { + CalculateAnimationTime(pmSession, chain->mFirstAppSimStartTime, simStartTime, metrics.mAnimationTime); + } + + } else { + metrics.mAnimationError = 0; + metrics.mAnimationTime = 0; } - if (p->MouseClickTime != 0) { - chain->mLastReceivedNotDisplayedMouseClickTime = p->MouseClickTime; + + + if (p->Displayed.empty()) { + metrics.mFrameType = FrameType::NotSet; + } else { + metrics.mFrameType = p->Displayed[displayIndex].first; } - } - if (isRecording) { - UpdateCsv(pmSession, processInfo, *p, metrics); - } + if (isRecording) { + UpdateCsv(pmSession, processInfo, *p, metrics); + } - if (computeAvg) { - if (includeFrameData) { - UpdateAverage(&chain->mAvgCPUDuration, metrics.mCPUBusy + metrics.mCPUWait); - UpdateAverage(&chain->mAvgGPUDuration, msGPUDuration); + if (computeAvg) { + if (displayIndex == appIndex) { + UpdateAverage(&chain->mAvgCPUDuration, metrics.mCPUBusy + metrics.mCPUWait); + UpdateAverage(&chain->mAvgGPUDuration, msGPUDuration); + } + if (displayed) { + UpdateAverage(&chain->mAvgDisplayLatency, metrics.mDisplayLatency); + UpdateAverage(&chain->mAvgDisplayedTime, metrics.mDisplayedTime); + } } - if (displayed) { - UpdateAverage(&chain->mAvgDisplayLatency, metrics.mDisplayLatency); - UpdateAverage(&chain->mAvgDisplayedTime, metrics.mDisplayedTime); + + displayIndex += 1; + } while (displayIndex < displayCount); + + UpdateChain(chain, p); +} + +static void ReportMetrics( + PMTraceSession const& pmSession, + ProcessInfo* processInfo, + SwapChainData* chain, + std::shared_ptr const& p, + bool isRecording, + bool computeAvg) +{ + // Remove Repeated flips if they are in Application->Repeated or Repeated->Application sequences. + for (size_t i = 0, n = p->Displayed.size(); i + 1 < n; ) { + if (p->Displayed[i].first == FrameType::Application && p->Displayed[i + 1].first == FrameType::Repeated) { + p->Displayed.erase(p->Displayed.begin() + i + 1); + n -= 1; + } else if (p->Displayed[i].first == FrameType::Repeated && p->Displayed[i + 1].first == FrameType::Application) { + p->Displayed.erase(p->Displayed.begin() + i); + n -= 1; + } else { + i += 1; } } - if (p->FrameId == nextPresent->FrameId) { - if (includeFrameData) { - chain->mIncludeFrameData = false; + // For the chain's first present, we just initialize mLastPresent to give a baseline for the + // first frame. + if (chain->mLastPresent == nullptr) { + UpdateChain(chain, p); + return; + } + + // If chain->mPendingPresents is non-empty, then it contains a displayed present followed by + // some number of discarded presents. If the displayed present has multiple Displayed entries, + // all but the last have already been handled. + // + // If p is displayed, then we can complete all pending presents, and complete any flips in p + // except for the last one, but then we have to add p to the pending list to wait for the next + // displayed frame. + // + // If p is not displayed, we can process it now unless it is blocked behind an earlier present + // waiting for the next displayed one, in which case we need to add it to the pending list as + // well. + if (p->FinalState == PresentResult::Presented) { + for (auto const& p2 : chain->mPendingPresents) { + ReportMetricsHelper(pmSession, processInfo, chain, p2, p.get(), isRecording, computeAvg); } + ReportMetricsHelper(pmSession, processInfo, chain, p, nullptr, isRecording, computeAvg); + chain->mPendingPresents.clear(); + chain->mPendingPresents.push_back(p); } else { - UpdateChain(chain, p); + if (chain->mPendingPresents.empty()) { + ReportMetricsHelper(pmSession, processInfo, chain, p, nullptr, isRecording, computeAvg); + } else { + chain->mPendingPresents.push_back(p); + } } } @@ -597,24 +773,7 @@ static void ProcessEvents( if (args.mUseV1Metrics) { ReportMetrics1(pmSession, processInfo, chain, presentEvent, isRecording, computeAvg); } else { - auto numPendingPresents = chain->mPendingPresents.size(); - if (numPendingPresents > 0) { - if (presentEvent->FinalState == PresentResult::Presented) { - size_t i = 1; - for ( ; i < numPendingPresents; ++i) { - ReportMetrics(pmSession, processInfo, chain, chain->mPendingPresents[i - 1], chain->mPendingPresents[i], presentEvent.get(), isRecording, computeAvg); - } - ReportMetrics(pmSession, processInfo, chain, chain->mPendingPresents[i - 1], presentEvent, presentEvent.get(), isRecording, computeAvg); - chain->mPendingPresents.clear(); - } else { - if (chain->mPendingPresents[0]->FinalState != PresentResult::Presented) { - ReportMetrics(pmSession, processInfo, chain, chain->mPendingPresents[0], presentEvent, nullptr, isRecording, computeAvg); - chain->mPendingPresents.clear(); - } - } - } - - chain->mPendingPresents.push_back(presentEvent); + ReportMetrics(pmSession, processInfo, chain, presentEvent, isRecording, computeAvg); } } else { UpdateChain(chain, presentEvent); @@ -644,7 +803,7 @@ void Output(PMTraceSession const* pmSession) std::vector processEvents; std::vector> presentEvents; processEvents.reserve(128); - presentEvents.reserve(4096); + presentEvents.reserve(1024); for (;;) { // Read gQuit here, but then check it after processing queued events. diff --git a/PresentMon/PresentMon.hpp b/PresentMon/PresentMon.hpp index a06e957e..b9d48b3f 100644 --- a/PresentMon/PresentMon.hpp +++ b/PresentMon/PresentMon.hpp @@ -73,6 +73,8 @@ struct CommandLineArgs { bool mTrackGPU; bool mTrackGPUVideo; bool mTrackFrameType; + bool mTrackPMMeasurements; + bool mTrackAppTiming; bool mScrollLockIndicator; bool mExcludeDropped; bool mTerminateExistingSession; @@ -101,8 +103,19 @@ struct FrameMetrics { double mDisplayLatency; double mDisplayedTime; double mAnimationError; + double mAnimationTime; double mClickToPhotonLatency; double mAllInputPhotonLatency; + uint64_t mScreenTime; + FrameType mFrameType; + double mInstrumentedLatency; + + // Internal Intel Metrics + double mInstrumentedRenderLatency; + double mInstrumentedSleep; + double mInstrumentedGpuLatency; + double mReadyTimeToDisplayLatency; + double mInstrumentedInputTime; }; struct FrameMetrics1 { @@ -115,6 +128,7 @@ struct FrameMetrics1 { double msGPUDuration; double msVideoDuration; double msSinceInput; + uint64_t qpcScreenTime; }; // We store SwapChainData per process and per swapchain, where we maintain: @@ -131,16 +145,16 @@ struct SwapChainData { std::shared_ptr mLastPresent; // The CPU start and screen time for the most recent frame that was displayed - uint64_t mLastDisplayedCPUStart = 0; + uint64_t mLastDisplayedSimStartTime = 0; uint64_t mLastDisplayedScreenTime = 0; + // QPC of first received simulation start time from the application provider + uint64_t mFirstAppSimStartTime = 0; // QPC of last received input data that did not make it to the screen due // to the Present() being dropped uint64_t mLastReceivedNotDisplayedAllInputTime; uint64_t mLastReceivedNotDisplayedMouseClickTime; - - // Whether to include frame data in the next PresentEvent's FrameMetrics. - bool mIncludeFrameData = true; + uint64_t mLastReceivedNotDisplayedAppProviderInputTime; // Frame statistics float mAvgCPUDuration = 0.f; diff --git a/Provider/Intel-PresentMon.man b/Provider/Intel-PresentMon.man index 63c571a0..ebe1a340 100644 Binary files a/Provider/Intel-PresentMon.man and b/Provider/Intel-PresentMon.man differ diff --git a/Provider/PresentMonProvider.cpp b/Provider/PresentMonProvider.cpp index 334a262d..3829465d 100644 --- a/Provider/PresentMonProvider.cpp +++ b/Provider/PresentMonProvider.cpp @@ -1,7 +1,10 @@ // Copyright (C) 2017-2024 Intel Corporation // SPDX-License-Identifier: MIT +#ifndef WIN32_LEAN_AND_MEAN #define WIN32_LEAN_AND_MEAN +#endif // WIN32_LEAN_AND_MEAN + #include #include @@ -17,17 +20,41 @@ namespace { static GUID const ProviderGUID = { 0xecaa4712, 0x4644, 0x442f, { 0xb9, 0x4c, 0xa3, 0x2f, 0x6c, 0xf8, 0xa4, 0x99 }}; enum { - ID_PresentFrameType = 1, - ID_FlipFrameType = 2, + ID_PresentFrameType = 1, + ID_FlipFrameType = 2, + ID_MeasuredInput = 10, + ID_MeasuredScreenChange = 11, + ID_AppSleepStart = 50, + ID_AppSleepEnd = 51, + ID_AppSimulationStart = 52, + ID_AppSimulationEnd = 53, + ID_AppRenderSubmitStart = 54, + ID_AppRenderSubmitEnd = 55, + ID_AppPresentStart = 56, + ID_AppPresentEnd = 57, + ID_AppInputSample = 58, }; enum { - Keyword_FrameTypes = 1 << 0, + Keyword_FrameTypes = 1 << 0, + Keyword_Measurements = 1 << 1, + Keyword_Application = 1 << 5, }; enum Event { Event_PresentFrameType, Event_FlipFrameType, + Event_MeasuredInput, + Event_MeasuredScreenChange, + Event_AppSleepStart, + Event_AppSleepEnd, + Event_AppSimulationStart, + Event_AppSimulationEnd, + Event_AppRenderSubmitStart, + Event_AppRenderSubmitEnd, + Event_AppPresentStart, + Event_AppPresentEnd, + Event_AppInputSample, Event_Count }; @@ -35,8 +62,19 @@ enum Event { // and would need to be updated if you extend this to use other levels. static EVENT_DESCRIPTOR const EventDescriptor[] = { // ID, Version, Channel, Level, Opcode, Task, Keyword - { ID_PresentFrameType, 0, 0, TRACE_LEVEL_INFORMATION, EVENT_TRACE_TYPE_INFO, ID_PresentFrameType, Keyword_FrameTypes }, - { ID_FlipFrameType, 0, 0, TRACE_LEVEL_INFORMATION, EVENT_TRACE_TYPE_INFO, ID_FlipFrameType, Keyword_FrameTypes }, + { ID_PresentFrameType, 0, 0, TRACE_LEVEL_INFORMATION, EVENT_TRACE_TYPE_INFO, ID_PresentFrameType, Keyword_FrameTypes }, + { ID_FlipFrameType, 0, 0, TRACE_LEVEL_INFORMATION, EVENT_TRACE_TYPE_INFO, ID_FlipFrameType, Keyword_FrameTypes }, + { ID_MeasuredInput, 0, 0, TRACE_LEVEL_INFORMATION, EVENT_TRACE_TYPE_INFO, ID_MeasuredInput, Keyword_Measurements }, + { ID_MeasuredScreenChange, 0, 0, TRACE_LEVEL_INFORMATION, EVENT_TRACE_TYPE_INFO, ID_MeasuredScreenChange, Keyword_Measurements }, + { ID_AppSleepStart, 0, 0, TRACE_LEVEL_INFORMATION, EVENT_TRACE_TYPE_INFO, ID_AppSleepStart, Keyword_Application }, + { ID_AppSleepEnd, 0, 0, TRACE_LEVEL_INFORMATION, EVENT_TRACE_TYPE_INFO, ID_AppSleepEnd, Keyword_Application }, + { ID_AppSimulationStart, 0, 0, TRACE_LEVEL_INFORMATION, EVENT_TRACE_TYPE_INFO, ID_AppSimulationStart, Keyword_Application }, + { ID_AppSimulationEnd, 0, 0, TRACE_LEVEL_INFORMATION, EVENT_TRACE_TYPE_INFO, ID_AppSimulationEnd, Keyword_Application }, + { ID_AppRenderSubmitStart, 0, 0, TRACE_LEVEL_INFORMATION, EVENT_TRACE_TYPE_INFO, ID_AppRenderSubmitStart, Keyword_Application }, + { ID_AppRenderSubmitEnd, 0, 0, TRACE_LEVEL_INFORMATION, EVENT_TRACE_TYPE_INFO, ID_AppRenderSubmitEnd, Keyword_Application }, + { ID_AppPresentStart, 0, 0, TRACE_LEVEL_INFORMATION, EVENT_TRACE_TYPE_INFO, ID_AppPresentStart, Keyword_Application }, + { ID_AppPresentEnd, 0, 0, TRACE_LEVEL_INFORMATION, EVENT_TRACE_TYPE_INFO, ID_AppPresentEnd, Keyword_Application }, + { ID_AppInputSample, 0, 0, TRACE_LEVEL_INFORMATION, EVENT_TRACE_TYPE_INFO, ID_AppInputSample, Keyword_Application }, }; static_assert(Event_Count == _countof(EventDescriptor), "Event enum and EventDescriptor size mismatch"); @@ -143,9 +181,16 @@ bool IsValid( return frameType == PresentMonProvider_FrameType_Unspecified || frameType == PresentMonProvider_FrameType_Original || frameType == PresentMonProvider_FrameType_Repeated || + frameType == PresentMonProvider_FrameType_Intel_XEFG || frameType == PresentMonProvider_FrameType_AMD_AFMF; } +bool IsValid( + PresentMonProvider_InputType inputType) +{ + return (inputType & ~(PresentMonProvider_Input_MouseClick | + PresentMonProvider_Input_KeyboardClick)) == 0; +} } PresentMonProvider* PresentMonProvider_Initialize() @@ -229,3 +274,106 @@ ULONG PresentMonProvider_FlipFrameType( (uint8_t) frameType); } +ULONG PresentMonProvider_MeasuredInput( + PresentMonProvider* ctxt, + PresentMonProvider_InputType inputType, + uint64_t inputQPCTime) +{ + PRESENTMONPROVIDER_ASSERT(ctxt != nullptr); + PRESENTMONPROVIDER_ASSERT(IsValid(inputType)); + + return WriteEvent(ctxt, Event_MeasuredInput, inputQPCTime, + (uint8_t) inputType); +} + +ULONG PresentMonProvider_MeasuredScreenChange( + PresentMonProvider* ctxt, + uint64_t screenQPCTime) +{ + PRESENTMONPROVIDER_ASSERT(ctxt != nullptr); + + return WriteEvent(ctxt, Event_MeasuredScreenChange, screenQPCTime); +} + +ULONG PresentMonProvider_Application_SleepStart( + PresentMonProvider* ctxt, + uint32_t frame_id) +{ + PRESENTMONPROVIDER_ASSERT(ctxt != nullptr); + + return WriteEvent(ctxt, Event_AppSleepStart, frame_id); +} + +ULONG PresentMonProvider_Application_SleepEnd( + PresentMonProvider* ctxt, + uint32_t frame_id) +{ + PRESENTMONPROVIDER_ASSERT(ctxt != nullptr); + + return WriteEvent(ctxt, Event_AppSleepEnd, frame_id); +} + +ULONG PresentMonProvider_Application_SimulationStart( + PresentMonProvider* ctxt, + uint32_t frame_id) +{ + PRESENTMONPROVIDER_ASSERT(ctxt != nullptr); + + return WriteEvent(ctxt, Event_AppSimulationStart, frame_id); +} + +ULONG PresentMonProvider_Application_SimulationEnd( + PresentMonProvider* ctxt, + uint32_t frame_id) +{ + PRESENTMONPROVIDER_ASSERT(ctxt != nullptr); + + return WriteEvent(ctxt, Event_AppSimulationEnd, frame_id); +} + +ULONG PresentMonProvider_Application_RenderSubmitStart( + PresentMonProvider* ctxt, + uint32_t frame_id) +{ + PRESENTMONPROVIDER_ASSERT(ctxt != nullptr); + + return WriteEvent(ctxt, Event_AppRenderSubmitStart, frame_id); +} + +ULONG PresentMonProvider_Application_RenderSubmitEnd( + PresentMonProvider* ctxt, + uint32_t frame_id) +{ + PRESENTMONPROVIDER_ASSERT(ctxt != nullptr); + + return WriteEvent(ctxt, Event_AppRenderSubmitEnd, frame_id); +} + +ULONG PresentMonProvider_Application_PresentStart( + PresentMonProvider* ctxt, + uint32_t frame_id) +{ + PRESENTMONPROVIDER_ASSERT(ctxt != nullptr); + + return WriteEvent(ctxt, Event_AppPresentStart, frame_id); +} + +ULONG PresentMonProvider_Application_PresentEnd( + PresentMonProvider* ctxt, + uint32_t frame_id) +{ + PRESENTMONPROVIDER_ASSERT(ctxt != nullptr); + + return WriteEvent(ctxt, Event_AppPresentEnd, frame_id); +} + +ULONG PresentMonProvider_Application_InputSample( + PresentMonProvider* ctxt, + uint32_t frame_id, + PresentMonProvider_InputType inputType) +{ + PRESENTMONPROVIDER_ASSERT(ctxt != nullptr); + PRESENTMONPROVIDER_ASSERT(IsValid(inputType)); + + return WriteEvent(ctxt, Event_AppInputSample, frame_id, inputType); +} diff --git a/Provider/PresentMonProvider.h b/Provider/PresentMonProvider.h index 1f784868..daea7048 100644 --- a/Provider/PresentMonProvider.h +++ b/Provider/PresentMonProvider.h @@ -66,6 +66,7 @@ enum PresentMonProvider_FrameType { // to have your technique added). PresentMonProvider_FrameType_Original, // The original frame rendered by the application. PresentMonProvider_FrameType_Repeated, // The frame rendered by the application is being repeated. + PresentMonProvider_FrameType_Intel_XEFG = 50, // Frame generated by Intel Xe Frame Generation. PresentMonProvider_FrameType_AMD_AFMF = 100, // Frame generated by AMD Fluid Motion Frames. }; @@ -78,3 +79,60 @@ ULONG PresentMonProvider_FlipFrameType(PresentMonProvider* ctxt, uint32_t layerIndex, uint64_t presentId, PresentMonProvider_FrameType frameType); + +// MEASURED INPUT/PHOTON LATENCY +// +// These provide times associated with user input and monitor updates that were measured using some +// external method which can be used to include hardware latency within the input and display +// devices as part of PresentMon's latency calculations. +// +// Try to call PresentMonProvider_Measured*() as quickly as possible after the measurment is +// available. If PresentMon doesn't observe the measured data after waiting for some period, it may +// flush out it's SW-measured values instead. +// +// Input/display times are provided as QueryPerformanceCounter (QPC) values. Special care must be +// taken to correlate the measurement device's measured time with the PC's QPC as closely as +// possible. + +enum PresentMonProvider_InputType { + PresentMonProvider_Input_NotSpecified = 0, + PresentMonProvider_Input_MouseClick = 1 << 0, + PresentMonProvider_Input_KeyboardClick = 1 << 1, +}; + +ULONG PresentMonProvider_MeasuredInput(PresentMonProvider* ctxt, + PresentMonProvider_InputType inputType, + uint64_t inputQPCTime); + +ULONG PresentMonProvider_MeasuredScreenChange(PresentMonProvider* ctxt, + uint64_t screenQPCTime); + +// GRAPHICS APPLICATION FRAME INFORMATION + +ULONG PresentMonProvider_Application_SleepStart(PresentMonProvider* ctxt, + uint32_t frame_id); + +ULONG PresentMonProvider_Application_SleepEnd(PresentMonProvider* ctxt, + uint32_t frame_id); + +ULONG PresentMonProvider_Application_SimulationStart(PresentMonProvider* ctxt, + uint32_t frame_id); + +ULONG PresentMonProvider_Application_SimulationEnd(PresentMonProvider* ctxt, + uint32_t frame_id); + +ULONG PresentMonProvider_Application_RenderSubmitStart(PresentMonProvider* ctxt, + uint32_t frame_id); + +ULONG PresentMonProvider_Application_RenderSubmitEnd(PresentMonProvider* ctxt, + uint32_t frame_id); + +ULONG PresentMonProvider_Application_PresentStart(PresentMonProvider* ctxt, + uint32_t frame_id); + +ULONG PresentMonProvider_Application_PresentEnd(PresentMonProvider* ctxt, + uint32_t frame_id); + +ULONG PresentMonProvider_Application_InputSample(PresentMonProvider* ctxt, + uint32_t frame_id, + PresentMonProvider_InputType inputType); \ No newline at end of file diff --git a/Provider/Version.rc b/Provider/Version.rc index 36135de9..73ad285a 100644 Binary files a/Provider/Version.rc and b/Provider/Version.rc differ diff --git a/README-ConsoleApplication.md b/README-ConsoleApplication.md index 487866b8..deeaef36 100644 --- a/README-ConsoleApplication.md +++ b/README-ConsoleApplication.md @@ -95,7 +95,8 @@ Default metrics include: | *DisplayLatency* | How long it took from the start of this frame until the frame was displayed on the screen. | | *DisplayedTime* | How long the frame was displayed on the screen, or 'NA' if the frame was not displayed. | | *AnimationError* | The difference between the previous frame's CPU delta and display delta. | -| *ClickToPhotonLatency* | How long it took from the earliest keyboard or mouse interaction that contributed to this frame until this frame was displayed. When supported HW measuring devices are not available, this is the software-visible subset of the full click-to-photon latency and doesn't include:
• time spent processing input in the keyboard/controller hardware or drivers (typically a fixed additional overhead),
• time spent processing the output in the display hardware or drivers (typically a fixed additional overhead), and
• a combination of display blanking interval and scan time (which varies, depending on timing and tearing). | +| *ClickToPhotonLatency* | How long it took from the earliest mouse click that contributed to this frame until this frame was displayed. When supported HW measuring devices are not available, this is the software-visible subset of the full click-to-photon latency and doesn't include:
• time spent processing input in the keyboard/controller hardware or drivers (typically a fixed additional overhead),
• time spent processing the output in the display hardware or drivers (typically a fixed additional overhead), and
• a combination of display blanking interval and scan time (which varies, depending on timing and tearing). | +| *AllInputToPhotonLatency* | How long it took from the earliest keyboard or mouse interaction that contributed to this frame until this frame was displayed. | Some metrics are enabled or disabled depending on the command line options: diff --git a/Tests/Gold/test_case_0.csv b/Tests/Gold/test_case_0.csv index c1bb5131..ddc27f54 100644 --- a/Tests/Gold/test_case_0.csv +++ b/Tests/Gold/test_case_0.csv @@ -1,358 +1,358 @@ -Application,ProcessID,SwapChainAddress,PresentRuntime,SyncInterval,PresentFlags,AllowsTearing,PresentMode,CPUStartQPC,FrameTime,CPUBusy,CPUWait,GPULatency,GPUTime,GPUBusy,GPUWait,VideoBusy,DisplayLatency,DisplayedTime,AnimationError,AllInputToPhotonLatency,ClickToPhotonLatency -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2076511276,16.3893,16.3000,0.0893,0.8529,15.5144,1.0752,14.4392,0.0000,32.7296,33.3323,0.0000,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2076675169,33.4674,33.3150,0.1524,0.0000,33.4282,1.2105,32.2177,0.0000,49.6726,100.0649,-16.9430,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2077009843,100.3405,100.2183,0.1222,0.0000,100.4033,1.1640,99.2393,0.0000,116.2701,16.6784,-66.5975,NA,NA -Presenter.exe,10792,0x20979A6D5F8,D3D9,-1,0,0,Composed: Copy with GPU GDI,2077942683,7.6275,0.1474,7.4801,0.0000,7.7858,0.1722,7.6136,0.0000,39.6645,16.6805,0.0000,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2078013248,16.2640,16.1733,0.0907,0.0016,16.2389,0.2928,15.9461,0.0000,32.6080,16.6805,83.6621,NA,NA -Presenter.exe,10792,0x20979A6D5F8,D3D9,-1,0,0,Composed: Copy with GPU GDI,2078018958,15.9556,0.0334,15.9222,15.9223,0.2127,0.2127,0.0000,0.0000,48.7175,16.6791,-9.0530,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2078175888,16.6283,16.5521,0.0762,0.0000,16.6554,0.2362,16.4192,0.0000,33.0245,16.6791,-0.4165,NA,NA -Presenter.exe,10792,0x20979A6D5F8,D3D9,-1,0,0,Composed: Copy with GPU GDI,2078178514,16.5287,0.0107,16.5180,16.5983,0.1742,0.1742,0.0000,0.0000,49.4410,16.6857,-0.7235,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2078342171,16.6706,16.5976,0.0730,0.0036,16.6544,0.1928,16.4616,0.0000,33.0753,16.6857,-0.0508,NA,NA -Presenter.exe,10792,0x20979A6D5F8,D3D9,-1,0,0,Composed: Copy with GPU GDI,2078343801,16.6579,0.3338,16.3241,0.2438,16.6635,0.2007,16.4628,0.0000,49.5980,16.6661,-0.1570,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2078508877,16.6786,16.6001,0.0785,0.0000,16.6714,0.2122,16.4592,0.0000,33.0904,16.6661,-0.0151,NA,NA -Presenter.exe,10792,0x20979A6D5F8,D3D9,-1,0,0,Composed: Copy with GPU GDI,2078510380,16.6787,0.0087,16.6700,0.2494,16.6714,0.2416,16.4298,0.0000,49.6062,16.6888,-0.0082,NA,NA -Presenter.exe,10792,0x20979A6D5F8,D3D9,-1,0,0,Composed: Copy with GPU GDI,2078677167,16.6824,0.2108,16.4716,16.7587,0.1739,0.1739,0.0000,0.0000,NA,NA,NA,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2078675663,16.6779,16.6078,0.0701,0.0000,16.6868,0.2036,16.4832,0.0000,33.0779,16.6888,0.0125,NA,NA -Presenter.exe,10792,0x20979A6D5F8,D3D9,-1,0,0,Composed: Copy with GPU GDI,2078843991,16.0014,0.0024,15.9990,15.9102,0.1684,0.1637,0.0047,0.0000,32.9339,16.6810,16.6723,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2078842442,16.6876,16.6040,0.0836,0.0000,16.6902,0.2088,16.4814,0.0000,33.0888,16.6810,-0.0109,NA,NA -Presenter.exe,10792,0x20979A6D5F8,D3D9,-1,0,0,Composed: Copy with GPU GDI,2079004005,0.6979,0.0104,0.6875,0.7745,0.1689,0.1689,0.0000,0.0000,33.6135,16.6780,-0.6796,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2079009318,16.7183,16.6061,0.1122,0.0000,16.6961,0.2394,16.4567,0.0000,33.0822,16.6780,0.0066,NA,NA -Presenter.exe,10792,0x20979A6D5F8,D3D9,-1,0,0,Composed: Copy with GPU GDI,2079010984,16.7186,0.0026,16.7160,16.7325,0.1627,0.1627,0.0000,0.0000,49.5936,16.6801,-15.9801,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2079176501,16.6320,16.5616,0.0704,0.0000,16.6509,0.1711,16.4798,0.0000,33.0419,16.6801,0.0403,NA,NA -Presenter.exe,10792,0x20979A6D5F8,D3D9,-1,0,0,Composed: Copy with GPU GDI,2079178170,16.6185,0.0027,16.6158,0.1766,16.6820,0.2296,16.4524,0.0000,49.5551,16.6828,0.0385,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2079342821,16.6626,16.5852,0.0774,0.0000,16.6622,0.2100,16.4522,0.0000,33.0900,16.6828,-0.0481,NA,NA -Presenter.exe,10792,0x20979A6D5F8,D3D9,-1,0,0,Composed: Copy with GPU GDI,2079344355,16.6837,0.0024,16.6813,0.2401,16.6787,0.2267,16.4520,0.0000,49.6194,16.6778,-0.0643,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2079509447,16.6847,16.6143,0.0704,0.0000,16.6857,0.2196,16.4661,0.0000,33.1102,16.6778,-0.0202,NA,NA -Presenter.exe,10792,0x20979A6D5F8,D3D9,-1,0,0,Composed: Copy with GPU GDI,2079511192,16.6648,0.0026,16.6622,0.2351,16.6659,0.2272,16.4387,0.0000,49.6135,16.6793,0.0059,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2079676294,16.6845,16.6077,0.0768,0.0000,16.6784,0.2060,16.4724,0.0000,33.1033,16.6793,0.0069,NA,NA -Presenter.exe,10792,0x20979A6D5F8,D3D9,-1,0,0,Composed: Copy with GPU GDI,2079677840,16.7132,0.0024,16.7108,0.2362,16.6791,0.2168,16.4623,0.0000,49.6280,16.6796,-0.0145,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2079843139,16.6824,16.6096,0.0728,0.0000,16.6872,0.2021,16.4851,0.0000,33.0981,16.6796,0.0052,NA,NA -Presenter.exe,10792,0x20979A6D5F8,D3D9,-1,0,0,Composed: Copy with GPU GDI,2079844972,16.6504,0.0025,16.6479,0.2021,16.6903,0.2302,16.4601,0.0000,49.5944,16.6874,0.0336,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2080009963,16.6688,16.5936,0.0752,0.0000,16.6691,0.2115,16.4576,0.0000,33.0953,16.6874,0.0028,NA,NA -Presenter.exe,10792,0x20979A6D5F8,D3D9,-1,0,0,Composed: Copy with GPU GDI,2080011476,16.6694,0.0025,16.6669,0.2420,16.6719,0.2348,16.4371,0.0000,49.6314,16.6737,-0.0370,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2080176651,16.7142,16.6457,0.0685,0.0000,16.7156,0.2096,16.5060,0.0000,33.1139,16.6737,-0.0186,NA,NA -Presenter.exe,10792,0x20979A6D5F8,D3D9,-1,0,0,Composed: Copy with GPU GDI,2080178170,16.7508,0.0025,16.7483,0.2445,16.7201,0.2327,16.4874,0.0000,49.6357,16.6788,-0.0043,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2080343793,16.7184,16.6111,0.1073,0.0000,16.6931,0.2130,16.4801,0.0000,33.0734,16.6788,0.0405,NA,NA -Presenter.exe,10792,0x20979A6D5F8,D3D9,-1,0,0,Composed: Copy with GPU GDI,2080345678,16.7454,0.0024,16.7430,0.2138,16.7136,0.2416,16.4720,0.0000,49.5637,16.6734,0.0720,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2080510977,16.6069,16.5387,0.0682,0.0000,16.6328,0.2112,16.4216,0.0000,33.0338,16.6734,0.0396,NA,NA -Presenter.exe,10792,0x20979A6D5F8,D3D9,-1,0,0,Composed: Copy with GPU GDI,2080513132,16.5797,0.0025,16.5772,0.1820,16.6144,0.2279,16.3865,0.0000,49.4917,16.6826,0.0720,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2080677046,16.6928,16.6233,0.0695,0.0000,16.6915,0.2122,16.4793,0.0000,33.1003,16.6826,-0.0665,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2080843974,16.9216,16.7110,0.2106,0.0000,16.9210,0.3224,16.5986,0.0000,33.0901,33.3781,0.0102,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2081013190,40.7496,40.6056,0.1440,0.0000,40.7235,0.2487,40.4748,0.0000,49.5466,16.6720,-16.4565,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2081420686,1.5846,1.0200,0.5646,0.0000,1.1956,0.3398,0.8558,0.0000,25.4690,16.6989,24.0776,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2081436532,9.5173,8.2244,1.2929,0.0000,8.9839,0.3669,8.6170,0.0000,40.5833,16.6915,-15.1143,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2081531705,16.2648,14.8083,1.4565,0.0684,15.0110,0.2480,14.7630,0.0000,47.7575,16.6536,-7.1742,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2081694353,16.1272,15.9702,0.1570,0.0610,16.0068,0.1317,15.8751,0.0000,48.1463,16.7368,-0.3888,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2081855625,15.9714,15.8267,0.1447,0.0000,16.0123,0.2869,15.7254,0.0000,48.7559,16.6615,-0.6096,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2082015339,17.2545,17.1313,0.1232,0.0000,17.2424,0.1800,17.0624,0.0000,49.4460,16.6642,-0.6901,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2082187884,15.9790,15.8691,0.1099,0.0000,15.9823,0.2342,15.7481,0.0000,48.8557,16.6720,0.5903,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2082347674,17.2816,17.1535,0.1281,0.0000,17.2770,0.2121,17.0649,0.0000,49.5487,16.6830,-0.6930,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2082520490,16.2796,16.1098,0.1698,0.0000,16.2558,0.3022,15.9536,0.0000,48.9501,16.6598,0.5986,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2082683286,17.2795,17.1533,0.1262,0.0000,17.3314,0.2556,17.0758,0.0000,49.3303,16.6748,-0.3802,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2082856081,17.9854,17.9055,0.0799,0.0000,0.2282,0.2282,0.0000,0.0000,48.7256,16.6847,0.6047,NA,NA -Presenter.exe,8320,0x15EFD8424E0,DXGI,0,0,0,Composed: Flip,2083006479,15.2384,14.8165,0.4219,1.1213,14.2212,0.3149,13.9063,0.0000,50.3705,16.6729,0.0000,NA,NA -Presenter.exe,8320,0x15EFD8424E0,DXGI,0,0,0,Hardware: Independent Flip,2083158863,15.4114,15.1522,0.2592,0.5251,14.9117,0.2187,14.6930,0.0000,NA,NA,NA,NA,NA -Presenter.exe,8320,0x15EFD8424E0,DXGI,0,0,0,Hardware: Independent Flip,2083312977,16.8350,15.4025,1.4325,19.8211,0.1617,0.1617,0.0000,0.0000,36.3936,16.6855,13.9769,NA,NA -Presenter.exe,8320,0x15EFD8424E0,DXGI,0,0,0,Hardware: Independent Flip,2083481327,14.7641,14.1937,0.5704,19.5829,0.0986,0.0986,0.0000,0.0000,NA,NA,NA,NA,NA -Presenter.exe,8320,0x15EFD8424E0,DXGI,0,0,0,Hardware: Independent Flip,2083628968,15.4671,15.0131,0.4540,5.0119,10.4404,0.2396,10.2008,0.0000,21.4800,16.6866,14.9136,NA,NA -Presenter.exe,8320,0x15EFD8424E0,DXGI,0,0,0,Hardware: Independent Flip,2083783639,15.5770,15.1953,0.3817,6.0431,9.6027,0.2935,9.3092,0.0000,22.6995,16.6782,-1.2195,NA,NA -Presenter.exe,8320,0x15EFD8424E0,DXGI,0,0,0,Hardware: Independent Flip,2083939409,15.5784,15.2354,0.3430,0.2113,15.4203,0.2299,15.1904,0.0000,23.8007,16.6771,-1.1012,NA,NA -Presenter.exe,8320,0x15EFD8424E0,DXGI,0,0,0,Hardware: Independent Flip,2084095193,15.4382,15.2634,0.1748,0.1790,15.3685,0.2144,15.1541,0.0000,24.8994,16.6824,-1.0987,NA,NA -Presenter.exe,8320,0x15EFD8424E0,DXGI,0,0,0,Hardware: Independent Flip,2084249575,15.7225,15.4818,0.2407,0.2178,15.5921,0.2236,15.3685,0.0000,26.1436,16.6767,-1.2442,NA,NA -Presenter.exe,8320,0x15EFD8424E0,DXGI,0,0,0,Hardware: Independent Flip,2084406800,15.5450,15.3600,0.1850,0.2141,15.4079,0.1980,15.2099,0.0000,27.0978,16.6849,-0.9542,NA,NA -Presenter.exe,8320,0x15EFD8424E0,DXGI,0,0,0,Hardware: Independent Flip,2084562250,15.6177,15.4711,0.1466,0.1823,15.5167,0.2161,15.3006,0.0000,28.2377,16.6768,-1.1399,NA,NA -Presenter.exe,8320,0x15EFD8424E0,DXGI,0,0,0,Hardware: Independent Flip,2084718427,15.5979,15.4689,0.1290,0.1819,15.4953,0.1926,15.3027,0.0000,29.2968,16.6776,-1.0591,NA,NA -Presenter.exe,8320,0x15EFD8424E0,DXGI,0,0,0,Hardware: Independent Flip,2084874406,15.7709,15.4983,0.2726,0.1682,15.6791,0.1888,15.4903,0.0000,30.3765,16.6720,-1.0797,NA,NA -Presenter.exe,8320,0x15EFD8424E0,DXGI,0,0,0,Hardware: Independent Flip,2085032115,15.4382,15.3368,0.1014,0.1605,15.3656,0.2142,15.1514,0.0000,NA,NA,NA,NA,NA -Presenter.exe,8320,0x15EFD8424E0,DXGI,0,0,0,Hardware: Independent Flip,2085186497,15.6551,15.5284,0.1267,0.1734,15.5129,0.1712,15.3417,0.0000,15.8394,16.6886,14.5371,NA,NA -Presenter.exe,8320,0x15EFD8424E0,DXGI,0,0,0,Hardware: Independent Flip,2085343048,15.5922,15.4915,0.1007,0.2212,15.4264,0.1761,15.2503,0.0000,16.8729,16.6791,-1.0335,NA,NA -Presenter.exe,8320,0x15EFD8424E0,DXGI,0,0,0,Hardware: Independent Flip,2085498970,15.6226,15.5197,0.1029,0.1360,15.6162,0.2596,15.3566,0.0000,17.9598,16.6802,-1.0869,NA,NA -Presenter.exe,8320,0x15EFD8424E0,DXGI,0,0,0,Hardware: Independent Flip,2085655196,15.6174,15.5182,0.0992,0.2136,15.4484,0.1527,15.2957,0.0000,19.0174,16.6890,-1.0576,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2083035935,14.3085,14.2380,0.0705,0.0414,0.1584,0.1584,0.0000,0.0000,47.4249,266.9110,1.3007,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2083179020,284.7568,284.5398,0.2170,284.6172,0.0517,0.0517,0.0000,0.0000,300.0274,16.6108,-252.6025,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2086026588,16.1682,16.0565,0.1117,0.0000,16.2322,0.2558,15.9764,0.0000,31.8814,16.7152,268.1460,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2086188270,16.2811,16.1526,0.1285,0.0000,16.2845,0.2709,16.0136,0.0000,32.4284,33.3375,-0.5470,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2086351081,33.4063,33.2561,0.1502,0.0000,33.4009,0.2741,33.1268,0.0000,49.4848,19.1059,-17.0564,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2086685144,16.5779,16.4418,0.1361,0.0000,16.5696,0.1652,16.4044,0.0000,35.1844,14.2430,14.3004,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2086850923,19.0037,18.8991,0.1046,0.0000,19.4022,0.1574,19.2448,0.0000,32.8495,33.3653,2.3349,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2087040960,33.4935,31.6951,1.7984,0.3643,31.6199,0.3752,31.2447,0.0000,47.2111,16.6761,-14.3616,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2087375895,14.2740,14.1594,0.1146,0.0380,14.2053,0.0971,14.1082,0.0000,30.3937,16.7012,16.8174,NA,NA -Presenter.exe,11648,0x1B95496E4B0,DXGI,0,0,0,Composed: Flip,2087533727,15.2590,15.0894,0.1696,0.2755,15.1026,0.2174,14.8852,0.0000,NA,NA,NA,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2087518635,17.3547,17.2277,0.1270,0.0000,17.3382,0.2387,17.0995,0.0000,32.8209,16.6792,-2.4272,NA,NA -Presenter.exe,11648,0x1B95496E4B0,DXGI,0,0,0,Composed: Flip,2087686317,15.6057,15.4794,0.1263,0.1699,15.5398,0.2293,15.3105,0.0000,32.7319,16.6918,0.0000,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2087692182,17.1978,17.1375,0.0603,0.0000,0.2192,0.2192,0.0000,0.0000,32.1454,16.6918,0.6755,NA,NA -Presenter.exe,11648,0x1B95496E4B0,DXGI,0,0,0,Composed: Flip,2087842374,15.6350,15.4948,0.1402,0.1695,15.5839,0.2523,15.3316,0.0000,33.8180,0.0900,-1.0861,NA,NA -Presenter.exe,11648,0x1B95496E4B0,DXGI,0,0,1,Hardware: Independent Flip,2087998724,15.5988,15.4811,0.1177,0.2860,15.4018,0.2101,15.1917,0.0000,18.2730,13.0569,15.5450,NA,NA -Presenter.exe,11648,0x1B95496E4B0,DXGI,0,0,1,Hardware: Independent Flip,2088154712,15.6659,15.5032,0.1627,2.6802,13.0165,0.1479,12.8686,0.0000,15.7311,15.6437,2.5419,NA,NA -Presenter.exe,11648,0x1B95496E4B0,DXGI,0,0,1,Hardware: Independent Flip,2088311371,15.5655,15.4505,0.1150,0.1172,15.5520,0.2322,15.3198,0.0000,15.7089,15.8555,0.0222,NA,NA -Presenter.exe,11648,0x1B95496E4B0,DXGI,0,0,1,Hardware: Independent Flip,2088467026,15.9600,15.4700,0.4900,0.2349,15.7278,0.1559,15.5719,0.0000,15.9989,15.4031,-0.2900,NA,NA -Presenter.exe,11648,0x1B95496E4B0,DXGI,0,0,1,Hardware: Independent Flip,2088626626,15.3044,15.1684,0.1360,0.1014,15.3040,0.1925,15.1115,0.0000,15.4420,15.6511,0.5569,NA,NA -Presenter.exe,11648,0x1B95496E4B0,DXGI,0,0,1,Hardware: Independent Flip,2088779670,15.7103,15.4647,0.2456,0.1969,15.5571,0.1545,15.4026,0.0000,15.7887,15.5459,-0.3467,NA,NA -Presenter.exe,11648,0x1B95496E4B0,DXGI,0,0,1,Hardware: Independent Flip,2088936773,15.5087,15.3963,0.1124,0.1386,15.4529,0.2140,15.2389,0.0000,15.6243,15.7141,0.1644,NA,NA -Presenter.exe,11648,0x1B95496E4B0,DXGI,0,0,1,Hardware: Independent Flip,2089091860,15.7417,15.5228,0.2189,0.1649,15.6244,0.1387,15.4857,0.0000,15.8297,15.5569,-0.2054,NA,NA -Presenter.exe,11648,0x1B95496E4B0,DXGI,0,0,1,Hardware: Independent Flip,2089249277,15.5243,15.3979,0.1264,0.1502,15.4606,0.2094,15.2512,0.0000,15.6449,15.7279,0.1848,NA,NA -Presenter.exe,11648,0x1B95496E4B0,DXGI,0,0,1,Hardware: Independent Flip,2089404520,15.7670,15.4485,0.3185,0.1768,15.6365,0.1563,15.4802,0.0000,15.8485,15.5153,-0.2036,NA,NA -Presenter.exe,11648,0x1B95496E4B0,DXGI,0,0,1,Hardware: Independent Flip,2089562190,15.4774,15.3536,0.1238,0.1389,15.4246,0.2084,15.2162,0.0000,15.5968,15.8077,0.2517,NA,NA -Presenter.exe,11648,0x1B95496E4B0,DXGI,0,0,1,Hardware: Independent Flip,2089716964,15.8480,15.4962,0.3518,0.1747,15.7188,0.1544,15.5644,0.0000,15.9271,15.4639,-0.3303,NA,NA -Presenter.exe,11648,0x1B95496E4B0,DXGI,0,0,1,Hardware: Independent Flip,2089875444,15.4232,15.2684,0.1548,0.1372,15.3720,0.2088,15.1632,0.0000,15.5430,15.6019,0.3841,NA,NA -Presenter.exe,11648,0x1B95496E4B0,DXGI,0,0,1,Hardware: Independent Flip,2090029676,15.6476,15.4503,0.1973,0.1756,15.5147,0.1517,15.3630,0.0000,15.7217,15.5532,-0.1787,NA,NA -Presenter.exe,11648,0x1B95496E4B0,DXGI,0,0,1,Hardware: Independent Flip,2090186152,15.5484,15.3944,0.1540,0.1304,15.4660,0.1707,15.2953,0.0000,15.6273,15.6408,0.0944,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2087864160,15.1541,15.1019,0.0522,0.1426,0.1564,0.1564,0.0000,0.0000,31.6394,283.5806,0.5060,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2088015701,285.9113,285.7981,0.1132,0.0000,0.0000,0.0000,0.0000,0.0000,300.0659,16.6767,-268.4265,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,2,0,Hardware: Legacy Flip,2090874814,14.6557,14.5199,0.1358,0.0779,0.1768,0.1768,0.0000,0.0000,30.8313,16.6691,269.2346,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2091021371,17.7016,17.5749,0.1267,17.6392,0.0342,0.0342,0.0000,0.0000,32.8447,16.6676,-2.0134,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2091198387,15.6675,15.5625,0.1050,0.0000,15.6724,0.2331,15.4393,0.0000,31.8107,16.6791,1.0340,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2091355062,17.0801,16.9806,0.0995,0.0000,17.0745,0.1710,16.9035,0.0000,32.8223,16.6815,-1.0116,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2091525863,16.1643,16.0574,0.1069,0.0000,16.1641,0.2271,15.9370,0.0000,32.4237,16.6737,0.3986,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2091687506,17.1186,17.0273,0.0913,0.0000,17.1263,0.1531,16.9732,0.0000,32.9331,16.6810,-0.5094,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2091858692,16.1485,16.0397,0.1088,0.0000,16.1249,0.2157,15.9092,0.0000,32.4955,33.3674,0.4376,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2092020177,33.5819,33.4196,0.1623,0.0000,33.5979,0.1961,33.4018,0.0000,49.7144,33.3552,-17.2189,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2092355996,33.3347,33.1904,0.1443,0.0000,33.3297,0.1856,33.1441,0.0000,49.4877,33.3529,0.2267,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2092689343,33.1798,33.0791,0.1007,0.0000,33.1839,0.1366,33.0473,0.0000,49.5059,16.6816,-0.0182,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2093021141,16.6053,16.5268,0.0785,0.0000,16.6180,0.1344,16.4836,0.0000,33.0077,33.3615,16.4982,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2093187194,33.5074,33.3845,0.1229,0.0000,33.4968,0.1486,33.3482,0.0000,49.7639,150.1077,-16.7562,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2093522268,150.2072,150.0656,0.1416,0.0000,150.2147,0.1767,150.0380,0.0000,166.3642,16.7003,-116.6003,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2095024340,16.4816,16.3826,0.0990,0.0000,16.4736,0.7550,15.7186,0.0000,32.8573,16.6725,133.5069,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2095189156,17.7101,17.5256,0.1845,0.0000,17.6669,0.1967,17.4702,0.0000,33.0482,16.6897,-0.1909,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2095366257,15.7076,15.6154,0.0922,0.0000,15.7536,0.2051,15.5485,0.0000,32.0278,16.6778,1.0204,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2095523333,17.2729,17.1605,0.1124,0.0000,17.4329,0.1292,17.3037,0.0000,32.9980,16.7075,-0.9702,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2095696062,16.2020,16.1226,0.0794,0.1345,16.0487,0.2711,15.7776,0.0000,32.4326,16.6522,0.5654,NA,NA -Presenter.exe,3976,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,2095823373,14.6889,14.6889,0.0000,0.1348,14.6404,0.2958,14.3446,0.0000,36.3537,16.6717,0.0000,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2095858082,16.6784,16.5949,0.0835,0.0000,16.6795,0.2758,16.4037,0.0000,32.8828,16.6717,-0.4502,NA,NA -Presenter.exe,3976,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,2095970262,15.0891,15.0891,0.0000,0.5439,14.6852,0.2073,14.4779,0.0000,38.3365,16.6887,-1.9828,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2096024866,16.6457,16.5667,0.0790,0.0000,16.6441,0.2655,16.3786,0.0000,32.8761,16.6887,0.0067,NA,NA -Presenter.exe,3976,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,2096121153,15.8377,15.8377,0.0000,0.1727,15.7757,0.2799,15.4958,0.0000,39.9361,16.6804,-1.5996,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2096191323,16.6725,16.5849,0.0876,0.0000,16.6755,0.2645,16.4110,0.0000,32.9191,16.6804,-0.0430,NA,NA -Presenter.exe,3976,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,2096279530,15.4010,15.4010,0.0000,0.5940,14.9370,0.2073,14.7297,0.0000,40.7788,16.6796,-0.8427,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2096358048,16.6732,16.6025,0.0707,0.0000,16.6774,0.2506,16.4268,0.0000,32.9270,16.6796,-0.0079,NA,NA -Presenter.exe,3976,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,2096433540,15.8633,15.8633,0.0000,0.2455,15.7472,0.3356,15.4116,0.0000,42.0574,16.6794,-1.2786,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2096524780,16.6988,16.5943,0.1045,0.0000,16.6697,0.2521,16.4176,0.0000,32.9334,16.6794,-0.0064,NA,NA -Presenter.exe,3976,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,2096592173,15.4616,15.4616,0.0000,0.8548,14.7376,0.2998,14.4378,0.0000,42.8735,16.6808,-0.8161,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2096691768,16.6644,16.5878,0.0766,0.0000,16.6940,0.2171,16.4769,0.0000,32.9140,16.6808,0.0194,NA,NA -Presenter.exe,3976,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,2096746789,15.7588,15.7588,0.0000,0.1308,15.7394,0.3043,15.4351,0.0000,44.0927,16.6832,-1.2192,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2096858412,16.6572,16.5826,0.0746,0.0000,16.6562,0.2535,16.4027,0.0000,32.9304,16.6832,-0.0164,NA,NA -Presenter.exe,3976,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,2096904377,15.4445,15.4445,0.0000,0.2480,15.2905,0.2229,15.0676,0.0000,45.0171,16.6758,-0.9244,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2097024984,16.7028,16.6327,0.0701,0.0000,16.7103,0.2507,16.4596,0.0000,32.9564,16.6758,-0.0260,NA,NA -Presenter.exe,3976,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,2097058822,15.8750,15.8750,0.0000,0.0940,15.8849,0.3305,15.5544,0.0000,46.2484,16.6805,-1.2313,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2097192012,16.6555,16.5821,0.0734,0.0000,16.6481,0.2505,16.3976,0.0000,32.9294,16.6805,0.0270,NA,NA -Presenter.exe,3976,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,2097217572,15.3464,15.3464,0.0000,0.2995,15.1867,0.2167,14.9700,0.0000,47.0539,16.6712,-0.8055,NA,NA -Presenter.exe,3976,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,2097371036,15.7833,15.7833,0.0000,0.1715,15.7332,0.2403,15.4929,0.0000,NA,NA,NA,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2097358567,16.6896,16.6150,0.0746,0.0000,16.6855,0.2464,16.4391,0.0000,32.9544,16.6712,-0.0250,NA,NA -Presenter.exe,3976,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,2097528869,15.4550,15.4550,0.0000,0.3595,15.1684,0.1549,15.0135,0.0000,32.5954,16.6893,14.4585,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2097525463,16.6832,16.6057,0.0775,0.0000,16.6856,0.2842,16.4014,0.0000,32.9360,16.6893,0.0184,NA,NA -Presenter.exe,3976,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,2097683419,15.8259,15.8259,0.0000,0.5283,15.3996,0.2817,15.1179,0.0000,33.8297,16.6821,-1.2343,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2097692295,17.1255,16.9772,0.1483,0.0000,17.1196,0.2409,16.8787,0.0000,32.9421,16.6821,-0.0061,NA,NA -Presenter.exe,3976,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,2097841678,15.4139,15.4139,0.0000,1.6765,13.8077,0.4234,13.3843,0.0000,34.6859,16.6773,-0.8562,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2097863550,16.2615,16.1654,0.0961,0.0000,16.2436,0.2294,16.0142,0.0000,32.4987,16.6773,0.4434,NA,NA -Presenter.exe,3976,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,2097995817,15.6448,15.6448,0.0000,2.6640,13.1059,0.2108,12.8951,0.0000,35.9493,16.6802,-1.2634,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2098026165,16.6571,16.5834,0.0737,0.0000,16.6886,0.2480,16.4406,0.0000,32.9145,16.6802,-0.4158,NA,NA -Presenter.exe,3976,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,2098152265,15.5700,15.5700,0.0000,4.3005,11.3879,0.2839,11.1040,0.0000,36.9847,16.6796,-1.0354,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2098192736,16.5659,16.4914,0.0745,0.0000,16.5635,0.2068,16.3567,0.0000,32.9376,16.6796,-0.0231,NA,NA -Presenter.exe,3976,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,2098307965,15.6468,15.6468,0.0000,4.8177,10.9633,0.2263,10.7370,0.0000,38.0943,16.6797,-1.1096,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2098358395,16.6405,16.5653,0.0752,0.0000,16.6367,0.2125,16.4242,0.0000,33.0513,16.6797,-0.1137,NA,NA -Presenter.exe,3976,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,2098464433,15.5630,15.5630,0.0000,5.8425,9.8526,0.2126,9.6400,0.0000,39.1272,16.6528,-1.0329,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2098524800,16.6591,16.5821,0.0770,0.0000,16.6635,0.1945,16.4690,0.0000,33.0905,16.6528,-0.0392,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2098691391,16.7001,16.6086,0.0915,0.0000,16.7078,0.2153,16.4925,0.0000,33.0842,16.7095,0.0063,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2098858392,17.6950,17.5762,0.1188,0.0000,17.6696,0.1814,17.4882,0.0000,33.0936,16.6787,-0.0094,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2099035342,15.8101,15.7159,0.0942,0.0000,15.8105,0.3040,15.5065,0.0000,32.0773,16.6794,1.0163,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2099193443,16.6830,16.5784,0.1046,0.0000,16.6666,0.1819,16.4847,0.0000,32.9466,16.6804,-0.8693,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2099360273,16.6380,16.5638,0.0742,0.0000,16.6675,0.2541,16.4134,0.0000,32.9440,16.6680,0.0026,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2099526653,16.6498,16.5758,0.0740,0.0000,16.6559,0.1715,16.4844,0.0000,32.9740,16.7016,-0.0300,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2099693151,16.9772,16.8218,0.1554,0.0000,16.9508,0.2408,16.7100,0.0000,33.0258,16.6663,-0.0518,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2099862923,16.7551,16.6039,0.1512,0.0000,16.7649,0.1804,16.5845,0.0000,32.7149,16.6779,0.3109,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2100030474,16.6097,16.4620,0.1477,0.0000,16.6077,0.2434,16.3643,0.0000,32.6377,16.6779,0.0772,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2100196571,16.5351,16.4154,0.1197,0.0000,16.5278,0.1441,16.3837,0.0000,32.7059,16.6791,-0.0682,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2100361922,16.5800,16.4980,0.0820,0.0000,16.5929,0.2472,16.3457,0.0000,32.8499,16.6802,-0.1440,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2100527722,16.6670,16.5627,0.1043,0.0000,16.6434,0.2369,16.4065,0.0000,32.9501,16.6793,-0.1002,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2100694392,16.6181,16.5399,0.0782,0.0000,16.6498,0.1793,16.4705,0.0000,32.9624,16.6783,-0.0123,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2100860573,16.6535,16.5793,0.0742,0.0000,16.6520,0.1928,16.4592,0.0000,33.0226,33.3642,-0.0602,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2101027108,33.4467,33.3336,0.1131,0.0000,33.4295,0.1285,33.3010,0.0000,49.7333,33.3587,-16.7107,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2101361575,33.2553,33.1743,0.0810,0.0000,33.2661,0.1792,33.0869,0.0000,49.6453,83.3823,0.0880,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2101694128,83.5763,83.4345,0.1418,0.0000,83.5550,0.1511,83.4039,0.0000,99.7723,16.6994,-50.1270,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2102529891,17.5621,17.4376,0.1245,0.0000,17.5777,0.3118,17.2659,0.0000,32.8954,16.6799,66.8769,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2102705512,15.7812,15.6437,0.1375,0.0000,15.8025,0.2803,15.5222,0.0000,32.0132,16.6714,0.8822,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2102863324,17.1489,16.9776,0.1713,0.0000,17.0704,0.1975,16.8729,0.0000,32.9034,16.6872,-0.8902,NA,NA -Presenter.exe,11112,0x0,Other,1,0,0,Hardware: Legacy Flip,2103162035,71.8756,71.8756,0.0000,0.3592,0.0975,0.0975,0.0000,0.0000,103.1373,16.6715,0.0000,NA,NA -Presenter.exe,11112,0x0,Other,1,0,0,Hardware: Legacy Flip,2103880791,20.6818,20.6818,0.0000,0.1660,2.8232,0.2266,2.5966,0.0000,47.9332,16.6793,55.2041,NA,NA -Presenter.exe,11112,0x0,Other,1,0,0,Hardware: Legacy Flip,2104087609,15.5838,15.5838,0.0000,0.0363,27.2465,0.3605,26.8860,0.0000,43.9307,16.6801,4.0025,NA,NA -Presenter.exe,11112,0x0,Other,1,0,0,Hardware: Legacy Flip,2104243447,15.6513,15.6513,0.0000,11.6990,16.6854,0.3232,16.3622,0.0000,45.0270,16.6802,-1.0963,NA,NA -Presenter.exe,11112,0x0,Other,1,0,0,Hardware: Legacy Flip,2104399960,15.5815,15.5815,0.0000,12.7331,16.6737,0.3302,16.3435,0.0000,46.0559,16.6712,-1.0289,NA,NA -Presenter.exe,11112,0x0,Other,1,0,0,Hardware: Legacy Flip,2104555775,15.6549,15.6549,0.0000,13.8253,16.6808,0.2518,16.4290,0.0000,47.1456,16.6886,-1.0897,NA,NA -Presenter.exe,11112,0x0,Other,1,0,0,Hardware: Legacy Flip,2104712324,15.5915,15.5915,0.0000,14.8512,16.6703,0.3899,16.2804,0.0000,48.1793,16.6750,-1.0337,NA,NA -Presenter.exe,11112,0x0,Other,1,0,0,Hardware: Legacy Flip,2104868239,15.6618,15.6618,0.0000,15.9300,16.6904,0.2231,16.4673,0.0000,49.2628,16.6889,-1.0835,NA,NA -Presenter.exe,11112,0x0,Other,1,0,0,Hardware: Legacy Flip,2105024857,15.6190,15.6190,0.0000,16.9586,16.6645,0.3114,16.3531,0.0000,50.2899,16.6755,-1.0271,NA,NA -Presenter.exe,11112,0x0,Other,1,0,0,Hardware: Legacy Flip,2105181047,15.6151,15.6151,0.0000,18.0041,16.7096,0.2186,16.4910,0.0000,51.3464,16.6804,-1.0565,NA,NA -Presenter.exe,11112,0x0,Other,1,0,0,Hardware: Legacy Flip,2105337198,15.6319,15.6319,0.0000,19.0986,16.6660,0.2388,16.4272,0.0000,52.4117,16.6797,-1.0653,NA,NA -Presenter.exe,11112,0x0,Other,1,0,0,Hardware: Legacy Flip,2105493517,15.6122,15.6122,0.0000,20.1327,16.6857,0.2424,16.4433,0.0000,53.4595,16.6819,-1.0478,NA,NA -Presenter.exe,11112,0x0,Other,1,0,0,Hardware: Legacy Flip,2105649639,15.6498,15.6498,0.0000,21.2062,16.6789,0.2390,16.4399,0.0000,54.5292,16.6780,-1.0697,NA,NA -Presenter.exe,11112,0x0,Other,1,0,0,Hardware: Legacy Flip,2105806137,15.6055,15.6055,0.0000,22.2353,16.6762,0.2318,16.4444,0.0000,55.5574,16.6807,-1.0282,NA,NA -Presenter.exe,11112,0x0,Other,1,0,0,Hardware: Legacy Flip,2105962192,15.6280,15.6280,0.0000,23.3060,16.6784,0.2442,16.4342,0.0000,56.6326,16.6792,-1.0752,NA,NA -Presenter.exe,11112,0x0,Other,1,0,0,Hardware: Legacy Flip,2106118472,15.5977,15.5977,0.0000,24.3564,16.6802,0.2472,16.4330,0.0000,57.6838,16.6801,-1.0512,NA,NA -Presenter.exe,11112,0x0,Other,1,0,0,Hardware: Legacy Flip,2106274449,31.2675,31.2675,0.0000,25.4389,16.6830,0.2458,16.4372,0.0000,58.7662,16.6732,-1.0824,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2103034813,16.1178,16.0019,0.1159,0.0000,16.2589,0.3279,15.9310,0.0000,32.4417,450.3687,0.4617,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2103195991,440.0199,417.9774,22.0425,0.0590,439.1807,0.6950,438.4857,0.0000,466.6926,16.6825,-434.2509,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2107596190,28.1418,27.9912,0.1506,0.1839,28.6300,0.0836,28.5464,0.0000,43.3552,16.7050,423.3374,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2107877608,16.0011,15.8761,0.1250,0.6721,15.3149,0.2260,15.0889,0.0000,31.9184,16.6781,11.4368,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2108037619,16.2696,16.1779,0.0917,0.0000,16.2607,0.2044,16.0563,0.0000,32.5954,16.6806,-0.6770,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2108200315,16.6302,16.5506,0.0796,0.0000,16.6371,0.2419,16.3952,0.0000,33.0064,33.3346,-0.4110,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2108366617,33.3622,33.2801,0.0821,0.0000,33.3591,0.1035,33.2556,0.0000,49.7108,33.3346,-16.7044,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2108700239,33.3800,33.2654,0.1146,0.0000,33.3530,0.2022,33.1508,0.0000,49.6832,34.9805,0.0276,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2109034039,33.6405,33.4912,0.1493,0.0000,33.6442,0.2180,33.4262,0.0000,51.2837,15.0791,-1.6005,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2109370444,18.2294,18.0922,0.1372,0.0000,18.2363,0.2165,18.0198,0.0000,32.7223,16.6809,18.5614,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2109552738,14.8980,14.7851,0.1129,0.0000,14.9044,0.1987,14.7057,0.0000,31.1738,16.6846,1.5485,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2109701718,17.4704,17.3620,0.1084,0.0000,17.4778,0.1588,17.3190,0.0000,32.9604,16.6778,-1.7866,NA,NA -Presenter.exe,2032,0x29A5884FF18,D3D9,-1,0,0,Composed: Copy with GPU GDI,2109834695,4.4929,0.0116,4.4813,0.0058,4.6118,0.2335,4.3783,0.0000,36.3405,16.6813,0.0000,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2109876422,15.9020,15.8010,0.1010,0.0000,15.8916,0.2449,15.6467,0.0000,32.1678,16.6813,0.7926,NA,NA -Presenter.exe,2032,0x29A5884FF18,D3D9,-1,0,0,Composed: Copy with GPU GDI,2109879624,15.7858,0.6317,15.1541,15.8349,0.1756,0.1756,0.0000,0.0000,48.5289,16.6797,-12.1884,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2110035442,17.1523,17.0712,0.0811,0.0000,17.3287,0.2353,17.0934,0.0000,32.9471,16.6797,-0.7793,NA,NA -Presenter.exe,2032,0x29A5884FF18,D3D9,-1,0,0,Composed: Copy with GPU GDI,2110037482,17.1753,0.0091,17.1662,0.2247,17.3492,0.1762,17.1730,0.0000,49.4228,16.6579,-0.8939,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2110206965,16.3031,16.2134,0.0897,0.1442,16.1395,0.2858,15.8537,0.0000,32.4745,16.6579,0.4726,NA,NA -Presenter.exe,2032,0x29A5884FF18,D3D9,-1,0,0,Composed: Copy with GPU GDI,2110209235,16.2924,0.0629,16.2295,16.3624,0.1760,0.1760,0.0000,0.0000,48.9054,16.7019,0.5174,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2110369996,16.7241,16.6154,0.1087,0.0000,16.7076,0.2740,16.4336,0.0000,32.8293,16.7019,-0.3548,NA,NA -Presenter.exe,2032,0x29A5884FF18,D3D9,-1,0,0,Composed: Copy with GPU GDI,2110372159,16.6981,0.1662,16.5319,16.7675,0.1493,0.1493,0.0000,0.0000,49.3149,16.6803,-0.4095,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2110537237,16.5467,16.4630,0.0837,0.0000,16.5785,0.2898,16.2887,0.0000,32.8071,16.6803,0.0222,NA,NA -Presenter.exe,2032,0x29A5884FF18,D3D9,-1,0,0,Composed: Copy with GPU GDI,2110539140,16.5716,0.1194,16.4522,16.6160,0.1487,0.1487,0.0000,0.0000,49.2971,16.6803,0.0178,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2110702704,16.6783,16.6023,0.0760,0.0000,16.6762,0.2261,16.4501,0.0000,32.9407,16.6803,-0.1336,NA,NA -Presenter.exe,2032,0x29A5884FF18,D3D9,-1,0,0,Composed: Copy with GPU GDI,2110704856,16.6287,0.0350,16.5937,16.7338,0.1549,0.1549,0.0000,0.0000,49.4058,16.6780,-0.1087,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2110869487,16.6941,16.6213,0.0728,0.0000,16.6867,0.2360,16.4507,0.0000,32.9427,16.6780,-0.0020,NA,NA -Presenter.exe,2032,0x29A5884FF18,D3D9,-1,0,0,Composed: Copy with GPU GDI,2110871143,16.7052,0.0106,16.6946,16.7820,0.1574,0.1574,0.0000,0.0000,49.4551,16.6800,-0.0493,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2111036428,16.6724,16.5944,0.0780,0.0000,16.6735,0.2316,16.4419,0.0000,32.9266,16.6800,0.0161,NA,NA -Presenter.exe,2032,0x29A5884FF18,D3D9,-1,0,0,Composed: Copy with GPU GDI,2111038195,16.6612,0.0027,16.6585,16.7801,0.1521,0.1521,0.0000,0.0000,49.4299,16.6802,0.0252,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2111203152,16.6748,16.5955,0.0793,0.0000,16.6697,0.2457,16.4240,0.0000,32.9342,16.6802,-0.0076,NA,NA -Presenter.exe,2032,0x29A5884FF18,D3D9,-1,0,0,Composed: Copy with GPU GDI,2111204807,16.6777,0.0025,16.6752,16.7552,0.1666,0.1666,0.0000,0.0000,49.4489,16.6822,-0.0190,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2111369900,16.6871,16.6187,0.0684,0.0000,16.7011,0.2364,16.4647,0.0000,32.9396,16.6822,-0.0054,NA,NA -Presenter.exe,2032,0x29A5884FF18,D3D9,-1,0,0,Composed: Copy with GPU GDI,2111371584,16.6806,0.0027,16.6779,16.8003,0.1512,0.1512,0.0000,0.0000,49.4534,16.6799,-0.0045,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2111536771,16.6522,16.5796,0.0726,0.0000,16.6447,0.2379,16.4068,0.0000,32.9347,16.6799,0.0049,NA,NA -Presenter.exe,2032,0x29A5884FF18,D3D9,-1,0,0,Composed: Copy with GPU GDI,2111538390,16.7064,0.0024,16.7040,16.7577,0.1536,0.1536,0.0000,0.0000,49.4527,16.6780,0.0007,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2111703293,16.7265,16.6373,0.0892,0.0000,16.7062,0.2379,16.4683,0.0000,32.9624,16.6780,-0.0277,NA,NA -Presenter.exe,2032,0x29A5884FF18,D3D9,-1,0,0,Composed: Copy with GPU GDI,2111705454,16.7242,0.0025,16.7217,16.7658,0.1557,0.1557,0.0000,0.0000,49.4243,16.6799,0.0284,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2111870558,16.6544,16.5758,0.0786,0.0000,16.6682,0.2467,16.4215,0.0000,32.9139,16.6799,0.0485,NA,NA -Presenter.exe,2032,0x29A5884FF18,D3D9,-1,0,0,Composed: Copy with GPU GDI,2111872696,16.6474,0.0025,16.6449,16.7081,0.1553,0.1553,0.0000,0.0000,49.3800,16.6799,0.0443,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2112037102,16.6656,16.5967,0.0689,0.0000,16.6782,0.2449,16.4333,0.0000,32.9394,16.6799,-0.0255,NA,NA -Presenter.exe,2032,0x29A5884FF18,D3D9,-1,0,0,Composed: Copy with GPU GDI,2112039170,16.6155,0.0026,16.6129,16.7390,0.1518,0.1518,0.0000,0.0000,49.4125,16.6803,-0.0325,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2112203758,16.7072,16.6338,0.0734,0.0000,16.7026,0.2390,16.4636,0.0000,32.9537,16.6803,-0.0143,NA,NA -Presenter.exe,2032,0x29A5884FF18,D3D9,-1,0,0,Composed: Copy with GPU GDI,2112205325,16.8865,0.0024,16.8841,16.8097,0.1497,0.1497,0.0000,0.0000,49.4773,16.6797,-0.0648,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2112370830,16.6871,16.6135,0.0736,0.0000,16.6857,0.2352,16.4505,0.0000,32.9268,16.6797,0.0269,NA,NA -Presenter.exe,2032,0x29A5884FF18,D3D9,-1,0,0,Composed: Copy with GPU GDI,2112374190,16.6743,0.0024,16.6719,16.5987,0.1492,0.1492,0.0000,0.0000,49.2705,16.7001,0.2068,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2112537701,16.6777,16.6000,0.0777,0.0000,16.6719,0.2250,16.4469,0.0000,32.9194,16.7001,0.0074,NA,NA -Presenter.exe,2032,0x29A5884FF18,D3D9,-1,0,0,Composed: Copy with GPU GDI,2112540933,16.5946,0.0023,16.5923,16.5993,0.1758,0.1758,0.0000,0.0000,49.2963,16.6744,-0.0258,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2112704478,16.7137,16.6405,0.0732,0.0000,16.7216,0.2136,16.5080,0.0000,32.9418,16.6744,-0.0224,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2112871615,17.8312,17.6567,0.1745,0.0000,17.7976,0.2877,17.5099,0.0000,32.9025,16.6479,0.0393,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2113049927,15.9799,15.6837,0.2962,0.0000,15.9550,0.3617,15.5933,0.0000,31.7192,16.6766,1.1833,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2113209726,16.3683,16.2317,0.1366,0.0000,16.4005,0.2826,16.1179,0.0000,32.4159,16.6991,-0.6967,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2113373409,16.5872,16.4719,0.1153,0.0000,16.5927,0.2022,16.3905,0.0000,32.7467,16.6909,-0.3308,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2113539281,17.0559,16.8843,0.1716,0.0000,17.0755,0.3595,16.7160,0.0000,32.8504,16.6792,-0.1037,NA,NA -Presenter.exe,5988,0x224CBFFD9D8,D3D9,-1,0,0,Composed: Copy with GPU GDI,2113638532,7.5378,0.3398,7.1980,0.0153,7.4927,0.2552,7.2375,0.0000,39.6045,16.6793,0.0000,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2113709840,16.2923,16.1602,0.1321,0.0000,16.2849,0.1759,16.1090,0.0000,32.4737,16.6793,0.3767,NA,NA -Presenter.exe,5988,0x224CBFFD9D8,D3D9,-1,0,0,Composed: Copy with GPU GDI,2113713910,16.2832,0.0176,16.2656,0.0130,16.2776,0.2558,16.0218,0.0000,48.7460,16.6886,-9.1415,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2113872763,16.7153,16.5793,0.1360,0.0000,16.7199,0.2140,16.5059,0.0000,32.8607,16.6886,-0.3870,NA,NA -Presenter.exe,5988,0x224CBFFD9D8,D3D9,-1,0,0,Composed: Copy with GPU GDI,2113876742,16.6090,0.0147,16.5943,16.5514,0.1848,0.1848,0.0000,0.0000,49.1514,16.6683,-0.4054,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2114039916,16.6201,16.5018,0.1183,0.0000,16.6064,0.2038,16.4026,0.0000,32.8340,16.6683,0.0267,NA,NA -Presenter.exe,5988,0x224CBFFD9D8,D3D9,-1,0,0,Composed: Copy with GPU GDI,2114042832,16.5644,0.3314,16.2330,16.5776,0.1809,0.1809,0.0000,0.0000,49.2107,16.6772,-0.0593,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2114206117,16.8282,16.6652,0.1630,0.0000,16.8230,0.2626,16.5604,0.0000,32.8822,16.6772,-0.0482,NA,NA -Presenter.exe,5988,0x224CBFFD9D8,D3D9,-1,0,0,Composed: Copy with GPU GDI,2114208476,16.8407,0.0111,16.8296,16.8038,0.1693,0.1693,0.0000,0.0000,49.3235,16.6790,-0.1128,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2114374399,16.4612,16.3402,0.1210,0.0000,16.4380,0.1717,16.2663,0.0000,32.7312,16.6790,0.1510,NA,NA -Presenter.exe,5988,0x224CBFFD9D8,D3D9,-1,0,0,Composed: Copy with GPU GDI,2114376883,16.4886,0.1574,16.3312,16.4230,0.1731,0.1731,0.0000,0.0000,49.1618,16.6801,0.1617,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2114539011,16.5828,16.5119,0.0709,0.0000,16.6365,0.2261,16.4104,0.0000,32.9490,16.6801,-0.2178,NA,NA -Presenter.exe,5988,0x224CBFFD9D8,D3D9,-1,0,0,Composed: Copy with GPU GDI,2114541769,16.4910,0.0032,16.4878,16.5702,0.1614,0.1614,0.0000,0.0000,49.3533,16.6799,-0.1915,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2114704839,16.6754,16.6030,0.0724,0.0000,16.6709,0.2222,16.4487,0.0000,33.0463,16.6799,-0.0973,NA,NA -Presenter.exe,5988,0x224CBFFD9D8,D3D9,-1,0,0,Composed: Copy with GPU GDI,2114706679,16.6638,0.0126,16.6512,0.2406,16.6650,0.2315,16.4335,0.0000,49.5422,16.6799,-0.1889,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2114871593,16.6428,16.5726,0.0702,0.0000,16.6360,0.2184,16.4176,0.0000,33.0508,16.6799,-0.0045,NA,NA -Presenter.exe,5988,0x224CBFFD9D8,D3D9,-1,0,0,Composed: Copy with GPU GDI,2114873317,16.6202,0.0023,16.6179,0.2418,16.6196,0.2314,16.3882,0.0000,49.5583,16.6879,-0.0161,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2115038021,17.1507,17.0587,0.0920,0.0000,17.1566,0.2131,16.9435,0.0000,33.0879,16.6879,-0.0371,NA,NA -Presenter.exe,5988,0x224CBFFD9D8,D3D9,-1,0,0,Composed: Copy with GPU GDI,2115039519,17.1711,0.0024,17.1687,0.2412,17.1477,0.2287,16.9190,0.0000,49.6260,16.6759,-0.0677,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2115209528,16.4091,16.1504,0.2587,0.0000,16.4012,0.2217,16.1795,0.0000,32.6251,16.6759,0.4628,NA,NA -Presenter.exe,5988,0x224CBFFD9D8,D3D9,-1,0,0,Composed: Copy with GPU GDI,2115211230,16.4050,0.0024,16.4026,0.2178,16.3960,0.2346,16.1614,0.0000,49.1308,16.6764,0.4952,NA,NA -Presenter.exe,5988,0x224CBFFD9D8,D3D9,-1,0,0,Composed: Copy with GPU GDI,2115375280,16.4919,0.0022,16.4897,0.2088,16.2372,0.3024,15.9348,0.0000,NA,NA,NA,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2115373619,16.6599,16.5201,0.1398,0.0000,16.6585,0.2036,16.4549,0.0000,32.8919,16.6764,-0.2668,NA,NA -Presenter.exe,5988,0x224CBFFD9D8,D3D9,-1,0,0,Composed: Copy with GPU GDI,2115540199,0.2503,0.0026,0.2477,0.1845,0.3206,0.1669,0.1537,0.0000,32.9103,16.6790,16.2205,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2115540218,16.4959,16.4183,0.0776,0.0000,16.4932,0.3593,16.1339,0.0000,32.9084,16.6790,-0.0165,NA,NA -Presenter.exe,5988,0x224CBFFD9D8,D3D9,-1,0,0,Composed: Copy with GPU GDI,2115542702,16.4002,0.0024,16.3978,16.4749,0.1633,0.1633,0.0000,0.0000,49.3390,16.6807,-16.4287,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2115705177,16.6927,16.5998,0.0929,0.0000,16.6771,0.2050,16.4721,0.0000,33.0915,16.6807,-0.1831,NA,NA -Presenter.exe,5988,0x224CBFFD9D8,D3D9,-1,0,0,Composed: Copy with GPU GDI,2115706704,16.7018,0.0024,16.6994,0.2380,16.6768,0.2163,16.4605,0.0000,49.6195,16.6800,-0.2805,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2115872104,16.6548,16.5849,0.0699,0.0000,16.6773,0.2026,16.4747,0.0000,33.0795,16.6800,0.0120,NA,NA -Presenter.exe,5988,0x224CBFFD9D8,D3D9,-1,0,0,Composed: Copy with GPU GDI,2115873722,16.6378,0.0024,16.6354,0.2130,16.6752,0.2239,16.4513,0.0000,49.5977,16.6876,0.0218,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2116038652,16.6868,16.6020,0.0848,0.0000,16.6792,0.2061,16.4731,0.0000,33.1047,16.6876,-0.0252,NA,NA -Presenter.exe,5988,0x224CBFFD9D8,D3D9,-1,0,0,Composed: Copy with GPU GDI,2116040100,16.6999,0.0024,16.6975,0.2504,16.6957,0.2357,16.4600,0.0000,49.6475,16.6576,-0.0498,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2116205520,16.6722,16.5989,0.0733,0.0000,16.6840,0.2154,16.4686,0.0000,33.1055,16.6576,-0.0008,NA,NA -Presenter.exe,5988,0x224CBFFD9D8,D3D9,-1,0,0,Composed: Copy with GPU GDI,2116207099,16.6617,0.0024,16.6593,0.2462,16.6638,0.2354,16.4284,0.0000,49.6052,16.6840,0.0423,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2116372242,16.6791,16.6106,0.0685,0.0000,16.6761,0.2062,16.4699,0.0000,33.0909,16.6840,0.0146,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2116539033,18.2061,18.0603,0.1458,0.0000,18.1676,0.2397,17.9279,0.0000,33.0958,16.6868,-0.0049,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2116721094,15.5550,15.4216,0.1334,0.0000,15.5909,0.2824,15.3085,0.0000,31.5765,16.6382,1.5193,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2116876644,16.4836,16.3443,0.1393,0.0000,16.4785,0.2229,16.2556,0.0000,32.6597,16.7101,-1.0832,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2117041480,16.9119,16.7732,0.1387,0.0000,16.8746,0.2252,16.6494,0.0000,32.8862,33.3779,-0.2265,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2117210599,33.1303,32.9920,0.1383,0.0000,33.1726,0.2301,32.9425,0.0000,49.3522,16.6703,-16.4660,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2117541902,17.4971,17.3802,0.1169,0.0000,17.4879,0.1630,17.3249,0.0000,32.8922,16.6796,16.4600,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2117716873,15.9937,15.9081,0.0856,0.0000,15.9948,0.2586,15.7362,0.0000,32.0747,16.6880,0.8175,NA,NA -Presenter.exe,12268,0x20DBB4358B0,DXGI,0,0,0,Composed: Flip,2117844370,15.3934,15.2660,0.1274,0.0894,15.3930,0.2120,15.1810,0.0000,36.0130,16.6797,0.0000,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2117876810,16.8780,16.7882,0.0898,0.0000,17.0147,0.2064,16.8083,0.0000,32.7690,16.6797,-0.6943,NA,NA -Presenter.exe,12268,0x20DBB4358B0,DXGI,0,0,0,Composed: Flip,2117998304,15.6482,15.5347,0.1135,0.4784,15.2950,0.2278,15.0672,0.0000,37.2993,16.6803,-1.2863,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2118045590,16.3911,16.3029,0.0882,0.1153,16.3095,0.2752,16.0343,0.0000,32.5707,16.6803,0.1983,NA,NA -Presenter.exe,12268,0x20DBB4358B0,DXGI,0,0,0,Composed: Flip,2118154786,15.6148,15.5206,0.0942,0.2110,15.5342,0.3466,15.1876,0.0000,38.3314,16.6859,-1.0321,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2118209501,16.6634,16.5859,0.0775,0.0337,16.6835,0.2828,16.4007,0.0000,32.8599,16.6859,-0.2892,NA,NA -Presenter.exe,12268,0x20DBB4358B0,DXGI,0,0,0,Composed: Flip,2118310934,15.6358,15.5276,0.1082,0.2010,15.5592,0.2319,15.3273,0.0000,39.4025,16.6740,-1.0711,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2118376135,16.6421,16.5636,0.0785,0.0538,16.5725,0.2572,16.3153,0.0000,32.8824,16.6740,-0.0225,NA,NA -Presenter.exe,12268,0x20DBB4358B0,DXGI,0,0,0,Composed: Flip,2118467292,15.6062,15.5086,0.0976,0.2930,15.4349,0.2242,15.2107,0.0000,40.4407,16.6805,-1.0382,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2118542556,16.7010,16.6074,0.0936,0.0000,16.6825,0.2461,16.4364,0.0000,32.9143,16.6805,-0.0319,NA,NA -Presenter.exe,12268,0x20DBB4358B0,DXGI,0,0,0,Composed: Flip,2118623354,15.8271,15.5179,0.3092,0.1906,15.7707,0.2380,15.5327,0.0000,41.5150,16.6790,-1.0743,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2118709566,16.6504,16.5689,0.0815,0.0000,16.6721,0.2484,16.4237,0.0000,32.8938,16.6790,0.0205,NA,NA -Presenter.exe,12268,0x20DBB4358B0,DXGI,0,0,0,Composed: Flip,2118781625,15.3744,15.2813,0.0931,0.4237,15.0617,0.2053,14.8564,0.0000,42.3669,16.6795,-0.8519,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2118876070,16.6918,16.6171,0.0747,0.0000,16.6880,0.2454,16.4426,0.0000,32.9224,16.6795,-0.0286,NA,NA -Presenter.exe,12268,0x20DBB4358B0,DXGI,0,0,0,Composed: Flip,2118935369,15.6684,15.5655,0.1029,0.1664,15.6242,0.2216,15.4026,0.0000,43.6720,16.6807,-1.3051,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2119042988,16.6635,16.5889,0.0746,0.0000,16.6738,0.2457,16.4281,0.0000,32.9101,16.6807,0.0123,NA,NA -Presenter.exe,12268,0x20DBB4358B0,DXGI,0,0,0,Composed: Flip,2119092053,15.6910,15.5232,0.1678,0.1787,15.6237,0.2037,15.4200,0.0000,44.6843,16.6790,-1.0123,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2119209623,16.6976,16.6288,0.0688,0.0000,16.6930,0.2453,16.4477,0.0000,32.9273,16.6790,-0.0172,NA,NA -Presenter.exe,12268,0x20DBB4358B0,DXGI,0,0,0,Composed: Flip,2119248963,15.6828,15.4492,0.2336,0.1686,15.6333,0.2344,15.3989,0.0000,45.6723,16.7012,-0.9880,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2119376599,16.6778,16.5997,0.0781,0.0000,16.6711,0.2454,16.4257,0.0000,32.9087,16.7012,0.0186,NA,NA -Presenter.exe,12268,0x20DBB4358B0,DXGI,0,0,0,Composed: Flip,2119405791,15.5350,15.3496,0.1854,0.2083,15.4550,0.2218,15.2332,0.0000,46.6907,16.6564,-1.0184,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2119543377,16.6871,16.6196,0.0675,0.0000,16.6941,0.2487,16.4454,0.0000,32.9321,16.6564,-0.0234,NA,NA -Presenter.exe,12268,0x20DBB4358B0,DXGI,0,0,0,Composed: Flip,2119561141,15.7821,15.4821,0.3000,0.1818,15.7006,0.2346,15.4660,0.0000,47.8121,16.6820,-1.1214,NA,NA -Presenter.exe,12268,0x20DBB4358B0,DXGI,0,0,0,Composed: Flip,2119718962,15.4703,15.2724,0.1979,0.1891,15.5017,0.3354,15.1663,0.0000,NA,NA,NA,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2119710248,16.8897,16.7777,0.1120,0.0000,16.8813,0.2639,16.6174,0.0000,32.9014,16.6820,0.0307,NA,NA -Presenter.exe,12268,0x20DBB4358B0,DXGI,0,0,0,Composed: Flip,2119873665,15.8390,15.4687,0.3703,0.3592,15.5750,0.2611,15.3139,0.0000,33.2417,16.7098,14.5704,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2119879145,16.5026,16.4044,0.0982,0.0000,16.4810,0.2448,16.2362,0.0000,32.6937,16.7098,0.2077,NA,NA -Presenter.exe,12268,0x20DBB4358B0,DXGI,0,0,0,Composed: Flip,2120032055,15.3994,15.2590,0.1404,0.1844,15.3369,0.2372,15.0997,0.0000,34.1125,16.6514,-0.8708,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2120044171,16.6086,16.5359,0.0727,0.0000,16.6368,0.2541,16.3827,0.0000,32.9009,16.6514,-0.2072,NA,NA -Presenter.exe,12268,0x20DBB4358B0,DXGI,0,0,0,Composed: Flip,2120186049,15.6746,15.4793,0.1953,0.2297,15.5475,0.2038,15.3437,0.0000,35.3645,16.6800,-1.2520,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2120210257,16.7629,16.6830,0.0799,0.0000,16.7555,0.2465,16.5090,0.0000,32.9437,16.6800,-0.0428,NA,NA -Presenter.exe,12268,0x20DBB4358B0,DXGI,0,0,0,Composed: Flip,2120342795,15.5352,15.4261,0.1091,0.1613,15.5105,0.2031,15.3074,0.0000,36.3699,16.6632,-1.0054,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2120377886,16.6352,16.5620,0.0732,0.0000,16.6410,0.2322,16.4088,0.0000,32.8608,16.6632,0.0829,NA,NA -Presenter.exe,12268,0x20DBB4358B0,DXGI,0,0,0,Composed: Flip,2120498147,15.6065,15.4663,0.1402,0.1915,15.5577,0.2633,15.2944,0.0000,37.4979,16.6583,-1.1280,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2120544238,16.5370,16.4581,0.0789,0.0000,16.5333,0.2130,16.3203,0.0000,32.8888,16.6583,-0.0280,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2120709608,17.8207,17.6953,0.1254,0.0000,17.8072,0.2405,17.5667,0.0000,33.0101,16.7109,-0.1213,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2120887815,15.7004,15.5779,0.1225,0.0000,15.7052,0.4469,15.2583,0.0000,31.9003,16.6651,1.1098,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2121044819,16.9703,16.7249,0.2454,0.0000,16.9649,0.2825,16.6824,0.0000,32.8650,16.7101,-0.9647,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2121214522,16.8466,16.3677,0.4789,0.0000,16.6772,0.3430,16.3342,0.0000,32.6048,16.6521,0.2602,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2121382988,16.3297,16.2046,0.1251,0.0000,16.3307,0.1210,16.2097,0.0000,32.4103,16.6788,0.1945,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2121546285,16.6042,16.4754,0.1288,0.0000,16.6095,0.1636,16.4459,0.0000,32.7594,16.6750,-0.3491,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2121712327,16.5871,16.4856,0.1015,0.0000,16.5837,0.1420,16.4417,0.0000,32.8302,16.6796,-0.0708,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2121878198,16.6288,16.5501,0.0787,0.0000,16.6442,0.2008,16.4434,0.0000,32.9227,16.6794,-0.0925,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2122044486,16.6663,16.5833,0.0830,0.0000,16.6693,0.1976,16.4717,0.0000,32.9733,16.6703,-0.0506,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2122211149,16.6472,16.5710,0.0762,0.0000,16.6455,0.1834,16.4621,0.0000,32.9773,16.6893,-0.0040,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2122377621,16.7168,16.6276,0.0892,0.0000,16.7179,0.1931,16.5248,0.0000,33.0194,16.6778,-0.0421,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2122544789,16.7273,16.6095,0.1178,0.0000,16.6943,0.1888,16.5055,0.0000,32.9804,16.6808,0.0390,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2122712062,16.5724,16.4960,0.0764,0.0000,16.6043,0.2219,16.3824,0.0000,32.9339,33.3642,0.0465,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2122877786,33.3690,33.2848,0.0842,0.0000,33.3793,0.1978,33.1815,0.0000,49.7257,33.3576,-16.7918,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2123211476,33.4379,33.3186,0.1193,0.0000,33.4115,0.1853,33.2262,0.0000,49.7143,33.3526,0.0114,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2123545855,33.3474,33.2270,0.1204,0.0000,33.3468,0.1389,33.2079,0.0000,49.6290,16.6936,0.0853,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2123879329,16.9025,16.7759,0.1266,0.0000,16.8983,0.1439,16.7544,0.0000,32.9752,16.6785,16.6538,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2124048354,21.1251,17.0529,4.0722,0.0000,17.3789,0.4213,16.9576,0.0000,32.7512,16.6772,0.2240,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2124259605,12.0497,11.9372,0.1125,0.0366,11.9761,0.0837,11.8924,0.0000,28.3033,16.6739,4.4479,NA,NA -dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,2124380102,17.1166,16.9739,0.1427,0.0000,17.0923,0.2720,16.8203,0.0000,32.9275,16.7109,-4.6242,NA,NA -Presenter.exe,11100,0x0,Other,1,0,0,Hardware: Legacy Flip,2124719370,80.5150,80.5150,0.0000,0.4520,0.0885,0.0885,0.0000,0.0000,99.1472,16.6727,0.0000,NA,NA -Presenter.exe,11100,0x0,Other,1,0,0,Hardware: Legacy Flip,2125524520,10.3918,10.3918,0.0000,0.1928,0.6808,0.2129,0.4679,0.0000,35.3049,16.6535,63.8423,NA,NA -Presenter.exe,11100,0x0,Other,1,0,0,Hardware: Legacy Flip,2125628438,15.6228,15.6228,0.0000,0.0451,24.9003,0.4760,24.4243,0.0000,41.5666,16.6806,-6.2617,NA,NA -Presenter.exe,11100,0x0,Other,1,0,0,Hardware: Legacy Flip,2125784666,15.6398,15.6398,0.0000,9.3226,16.6524,0.4381,16.2143,0.0000,42.6244,16.6870,-1.0578,NA,NA -Presenter.exe,11100,0x0,Other,1,0,0,Hardware: Legacy Flip,2125941064,15.5939,15.5939,0.0000,10.3352,16.6858,0.3111,16.3747,0.0000,43.6716,16.6779,-1.0472,NA,NA -Presenter.exe,11100,0x0,Other,1,0,0,Hardware: Legacy Flip,2126097003,15.5925,15.5925,0.0000,11.4271,16.6971,0.3174,16.3797,0.0000,44.7556,16.6747,-1.0840,NA,NA -Presenter.exe,11100,0x0,Other,1,0,0,Hardware: Legacy Flip,2126252928,15.6175,15.6175,0.0000,12.5317,16.6806,0.2517,16.4289,0.0000,45.8378,16.6724,-1.0822,NA,NA -Presenter.exe,11100,0x0,Other,1,0,0,Hardware: Legacy Flip,2126409103,15.6188,15.6188,0.0000,13.5948,16.6565,0.2870,16.3695,0.0000,46.8927,16.6874,-1.0549,NA,NA -Presenter.exe,11100,0x0,Other,1,0,0,Hardware: Legacy Flip,2126565291,15.5854,15.5854,0.0000,14.6325,16.6801,0.2380,16.4421,0.0000,47.9613,16.6802,-1.0686,NA,NA -Presenter.exe,11100,0x0,Other,1,0,0,Hardware: Legacy Flip,2126721145,15.6229,15.6229,0.0000,15.7272,16.6872,0.2824,16.4048,0.0000,49.0561,16.6855,-1.0948,NA,NA -Presenter.exe,11100,0x0,Other,1,0,0,Hardware: Legacy Flip,2126877374,15.6720,15.6720,0.0000,16.7915,16.7001,0.2576,16.4425,0.0000,50.1187,16.6738,-1.0626,NA,NA -Presenter.exe,11100,0x0,Other,1,0,0,Hardware: Legacy Flip,2127034094,15.6168,15.6168,0.0000,17.8196,16.6741,0.2220,16.4521,0.0000,51.1205,16.6829,-1.0018,NA,NA -Presenter.exe,11100,0x0,Other,1,0,0,Hardware: Legacy Flip,2127190262,15.6509,15.6509,0.0000,18.8769,16.6646,0.2451,16.4195,0.0000,52.1866,16.6771,-1.0661,NA,NA -Presenter.exe,11100,0x0,Other,1,0,0,Hardware: Legacy Flip,2127346771,15.6089,15.6089,0.0000,19.8906,16.6859,0.2234,16.4625,0.0000,53.2128,16.6802,-1.0262,NA,NA -Presenter.exe,11100,0x0,Other,1,0,0,Hardware: Legacy Flip,2127502860,15.6288,15.6288,0.0000,20.9676,16.6745,0.2440,16.4305,0.0000,54.2841,16.6789,-1.0713,NA,NA -Presenter.exe,11100,0x0,Other,1,0,0,Hardware: Legacy Flip,2127659148,15.6168,15.6168,0.0000,22.0133,16.6797,0.2350,16.4447,0.0000,55.3342,16.6801,-1.0501,NA,NA -Presenter.exe,11100,0x0,Other,1,0,0,Hardware: Legacy Flip,2127815316,15.6080,15.6080,0.0000,23.0762,16.7080,0.2656,16.4424,0.0000,56.3975,16.7761,-1.0633,NA,NA +Application,ProcessID,SwapChainAddress,PresentRuntime,SyncInterval,PresentFlags,AllowsTearing,PresentMode,FrameType,CPUStartQPC,FrameTime,CPUBusy,CPUWait,GPULatency,GPUTime,GPUBusy,GPUWait,VideoBusy,DisplayLatency,DisplayedTime,AnimationError,AnimationTime,AllInputToPhotonLatency,ClickToPhotonLatency,InstrumentedLatency +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2076511276,16.3893,16.3000,0.0893,0.8529,15.5144,1.0752,14.4392,0.0000,32.7296,33.3323,0.0000,332.7030,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2076675169,33.4674,33.3150,0.1524,0.0000,33.4282,1.2105,32.2177,0.0000,49.6726,100.0649,-16.9430,349.0923,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2077009843,100.3405,100.2183,0.1222,0.0000,100.4033,1.1640,99.2393,0.0000,116.2701,16.6784,-66.5975,382.5597,NA,NA,NA +Presenter.exe,10792,0x20979A6D5F8,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,2077942683,7.6275,0.1474,7.4801,0.0000,7.7858,0.1722,7.6136,0.0000,39.6645,16.6805,0.0000,475.8437,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2078013248,16.2640,16.1733,0.0907,0.0016,16.2389,0.2928,15.9461,0.0000,32.6080,16.6805,83.6621,482.9002,NA,NA,NA +Presenter.exe,10792,0x20979A6D5F8,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,2078018958,15.9556,0.0334,15.9222,15.9223,0.2127,0.2127,0.0000,0.0000,48.7175,16.6791,-9.0530,483.4712,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2078175888,16.6283,16.5521,0.0762,0.0000,16.6554,0.2362,16.4192,0.0000,33.0245,16.6791,-0.4165,499.1642,NA,NA,NA +Presenter.exe,10792,0x20979A6D5F8,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,2078178514,16.5287,0.0107,16.5180,16.5983,0.1742,0.1742,0.0000,0.0000,49.4410,16.6857,-0.7235,499.4268,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2078342171,16.6706,16.5976,0.0730,0.0036,16.6544,0.1928,16.4616,0.0000,33.0753,16.6857,-0.0508,515.7925,NA,NA,NA +Presenter.exe,10792,0x20979A6D5F8,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,2078343801,16.6579,0.3338,16.3241,0.2438,16.6635,0.2007,16.4628,0.0000,49.5980,16.6661,-0.1570,515.9555,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2078508877,16.6786,16.6001,0.0785,0.0000,16.6714,0.2122,16.4592,0.0000,33.0904,16.6661,-0.0151,532.4631,NA,NA,NA +Presenter.exe,10792,0x20979A6D5F8,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,2078510380,16.6787,0.0087,16.6700,0.2494,16.6714,0.2416,16.4298,0.0000,49.6062,16.6888,-0.0082,532.6134,NA,NA,NA +Presenter.exe,10792,0x20979A6D5F8,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,2078677167,16.6824,0.2108,16.4716,16.7587,0.1739,0.1739,0.0000,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2078675663,16.6779,16.6078,0.0701,0.0000,16.6868,0.2036,16.4832,0.0000,33.0779,16.6888,0.0125,549.1417,NA,NA,NA +Presenter.exe,10792,0x20979A6D5F8,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,2078843991,16.0014,0.0024,15.9990,15.9102,0.1684,0.1637,0.0047,0.0000,32.9339,16.6810,16.6723,565.9745,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2078842442,16.6876,16.6040,0.0836,0.0000,16.6902,0.2088,16.4814,0.0000,33.0888,16.6810,-0.0109,565.8196,NA,NA,NA +Presenter.exe,10792,0x20979A6D5F8,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,2079004005,0.6979,0.0104,0.6875,0.7745,0.1689,0.1689,0.0000,0.0000,33.6135,16.6780,-0.6796,581.9759,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2079009318,16.7183,16.6061,0.1122,0.0000,16.6961,0.2394,16.4567,0.0000,33.0822,16.6780,0.0066,582.5072,NA,NA,NA +Presenter.exe,10792,0x20979A6D5F8,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,2079010984,16.7186,0.0026,16.7160,16.7325,0.1627,0.1627,0.0000,0.0000,49.5936,16.6801,-15.9801,582.6738,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2079176501,16.6320,16.5616,0.0704,0.0000,16.6509,0.1711,16.4798,0.0000,33.0419,16.6801,0.0403,599.2255,NA,NA,NA +Presenter.exe,10792,0x20979A6D5F8,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,2079178170,16.6185,0.0027,16.6158,0.1766,16.6820,0.2296,16.4524,0.0000,49.5551,16.6828,0.0385,599.3924,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2079342821,16.6626,16.5852,0.0774,0.0000,16.6622,0.2100,16.4522,0.0000,33.0900,16.6828,-0.0481,615.8575,NA,NA,NA +Presenter.exe,10792,0x20979A6D5F8,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,2079344355,16.6837,0.0024,16.6813,0.2401,16.6787,0.2267,16.4520,0.0000,49.6194,16.6778,-0.0643,616.0109,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2079509447,16.6847,16.6143,0.0704,0.0000,16.6857,0.2196,16.4661,0.0000,33.1102,16.6778,-0.0202,632.5201,NA,NA,NA +Presenter.exe,10792,0x20979A6D5F8,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,2079511192,16.6648,0.0026,16.6622,0.2351,16.6659,0.2272,16.4387,0.0000,49.6135,16.6793,0.0059,632.6946,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2079676294,16.6845,16.6077,0.0768,0.0000,16.6784,0.2060,16.4724,0.0000,33.1033,16.6793,0.0069,649.2048,NA,NA,NA +Presenter.exe,10792,0x20979A6D5F8,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,2079677840,16.7132,0.0024,16.7108,0.2362,16.6791,0.2168,16.4623,0.0000,49.6280,16.6796,-0.0145,649.3594,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2079843139,16.6824,16.6096,0.0728,0.0000,16.6872,0.2021,16.4851,0.0000,33.0981,16.6796,0.0052,665.8893,NA,NA,NA +Presenter.exe,10792,0x20979A6D5F8,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,2079844972,16.6504,0.0025,16.6479,0.2021,16.6903,0.2302,16.4601,0.0000,49.5944,16.6874,0.0336,666.0726,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2080009963,16.6688,16.5936,0.0752,0.0000,16.6691,0.2115,16.4576,0.0000,33.0953,16.6874,0.0028,682.5717,NA,NA,NA +Presenter.exe,10792,0x20979A6D5F8,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,2080011476,16.6694,0.0025,16.6669,0.2420,16.6719,0.2348,16.4371,0.0000,49.6314,16.6737,-0.0370,682.7230,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2080176651,16.7142,16.6457,0.0685,0.0000,16.7156,0.2096,16.5060,0.0000,33.1139,16.6737,-0.0186,699.2405,NA,NA,NA +Presenter.exe,10792,0x20979A6D5F8,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,2080178170,16.7508,0.0025,16.7483,0.2445,16.7201,0.2327,16.4874,0.0000,49.6357,16.6788,-0.0043,699.3924,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2080343793,16.7184,16.6111,0.1073,0.0000,16.6931,0.2130,16.4801,0.0000,33.0734,16.6788,0.0405,715.9547,NA,NA,NA +Presenter.exe,10792,0x20979A6D5F8,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,2080345678,16.7454,0.0024,16.7430,0.2138,16.7136,0.2416,16.4720,0.0000,49.5637,16.6734,0.0720,716.1432,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2080510977,16.6069,16.5387,0.0682,0.0000,16.6328,0.2112,16.4216,0.0000,33.0338,16.6734,0.0396,732.6731,NA,NA,NA +Presenter.exe,10792,0x20979A6D5F8,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,2080513132,16.5797,0.0025,16.5772,0.1820,16.6144,0.2279,16.3865,0.0000,49.4917,16.6826,0.0720,732.8886,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2080677046,16.6928,16.6233,0.0695,0.0000,16.6915,0.2122,16.4793,0.0000,33.1003,16.6826,-0.0665,749.2800,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2080843974,16.9216,16.7110,0.2106,0.0000,16.9210,0.3224,16.5986,0.0000,33.0901,33.3781,0.0102,765.9728,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2081013190,40.7496,40.6056,0.1440,0.0000,40.7235,0.2487,40.4748,0.0000,49.5466,16.6720,-16.4565,782.8944,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2081420686,1.5846,1.0200,0.5646,0.0000,1.1956,0.3398,0.8558,0.0000,25.4690,16.6989,24.0776,823.6440,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2081436532,9.5173,8.2244,1.2929,0.0000,8.9839,0.3669,8.6170,0.0000,40.5833,16.6915,-15.1143,825.2286,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2081531705,16.2648,14.8083,1.4565,0.0684,15.0110,0.2480,14.7630,0.0000,47.7575,16.6536,-7.1742,834.7459,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2081694353,16.1272,15.9702,0.1570,0.0610,16.0068,0.1317,15.8751,0.0000,48.1463,16.7368,-0.3888,851.0107,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2081855625,15.9714,15.8267,0.1447,0.0000,16.0123,0.2869,15.7254,0.0000,48.7559,16.6615,-0.6096,867.1379,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2082015339,17.2545,17.1313,0.1232,0.0000,17.2424,0.1800,17.0624,0.0000,49.4460,16.6642,-0.6901,883.1093,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2082187884,15.9790,15.8691,0.1099,0.0000,15.9823,0.2342,15.7481,0.0000,48.8557,16.6720,0.5903,900.3638,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2082347674,17.2816,17.1535,0.1281,0.0000,17.2770,0.2121,17.0649,0.0000,49.5487,16.6830,-0.6930,916.3428,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2082520490,16.2796,16.1098,0.1698,0.0000,16.2558,0.3022,15.9536,0.0000,48.9501,16.6598,0.5986,933.6244,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2082683286,17.2795,17.1533,0.1262,0.0000,17.3314,0.2556,17.0758,0.0000,49.3303,16.6748,-0.3802,949.9040,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2082856081,17.9854,17.9055,0.0799,0.0000,0.2282,0.2282,0.0000,0.0000,48.7256,16.6847,0.6047,967.1835,NA,NA,NA +Presenter.exe,8320,0x15EFD8424E0,DXGI,0,0,0,Composed: Flip,Application,2083006479,15.2384,14.8165,0.4219,1.1213,14.2212,0.3149,13.9063,0.0000,50.3705,16.6729,0.0000,982.2233,NA,NA,NA +Presenter.exe,8320,0x15EFD8424E0,DXGI,0,0,0,Hardware: Independent Flip,Application,2083158863,15.4114,15.1522,0.2592,0.5251,14.9117,0.2187,14.6930,0.0000,NA,NA,NA,NA,NA,NA,NA +Presenter.exe,8320,0x15EFD8424E0,DXGI,0,0,0,Hardware: Independent Flip,Application,2083312977,16.8350,15.4025,1.4325,19.8211,0.1617,0.1617,0.0000,0.0000,36.3936,16.6855,13.9769,1012.8731,NA,NA,NA +Presenter.exe,8320,0x15EFD8424E0,DXGI,0,0,0,Hardware: Independent Flip,Application,2083481327,14.7641,14.1937,0.5704,19.5829,0.0986,0.0986,0.0000,0.0000,NA,NA,NA,NA,NA,NA,NA +Presenter.exe,8320,0x15EFD8424E0,DXGI,0,0,0,Hardware: Independent Flip,Application,2083628968,15.4671,15.0131,0.4540,5.0119,10.4404,0.2396,10.2008,0.0000,21.4800,16.6866,14.9136,1044.4722,NA,NA,NA +Presenter.exe,8320,0x15EFD8424E0,DXGI,0,0,0,Hardware: Independent Flip,Application,2083783639,15.5770,15.1953,0.3817,6.0431,9.6027,0.2935,9.3092,0.0000,22.6995,16.6782,-1.2195,1059.9393,NA,NA,NA +Presenter.exe,8320,0x15EFD8424E0,DXGI,0,0,0,Hardware: Independent Flip,Application,2083939409,15.5784,15.2354,0.3430,0.2113,15.4203,0.2299,15.1904,0.0000,23.8007,16.6771,-1.1012,1075.5163,NA,NA,NA +Presenter.exe,8320,0x15EFD8424E0,DXGI,0,0,0,Hardware: Independent Flip,Application,2084095193,15.4382,15.2634,0.1748,0.1790,15.3685,0.2144,15.1541,0.0000,24.8994,16.6824,-1.0987,1091.0947,NA,NA,NA +Presenter.exe,8320,0x15EFD8424E0,DXGI,0,0,0,Hardware: Independent Flip,Application,2084249575,15.7225,15.4818,0.2407,0.2178,15.5921,0.2236,15.3685,0.0000,26.1436,16.6767,-1.2442,1106.5329,NA,NA,NA +Presenter.exe,8320,0x15EFD8424E0,DXGI,0,0,0,Hardware: Independent Flip,Application,2084406800,15.5450,15.3600,0.1850,0.2141,15.4079,0.1980,15.2099,0.0000,27.0978,16.6849,-0.9542,1122.2554,NA,NA,NA +Presenter.exe,8320,0x15EFD8424E0,DXGI,0,0,0,Hardware: Independent Flip,Application,2084562250,15.6177,15.4711,0.1466,0.1823,15.5167,0.2161,15.3006,0.0000,28.2377,16.6768,-1.1399,1137.8004,NA,NA,NA +Presenter.exe,8320,0x15EFD8424E0,DXGI,0,0,0,Hardware: Independent Flip,Application,2084718427,15.5979,15.4689,0.1290,0.1819,15.4953,0.1926,15.3027,0.0000,29.2968,16.6776,-1.0591,1153.4181,NA,NA,NA +Presenter.exe,8320,0x15EFD8424E0,DXGI,0,0,0,Hardware: Independent Flip,Application,2084874406,15.7709,15.4983,0.2726,0.1682,15.6791,0.1888,15.4903,0.0000,30.3765,16.6720,-1.0797,1169.0160,NA,NA,NA +Presenter.exe,8320,0x15EFD8424E0,DXGI,0,0,0,Hardware: Independent Flip,Application,2085032115,15.4382,15.3368,0.1014,0.1605,15.3656,0.2142,15.1514,0.0000,NA,NA,NA,NA,NA,NA,NA +Presenter.exe,8320,0x15EFD8424E0,DXGI,0,0,0,Hardware: Independent Flip,Application,2085186497,15.6551,15.5284,0.1267,0.1734,15.5129,0.1712,15.3417,0.0000,15.8394,16.6886,14.5371,1200.2251,NA,NA,NA +Presenter.exe,8320,0x15EFD8424E0,DXGI,0,0,0,Hardware: Independent Flip,Application,2085343048,15.5922,15.4915,0.1007,0.2212,15.4264,0.1761,15.2503,0.0000,16.8729,16.6791,-1.0335,1215.8802,NA,NA,NA +Presenter.exe,8320,0x15EFD8424E0,DXGI,0,0,0,Hardware: Independent Flip,Application,2085498970,15.6226,15.5197,0.1029,0.1360,15.6162,0.2596,15.3566,0.0000,17.9598,16.6802,-1.0869,1231.4724,NA,NA,NA +Presenter.exe,8320,0x15EFD8424E0,DXGI,0,0,0,Hardware: Independent Flip,Application,2085655196,15.6174,15.5182,0.0992,0.2136,15.4484,0.1527,15.2957,0.0000,19.0174,16.6890,-1.0576,1247.0950,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2083035935,14.3085,14.2380,0.0705,0.0414,0.1584,0.1584,0.0000,0.0000,47.4249,266.9110,1.3007,985.1689,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2083179020,284.7568,284.5398,0.2170,284.6172,0.0517,0.0517,0.0000,0.0000,300.0274,16.6108,-252.6025,999.4774,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2086026588,16.1682,16.0565,0.1117,0.0000,16.2322,0.2558,15.9764,0.0000,31.8814,16.7152,268.1460,1284.2342,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2086188270,16.2811,16.1526,0.1285,0.0000,16.2845,0.2709,16.0136,0.0000,32.4284,33.3375,-0.5470,1300.4024,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2086351081,33.4063,33.2561,0.1502,0.0000,33.4009,0.2741,33.1268,0.0000,49.4848,19.1059,-17.0564,1316.6835,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2086685144,16.5779,16.4418,0.1361,0.0000,16.5696,0.1652,16.4044,0.0000,35.1844,14.2430,14.3004,1350.0898,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2086850923,19.0037,18.8991,0.1046,0.0000,19.4022,0.1574,19.2448,0.0000,32.8495,33.3653,2.3349,1366.6677,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2087040960,33.4935,31.6951,1.7984,0.3643,31.6199,0.3752,31.2447,0.0000,47.2111,16.6761,-14.3616,1385.6714,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2087375895,14.2740,14.1594,0.1146,0.0380,14.2053,0.0971,14.1082,0.0000,30.3937,16.7012,16.8174,1419.1649,NA,NA,NA +Presenter.exe,11648,0x1B95496E4B0,DXGI,0,0,0,Composed: Flip,Application,2087533727,15.2590,15.0894,0.1696,0.2755,15.1026,0.2174,14.8852,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2087518635,17.3547,17.2277,0.1270,0.0000,17.3382,0.2387,17.0995,0.0000,32.8209,16.6792,-2.4272,1433.4389,NA,NA,NA +Presenter.exe,11648,0x1B95496E4B0,DXGI,0,0,0,Composed: Flip,Application,2087686317,15.6057,15.4794,0.1263,0.1699,15.5398,0.2293,15.3105,0.0000,32.7319,16.6918,0.0000,1450.2071,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2087692182,17.1978,17.1375,0.0603,0.0000,0.2192,0.2192,0.0000,0.0000,32.1454,16.6918,0.6755,1450.7936,NA,NA,NA +Presenter.exe,11648,0x1B95496E4B0,DXGI,0,0,0,Composed: Flip,Application,2087842374,15.6350,15.4948,0.1402,0.1695,15.5839,0.2523,15.3316,0.0000,33.8180,0.0900,-1.0861,1465.8128,NA,NA,NA +Presenter.exe,11648,0x1B95496E4B0,DXGI,0,0,1,Hardware: Independent Flip,Application,2087998724,15.5988,15.4811,0.1177,0.2860,15.4018,0.2101,15.1917,0.0000,18.2730,13.0569,15.5450,1481.4478,NA,NA,NA +Presenter.exe,11648,0x1B95496E4B0,DXGI,0,0,1,Hardware: Independent Flip,Application,2088154712,15.6659,15.5032,0.1627,2.6802,13.0165,0.1479,12.8686,0.0000,15.7311,15.6437,2.5419,1497.0466,NA,NA,NA +Presenter.exe,11648,0x1B95496E4B0,DXGI,0,0,1,Hardware: Independent Flip,Application,2088311371,15.5655,15.4505,0.1150,0.1172,15.5520,0.2322,15.3198,0.0000,15.7089,15.8555,0.0222,1512.7125,NA,NA,NA +Presenter.exe,11648,0x1B95496E4B0,DXGI,0,0,1,Hardware: Independent Flip,Application,2088467026,15.9600,15.4700,0.4900,0.2349,15.7278,0.1559,15.5719,0.0000,15.9989,15.4031,-0.2900,1528.2780,NA,NA,NA +Presenter.exe,11648,0x1B95496E4B0,DXGI,0,0,1,Hardware: Independent Flip,Application,2088626626,15.3044,15.1684,0.1360,0.1014,15.3040,0.1925,15.1115,0.0000,15.4420,15.6511,0.5569,1544.2380,NA,NA,NA +Presenter.exe,11648,0x1B95496E4B0,DXGI,0,0,1,Hardware: Independent Flip,Application,2088779670,15.7103,15.4647,0.2456,0.1969,15.5571,0.1545,15.4026,0.0000,15.7887,15.5459,-0.3467,1559.5424,NA,NA,NA +Presenter.exe,11648,0x1B95496E4B0,DXGI,0,0,1,Hardware: Independent Flip,Application,2088936773,15.5087,15.3963,0.1124,0.1386,15.4529,0.2140,15.2389,0.0000,15.6243,15.7141,0.1644,1575.2527,NA,NA,NA +Presenter.exe,11648,0x1B95496E4B0,DXGI,0,0,1,Hardware: Independent Flip,Application,2089091860,15.7417,15.5228,0.2189,0.1649,15.6244,0.1387,15.4857,0.0000,15.8297,15.5569,-0.2054,1590.7614,NA,NA,NA +Presenter.exe,11648,0x1B95496E4B0,DXGI,0,0,1,Hardware: Independent Flip,Application,2089249277,15.5243,15.3979,0.1264,0.1502,15.4606,0.2094,15.2512,0.0000,15.6449,15.7279,0.1848,1606.5031,NA,NA,NA +Presenter.exe,11648,0x1B95496E4B0,DXGI,0,0,1,Hardware: Independent Flip,Application,2089404520,15.7670,15.4485,0.3185,0.1768,15.6365,0.1563,15.4802,0.0000,15.8485,15.5153,-0.2036,1622.0274,NA,NA,NA +Presenter.exe,11648,0x1B95496E4B0,DXGI,0,0,1,Hardware: Independent Flip,Application,2089562190,15.4774,15.3536,0.1238,0.1389,15.4246,0.2084,15.2162,0.0000,15.5968,15.8077,0.2517,1637.7944,NA,NA,NA +Presenter.exe,11648,0x1B95496E4B0,DXGI,0,0,1,Hardware: Independent Flip,Application,2089716964,15.8480,15.4962,0.3518,0.1747,15.7188,0.1544,15.5644,0.0000,15.9271,15.4639,-0.3303,1653.2718,NA,NA,NA +Presenter.exe,11648,0x1B95496E4B0,DXGI,0,0,1,Hardware: Independent Flip,Application,2089875444,15.4232,15.2684,0.1548,0.1372,15.3720,0.2088,15.1632,0.0000,15.5430,15.6019,0.3841,1669.1198,NA,NA,NA +Presenter.exe,11648,0x1B95496E4B0,DXGI,0,0,1,Hardware: Independent Flip,Application,2090029676,15.6476,15.4503,0.1973,0.1756,15.5147,0.1517,15.3630,0.0000,15.7217,15.5532,-0.1787,1684.5430,NA,NA,NA +Presenter.exe,11648,0x1B95496E4B0,DXGI,0,0,1,Hardware: Independent Flip,Application,2090186152,15.5484,15.3944,0.1540,0.1304,15.4660,0.1707,15.2953,0.0000,15.6273,15.6408,0.0944,1700.1906,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2087864160,15.1541,15.1019,0.0522,0.1426,0.1564,0.1564,0.0000,0.0000,31.6394,283.5806,0.5060,1467.9914,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2088015701,285.9113,285.7981,0.1132,0.0000,0.0000,0.0000,0.0000,0.0000,300.0659,16.6767,-268.4265,1483.1455,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2090874814,14.6557,14.5199,0.1358,0.0779,0.1768,0.1768,0.0000,0.0000,30.8313,16.6691,269.2346,1769.0568,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2091021371,17.7016,17.5749,0.1267,17.6392,0.0342,0.0342,0.0000,0.0000,32.8447,16.6676,-2.0134,1783.7125,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2091198387,15.6675,15.5625,0.1050,0.0000,15.6724,0.2331,15.4393,0.0000,31.8107,16.6791,1.0340,1801.4141,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2091355062,17.0801,16.9806,0.0995,0.0000,17.0745,0.1710,16.9035,0.0000,32.8223,16.6815,-1.0116,1817.0816,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2091525863,16.1643,16.0574,0.1069,0.0000,16.1641,0.2271,15.9370,0.0000,32.4237,16.6737,0.3986,1834.1617,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2091687506,17.1186,17.0273,0.0913,0.0000,17.1263,0.1531,16.9732,0.0000,32.9331,16.6810,-0.5094,1850.3260,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2091858692,16.1485,16.0397,0.1088,0.0000,16.1249,0.2157,15.9092,0.0000,32.4955,33.3674,0.4376,1867.4446,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2092020177,33.5819,33.4196,0.1623,0.0000,33.5979,0.1961,33.4018,0.0000,49.7144,33.3552,-17.2189,1883.5931,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2092355996,33.3347,33.1904,0.1443,0.0000,33.3297,0.1856,33.1441,0.0000,49.4877,33.3529,0.2267,1917.1750,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2092689343,33.1798,33.0791,0.1007,0.0000,33.1839,0.1366,33.0473,0.0000,49.5059,16.6816,-0.0182,1950.5097,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2093021141,16.6053,16.5268,0.0785,0.0000,16.6180,0.1344,16.4836,0.0000,33.0077,33.3615,16.4982,1983.6895,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2093187194,33.5074,33.3845,0.1229,0.0000,33.4968,0.1486,33.3482,0.0000,49.7639,150.1077,-16.7562,2000.2948,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2093522268,150.2072,150.0656,0.1416,0.0000,150.2147,0.1767,150.0380,0.0000,166.3642,16.7003,-116.6003,2033.8022,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2095024340,16.4816,16.3826,0.0990,0.0000,16.4736,0.7550,15.7186,0.0000,32.8573,16.6725,133.5069,2184.0094,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2095189156,17.7101,17.5256,0.1845,0.0000,17.6669,0.1967,17.4702,0.0000,33.0482,16.6897,-0.1909,2200.4910,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2095366257,15.7076,15.6154,0.0922,0.0000,15.7536,0.2051,15.5485,0.0000,32.0278,16.6778,1.0204,2218.2011,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2095523333,17.2729,17.1605,0.1124,0.0000,17.4329,0.1292,17.3037,0.0000,32.9980,16.7075,-0.9702,2233.9087,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2095696062,16.2020,16.1226,0.0794,0.1345,16.0487,0.2711,15.7776,0.0000,32.4326,16.6522,0.5654,2251.1816,NA,NA,NA +Presenter.exe,3976,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,Application,2095823373,14.6889,14.6889,0.0000,0.1348,14.6404,0.2958,14.3446,0.0000,36.3537,16.6717,0.0000,2263.9127,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2095858082,16.6784,16.5949,0.0835,0.0000,16.6795,0.2758,16.4037,0.0000,32.8828,16.6717,-0.4502,2267.3836,NA,NA,NA +Presenter.exe,3976,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,Application,2095970262,15.0891,15.0891,0.0000,0.5439,14.6852,0.2073,14.4779,0.0000,38.3365,16.6887,-1.9828,2278.6016,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2096024866,16.6457,16.5667,0.0790,0.0000,16.6441,0.2655,16.3786,0.0000,32.8761,16.6887,0.0067,2284.0620,NA,NA,NA +Presenter.exe,3976,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,Application,2096121153,15.8377,15.8377,0.0000,0.1727,15.7757,0.2799,15.4958,0.0000,39.9361,16.6804,-1.5996,2293.6907,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2096191323,16.6725,16.5849,0.0876,0.0000,16.6755,0.2645,16.4110,0.0000,32.9191,16.6804,-0.0430,2300.7077,NA,NA,NA +Presenter.exe,3976,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,Application,2096279530,15.4010,15.4010,0.0000,0.5940,14.9370,0.2073,14.7297,0.0000,40.7788,16.6796,-0.8427,2309.5284,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2096358048,16.6732,16.6025,0.0707,0.0000,16.6774,0.2506,16.4268,0.0000,32.9270,16.6796,-0.0079,2317.3802,NA,NA,NA +Presenter.exe,3976,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,Application,2096433540,15.8633,15.8633,0.0000,0.2455,15.7472,0.3356,15.4116,0.0000,42.0574,16.6794,-1.2786,2324.9294,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2096524780,16.6988,16.5943,0.1045,0.0000,16.6697,0.2521,16.4176,0.0000,32.9334,16.6794,-0.0064,2334.0534,NA,NA,NA +Presenter.exe,3976,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,Application,2096592173,15.4616,15.4616,0.0000,0.8548,14.7376,0.2998,14.4378,0.0000,42.8735,16.6808,-0.8161,2340.7927,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2096691768,16.6644,16.5878,0.0766,0.0000,16.6940,0.2171,16.4769,0.0000,32.9140,16.6808,0.0194,2350.7522,NA,NA,NA +Presenter.exe,3976,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,Application,2096746789,15.7588,15.7588,0.0000,0.1308,15.7394,0.3043,15.4351,0.0000,44.0927,16.6832,-1.2192,2356.2543,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2096858412,16.6572,16.5826,0.0746,0.0000,16.6562,0.2535,16.4027,0.0000,32.9304,16.6832,-0.0164,2367.4166,NA,NA,NA +Presenter.exe,3976,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,Application,2096904377,15.4445,15.4445,0.0000,0.2480,15.2905,0.2229,15.0676,0.0000,45.0171,16.6758,-0.9244,2372.0131,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2097024984,16.7028,16.6327,0.0701,0.0000,16.7103,0.2507,16.4596,0.0000,32.9564,16.6758,-0.0260,2384.0738,NA,NA,NA +Presenter.exe,3976,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,Application,2097058822,15.8750,15.8750,0.0000,0.0940,15.8849,0.3305,15.5544,0.0000,46.2484,16.6805,-1.2313,2387.4576,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2097192012,16.6555,16.5821,0.0734,0.0000,16.6481,0.2505,16.3976,0.0000,32.9294,16.6805,0.0270,2400.7766,NA,NA,NA +Presenter.exe,3976,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,Application,2097217572,15.3464,15.3464,0.0000,0.2995,15.1867,0.2167,14.9700,0.0000,47.0539,16.6712,-0.8055,2403.3326,NA,NA,NA +Presenter.exe,3976,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,Application,2097371036,15.7833,15.7833,0.0000,0.1715,15.7332,0.2403,15.4929,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2097358567,16.6896,16.6150,0.0746,0.0000,16.6855,0.2464,16.4391,0.0000,32.9544,16.6712,-0.0250,2417.4321,NA,NA,NA +Presenter.exe,3976,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,Application,2097528869,15.4550,15.4550,0.0000,0.3595,15.1684,0.1549,15.0135,0.0000,32.5954,16.6893,14.4585,2434.4623,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2097525463,16.6832,16.6057,0.0775,0.0000,16.6856,0.2842,16.4014,0.0000,32.9360,16.6893,0.0184,2434.1217,NA,NA,NA +Presenter.exe,3976,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,Application,2097683419,15.8259,15.8259,0.0000,0.5283,15.3996,0.2817,15.1179,0.0000,33.8297,16.6821,-1.2343,2449.9173,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2097692295,17.1255,16.9772,0.1483,0.0000,17.1196,0.2409,16.8787,0.0000,32.9421,16.6821,-0.0061,2450.8049,NA,NA,NA +Presenter.exe,3976,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,Application,2097841678,15.4139,15.4139,0.0000,1.6765,13.8077,0.4234,13.3843,0.0000,34.6859,16.6773,-0.8562,2465.7432,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2097863550,16.2615,16.1654,0.0961,0.0000,16.2436,0.2294,16.0142,0.0000,32.4987,16.6773,0.4434,2467.9304,NA,NA,NA +Presenter.exe,3976,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,Application,2097995817,15.6448,15.6448,0.0000,2.6640,13.1059,0.2108,12.8951,0.0000,35.9493,16.6802,-1.2634,2481.1571,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2098026165,16.6571,16.5834,0.0737,0.0000,16.6886,0.2480,16.4406,0.0000,32.9145,16.6802,-0.4158,2484.1919,NA,NA,NA +Presenter.exe,3976,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,Application,2098152265,15.5700,15.5700,0.0000,4.3005,11.3879,0.2839,11.1040,0.0000,36.9847,16.6796,-1.0354,2496.8019,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2098192736,16.5659,16.4914,0.0745,0.0000,16.5635,0.2068,16.3567,0.0000,32.9376,16.6796,-0.0231,2500.8490,NA,NA,NA +Presenter.exe,3976,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,Application,2098307965,15.6468,15.6468,0.0000,4.8177,10.9633,0.2263,10.7370,0.0000,38.0943,16.6797,-1.1096,2512.3719,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2098358395,16.6405,16.5653,0.0752,0.0000,16.6367,0.2125,16.4242,0.0000,33.0513,16.6797,-0.1137,2517.4149,NA,NA,NA +Presenter.exe,3976,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,Application,2098464433,15.5630,15.5630,0.0000,5.8425,9.8526,0.2126,9.6400,0.0000,39.1272,16.6528,-1.0329,2528.0187,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2098524800,16.6591,16.5821,0.0770,0.0000,16.6635,0.1945,16.4690,0.0000,33.0905,16.6528,-0.0392,2534.0554,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2098691391,16.7001,16.6086,0.0915,0.0000,16.7078,0.2153,16.4925,0.0000,33.0842,16.7095,0.0063,2550.7145,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2098858392,17.6950,17.5762,0.1188,0.0000,17.6696,0.1814,17.4882,0.0000,33.0936,16.6787,-0.0094,2567.4146,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2099035342,15.8101,15.7159,0.0942,0.0000,15.8105,0.3040,15.5065,0.0000,32.0773,16.6794,1.0163,2585.1096,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2099193443,16.6830,16.5784,0.1046,0.0000,16.6666,0.1819,16.4847,0.0000,32.9466,16.6804,-0.8693,2600.9197,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2099360273,16.6380,16.5638,0.0742,0.0000,16.6675,0.2541,16.4134,0.0000,32.9440,16.6680,0.0026,2617.6027,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2099526653,16.6498,16.5758,0.0740,0.0000,16.6559,0.1715,16.4844,0.0000,32.9740,16.7016,-0.0300,2634.2407,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2099693151,16.9772,16.8218,0.1554,0.0000,16.9508,0.2408,16.7100,0.0000,33.0258,16.6663,-0.0518,2650.8905,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2099862923,16.7551,16.6039,0.1512,0.0000,16.7649,0.1804,16.5845,0.0000,32.7149,16.6779,0.3109,2667.8677,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2100030474,16.6097,16.4620,0.1477,0.0000,16.6077,0.2434,16.3643,0.0000,32.6377,16.6779,0.0772,2684.6228,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2100196571,16.5351,16.4154,0.1197,0.0000,16.5278,0.1441,16.3837,0.0000,32.7059,16.6791,-0.0682,2701.2325,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2100361922,16.5800,16.4980,0.0820,0.0000,16.5929,0.2472,16.3457,0.0000,32.8499,16.6802,-0.1440,2717.7676,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2100527722,16.6670,16.5627,0.1043,0.0000,16.6434,0.2369,16.4065,0.0000,32.9501,16.6793,-0.1002,2734.3476,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2100694392,16.6181,16.5399,0.0782,0.0000,16.6498,0.1793,16.4705,0.0000,32.9624,16.6783,-0.0123,2751.0146,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2100860573,16.6535,16.5793,0.0742,0.0000,16.6520,0.1928,16.4592,0.0000,33.0226,33.3642,-0.0602,2767.6327,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2101027108,33.4467,33.3336,0.1131,0.0000,33.4295,0.1285,33.3010,0.0000,49.7333,33.3587,-16.7107,2784.2862,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2101361575,33.2553,33.1743,0.0810,0.0000,33.2661,0.1792,33.0869,0.0000,49.6453,83.3823,0.0880,2817.7329,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2101694128,83.5763,83.4345,0.1418,0.0000,83.5550,0.1511,83.4039,0.0000,99.7723,16.6994,-50.1270,2850.9882,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2102529891,17.5621,17.4376,0.1245,0.0000,17.5777,0.3118,17.2659,0.0000,32.8954,16.6799,66.8769,2934.5645,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2102705512,15.7812,15.6437,0.1375,0.0000,15.8025,0.2803,15.5222,0.0000,32.0132,16.6714,0.8822,2952.1266,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2102863324,17.1489,16.9776,0.1713,0.0000,17.0704,0.1975,16.8729,0.0000,32.9034,16.6872,-0.8902,2967.9078,NA,NA,NA +Presenter.exe,11112,0x0,Other,1,0,0,Hardware: Legacy Flip,Application,2103162035,71.8756,71.8756,0.0000,0.3592,0.0975,0.0975,0.0000,0.0000,103.1373,16.6715,0.0000,2997.7789,NA,NA,NA +Presenter.exe,11112,0x0,Other,1,0,0,Hardware: Legacy Flip,Application,2103880791,20.6818,20.6818,0.0000,0.1660,2.8232,0.2266,2.5966,0.0000,47.9332,16.6793,55.2041,3069.6545,NA,NA,NA +Presenter.exe,11112,0x0,Other,1,0,0,Hardware: Legacy Flip,Application,2104087609,15.5838,15.5838,0.0000,0.0363,27.2465,0.3605,26.8860,0.0000,43.9307,16.6801,4.0025,3090.3363,NA,NA,NA +Presenter.exe,11112,0x0,Other,1,0,0,Hardware: Legacy Flip,Application,2104243447,15.6513,15.6513,0.0000,11.6990,16.6854,0.3232,16.3622,0.0000,45.0270,16.6802,-1.0963,3105.9201,NA,NA,NA +Presenter.exe,11112,0x0,Other,1,0,0,Hardware: Legacy Flip,Application,2104399960,15.5815,15.5815,0.0000,12.7331,16.6737,0.3302,16.3435,0.0000,46.0559,16.6712,-1.0289,3121.5714,NA,NA,NA +Presenter.exe,11112,0x0,Other,1,0,0,Hardware: Legacy Flip,Application,2104555775,15.6549,15.6549,0.0000,13.8253,16.6808,0.2518,16.4290,0.0000,47.1456,16.6886,-1.0897,3137.1529,NA,NA,NA +Presenter.exe,11112,0x0,Other,1,0,0,Hardware: Legacy Flip,Application,2104712324,15.5915,15.5915,0.0000,14.8512,16.6703,0.3899,16.2804,0.0000,48.1793,16.6750,-1.0337,3152.8078,NA,NA,NA +Presenter.exe,11112,0x0,Other,1,0,0,Hardware: Legacy Flip,Application,2104868239,15.6618,15.6618,0.0000,15.9300,16.6904,0.2231,16.4673,0.0000,49.2628,16.6889,-1.0835,3168.3993,NA,NA,NA +Presenter.exe,11112,0x0,Other,1,0,0,Hardware: Legacy Flip,Application,2105024857,15.6190,15.6190,0.0000,16.9586,16.6645,0.3114,16.3531,0.0000,50.2899,16.6755,-1.0271,3184.0611,NA,NA,NA +Presenter.exe,11112,0x0,Other,1,0,0,Hardware: Legacy Flip,Application,2105181047,15.6151,15.6151,0.0000,18.0041,16.7096,0.2186,16.4910,0.0000,51.3464,16.6804,-1.0565,3199.6801,NA,NA,NA +Presenter.exe,11112,0x0,Other,1,0,0,Hardware: Legacy Flip,Application,2105337198,15.6319,15.6319,0.0000,19.0986,16.6660,0.2388,16.4272,0.0000,52.4117,16.6797,-1.0653,3215.2952,NA,NA,NA +Presenter.exe,11112,0x0,Other,1,0,0,Hardware: Legacy Flip,Application,2105493517,15.6122,15.6122,0.0000,20.1327,16.6857,0.2424,16.4433,0.0000,53.4595,16.6819,-1.0478,3230.9271,NA,NA,NA +Presenter.exe,11112,0x0,Other,1,0,0,Hardware: Legacy Flip,Application,2105649639,15.6498,15.6498,0.0000,21.2062,16.6789,0.2390,16.4399,0.0000,54.5292,16.6780,-1.0697,3246.5393,NA,NA,NA +Presenter.exe,11112,0x0,Other,1,0,0,Hardware: Legacy Flip,Application,2105806137,15.6055,15.6055,0.0000,22.2353,16.6762,0.2318,16.4444,0.0000,55.5574,16.6807,-1.0282,3262.1891,NA,NA,NA +Presenter.exe,11112,0x0,Other,1,0,0,Hardware: Legacy Flip,Application,2105962192,15.6280,15.6280,0.0000,23.3060,16.6784,0.2442,16.4342,0.0000,56.6326,16.6792,-1.0752,3277.7946,NA,NA,NA +Presenter.exe,11112,0x0,Other,1,0,0,Hardware: Legacy Flip,Application,2106118472,15.5977,15.5977,0.0000,24.3564,16.6802,0.2472,16.4330,0.0000,57.6838,16.6801,-1.0512,3293.4226,NA,NA,NA +Presenter.exe,11112,0x0,Other,1,0,0,Hardware: Legacy Flip,Application,2106274449,31.2675,31.2675,0.0000,25.4389,16.6830,0.2458,16.4372,0.0000,58.7662,16.6732,-1.0824,3309.0203,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2103034813,16.1178,16.0019,0.1159,0.0000,16.2589,0.3279,15.9310,0.0000,32.4417,450.3687,0.4617,2985.0567,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2103195991,440.0199,417.9774,22.0425,0.0590,439.1807,0.6950,438.4857,0.0000,466.6926,16.6825,-434.2509,3001.1745,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2107596190,28.1418,27.9912,0.1506,0.1839,28.6300,0.0836,28.5464,0.0000,43.3552,16.7050,423.3374,3441.1944,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2107877608,16.0011,15.8761,0.1250,0.6721,15.3149,0.2260,15.0889,0.0000,31.9184,16.6781,11.4368,3469.3362,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2108037619,16.2696,16.1779,0.0917,0.0000,16.2607,0.2044,16.0563,0.0000,32.5954,16.6806,-0.6770,3485.3373,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2108200315,16.6302,16.5506,0.0796,0.0000,16.6371,0.2419,16.3952,0.0000,33.0064,33.3346,-0.4110,3501.6069,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2108366617,33.3622,33.2801,0.0821,0.0000,33.3591,0.1035,33.2556,0.0000,49.7108,33.3346,-16.7044,3518.2371,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2108700239,33.3800,33.2654,0.1146,0.0000,33.3530,0.2022,33.1508,0.0000,49.6832,34.9805,0.0276,3551.5993,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2109034039,33.6405,33.4912,0.1493,0.0000,33.6442,0.2180,33.4262,0.0000,51.2837,15.0791,-1.6005,3584.9793,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2109370444,18.2294,18.0922,0.1372,0.0000,18.2363,0.2165,18.0198,0.0000,32.7223,16.6809,18.5614,3618.6198,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2109552738,14.8980,14.7851,0.1129,0.0000,14.9044,0.1987,14.7057,0.0000,31.1738,16.6846,1.5485,3636.8492,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2109701718,17.4704,17.3620,0.1084,0.0000,17.4778,0.1588,17.3190,0.0000,32.9604,16.6778,-1.7866,3651.7472,NA,NA,NA +Presenter.exe,2032,0x29A5884FF18,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,2109834695,4.4929,0.0116,4.4813,0.0058,4.6118,0.2335,4.3783,0.0000,36.3405,16.6813,0.0000,3665.0449,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2109876422,15.9020,15.8010,0.1010,0.0000,15.8916,0.2449,15.6467,0.0000,32.1678,16.6813,0.7926,3669.2176,NA,NA,NA +Presenter.exe,2032,0x29A5884FF18,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,2109879624,15.7858,0.6317,15.1541,15.8349,0.1756,0.1756,0.0000,0.0000,48.5289,16.6797,-12.1884,3669.5378,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2110035442,17.1523,17.0712,0.0811,0.0000,17.3287,0.2353,17.0934,0.0000,32.9471,16.6797,-0.7793,3685.1196,NA,NA,NA +Presenter.exe,2032,0x29A5884FF18,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,2110037482,17.1753,0.0091,17.1662,0.2247,17.3492,0.1762,17.1730,0.0000,49.4228,16.6579,-0.8939,3685.3236,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2110206965,16.3031,16.2134,0.0897,0.1442,16.1395,0.2858,15.8537,0.0000,32.4745,16.6579,0.4726,3702.2719,NA,NA,NA +Presenter.exe,2032,0x29A5884FF18,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,2110209235,16.2924,0.0629,16.2295,16.3624,0.1760,0.1760,0.0000,0.0000,48.9054,16.7019,0.5174,3702.4989,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2110369996,16.7241,16.6154,0.1087,0.0000,16.7076,0.2740,16.4336,0.0000,32.8293,16.7019,-0.3548,3718.5750,NA,NA,NA +Presenter.exe,2032,0x29A5884FF18,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,2110372159,16.6981,0.1662,16.5319,16.7675,0.1493,0.1493,0.0000,0.0000,49.3149,16.6803,-0.4095,3718.7913,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2110537237,16.5467,16.4630,0.0837,0.0000,16.5785,0.2898,16.2887,0.0000,32.8071,16.6803,0.0222,3735.2991,NA,NA,NA +Presenter.exe,2032,0x29A5884FF18,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,2110539140,16.5716,0.1194,16.4522,16.6160,0.1487,0.1487,0.0000,0.0000,49.2971,16.6803,0.0178,3735.4894,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2110702704,16.6783,16.6023,0.0760,0.0000,16.6762,0.2261,16.4501,0.0000,32.9407,16.6803,-0.1336,3751.8458,NA,NA,NA +Presenter.exe,2032,0x29A5884FF18,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,2110704856,16.6287,0.0350,16.5937,16.7338,0.1549,0.1549,0.0000,0.0000,49.4058,16.6780,-0.1087,3752.0610,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2110869487,16.6941,16.6213,0.0728,0.0000,16.6867,0.2360,16.4507,0.0000,32.9427,16.6780,-0.0020,3768.5241,NA,NA,NA +Presenter.exe,2032,0x29A5884FF18,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,2110871143,16.7052,0.0106,16.6946,16.7820,0.1574,0.1574,0.0000,0.0000,49.4551,16.6800,-0.0493,3768.6897,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2111036428,16.6724,16.5944,0.0780,0.0000,16.6735,0.2316,16.4419,0.0000,32.9266,16.6800,0.0161,3785.2182,NA,NA,NA +Presenter.exe,2032,0x29A5884FF18,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,2111038195,16.6612,0.0027,16.6585,16.7801,0.1521,0.1521,0.0000,0.0000,49.4299,16.6802,0.0252,3785.3949,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2111203152,16.6748,16.5955,0.0793,0.0000,16.6697,0.2457,16.4240,0.0000,32.9342,16.6802,-0.0076,3801.8906,NA,NA,NA +Presenter.exe,2032,0x29A5884FF18,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,2111204807,16.6777,0.0025,16.6752,16.7552,0.1666,0.1666,0.0000,0.0000,49.4489,16.6822,-0.0190,3802.0561,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2111369900,16.6871,16.6187,0.0684,0.0000,16.7011,0.2364,16.4647,0.0000,32.9396,16.6822,-0.0054,3818.5654,NA,NA,NA +Presenter.exe,2032,0x29A5884FF18,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,2111371584,16.6806,0.0027,16.6779,16.8003,0.1512,0.1512,0.0000,0.0000,49.4534,16.6799,-0.0045,3818.7338,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2111536771,16.6522,16.5796,0.0726,0.0000,16.6447,0.2379,16.4068,0.0000,32.9347,16.6799,0.0049,3835.2525,NA,NA,NA +Presenter.exe,2032,0x29A5884FF18,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,2111538390,16.7064,0.0024,16.7040,16.7577,0.1536,0.1536,0.0000,0.0000,49.4527,16.6780,0.0007,3835.4144,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2111703293,16.7265,16.6373,0.0892,0.0000,16.7062,0.2379,16.4683,0.0000,32.9624,16.6780,-0.0277,3851.9047,NA,NA,NA +Presenter.exe,2032,0x29A5884FF18,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,2111705454,16.7242,0.0025,16.7217,16.7658,0.1557,0.1557,0.0000,0.0000,49.4243,16.6799,0.0284,3852.1208,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2111870558,16.6544,16.5758,0.0786,0.0000,16.6682,0.2467,16.4215,0.0000,32.9139,16.6799,0.0485,3868.6312,NA,NA,NA +Presenter.exe,2032,0x29A5884FF18,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,2111872696,16.6474,0.0025,16.6449,16.7081,0.1553,0.1553,0.0000,0.0000,49.3800,16.6799,0.0443,3868.8450,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2112037102,16.6656,16.5967,0.0689,0.0000,16.6782,0.2449,16.4333,0.0000,32.9394,16.6799,-0.0255,3885.2856,NA,NA,NA +Presenter.exe,2032,0x29A5884FF18,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,2112039170,16.6155,0.0026,16.6129,16.7390,0.1518,0.1518,0.0000,0.0000,49.4125,16.6803,-0.0325,3885.4924,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2112203758,16.7072,16.6338,0.0734,0.0000,16.7026,0.2390,16.4636,0.0000,32.9537,16.6803,-0.0143,3901.9512,NA,NA,NA +Presenter.exe,2032,0x29A5884FF18,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,2112205325,16.8865,0.0024,16.8841,16.8097,0.1497,0.1497,0.0000,0.0000,49.4773,16.6797,-0.0648,3902.1079,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2112370830,16.6871,16.6135,0.0736,0.0000,16.6857,0.2352,16.4505,0.0000,32.9268,16.6797,0.0269,3918.6584,NA,NA,NA +Presenter.exe,2032,0x29A5884FF18,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,2112374190,16.6743,0.0024,16.6719,16.5987,0.1492,0.1492,0.0000,0.0000,49.2705,16.7001,0.2068,3918.9944,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2112537701,16.6777,16.6000,0.0777,0.0000,16.6719,0.2250,16.4469,0.0000,32.9194,16.7001,0.0074,3935.3455,NA,NA,NA +Presenter.exe,2032,0x29A5884FF18,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,2112540933,16.5946,0.0023,16.5923,16.5993,0.1758,0.1758,0.0000,0.0000,49.2963,16.6744,-0.0258,3935.6687,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2112704478,16.7137,16.6405,0.0732,0.0000,16.7216,0.2136,16.5080,0.0000,32.9418,16.6744,-0.0224,3952.0232,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2112871615,17.8312,17.6567,0.1745,0.0000,17.7976,0.2877,17.5099,0.0000,32.9025,16.6479,0.0393,3968.7369,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2113049927,15.9799,15.6837,0.2962,0.0000,15.9550,0.3617,15.5933,0.0000,31.7192,16.6766,1.1833,3986.5681,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2113209726,16.3683,16.2317,0.1366,0.0000,16.4005,0.2826,16.1179,0.0000,32.4159,16.6991,-0.6967,4002.5480,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2113373409,16.5872,16.4719,0.1153,0.0000,16.5927,0.2022,16.3905,0.0000,32.7467,16.6909,-0.3308,4018.9163,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2113539281,17.0559,16.8843,0.1716,0.0000,17.0755,0.3595,16.7160,0.0000,32.8504,16.6792,-0.1037,4035.5035,NA,NA,NA +Presenter.exe,5988,0x224CBFFD9D8,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,2113638532,7.5378,0.3398,7.1980,0.0153,7.4927,0.2552,7.2375,0.0000,39.6045,16.6793,0.0000,4045.4286,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2113709840,16.2923,16.1602,0.1321,0.0000,16.2849,0.1759,16.1090,0.0000,32.4737,16.6793,0.3767,4052.5594,NA,NA,NA +Presenter.exe,5988,0x224CBFFD9D8,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,2113713910,16.2832,0.0176,16.2656,0.0130,16.2776,0.2558,16.0218,0.0000,48.7460,16.6886,-9.1415,4052.9664,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2113872763,16.7153,16.5793,0.1360,0.0000,16.7199,0.2140,16.5059,0.0000,32.8607,16.6886,-0.3870,4068.8517,NA,NA,NA +Presenter.exe,5988,0x224CBFFD9D8,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,2113876742,16.6090,0.0147,16.5943,16.5514,0.1848,0.1848,0.0000,0.0000,49.1514,16.6683,-0.4054,4069.2496,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2114039916,16.6201,16.5018,0.1183,0.0000,16.6064,0.2038,16.4026,0.0000,32.8340,16.6683,0.0267,4085.5670,NA,NA,NA +Presenter.exe,5988,0x224CBFFD9D8,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,2114042832,16.5644,0.3314,16.2330,16.5776,0.1809,0.1809,0.0000,0.0000,49.2107,16.6772,-0.0593,4085.8586,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2114206117,16.8282,16.6652,0.1630,0.0000,16.8230,0.2626,16.5604,0.0000,32.8822,16.6772,-0.0482,4102.1871,NA,NA,NA +Presenter.exe,5988,0x224CBFFD9D8,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,2114208476,16.8407,0.0111,16.8296,16.8038,0.1693,0.1693,0.0000,0.0000,49.3235,16.6790,-0.1128,4102.4230,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2114374399,16.4612,16.3402,0.1210,0.0000,16.4380,0.1717,16.2663,0.0000,32.7312,16.6790,0.1510,4119.0153,NA,NA,NA +Presenter.exe,5988,0x224CBFFD9D8,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,2114376883,16.4886,0.1574,16.3312,16.4230,0.1731,0.1731,0.0000,0.0000,49.1618,16.6801,0.1617,4119.2637,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2114539011,16.5828,16.5119,0.0709,0.0000,16.6365,0.2261,16.4104,0.0000,32.9490,16.6801,-0.2178,4135.4765,NA,NA,NA +Presenter.exe,5988,0x224CBFFD9D8,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,2114541769,16.4910,0.0032,16.4878,16.5702,0.1614,0.1614,0.0000,0.0000,49.3533,16.6799,-0.1915,4135.7523,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2114704839,16.6754,16.6030,0.0724,0.0000,16.6709,0.2222,16.4487,0.0000,33.0463,16.6799,-0.0973,4152.0593,NA,NA,NA +Presenter.exe,5988,0x224CBFFD9D8,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,2114706679,16.6638,0.0126,16.6512,0.2406,16.6650,0.2315,16.4335,0.0000,49.5422,16.6799,-0.1889,4152.2433,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2114871593,16.6428,16.5726,0.0702,0.0000,16.6360,0.2184,16.4176,0.0000,33.0508,16.6799,-0.0045,4168.7347,NA,NA,NA +Presenter.exe,5988,0x224CBFFD9D8,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,2114873317,16.6202,0.0023,16.6179,0.2418,16.6196,0.2314,16.3882,0.0000,49.5583,16.6879,-0.0161,4168.9071,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2115038021,17.1507,17.0587,0.0920,0.0000,17.1566,0.2131,16.9435,0.0000,33.0879,16.6879,-0.0371,4185.3775,NA,NA,NA +Presenter.exe,5988,0x224CBFFD9D8,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,2115039519,17.1711,0.0024,17.1687,0.2412,17.1477,0.2287,16.9190,0.0000,49.6260,16.6759,-0.0677,4185.5273,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2115209528,16.4091,16.1504,0.2587,0.0000,16.4012,0.2217,16.1795,0.0000,32.6251,16.6759,0.4628,4202.5282,NA,NA,NA +Presenter.exe,5988,0x224CBFFD9D8,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,2115211230,16.4050,0.0024,16.4026,0.2178,16.3960,0.2346,16.1614,0.0000,49.1308,16.6764,0.4952,4202.6984,NA,NA,NA +Presenter.exe,5988,0x224CBFFD9D8,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,2115375280,16.4919,0.0022,16.4897,0.2088,16.2372,0.3024,15.9348,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2115373619,16.6599,16.5201,0.1398,0.0000,16.6585,0.2036,16.4549,0.0000,32.8919,16.6764,-0.2668,4218.9373,NA,NA,NA +Presenter.exe,5988,0x224CBFFD9D8,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,2115540199,0.2503,0.0026,0.2477,0.1845,0.3206,0.1669,0.1537,0.0000,32.9103,16.6790,16.2205,4235.5953,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2115540218,16.4959,16.4183,0.0776,0.0000,16.4932,0.3593,16.1339,0.0000,32.9084,16.6790,-0.0165,4235.5972,NA,NA,NA +Presenter.exe,5988,0x224CBFFD9D8,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,2115542702,16.4002,0.0024,16.3978,16.4749,0.1633,0.1633,0.0000,0.0000,49.3390,16.6807,-16.4287,4235.8456,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2115705177,16.6927,16.5998,0.0929,0.0000,16.6771,0.2050,16.4721,0.0000,33.0915,16.6807,-0.1831,4252.0931,NA,NA,NA +Presenter.exe,5988,0x224CBFFD9D8,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,2115706704,16.7018,0.0024,16.6994,0.2380,16.6768,0.2163,16.4605,0.0000,49.6195,16.6800,-0.2805,4252.2458,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2115872104,16.6548,16.5849,0.0699,0.0000,16.6773,0.2026,16.4747,0.0000,33.0795,16.6800,0.0120,4268.7858,NA,NA,NA +Presenter.exe,5988,0x224CBFFD9D8,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,2115873722,16.6378,0.0024,16.6354,0.2130,16.6752,0.2239,16.4513,0.0000,49.5977,16.6876,0.0218,4268.9476,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2116038652,16.6868,16.6020,0.0848,0.0000,16.6792,0.2061,16.4731,0.0000,33.1047,16.6876,-0.0252,4285.4406,NA,NA,NA +Presenter.exe,5988,0x224CBFFD9D8,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,2116040100,16.6999,0.0024,16.6975,0.2504,16.6957,0.2357,16.4600,0.0000,49.6475,16.6576,-0.0498,4285.5854,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2116205520,16.6722,16.5989,0.0733,0.0000,16.6840,0.2154,16.4686,0.0000,33.1055,16.6576,-0.0008,4302.1274,NA,NA,NA +Presenter.exe,5988,0x224CBFFD9D8,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,2116207099,16.6617,0.0024,16.6593,0.2462,16.6638,0.2354,16.4284,0.0000,49.6052,16.6840,0.0423,4302.2853,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2116372242,16.6791,16.6106,0.0685,0.0000,16.6761,0.2062,16.4699,0.0000,33.0909,16.6840,0.0146,4318.7996,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2116539033,18.2061,18.0603,0.1458,0.0000,18.1676,0.2397,17.9279,0.0000,33.0958,16.6868,-0.0049,4335.4787,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2116721094,15.5550,15.4216,0.1334,0.0000,15.5909,0.2824,15.3085,0.0000,31.5765,16.6382,1.5193,4353.6848,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2116876644,16.4836,16.3443,0.1393,0.0000,16.4785,0.2229,16.2556,0.0000,32.6597,16.7101,-1.0832,4369.2398,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2117041480,16.9119,16.7732,0.1387,0.0000,16.8746,0.2252,16.6494,0.0000,32.8862,33.3779,-0.2265,4385.7234,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2117210599,33.1303,32.9920,0.1383,0.0000,33.1726,0.2301,32.9425,0.0000,49.3522,16.6703,-16.4660,4402.6353,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2117541902,17.4971,17.3802,0.1169,0.0000,17.4879,0.1630,17.3249,0.0000,32.8922,16.6796,16.4600,4435.7656,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2117716873,15.9937,15.9081,0.0856,0.0000,15.9948,0.2586,15.7362,0.0000,32.0747,16.6880,0.8175,4453.2627,NA,NA,NA +Presenter.exe,12268,0x20DBB4358B0,DXGI,0,0,0,Composed: Flip,Application,2117844370,15.3934,15.2660,0.1274,0.0894,15.3930,0.2120,15.1810,0.0000,36.0130,16.6797,0.0000,4466.0124,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2117876810,16.8780,16.7882,0.0898,0.0000,17.0147,0.2064,16.8083,0.0000,32.7690,16.6797,-0.6943,4469.2564,NA,NA,NA +Presenter.exe,12268,0x20DBB4358B0,DXGI,0,0,0,Composed: Flip,Application,2117998304,15.6482,15.5347,0.1135,0.4784,15.2950,0.2278,15.0672,0.0000,37.2993,16.6803,-1.2863,4481.4058,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2118045590,16.3911,16.3029,0.0882,0.1153,16.3095,0.2752,16.0343,0.0000,32.5707,16.6803,0.1983,4486.1344,NA,NA,NA +Presenter.exe,12268,0x20DBB4358B0,DXGI,0,0,0,Composed: Flip,Application,2118154786,15.6148,15.5206,0.0942,0.2110,15.5342,0.3466,15.1876,0.0000,38.3314,16.6859,-1.0321,4497.0540,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2118209501,16.6634,16.5859,0.0775,0.0337,16.6835,0.2828,16.4007,0.0000,32.8599,16.6859,-0.2892,4502.5255,NA,NA,NA +Presenter.exe,12268,0x20DBB4358B0,DXGI,0,0,0,Composed: Flip,Application,2118310934,15.6358,15.5276,0.1082,0.2010,15.5592,0.2319,15.3273,0.0000,39.4025,16.6740,-1.0711,4512.6688,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2118376135,16.6421,16.5636,0.0785,0.0538,16.5725,0.2572,16.3153,0.0000,32.8824,16.6740,-0.0225,4519.1889,NA,NA,NA +Presenter.exe,12268,0x20DBB4358B0,DXGI,0,0,0,Composed: Flip,Application,2118467292,15.6062,15.5086,0.0976,0.2930,15.4349,0.2242,15.2107,0.0000,40.4407,16.6805,-1.0382,4528.3046,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2118542556,16.7010,16.6074,0.0936,0.0000,16.6825,0.2461,16.4364,0.0000,32.9143,16.6805,-0.0319,4535.8310,NA,NA,NA +Presenter.exe,12268,0x20DBB4358B0,DXGI,0,0,0,Composed: Flip,Application,2118623354,15.8271,15.5179,0.3092,0.1906,15.7707,0.2380,15.5327,0.0000,41.5150,16.6790,-1.0743,4543.9108,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2118709566,16.6504,16.5689,0.0815,0.0000,16.6721,0.2484,16.4237,0.0000,32.8938,16.6790,0.0205,4552.5320,NA,NA,NA +Presenter.exe,12268,0x20DBB4358B0,DXGI,0,0,0,Composed: Flip,Application,2118781625,15.3744,15.2813,0.0931,0.4237,15.0617,0.2053,14.8564,0.0000,42.3669,16.6795,-0.8519,4559.7379,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2118876070,16.6918,16.6171,0.0747,0.0000,16.6880,0.2454,16.4426,0.0000,32.9224,16.6795,-0.0286,4569.1824,NA,NA,NA +Presenter.exe,12268,0x20DBB4358B0,DXGI,0,0,0,Composed: Flip,Application,2118935369,15.6684,15.5655,0.1029,0.1664,15.6242,0.2216,15.4026,0.0000,43.6720,16.6807,-1.3051,4575.1123,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2119042988,16.6635,16.5889,0.0746,0.0000,16.6738,0.2457,16.4281,0.0000,32.9101,16.6807,0.0123,4585.8742,NA,NA,NA +Presenter.exe,12268,0x20DBB4358B0,DXGI,0,0,0,Composed: Flip,Application,2119092053,15.6910,15.5232,0.1678,0.1787,15.6237,0.2037,15.4200,0.0000,44.6843,16.6790,-1.0123,4590.7807,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2119209623,16.6976,16.6288,0.0688,0.0000,16.6930,0.2453,16.4477,0.0000,32.9273,16.6790,-0.0172,4602.5377,NA,NA,NA +Presenter.exe,12268,0x20DBB4358B0,DXGI,0,0,0,Composed: Flip,Application,2119248963,15.6828,15.4492,0.2336,0.1686,15.6333,0.2344,15.3989,0.0000,45.6723,16.7012,-0.9880,4606.4717,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2119376599,16.6778,16.5997,0.0781,0.0000,16.6711,0.2454,16.4257,0.0000,32.9087,16.7012,0.0186,4619.2353,NA,NA,NA +Presenter.exe,12268,0x20DBB4358B0,DXGI,0,0,0,Composed: Flip,Application,2119405791,15.5350,15.3496,0.1854,0.2083,15.4550,0.2218,15.2332,0.0000,46.6907,16.6564,-1.0184,4622.1545,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2119543377,16.6871,16.6196,0.0675,0.0000,16.6941,0.2487,16.4454,0.0000,32.9321,16.6564,-0.0234,4635.9131,NA,NA,NA +Presenter.exe,12268,0x20DBB4358B0,DXGI,0,0,0,Composed: Flip,Application,2119561141,15.7821,15.4821,0.3000,0.1818,15.7006,0.2346,15.4660,0.0000,47.8121,16.6820,-1.1214,4637.6895,NA,NA,NA +Presenter.exe,12268,0x20DBB4358B0,DXGI,0,0,0,Composed: Flip,Application,2119718962,15.4703,15.2724,0.1979,0.1891,15.5017,0.3354,15.1663,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2119710248,16.8897,16.7777,0.1120,0.0000,16.8813,0.2639,16.6174,0.0000,32.9014,16.6820,0.0307,4652.6002,NA,NA,NA +Presenter.exe,12268,0x20DBB4358B0,DXGI,0,0,0,Composed: Flip,Application,2119873665,15.8390,15.4687,0.3703,0.3592,15.5750,0.2611,15.3139,0.0000,33.2417,16.7098,14.5704,4668.9419,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2119879145,16.5026,16.4044,0.0982,0.0000,16.4810,0.2448,16.2362,0.0000,32.6937,16.7098,0.2077,4669.4899,NA,NA,NA +Presenter.exe,12268,0x20DBB4358B0,DXGI,0,0,0,Composed: Flip,Application,2120032055,15.3994,15.2590,0.1404,0.1844,15.3369,0.2372,15.0997,0.0000,34.1125,16.6514,-0.8708,4684.7809,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2120044171,16.6086,16.5359,0.0727,0.0000,16.6368,0.2541,16.3827,0.0000,32.9009,16.6514,-0.2072,4685.9925,NA,NA,NA +Presenter.exe,12268,0x20DBB4358B0,DXGI,0,0,0,Composed: Flip,Application,2120186049,15.6746,15.4793,0.1953,0.2297,15.5475,0.2038,15.3437,0.0000,35.3645,16.6800,-1.2520,4700.1803,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2120210257,16.7629,16.6830,0.0799,0.0000,16.7555,0.2465,16.5090,0.0000,32.9437,16.6800,-0.0428,4702.6011,NA,NA,NA +Presenter.exe,12268,0x20DBB4358B0,DXGI,0,0,0,Composed: Flip,Application,2120342795,15.5352,15.4261,0.1091,0.1613,15.5105,0.2031,15.3074,0.0000,36.3699,16.6632,-1.0054,4715.8549,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2120377886,16.6352,16.5620,0.0732,0.0000,16.6410,0.2322,16.4088,0.0000,32.8608,16.6632,0.0829,4719.3640,NA,NA,NA +Presenter.exe,12268,0x20DBB4358B0,DXGI,0,0,0,Composed: Flip,Application,2120498147,15.6065,15.4663,0.1402,0.1915,15.5577,0.2633,15.2944,0.0000,37.4979,16.6583,-1.1280,4731.3901,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2120544238,16.5370,16.4581,0.0789,0.0000,16.5333,0.2130,16.3203,0.0000,32.8888,16.6583,-0.0280,4735.9992,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2120709608,17.8207,17.6953,0.1254,0.0000,17.8072,0.2405,17.5667,0.0000,33.0101,16.7109,-0.1213,4752.5362,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2120887815,15.7004,15.5779,0.1225,0.0000,15.7052,0.4469,15.2583,0.0000,31.9003,16.6651,1.1098,4770.3569,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2121044819,16.9703,16.7249,0.2454,0.0000,16.9649,0.2825,16.6824,0.0000,32.8650,16.7101,-0.9647,4786.0573,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2121214522,16.8466,16.3677,0.4789,0.0000,16.6772,0.3430,16.3342,0.0000,32.6048,16.6521,0.2602,4803.0276,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2121382988,16.3297,16.2046,0.1251,0.0000,16.3307,0.1210,16.2097,0.0000,32.4103,16.6788,0.1945,4819.8742,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2121546285,16.6042,16.4754,0.1288,0.0000,16.6095,0.1636,16.4459,0.0000,32.7594,16.6750,-0.3491,4836.2039,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2121712327,16.5871,16.4856,0.1015,0.0000,16.5837,0.1420,16.4417,0.0000,32.8302,16.6796,-0.0708,4852.8081,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2121878198,16.6288,16.5501,0.0787,0.0000,16.6442,0.2008,16.4434,0.0000,32.9227,16.6794,-0.0925,4869.3952,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2122044486,16.6663,16.5833,0.0830,0.0000,16.6693,0.1976,16.4717,0.0000,32.9733,16.6703,-0.0506,4886.0240,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2122211149,16.6472,16.5710,0.0762,0.0000,16.6455,0.1834,16.4621,0.0000,32.9773,16.6893,-0.0040,4902.6903,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2122377621,16.7168,16.6276,0.0892,0.0000,16.7179,0.1931,16.5248,0.0000,33.0194,16.6778,-0.0421,4919.3375,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2122544789,16.7273,16.6095,0.1178,0.0000,16.6943,0.1888,16.5055,0.0000,32.9804,16.6808,0.0390,4936.0543,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2122712062,16.5724,16.4960,0.0764,0.0000,16.6043,0.2219,16.3824,0.0000,32.9339,33.3642,0.0465,4952.7816,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2122877786,33.3690,33.2848,0.0842,0.0000,33.3793,0.1978,33.1815,0.0000,49.7257,33.3576,-16.7918,4969.3540,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2123211476,33.4379,33.3186,0.1193,0.0000,33.4115,0.1853,33.2262,0.0000,49.7143,33.3526,0.0114,5002.7230,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2123545855,33.3474,33.2270,0.1204,0.0000,33.3468,0.1389,33.2079,0.0000,49.6290,16.6936,0.0853,5036.1609,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2123879329,16.9025,16.7759,0.1266,0.0000,16.8983,0.1439,16.7544,0.0000,32.9752,16.6785,16.6538,5069.5083,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2124048354,21.1251,17.0529,4.0722,0.0000,17.3789,0.4213,16.9576,0.0000,32.7512,16.6772,0.2240,5086.4108,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2124259605,12.0497,11.9372,0.1125,0.0366,11.9761,0.0837,11.8924,0.0000,28.3033,16.6739,4.4479,5107.5359,NA,NA,NA +dwm.exe,1268,0x224B280A1C0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2124380102,17.1166,16.9739,0.1427,0.0000,17.0923,0.2720,16.8203,0.0000,32.9275,16.7109,-4.6242,5119.5856,NA,NA,NA +Presenter.exe,11100,0x0,Other,1,0,0,Hardware: Legacy Flip,Application,2124719370,80.5150,80.5150,0.0000,0.4520,0.0885,0.0885,0.0000,0.0000,99.1472,16.6727,0.0000,5153.5124,NA,NA,NA +Presenter.exe,11100,0x0,Other,1,0,0,Hardware: Legacy Flip,Application,2125524520,10.3918,10.3918,0.0000,0.1928,0.6808,0.2129,0.4679,0.0000,35.3049,16.6535,63.8423,5234.0274,NA,NA,NA +Presenter.exe,11100,0x0,Other,1,0,0,Hardware: Legacy Flip,Application,2125628438,15.6228,15.6228,0.0000,0.0451,24.9003,0.4760,24.4243,0.0000,41.5666,16.6806,-6.2617,5244.4192,NA,NA,NA +Presenter.exe,11100,0x0,Other,1,0,0,Hardware: Legacy Flip,Application,2125784666,15.6398,15.6398,0.0000,9.3226,16.6524,0.4381,16.2143,0.0000,42.6244,16.6870,-1.0578,5260.0420,NA,NA,NA +Presenter.exe,11100,0x0,Other,1,0,0,Hardware: Legacy Flip,Application,2125941064,15.5939,15.5939,0.0000,10.3352,16.6858,0.3111,16.3747,0.0000,43.6716,16.6779,-1.0472,5275.6818,NA,NA,NA +Presenter.exe,11100,0x0,Other,1,0,0,Hardware: Legacy Flip,Application,2126097003,15.5925,15.5925,0.0000,11.4271,16.6971,0.3174,16.3797,0.0000,44.7556,16.6747,-1.0840,5291.2757,NA,NA,NA +Presenter.exe,11100,0x0,Other,1,0,0,Hardware: Legacy Flip,Application,2126252928,15.6175,15.6175,0.0000,12.5317,16.6806,0.2517,16.4289,0.0000,45.8378,16.6724,-1.0822,5306.8682,NA,NA,NA +Presenter.exe,11100,0x0,Other,1,0,0,Hardware: Legacy Flip,Application,2126409103,15.6188,15.6188,0.0000,13.5948,16.6565,0.2870,16.3695,0.0000,46.8927,16.6874,-1.0549,5322.4857,NA,NA,NA +Presenter.exe,11100,0x0,Other,1,0,0,Hardware: Legacy Flip,Application,2126565291,15.5854,15.5854,0.0000,14.6325,16.6801,0.2380,16.4421,0.0000,47.9613,16.6802,-1.0686,5338.1045,NA,NA,NA +Presenter.exe,11100,0x0,Other,1,0,0,Hardware: Legacy Flip,Application,2126721145,15.6229,15.6229,0.0000,15.7272,16.6872,0.2824,16.4048,0.0000,49.0561,16.6855,-1.0948,5353.6899,NA,NA,NA +Presenter.exe,11100,0x0,Other,1,0,0,Hardware: Legacy Flip,Application,2126877374,15.6720,15.6720,0.0000,16.7915,16.7001,0.2576,16.4425,0.0000,50.1187,16.6738,-1.0626,5369.3128,NA,NA,NA +Presenter.exe,11100,0x0,Other,1,0,0,Hardware: Legacy Flip,Application,2127034094,15.6168,15.6168,0.0000,17.8196,16.6741,0.2220,16.4521,0.0000,51.1205,16.6829,-1.0018,5384.9848,NA,NA,NA +Presenter.exe,11100,0x0,Other,1,0,0,Hardware: Legacy Flip,Application,2127190262,15.6509,15.6509,0.0000,18.8769,16.6646,0.2451,16.4195,0.0000,52.1866,16.6771,-1.0661,5400.6016,NA,NA,NA +Presenter.exe,11100,0x0,Other,1,0,0,Hardware: Legacy Flip,Application,2127346771,15.6089,15.6089,0.0000,19.8906,16.6859,0.2234,16.4625,0.0000,53.2128,16.6802,-1.0262,5416.2525,NA,NA,NA +Presenter.exe,11100,0x0,Other,1,0,0,Hardware: Legacy Flip,Application,2127502860,15.6288,15.6288,0.0000,20.9676,16.6745,0.2440,16.4305,0.0000,54.2841,16.6789,-1.0713,5431.8614,NA,NA,NA +Presenter.exe,11100,0x0,Other,1,0,0,Hardware: Legacy Flip,Application,2127659148,15.6168,15.6168,0.0000,22.0133,16.6797,0.2350,16.4447,0.0000,55.3342,16.6801,-1.0501,5447.4902,NA,NA,NA +Presenter.exe,11100,0x0,Other,1,0,0,Hardware: Legacy Flip,Application,2127815316,15.6080,15.6080,0.0000,23.0762,16.7080,0.2656,16.4424,0.0000,56.3975,16.7761,-1.0633,5463.1070,NA,NA,NA diff --git a/Tests/Gold/test_case_1.csv b/Tests/Gold/test_case_1.csv index e53d4c6b..4d342540 100644 --- a/Tests/Gold/test_case_1.csv +++ b/Tests/Gold/test_case_1.csv @@ -1,52 +1,51 @@ -Application,ProcessID,SwapChainAddress,PresentRuntime,SyncInterval,PresentFlags,AllowsTearing,PresentMode,CPUStartQPC,FrameTime,CPUBusy,CPUWait,GPULatency,GPUTime,GPUBusy,GPUWait,VideoBusy,DisplayLatency,DisplayedTime,AnimationError,AllInputToPhotonLatency,ClickToPhotonLatency -dwm.exe,1564,0x2408E0B7CA0,DXGI,1,2,0,Hardware: Legacy Flip,1857900212645,16.6331,16.3995,0.2336,0.0938,16.4996,0.6803,15.8193,0.0000,32.6109,33.3647,0.0000,NA,NA -dwm.exe,1564,0x2408E0B7CA0,DXGI,1,2,0,Hardware: Legacy Flip,1857900378976,33.3393,33.1214,0.2179,0.0000,33.3210,0.6792,32.6418,0.0000,49.3425,49.9905,-16.7316,NA,NA -dwm.exe,1564,0x2408E0B7CA0,DXGI,1,0,0,Hardware: Legacy Flip,1857900712369,52.4587,52.2106,0.2481,0.0000,52.4435,0.2331,52.2104,0.0000,65.9937,16.6773,-16.6512,NA,NA -dwm.exe,1564,0x240A8D570F0,DXGI,1,0,0,Hardware: Legacy Flip,1857900213626,102.4634,102.3417,0.1217,102.2598,0.1901,0.1901,0.0000,0.0000,119.0421,16.6558,0.0000,NA,NA -dwm.exe,1564,0x2408E0B7CA0,DXGI,1,2,0,Hardware: Legacy Flip,1857901236956,14.3919,14.1669,0.2250,0.1169,14.2011,0.5995,13.6016,0.0000,30.2123,16.6736,35.7814,NA,NA -dwm.exe,1564,0x240A8D570F0,DXGI,1,0,0,Hardware: Legacy Flip,1857901238260,14.4405,14.2912,0.1493,14.1876,0.2010,0.1323,0.0687,0.0000,33.2345,16.7016,85.8076,NA,NA -Presenter.exe,24560,0x2019D7777C0,DXGI,0,0,0,Composed: Flip,1857901396898,11.3812,10.9133,0.4679,2.1063,9.2071,0.1696,9.0375,0.0000,30.8917,16.6654,0.0000,NA,NA -Presenter.exe,24560,0x2019D7777C0,DXGI,0,0,0,Composed: Flip,1857901510710,9.8452,9.5261,0.3191,0.7618,9.1550,0.2181,8.9369,0.0000,NA,NA,NA,NA,NA -dwm.exe,1564,0x2408E0B7CA0,DXGI,1,0,0,Hardware: Legacy Flip,1857901380875,20.3315,19.9910,0.3405,0.1271,20.0296,0.1241,19.9055,0.0000,32.4940,16.6654,-2.2817,NA,NA -dwm.exe,1564,0x240A8D570F0,DXGI,1,0,0,Hardware: Legacy Flip,1857901382665,20.4608,20.2846,0.1762,19.9777,0.4367,0.2754,0.1613,0.0000,35.4956,16.6604,-2.2611,NA,NA -Presenter.exe,24560,0x2019D7777C0,DXGI,0,0,0,Composed: Flip,1857901609162,9.0420,8.6877,0.3543,0.2176,8.8201,0.1666,8.6535,0.0000,26.3307,16.6629,4.5610,NA,NA -dwm.exe,1564,0x2408E0B7CA0,DXGI,1,0,0,Hardware: Legacy Flip,1857901584190,19.1280,18.9231,0.2049,0.2619,18.8058,0.1523,18.6535,0.0000,28.8279,16.6629,3.6661,NA,NA -dwm.exe,1564,0x240A8D570F0,DXGI,1,0,0,Hardware: Legacy Flip,1857901587273,19.0133,18.8485,0.1648,18.7594,0.2104,0.2104,0.0000,0.0000,31.6952,16.6856,3.8004,NA,NA -Presenter.exe,24560,0x2019D7777C0,DXGI,0,0,0,Composed: Flip,1857901699582,8.8978,8.6407,0.2571,0.5268,8.4326,0.2008,8.2318,0.0000,33.9516,16.6678,-7.6209,NA,NA -Presenter.exe,24560,0x2019D7777C0,DXGI,0,0,0,Composed: Flip,1857901788560,9.0375,8.7446,0.2929,0.2280,8.8582,0.1643,8.6939,0.0000,NA,NA,NA,NA,NA -dwm.exe,1564,0x2408E0B7CA0,DXGI,1,0,0,Hardware: Legacy Flip,1857901775470,13.4572,13.2516,0.2056,0.1501,13.2351,0.1507,13.0844,0.0000,26.3628,16.6678,2.4651,NA,NA -dwm.exe,1564,0x240A8D570F0,DXGI,1,0,0,Hardware: Legacy Flip,1857901777406,13.4126,13.2869,0.1257,13.1916,0.1738,0.1738,0.0000,0.0000,29.3675,16.6889,2.3277,NA,NA -Presenter.exe,24560,0x2019D7777C0,DXGI,0,0,0,Composed: Flip,1857901878935,8.9051,8.6970,0.2081,0.2018,8.7605,0.1937,8.5668,0.0000,32.6841,16.6978,1.2675,NA,NA -Presenter.exe,24560,0x2019D7777C0,DXGI,0,0,0,Composed: Flip,1857901967986,8.9743,8.7911,0.1832,0.1338,8.9213,0.1733,8.7480,0.0000,NA,NA,NA,NA,NA -dwm.exe,1564,0x2408E0B7CA0,DXGI,1,0,0,Hardware: Legacy Flip,1857901910042,13.9974,13.7669,0.2305,0.1018,13.8127,0.1529,13.6598,0.0000,29.5734,16.6978,-3.2106,NA,NA -dwm.exe,1564,0x240A8D570F0,DXGI,1,0,0,Hardware: Legacy Flip,1857901911532,13.9384,13.8562,0.0822,13.7655,0.1635,0.1635,0.0000,0.0000,32.6438,16.6709,-3.2763,NA,NA -dwm.exe,1564,0x2408E0B7CA0,DXGI,1,0,0,Hardware: Legacy Flip,1857902050016,16.6737,16.4768,0.1969,0.0806,16.5277,0.1371,16.3906,0.0000,32.2738,16.6972,-2.7004,NA,NA -dwm.exe,1564,0x240A8D570F0,DXGI,1,0,0,Hardware: Legacy Flip,1857902050916,16.6728,16.5909,0.0819,16.5183,0.1449,0.1449,0.0000,0.0000,35.3763,16.7202,-2.7325,NA,NA -dwm.exe,1564,0x2408E0B7CA0,DXGI,1,0,0,Hardware: Legacy Flip,1857902216753,18.9678,18.6286,0.3392,0.0795,18.7313,0.2360,18.4953,0.0000,32.2973,16.6582,-0.0235,NA,NA -dwm.exe,1564,0x240A8D570F0,DXGI,1,0,0,Hardware: Legacy Flip,1857902217644,19.0604,18.8898,0.1706,18.7217,0.3074,0.3074,0.0000,0.0000,35.4237,16.6478,-0.0474,NA,NA -dwm.exe,1564,0x2408E0B7CA0,DXGI,1,0,0,Hardware: Legacy Flip,1857902406431,14.8082,14.2819,0.5263,0.1504,14.6112,0.5150,14.0962,0.0000,29.9877,16.6693,2.3096,NA,NA -dwm.exe,1564,0x240A8D570F0,DXGI,1,0,0,Hardware: Legacy Flip,1857902408248,14.8121,14.6621,0.1500,14.5799,0.1945,0.1945,0.0000,0.0000,33.0111,16.6887,2.4126,NA,NA -dwm.exe,1564,0x2408E0B7CA0,DXGI,1,0,0,Hardware: Legacy Flip,1857902554513,16.5364,16.2592,0.2772,0.1479,16.2910,0.2260,16.0650,0.0000,31.8488,16.6666,-1.8611,NA,NA -dwm.exe,1564,0x240A8D570F0,DXGI,1,0,0,Hardware: Legacy Flip,1857902556369,32.6199,32.4797,0.1402,32.4004,0.1896,0.1156,0.0740,0.0000,34.8877,16.6576,-1.8766,NA,NA -dwm.exe,1564,0x2408E0B7CA0,DXGI,1,2,0,Hardware: Legacy Flip,1857902719877,16.1014,15.9099,0.1915,0.0000,16.1471,0.3026,15.8445,0.0000,31.9790,16.6526,-0.1302,NA,NA -dwm.exe,1564,0x2408E0B7CA0,DXGI,1,0,0,Hardware: Legacy Flip,1857902880891,18.0432,17.8020,0.2412,0.1378,17.8358,0.1948,17.6410,0.0000,32.5302,16.6656,-0.5512,NA,NA -dwm.exe,1564,0x2408E0B7CA0,DXGI,1,0,0,Hardware: Legacy Flip,1857903061323,22.0499,21.7752,0.2747,0.1466,21.7909,0.1340,21.6569,0.0000,31.1526,16.6746,1.3776,NA,NA -dwm.exe,1564,0x240A8D570F0,DXGI,1,0,0,Hardware: Legacy Flip,1857902882568,18.0606,17.9074,0.1532,17.8059,0.2162,0.1141,0.1021,0.0000,18.9254,50.0446,15.9623,NA,NA -dwm.exe,1564,0x2408E0B7CA0,DXGI,1,2,0,Hardware: Legacy Flip,1857903281822,12.5483,12.3181,0.2302,0.0000,12.6003,0.5201,12.0802,0.0000,25.7773,16.6672,5.3753,NA,NA -dwm.exe,1564,0x240A8D570F0,DXGI,1,0,0,Hardware: Legacy Flip,1857903063174,48.7917,48.7039,0.0878,48.6173,0.1651,0.1651,0.0000,0.0000,50.9094,16.6886,-31.9840,NA,NA -dwm.exe,1564,0x2408E0B7CA0,DXGI,1,0,0,Hardware: Legacy Flip,1857903407305,14.2825,14.0569,0.2256,0.0000,14.2646,0.1113,14.1533,0.0000,29.8962,16.6670,-4.1189,NA,NA -dwm.exe,1564,0x2408E0B7CA0,DXGI,1,2,0,Hardware: Legacy Flip,1857903550130,16.3225,16.1216,0.2009,0.0868,16.1786,0.1893,15.9893,0.0000,32.2807,16.7046,-2.3845,NA,NA -dwm.exe,1564,0x2408E0B7CA0,DXGI,1,2,0,Hardware: Legacy Flip,1857903713355,16.6261,16.3691,0.2570,0.1542,16.3993,0.1142,16.2851,0.0000,32.6628,83.3536,-0.3821,NA,NA -devenv.exe,24944,0x1E25CF20,D3D9,-1,0,0,Composed: Copy with GPU GDI,1857900544731,317.3890,317.0171,0.3719,0.4938,316.8317,0.1769,316.6548,0.0000,349.5252,316.7540,0.0000,NA,NA -dwm.exe,1564,0x2408E0B7CA0,DXGI,1,2,0,Hardware: Legacy Flip,1857903879616,83.4412,83.2288,0.2124,0.0000,83.4528,0.1118,83.3410,0.0000,99.3903,233.4004,-66.7275,NA,NA -dwm.exe,1564,0x240A8D570F0,DXGI,1,0,0,Hardware: Legacy Flip,1857903551091,16.3265,16.2340,0.0925,16.1693,0.1500,0.0738,0.0762,0.0000,18.8063,483.7742,32.1031,NA,NA -dwm.exe,1564,0x2408E0B7CA0,DXGI,1,2,0,Hardware: Legacy Flip,1857904714028,233.5151,233.1793,0.3358,0.0000,233.4904,0.2436,233.2468,0.0000,249.3495,150.0195,-149.9592,NA,NA -dwm.exe,1564,0x240A8D570F0,DXGI,1,0,0,Hardware: Legacy Flip,1857903714356,483.7567,483.5726,0.1841,483.4963,0.2805,0.1992,0.0813,0.0000,486.2540,16.6894,-467.4477,NA,NA -dwm.exe,1564,0x2408E0B7CA0,DXGI,1,2,0,Hardware: Legacy Flip,1857907049179,150.0619,149.8428,0.2191,0.0000,150.0997,0.1762,149.9235,0.0000,165.8539,16.6667,83.4956,NA,NA -devenv.exe,24944,0x1E25CF20,D3D9,-1,0,0,Composed: Copy with GPU GDI,1857903718621,316.2895,315.9350,0.3545,0.0151,316.2598,0.2450,316.0148,0.0000,348.8902,300.0584,0.6350,NA,NA -dwm.exe,1564,0x2408E0B7CA0,DXGI,1,2,0,Hardware: Legacy Flip,1857908549798,16.5571,16.3520,0.2051,0.2512,16.2496,0.1267,16.1229,0.0000,32.4587,133.3722,133.3952,NA,NA -dwm.exe,1564,0x240A8D570F0,DXGI,1,0,0,Hardware: Legacy Flip,1857908551923,16.4535,16.3520,0.1015,16.2883,0.1600,0.0884,0.0716,0.0000,19.1867,283.5768,467.0673,NA,NA -dwm.exe,1564,0x2408E0B7CA0,DXGI,1,2,0,Hardware: Legacy Flip,1857908715369,133.2629,133.0426,0.2203,0.1552,133.0414,0.0598,132.9816,0.0000,149.2738,150.0273,-116.8151,NA,NA -dwm.exe,1564,0x2408E0B7CA0,DXGI,1,2,0,Hardware: Legacy Flip,1857910047998,150.4990,150.2230,0.2760,0.0000,150.4439,0.2092,150.2347,0.0000,166.0382,100.0310,-16.7644,NA,NA -devenv.exe,24944,0x1E25CF20,D3D9,-1,0,0,Composed: Copy with GPU GDI,1857906881516,299.9705,299.6612,0.3093,0.0282,299.9113,0.2533,299.6580,0.0000,332.6591,300.0335,16.2311,NA,NA -dwm.exe,1564,0x0,Other,-1,0,0,Hardware: Legacy Flip,1857913047441,117.0020,117.0020,0.0000,0.0201,117.0002,0.2119,116.7883,0.0000,NA,NA,NA,NA,NA +Application,ProcessID,SwapChainAddress,PresentRuntime,SyncInterval,PresentFlags,AllowsTearing,PresentMode,FrameType,CPUStartQPC,FrameTime,CPUBusy,CPUWait,GPULatency,GPUTime,GPUBusy,GPUWait,VideoBusy,DisplayLatency,DisplayedTime,AnimationError,AnimationTime,AllInputToPhotonLatency,ClickToPhotonLatency,InstrumentedLatency +dwm.exe,1564,0x2408E0B7CA0,DXGI,1,2,0,Hardware: Legacy Flip,Application,1857900212645,16.6331,16.3995,0.2336,0.0938,16.4996,0.6803,15.8193,0.0000,32.6109,33.3647,0.0000,589.9990,NA,NA,NA +dwm.exe,1564,0x2408E0B7CA0,DXGI,1,2,0,Hardware: Legacy Flip,Application,1857900378976,33.3393,33.1214,0.2179,0.0000,33.3210,0.6792,32.6418,0.0000,49.3425,49.9905,-16.7316,606.6321,NA,NA,NA +dwm.exe,1564,0x2408E0B7CA0,DXGI,1,0,0,Hardware: Legacy Flip,Application,1857900712369,52.4587,52.2106,0.2481,0.0000,52.4435,0.2331,52.2104,0.0000,65.9937,16.6773,-16.6512,639.9714,NA,NA,NA +dwm.exe,1564,0x240A8D570F0,DXGI,1,0,0,Hardware: Legacy Flip,Application,1857900213626,102.4634,102.3417,0.1217,102.2598,0.1901,0.1901,0.0000,0.0000,119.0421,16.6558,0.0000,590.0971,NA,NA,NA +dwm.exe,1564,0x2408E0B7CA0,DXGI,1,2,0,Hardware: Legacy Flip,Application,1857901236956,14.3919,14.1669,0.2250,0.1169,14.2011,0.5995,13.6016,0.0000,30.2123,16.6736,35.7814,692.4301,NA,NA,NA +dwm.exe,1564,0x240A8D570F0,DXGI,1,0,0,Hardware: Legacy Flip,Application,1857901238260,14.4405,14.2912,0.1493,14.1876,0.2010,0.1323,0.0687,0.0000,33.2345,16.7016,85.8076,692.5605,NA,NA,NA +Presenter.exe,24560,0x2019D7777C0,DXGI,0,0,0,Composed: Flip,Application,1857901396898,11.3812,10.9133,0.4679,2.1063,9.2071,0.1696,9.0375,0.0000,30.8917,16.6654,0.0000,708.4243,NA,NA,NA +Presenter.exe,24560,0x2019D7777C0,DXGI,0,0,0,Composed: Flip,Application,1857901510710,9.8452,9.5261,0.3191,0.7618,9.1550,0.2181,8.9369,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,1564,0x2408E0B7CA0,DXGI,1,0,0,Hardware: Legacy Flip,Application,1857901380875,20.3315,19.9910,0.3405,0.1271,20.0296,0.1241,19.9055,0.0000,32.4940,16.6654,-2.2817,706.8220,NA,NA,NA +dwm.exe,1564,0x240A8D570F0,DXGI,1,0,0,Hardware: Legacy Flip,Application,1857901382665,20.4608,20.2846,0.1762,19.9777,0.4367,0.2754,0.1613,0.0000,35.4956,16.6604,-2.2611,707.0010,NA,NA,NA +Presenter.exe,24560,0x2019D7777C0,DXGI,0,0,0,Composed: Flip,Application,1857901609162,9.0420,8.6877,0.3543,0.2176,8.8201,0.1666,8.6535,0.0000,26.3307,16.6629,4.5610,729.6507,NA,NA,NA +dwm.exe,1564,0x2408E0B7CA0,DXGI,1,0,0,Hardware: Legacy Flip,Application,1857901584190,19.1280,18.9231,0.2049,0.2619,18.8058,0.1523,18.6535,0.0000,28.8279,16.6629,3.6661,727.1535,NA,NA,NA +dwm.exe,1564,0x240A8D570F0,DXGI,1,0,0,Hardware: Legacy Flip,Application,1857901587273,19.0133,18.8485,0.1648,18.7594,0.2104,0.2104,0.0000,0.0000,31.6952,16.6856,3.8004,727.4618,NA,NA,NA +Presenter.exe,24560,0x2019D7777C0,DXGI,0,0,0,Composed: Flip,Application,1857901699582,8.8978,8.6407,0.2571,0.5268,8.4326,0.2008,8.2318,0.0000,33.9516,16.6678,-7.6209,738.6927,NA,NA,NA +Presenter.exe,24560,0x2019D7777C0,DXGI,0,0,0,Composed: Flip,Application,1857901788560,9.0375,8.7446,0.2929,0.2280,8.8582,0.1643,8.6939,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,1564,0x2408E0B7CA0,DXGI,1,0,0,Hardware: Legacy Flip,Application,1857901775470,13.4572,13.2516,0.2056,0.1501,13.2351,0.1507,13.0844,0.0000,26.3628,16.6678,2.4651,746.2815,NA,NA,NA +dwm.exe,1564,0x240A8D570F0,DXGI,1,0,0,Hardware: Legacy Flip,Application,1857901777406,13.4126,13.2869,0.1257,13.1916,0.1738,0.1738,0.0000,0.0000,29.3675,16.6889,2.3277,746.4751,NA,NA,NA +Presenter.exe,24560,0x2019D7777C0,DXGI,0,0,0,Composed: Flip,Application,1857901878935,8.9051,8.6970,0.2081,0.2018,8.7605,0.1937,8.5668,0.0000,32.6841,16.6978,1.2675,756.6280,NA,NA,NA +Presenter.exe,24560,0x2019D7777C0,DXGI,0,0,0,Composed: Flip,Application,1857901967986,8.9743,8.7911,0.1832,0.1338,8.9213,0.1733,8.7480,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,1564,0x2408E0B7CA0,DXGI,1,0,0,Hardware: Legacy Flip,Application,1857901910042,13.9974,13.7669,0.2305,0.1018,13.8127,0.1529,13.6598,0.0000,29.5734,16.6978,-3.2106,759.7387,NA,NA,NA +dwm.exe,1564,0x240A8D570F0,DXGI,1,0,0,Hardware: Legacy Flip,Application,1857901911532,13.9384,13.8562,0.0822,13.7655,0.1635,0.1635,0.0000,0.0000,32.6438,16.6709,-3.2763,759.8877,NA,NA,NA +dwm.exe,1564,0x2408E0B7CA0,DXGI,1,0,0,Hardware: Legacy Flip,Application,1857902050016,16.6737,16.4768,0.1969,0.0806,16.5277,0.1371,16.3906,0.0000,32.2738,16.6972,-2.7004,773.7361,NA,NA,NA +dwm.exe,1564,0x240A8D570F0,DXGI,1,0,0,Hardware: Legacy Flip,Application,1857902050916,16.6728,16.5909,0.0819,16.5183,0.1449,0.1449,0.0000,0.0000,35.3763,16.7202,-2.7325,773.8261,NA,NA,NA +dwm.exe,1564,0x2408E0B7CA0,DXGI,1,0,0,Hardware: Legacy Flip,Application,1857902216753,18.9678,18.6286,0.3392,0.0795,18.7313,0.2360,18.4953,0.0000,32.2973,16.6582,-0.0235,790.4098,NA,NA,NA +dwm.exe,1564,0x240A8D570F0,DXGI,1,0,0,Hardware: Legacy Flip,Application,1857902217644,19.0604,18.8898,0.1706,18.7217,0.3074,0.3074,0.0000,0.0000,35.4237,16.6478,-0.0474,790.4989,NA,NA,NA +dwm.exe,1564,0x2408E0B7CA0,DXGI,1,0,0,Hardware: Legacy Flip,Application,1857902406431,14.8082,14.2819,0.5263,0.1504,14.6112,0.5150,14.0962,0.0000,29.9877,16.6693,2.3096,809.3776,NA,NA,NA +dwm.exe,1564,0x240A8D570F0,DXGI,1,0,0,Hardware: Legacy Flip,Application,1857902408248,14.8121,14.6621,0.1500,14.5799,0.1945,0.1945,0.0000,0.0000,33.0111,16.6887,2.4126,809.5593,NA,NA,NA +dwm.exe,1564,0x2408E0B7CA0,DXGI,1,0,0,Hardware: Legacy Flip,Application,1857902554513,16.5364,16.2592,0.2772,0.1479,16.2910,0.2260,16.0650,0.0000,31.8488,16.6666,-1.8611,824.1858,NA,NA,NA +dwm.exe,1564,0x240A8D570F0,DXGI,1,0,0,Hardware: Legacy Flip,Application,1857902556369,32.6199,32.4797,0.1402,32.4004,0.1896,0.1156,0.0740,0.0000,34.8877,16.6576,-1.8766,824.3714,NA,NA,NA +dwm.exe,1564,0x2408E0B7CA0,DXGI,1,2,0,Hardware: Legacy Flip,Application,1857902719877,16.1014,15.9099,0.1915,0.0000,16.1471,0.3026,15.8445,0.0000,31.9790,16.6526,-0.1302,840.7222,NA,NA,NA +dwm.exe,1564,0x2408E0B7CA0,DXGI,1,0,0,Hardware: Legacy Flip,Application,1857902880891,18.0432,17.8020,0.2412,0.1378,17.8358,0.1948,17.6410,0.0000,32.5302,16.6656,-0.5512,856.8236,NA,NA,NA +dwm.exe,1564,0x2408E0B7CA0,DXGI,1,0,0,Hardware: Legacy Flip,Application,1857903061323,22.0499,21.7752,0.2747,0.1466,21.7909,0.1340,21.6569,0.0000,31.1526,16.6746,1.3776,874.8668,NA,NA,NA +dwm.exe,1564,0x240A8D570F0,DXGI,1,0,0,Hardware: Legacy Flip,Application,1857902882568,18.0606,17.9074,0.1532,17.8059,0.2162,0.1141,0.1021,0.0000,18.9254,50.0446,15.9623,856.9913,NA,NA,NA +dwm.exe,1564,0x2408E0B7CA0,DXGI,1,2,0,Hardware: Legacy Flip,Application,1857903281822,12.5483,12.3181,0.2302,0.0000,12.6003,0.5201,12.0802,0.0000,25.7773,16.6672,5.3753,896.9167,NA,NA,NA +dwm.exe,1564,0x240A8D570F0,DXGI,1,0,0,Hardware: Legacy Flip,Application,1857903063174,48.7917,48.7039,0.0878,48.6173,0.1651,0.1651,0.0000,0.0000,50.9094,16.6886,-31.9840,875.0519,NA,NA,NA +dwm.exe,1564,0x2408E0B7CA0,DXGI,1,0,0,Hardware: Legacy Flip,Application,1857903407305,14.2825,14.0569,0.2256,0.0000,14.2646,0.1113,14.1533,0.0000,29.8962,16.6670,-4.1189,909.4650,NA,NA,NA +dwm.exe,1564,0x2408E0B7CA0,DXGI,1,2,0,Hardware: Legacy Flip,Application,1857903550130,16.3225,16.1216,0.2009,0.0868,16.1786,0.1893,15.9893,0.0000,32.2807,16.7046,-2.3845,923.7475,NA,NA,NA +dwm.exe,1564,0x2408E0B7CA0,DXGI,1,2,0,Hardware: Legacy Flip,Application,1857903713355,16.6261,16.3691,0.2570,0.1542,16.3993,0.1142,16.2851,0.0000,32.6628,83.3536,-0.3821,940.0700,NA,NA,NA +devenv.exe,24944,0x1E25CF20,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,1857900544731,317.3890,317.0171,0.3719,0.4938,316.8317,0.1769,316.6548,0.0000,349.5252,316.7540,0.0000,623.2076,NA,NA,NA +dwm.exe,1564,0x2408E0B7CA0,DXGI,1,2,0,Hardware: Legacy Flip,Application,1857903879616,83.4412,83.2288,0.2124,0.0000,83.4528,0.1118,83.3410,0.0000,99.3903,233.4004,-66.7275,956.6961,NA,NA,NA +dwm.exe,1564,0x240A8D570F0,DXGI,1,0,0,Hardware: Legacy Flip,Application,1857903551091,16.3265,16.2340,0.0925,16.1693,0.1500,0.0738,0.0762,0.0000,18.8063,483.7742,32.1031,923.8436,NA,NA,NA +dwm.exe,1564,0x2408E0B7CA0,DXGI,1,2,0,Hardware: Legacy Flip,Application,1857904714028,233.5151,233.1793,0.3358,0.0000,233.4904,0.2436,233.2468,0.0000,249.3495,150.0195,-149.9592,1040.1373,NA,NA,NA +dwm.exe,1564,0x240A8D570F0,DXGI,1,0,0,Hardware: Legacy Flip,Application,1857903714356,483.7567,483.5726,0.1841,483.4963,0.2805,0.1992,0.0813,0.0000,486.2540,16.6894,-467.4477,940.1701,NA,NA,NA +dwm.exe,1564,0x2408E0B7CA0,DXGI,1,2,0,Hardware: Legacy Flip,Application,1857907049179,150.0619,149.8428,0.2191,0.0000,150.0997,0.1762,149.9235,0.0000,165.8539,16.6667,83.4956,1273.6524,NA,NA,NA +devenv.exe,24944,0x1E25CF20,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,1857903718621,316.2895,315.9350,0.3545,0.0151,316.2598,0.2450,316.0148,0.0000,348.8902,300.0584,0.6350,940.5966,NA,NA,NA +dwm.exe,1564,0x2408E0B7CA0,DXGI,1,2,0,Hardware: Legacy Flip,Application,1857908549798,16.5571,16.3520,0.2051,0.2512,16.2496,0.1267,16.1229,0.0000,32.4587,133.3722,133.3952,1423.7143,NA,NA,NA +dwm.exe,1564,0x240A8D570F0,DXGI,1,0,0,Hardware: Legacy Flip,Application,1857908551923,16.4535,16.3520,0.1015,16.2883,0.1600,0.0884,0.0716,0.0000,19.1867,283.5768,467.0673,1423.9268,NA,NA,NA +dwm.exe,1564,0x2408E0B7CA0,DXGI,1,2,0,Hardware: Legacy Flip,Application,1857908715369,133.2629,133.0426,0.2203,0.1552,133.0414,0.0598,132.9816,0.0000,149.2738,150.0273,-116.8151,1440.2714,NA,NA,NA +dwm.exe,1564,0x2408E0B7CA0,DXGI,1,2,0,Hardware: Legacy Flip,Application,1857910047998,150.4990,150.2230,0.2760,0.0000,150.4439,0.2092,150.2347,0.0000,166.0382,100.0310,-16.7644,1573.5343,NA,NA,NA +devenv.exe,24944,0x1E25CF20,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,1857906881516,299.9705,299.6612,0.3093,0.0282,299.9113,0.2533,299.6580,0.0000,332.6591,300.0335,16.2311,1256.8861,NA,NA,NA diff --git a/Tests/Gold/test_case_1_v1.csv b/Tests/Gold/test_case_1_v1.csv index 35838315..9bf762b8 100644 --- a/Tests/Gold/test_case_1_v1.csv +++ b/Tests/Gold/test_case_1_v1.csv @@ -54,5 +54,4 @@ dwm.exe,1564,0x000002408E0B7CA0,DXGI,1,2,0,1.72375730000000,0.27600000000000,150 chrome.exe,11024,0x0000027943F86F20,DXGI,1,0,0,1.80807140000000,0.08360000000000,1216.91750000000002,0,Composed: Flip,0.87720000000000,31.53210000000000,1216.99360000000001,-1215.87570000000005,0.45740000000000,0.00000000000000,0.00000000000000,1857912393369 dwm.exe,1564,0x000002408E0B7CA0,DXGI,1,2,0,1.82342020000000,0.27350000000000,99.66289999999999,0,Hardware: Legacy Flip,0.18540000000000,16.18330000000000,100.03100000000001,-99.13020000000000,0.18870000000000,0.00000000000000,0.00000000000000,1857912546857 devenv.exe,24944,0x000000001E25CF20,D3D9,-1,0,0,1.85653500000000,0.29900000000000,299.98770000000002,0,Composed: Copy with GPU GDI,0.30470000000000,33.04370000000000,300.03350000000000,-299.67939999999999,0.26640000000000,0.00000000000000,0.00000000000000,1857912878005 -dwm.exe,1564,0x0000000000000000,Other,-1,0,1,1.99048060000000,0.00000000000000,117.00200000000000,0,Hardware: Legacy Flip,0.01830000000000,0.00000000000000,0.00000000000000,-116.98190000000000,0.21190000000000,0.00000000000000,0.00000000000000,1857914217461 -dwm.exe,1564,0x0000000000000000,Other,-1,0,0,1.99064610000000,0.00000000000000,0.16550000000000,0,Hardware: Legacy Flip,0.02900000000000,2.92500000000000,103.99240000000000,-0.14720000000000,0.13400000000000,0.00000000000000,0.00000000000000,1857914219116 +dwm.exe,1564,0x0000000000000000,Other,-1,0,0,1.99048060000000,0.00000000000000,117.00200000000000,0,Hardware: Legacy Flip,0.01830000000000,15.85000000000000,116.75190000000001,-116.98190000000000,0.21190000000000,0.00000000000000,0.00000000000000,1857914217461 diff --git a/Tests/Gold/test_case_2.csv b/Tests/Gold/test_case_2.csv index 3131347d..3e46b2d9 100644 --- a/Tests/Gold/test_case_2.csv +++ b/Tests/Gold/test_case_2.csv @@ -1,94 +1,94 @@ -Application,ProcessID,SwapChainAddress,PresentRuntime,SyncInterval,PresentFlags,AllowsTearing,PresentMode,CPUStartQPC,FrameTime,CPUBusy,CPUWait,GPULatency,GPUTime,GPUBusy,GPUWait,VideoBusy,DisplayLatency,DisplayedTime,AnimationError,AllInputToPhotonLatency,ClickToPhotonLatency -dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,8086364705,16.7851,16.6329,0.1522,2.5541,14.2582,0.3531,13.9051,0.0000,32.8860,33.3783,0.0000,NA,NA -dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,8086532556,33.3063,33.1700,0.1363,0.0272,33.3106,0.3341,32.9765,0.0000,49.4792,33.3498,-16.5932,NA,NA -dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,8086865619,33.3112,33.2302,0.0810,0.0315,33.2778,0.3579,32.9199,0.0000,49.5227,16.6316,-0.0435,NA,NA -dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,8087198731,17.9303,17.8336,0.0967,0.0000,17.9668,0.3061,17.6607,0.0000,32.8431,17.0175,16.6796,NA,NA -dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,8087378034,15.5152,15.4118,0.1034,0.0346,16.1233,1.1187,15.0046,0.0000,31.9303,16.5900,0.9128,NA,NA -Presenter.exe,10016,0x1BA6DC82C58,D3D9,-1,0,0,Composed: Copy with GPU GDI,8087515642,2.0269,0.1792,1.8477,4.5334,0.6801,0.6801,0.0000,0.0000,34.7595,16.7046,0.0000,NA,NA -dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,8087533186,17.0497,16.9415,0.1082,0.6427,16.4277,0.4585,15.9692,0.0000,33.0051,16.7046,-1.0748,NA,NA -Presenter.exe,10016,0x1BA6DC82C58,D3D9,-1,0,0,Composed: Copy with GPU GDI,8087535911,17.2587,0.0461,17.2126,3.1866,18.4325,0.8600,17.5725,0.0000,49.4372,16.6609,-14.6777,NA,NA -dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,8087703683,16.9079,16.7313,0.1766,0.0207,16.9531,0.6088,16.3443,0.0000,32.6600,16.6609,0.3451,NA,NA -Presenter.exe,10016,0x1BA6DC82C58,D3D9,-1,0,0,Composed: Copy with GPU GDI,8087708498,17.0505,0.4799,16.5706,4.3604,17.1655,1.0680,16.0975,0.0000,48.8394,16.6995,0.5978,NA,NA -dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,8087872762,16.6823,16.5032,0.1791,0.0659,16.7145,0.5997,16.1148,0.0000,32.4130,16.6995,0.2470,NA,NA -Presenter.exe,10016,0x1BA6DC82C58,D3D9,-1,0,0,Composed: Copy with GPU GDI,8087879003,16.5570,0.0387,16.5183,16.7209,1.0821,0.9559,0.1262,0.0000,48.4884,16.6681,0.3510,NA,NA -dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,8088039585,16.6546,16.4799,0.1747,0.0981,16.6196,0.6598,15.9598,0.0000,32.4302,16.6681,-0.0172,NA,NA -Presenter.exe,10016,0x1BA6DC82C58,D3D9,-1,0,0,Composed: Copy with GPU GDI,8088044573,16.6555,0.0321,16.6234,16.7686,0.9565,0.8698,0.0867,0.0000,48.5995,16.6744,-0.1111,NA,NA -dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,8088206131,16.2773,16.1784,0.0989,0.0631,16.2825,0.6081,15.6744,0.0000,32.4437,16.6744,-0.0135,NA,NA -Presenter.exe,10016,0x1BA6DC82C58,D3D9,-1,0,0,Composed: Copy with GPU GDI,8088211128,16.0935,0.3812,15.7123,16.4411,1.0357,0.9508,0.0849,0.0000,48.6184,16.6548,-0.0189,NA,NA -dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,8088368904,16.7218,16.6114,0.1104,0.0683,16.9087,0.6532,16.2555,0.0000,32.8408,16.6548,-0.3971,NA,NA -Presenter.exe,10016,0x1BA6DC82C58,D3D9,-1,0,0,Composed: Copy with GPU GDI,8088372063,16.7208,0.1689,16.5519,17.3355,1.0511,0.9525,0.0986,0.0000,49.1797,16.7230,-0.5613,NA,NA -dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,8088536122,16.8109,16.6763,0.1346,0.2552,16.5979,0.7418,15.8561,0.0000,32.7738,16.7230,0.0670,NA,NA -Presenter.exe,10016,0x1BA6DC82C58,D3D9,-1,0,0,Composed: Copy with GPU GDI,8088539271,16.9071,0.1199,16.7872,17.1245,1.0782,0.9710,0.1072,0.0000,49.1819,16.6403,-0.0022,NA,NA -dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,8088704231,16.8140,16.6477,0.1663,0.0422,16.8577,0.6846,16.1731,0.0000,32.6859,16.6403,0.0879,NA,NA -Presenter.exe,10016,0x1BA6DC82C58,D3D9,-1,0,0,Composed: Copy with GPU GDI,8088708342,16.8607,0.0090,16.8517,17.0402,1.0727,0.9554,0.1173,0.0000,48.9151,16.5829,0.2668,NA,NA -dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,8088872371,16.7926,16.6181,0.1745,0.0859,16.7719,0.6472,16.1247,0.0000,32.5122,16.5829,0.1737,NA,NA -Presenter.exe,10016,0x1BA6DC82C58,D3D9,-1,0,0,Composed: Copy with GPU GDI,8088876949,16.8307,0.0093,16.8214,16.9405,1.1373,1.0663,0.0710,0.0000,48.6373,16.6302,0.2778,NA,NA -Presenter.exe,10016,0x1BA6DC82C58,D3D9,-1,0,0,Composed: Copy with GPU GDI,8089045256,16.7526,0.0106,16.7420,16.8187,0.9931,0.9247,0.0684,0.0000,NA,NA,NA,NA,NA -dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,8089040297,16.7519,16.5405,0.2114,0.0652,16.7500,0.6536,16.0964,0.0000,32.3025,16.6302,0.2097,NA,NA -Presenter.exe,10016,0x1BA6DC82C58,D3D9,-1,0,0,Composed: Copy with GPU GDI,8089212782,1.7000,0.0110,1.6890,1.4215,1.1410,1.1410,0.0000,0.0000,31.6842,16.8114,16.9531,NA,NA -dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,8089207816,16.5489,16.3643,0.1846,0.0633,16.5507,0.5948,15.9559,0.0000,32.1808,16.8114,0.1217,NA,NA -Presenter.exe,10016,0x1BA6DC82C58,D3D9,-1,0,0,Composed: Copy with GPU GDI,8089229782,14.8557,0.0081,14.8476,14.9668,1.0941,0.9664,0.1277,0.0000,46.7956,16.5500,-15.1114,NA,NA -dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,8089373305,16.5842,16.4108,0.1734,0.0651,16.6084,0.6529,15.9555,0.0000,32.4433,16.5500,-0.2625,NA,NA -Presenter.exe,10016,0x1BA6DC82C58,D3D9,-1,0,0,Composed: Copy with GPU GDI,8089378339,16.7694,0.0106,16.7588,16.6757,0.9746,0.9094,0.0652,0.0000,48.4899,16.8653,-1.6943,NA,NA -dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,8089539147,16.7771,16.6018,0.1753,0.0893,16.7528,0.6018,16.1510,0.0000,32.4091,16.8653,0.0342,NA,NA -Presenter.exe,10016,0x1BA6DC82C58,D3D9,-1,0,0,Composed: Copy with GPU GDI,8089546033,16.5926,0.0114,16.5812,16.6897,1.0975,1.0219,0.0756,0.0000,48.5858,16.6452,-0.0959,NA,NA -dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,8089706918,16.5921,16.4109,0.1812,0.0650,16.6176,0.6386,15.9790,0.0000,32.4973,16.6452,-0.0882,NA,NA -Presenter.exe,10016,0x1BA6DC82C58,D3D9,-1,0,0,Composed: Copy with GPU GDI,8089711959,16.5729,0.0102,16.5627,16.7229,1.0976,1.0239,0.0737,0.0000,48.6384,16.7233,-0.0526,NA,NA -dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,8089872839,16.9451,16.7480,0.1971,0.0905,16.9226,0.6476,16.2750,0.0000,32.5504,16.7233,-0.0531,NA,NA -Presenter.exe,10016,0x1BA6DC82C58,D3D9,-1,0,0,Composed: Copy with GPU GDI,8089877688,16.9915,0.0100,16.9815,17.0721,1.1068,1.0379,0.0689,0.0000,48.7888,16.4033,-0.1504,NA,NA -dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,8090042290,16.5960,16.4134,0.1826,0.0680,16.5927,0.6428,15.9499,0.0000,32.3286,16.4033,0.2218,NA,NA -Presenter.exe,10016,0x1BA6DC82C58,D3D9,-1,0,0,Composed: Copy with GPU GDI,8090047603,16.5756,0.0119,16.5637,16.6718,1.1016,0.9759,0.1257,0.0000,48.2006,16.7286,0.5882,NA,NA -dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,8090208250,16.7261,16.5272,0.1989,0.0647,16.7612,0.6560,16.1052,0.0000,32.1359,16.7286,0.1927,NA,NA -dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,8090375511,15.9481,15.8797,0.0684,0.0998,15.9509,0.6154,15.3355,0.0000,32.1384,16.7493,-0.0025,NA,NA -dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,8090534992,16.7173,16.5149,0.2024,0.1026,16.6011,0.7830,15.8181,0.0000,32.9396,33.3440,-0.8012,NA,NA -dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,8090702165,34.7502,34.5978,0.1524,0.0000,34.8144,0.5554,34.2590,0.0000,49.5663,16.8361,-16.6267,NA,NA -dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,8091049667,15.8538,15.7289,0.1249,0.0506,15.8311,1.4108,14.4203,0.0000,31.6522,16.4392,17.9141,NA,NA -dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,8091208205,17.7585,17.6017,0.1568,0.0279,17.7863,0.9111,16.8752,0.0000,32.2376,16.7532,-0.5854,NA,NA -dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,8091385790,15.4036,15.2594,0.1442,0.0557,15.3402,0.7830,14.5572,0.0000,31.2323,16.6404,1.0053,NA,NA -dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,8091539826,17.3968,17.2998,0.0970,0.0000,17.4207,0.8102,16.6105,0.0000,32.4691,16.6866,-1.2368,NA,NA -dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,8091713794,15.9041,15.8035,0.1006,0.0162,15.8947,1.0681,14.8266,0.0000,31.7589,16.6360,0.7102,NA,NA -dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,8091872835,16.5349,16.4344,0.1005,0.0068,16.8694,0.8471,16.0223,0.0000,32.4908,16.6749,-0.7319,NA,NA -dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,8092038184,17.4684,17.3487,0.1197,0.3413,17.1470,0.8412,16.3058,0.0000,32.6308,16.7318,-0.1400,NA,NA -dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,8092212868,15.8932,15.7701,0.1231,0.0199,15.8858,1.0858,14.8000,0.0000,31.8942,33.3620,0.7366,NA,NA -dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,8092371800,33.8545,33.7364,0.1181,0.0125,33.8640,0.5780,33.2860,0.0000,49.3630,16.6403,-17.4688,NA,NA -dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,8092710345,16.4354,16.2280,0.2074,0.0220,16.4015,1.0404,15.3611,0.0000,32.1488,16.7244,17.2142,NA,NA -dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,8092874699,16.2913,16.1957,0.0956,0.0000,16.8136,0.3422,16.4714,0.0000,32.4378,16.7013,-0.2890,NA,NA -dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,8093037612,17.8782,17.7893,0.0889,0.5104,17.4035,0.5756,16.8279,0.0000,32.8478,16.7139,-0.4100,NA,NA -dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,8093216394,16.0868,15.9904,0.0964,0.0357,16.0593,0.7770,15.2823,0.0000,31.6835,100.1011,1.1643,NA,NA -dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,8093377262,23.4304,23.2916,0.1388,0.0082,23.4918,1.5215,21.9703,0.0000,115.6978,16.6563,-84.0143,NA,NA -Presenter.exe,5348,0x28F99FCFD50,DXGI,0,0,0,Composed: Flip,8093420326,14.2055,12.8714,1.3341,0.7979,12.3600,0.6429,11.7171,0.0000,128.0477,16.6703,0.0000,NA,NA -dwm.exe,1300,0x296989CD030,DXGI,0,0,0,Hardware: Legacy Flip,8093611566,9.2834,9.2119,0.0715,0.0696,0.0736,0.0736,0.0000,0.0000,108.9237,16.6703,6.7741,NA,NA -Presenter.exe,5348,0x28F99FCFD50,DXGI,0,0,0,Composed: Flip,8093562381,14.5591,14.3415,0.2176,0.1619,90.1034,0.6611,89.4423,0.0000,130.5125,16.6962,-2.4648,NA,NA -Presenter.exe,5348,0x28F99FCFD50,DXGI,0,0,0,Hardware: Independent Flip,8093707972,93.6779,93.5187,0.1592,99.3280,0.5063,0.5063,0.0000,0.0000,132.6496,16.6771,-2.1371,NA,NA -Presenter.exe,5348,0x28F99FCFD50,DXGI,0,0,0,Hardware: Independent Flip,8094644751,15.6293,15.4886,0.1407,22.3156,0.5469,0.5469,0.0000,0.0000,55.6488,16.7369,77.0008,NA,NA -Presenter.exe,5348,0x28F99FCFD50,DXGI,0,0,0,Hardware: Independent Flip,8094801044,15.5550,15.4502,0.1048,23.4320,0.4975,0.4975,0.0000,0.0000,56.7564,16.6767,-1.1076,NA,NA -Presenter.exe,5348,0x28F99FCFD50,DXGI,0,0,0,Hardware: Independent Flip,8094956594,15.6978,15.5254,0.1724,24.5327,0.5034,0.5034,0.0000,0.0000,57.8781,16.7628,-1.1217,NA,NA -Presenter.exe,5348,0x28F99FCFD50,DXGI,0,0,0,Hardware: Independent Flip,8095113572,31.1910,31.0662,0.1248,25.6052,5.8773,0.7893,5.0880,0.0000,58.9431,16.6994,-1.0650,NA,NA -Presenter.exe,5348,0x28F99FCFD50,DXGI,0,0,0,Hardware: Independent Flip,8095425482,15.6129,15.4936,0.1193,11.0417,4.7661,0.7249,4.0412,0.0000,44.4515,16.6824,14.4916,NA,NA -Presenter.exe,5348,0x28F99FCFD50,DXGI,0,0,0,Hardware: Independent Flip,8095581611,15.8078,15.5548,0.2530,12.2542,3.7866,0.8839,2.9027,0.0000,45.5210,16.6802,-1.0695,NA,NA -Presenter.exe,5348,0x28F99FCFD50,DXGI,0,0,0,Hardware: Independent Flip,8095739689,15.6433,15.4025,0.2408,13.1256,2.7791,0.8395,1.9396,0.0000,46.3934,16.6116,-0.8724,NA,NA -Presenter.exe,5348,0x28F99FCFD50,DXGI,0,0,0,Hardware: Independent Flip,8095896122,15.5808,15.3541,0.2267,14.1875,1.5708,0.7974,0.7734,0.0000,47.3617,16.6709,-0.9683,NA,NA -Presenter.exe,5348,0x28F99FCFD50,DXGI,0,0,0,Hardware: Independent Flip,8096051930,15.6142,15.2914,0.3228,15.3041,0.5555,0.5555,0.0000,0.0000,48.4518,16.6826,-1.0901,NA,NA -Presenter.exe,5348,0x28F99FCFD50,DXGI,0,0,0,Hardware: Independent Flip,8096208072,15.7328,15.4834,0.2494,16.2762,0.5506,0.5506,0.0000,0.0000,49.5202,16.6744,-1.0684,NA,NA -Presenter.exe,5348,0x28F99FCFD50,DXGI,0,0,0,Hardware: Independent Flip,8096365400,15.6254,15.3580,0.2674,17.2159,0.5448,0.5448,0.0000,0.0000,50.4618,16.6814,-0.9416,NA,NA -Presenter.exe,5348,0x28F99FCFD50,DXGI,0,0,0,Hardware: Independent Flip,8096521654,15.5938,15.3604,0.2334,18.2766,0.4610,0.4610,0.0000,0.0000,51.5178,16.6774,-1.0560,NA,NA -Presenter.exe,5348,0x28F99FCFD50,DXGI,0,0,0,Hardware: Independent Flip,8096677592,15.6496,15.4017,0.2479,19.3682,0.4559,0.4559,0.0000,0.0000,52.6014,16.6821,-1.0836,NA,NA -Presenter.exe,5348,0x28F99FCFD50,DXGI,0,0,0,Hardware: Independent Flip,8096834088,15.5957,15.3706,0.2251,20.4079,0.4580,0.4580,0.0000,0.0000,53.6339,16.6451,-1.0325,NA,NA -Presenter.exe,5348,0x28F99FCFD50,DXGI,0,0,0,Hardware: Independent Flip,8096990045,15.6203,15.3935,0.2268,21.4743,0.4552,0.4552,0.0000,0.0000,54.6833,16.7920,-1.0494,NA,NA -dwm.exe,1300,0x296989CD030,DXGI,0,0,0,Hardware: Legacy Flip,8093704400,83.3023,83.2556,0.0467,0.0000,0.0000,0.0000,0.0000,0.0000,116.3106,400.3309,-7.3869,NA,NA -dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,8094537423,317.7147,317.5736,0.1411,301.6412,16.1067,1.1908,14.9159,0.0000,433.3392,16.6647,-317.0286,NA,NA -dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,8097714570,116.3149,116.2190,0.0959,0.0332,116.3119,0.8232,115.4887,0.0000,132.2892,16.6500,301.0500,NA,NA -dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,8098877719,16.5674,16.4696,0.0978,0.0302,16.6076,0.7863,15.8213,0.0000,32.6243,16.6839,99.6649,NA,NA -dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,8099043393,16.6770,16.6019,0.0751,0.0704,16.6349,0.8081,15.8268,0.0000,32.7408,16.6248,-0.1165,NA,NA -dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,8099210163,16.5669,16.4887,0.0782,0.0283,16.7327,0.7710,15.9617,0.0000,32.6886,16.7809,0.0522,NA,NA -dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,8099375832,16.7387,16.6020,0.1367,0.1941,16.5627,0.6410,15.9217,0.0000,32.9026,33.3103,-0.2140,NA,NA -dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,8099543219,33.5593,33.4156,0.1437,0.0181,33.5618,0.4199,33.1419,0.0000,49.4742,16.6601,-16.5716,NA,NA -dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,8099878812,17.1797,17.0962,0.0835,0.0206,17.1682,0.5057,16.6625,0.0000,32.5750,33.3678,16.8992,NA,NA -dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,8100050609,33.0817,32.9185,0.1632,0.0091,33.1415,0.7366,32.4049,0.0000,48.7631,16.6852,-16.1881,NA,NA -dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,8100381426,0.9493,0.7762,0.1731,0.0689,0.9106,0.9106,0.0000,0.0000,32.3666,17.0468,16.3965,NA,NA -dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,8100390919,16.0591,15.9152,0.1439,0.0302,16.4586,0.9830,15.4756,0.0000,48.4641,16.5616,-16.0975,NA,NA -dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,8100551510,15.9944,15.9153,0.0791,0.4297,15.5529,0.7723,14.7806,0.0000,48.9666,16.6647,-0.5025,NA,NA -dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,8100711454,18.5807,18.4346,0.1461,0.0000,18.6604,0.6825,17.9779,0.0000,49.6369,100.1420,-0.6703,NA,NA -dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,8100897261,22.2761,22.1746,0.1015,0.0679,22.2520,1.4524,20.7996,0.0000,NA,NA,NA,NA,NA -Presenter.exe,5220,0x13B8AF7D830,DXGI,0,0,0,Composed: Flip,8100926266,18.3140,13.8377,4.4763,1.1974,13.4578,0.6943,12.7635,0.0000,128.2977,0.4528,0.0000,NA,NA -dwm.exe,1300,0x296989CD030,DXGI,0,512,1,Hardware: Legacy Flip,8101120022,9.3358,9.2637,0.0721,0.0438,0.0661,0.0661,0.0000,0.0000,108.9221,0.4528,-59.2852,NA,NA +Application,ProcessID,SwapChainAddress,PresentRuntime,SyncInterval,PresentFlags,AllowsTearing,PresentMode,FrameType,CPUStartQPC,FrameTime,CPUBusy,CPUWait,GPULatency,GPUTime,GPUBusy,GPUWait,VideoBusy,DisplayLatency,DisplayedTime,AnimationError,AnimationTime,AllInputToPhotonLatency,ClickToPhotonLatency,InstrumentedLatency +dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,Application,8086364705,16.7851,16.6329,0.1522,2.5541,14.2582,0.3531,13.9051,0.0000,32.8860,33.3783,0.0000,421.9730,NA,NA,NA +dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,Application,8086532556,33.3063,33.1700,0.1363,0.0272,33.3106,0.3341,32.9765,0.0000,49.4792,33.3498,-16.5932,438.7581,NA,NA,NA +dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,Application,8086865619,33.3112,33.2302,0.0810,0.0315,33.2778,0.3579,32.9199,0.0000,49.5227,16.6316,-0.0435,472.0644,NA,NA,NA +dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,Application,8087198731,17.9303,17.8336,0.0967,0.0000,17.9668,0.3061,17.6607,0.0000,32.8431,17.0175,16.6796,505.3756,NA,NA,NA +dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,Application,8087378034,15.5152,15.4118,0.1034,0.0346,16.1233,1.1187,15.0046,0.0000,31.9303,16.5900,0.9128,523.3059,NA,NA,NA +Presenter.exe,10016,0x1BA6DC82C58,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,8087515642,2.0269,0.1792,1.8477,4.5334,0.6801,0.6801,0.0000,0.0000,34.7595,16.7046,0.0000,537.0667,NA,NA,NA +dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,Application,8087533186,17.0497,16.9415,0.1082,0.6427,16.4277,0.4585,15.9692,0.0000,33.0051,16.7046,-1.0748,538.8211,NA,NA,NA +Presenter.exe,10016,0x1BA6DC82C58,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,8087535911,17.2587,0.0461,17.2126,3.1866,18.4325,0.8600,17.5725,0.0000,49.4372,16.6609,-14.6777,539.0936,NA,NA,NA +dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,Application,8087703683,16.9079,16.7313,0.1766,0.0207,16.9531,0.6088,16.3443,0.0000,32.6600,16.6609,0.3451,555.8708,NA,NA,NA +Presenter.exe,10016,0x1BA6DC82C58,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,8087708498,17.0505,0.4799,16.5706,4.3604,17.1655,1.0680,16.0975,0.0000,48.8394,16.6995,0.5978,556.3523,NA,NA,NA +dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,Application,8087872762,16.6823,16.5032,0.1791,0.0659,16.7145,0.5997,16.1148,0.0000,32.4130,16.6995,0.2470,572.7787,NA,NA,NA +Presenter.exe,10016,0x1BA6DC82C58,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,8087879003,16.5570,0.0387,16.5183,16.7209,1.0821,0.9559,0.1262,0.0000,48.4884,16.6681,0.3510,573.4028,NA,NA,NA +dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,Application,8088039585,16.6546,16.4799,0.1747,0.0981,16.6196,0.6598,15.9598,0.0000,32.4302,16.6681,-0.0172,589.4610,NA,NA,NA +Presenter.exe,10016,0x1BA6DC82C58,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,8088044573,16.6555,0.0321,16.6234,16.7686,0.9565,0.8698,0.0867,0.0000,48.5995,16.6744,-0.1111,589.9598,NA,NA,NA +dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,Application,8088206131,16.2773,16.1784,0.0989,0.0631,16.2825,0.6081,15.6744,0.0000,32.4437,16.6744,-0.0135,606.1156,NA,NA,NA +Presenter.exe,10016,0x1BA6DC82C58,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,8088211128,16.0935,0.3812,15.7123,16.4411,1.0357,0.9508,0.0849,0.0000,48.6184,16.6548,-0.0189,606.6153,NA,NA,NA +dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,Application,8088368904,16.7218,16.6114,0.1104,0.0683,16.9087,0.6532,16.2555,0.0000,32.8408,16.6548,-0.3971,622.3929,NA,NA,NA +Presenter.exe,10016,0x1BA6DC82C58,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,8088372063,16.7208,0.1689,16.5519,17.3355,1.0511,0.9525,0.0986,0.0000,49.1797,16.7230,-0.5613,622.7088,NA,NA,NA +dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,Application,8088536122,16.8109,16.6763,0.1346,0.2552,16.5979,0.7418,15.8561,0.0000,32.7738,16.7230,0.0670,639.1147,NA,NA,NA +Presenter.exe,10016,0x1BA6DC82C58,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,8088539271,16.9071,0.1199,16.7872,17.1245,1.0782,0.9710,0.1072,0.0000,49.1819,16.6403,-0.0022,639.4296,NA,NA,NA +dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,Application,8088704231,16.8140,16.6477,0.1663,0.0422,16.8577,0.6846,16.1731,0.0000,32.6859,16.6403,0.0879,655.9256,NA,NA,NA +Presenter.exe,10016,0x1BA6DC82C58,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,8088708342,16.8607,0.0090,16.8517,17.0402,1.0727,0.9554,0.1173,0.0000,48.9151,16.5829,0.2668,656.3367,NA,NA,NA +dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,Application,8088872371,16.7926,16.6181,0.1745,0.0859,16.7719,0.6472,16.1247,0.0000,32.5122,16.5829,0.1737,672.7396,NA,NA,NA +Presenter.exe,10016,0x1BA6DC82C58,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,8088876949,16.8307,0.0093,16.8214,16.9405,1.1373,1.0663,0.0710,0.0000,48.6373,16.6302,0.2778,673.1974,NA,NA,NA +Presenter.exe,10016,0x1BA6DC82C58,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,8089045256,16.7526,0.0106,16.7420,16.8187,0.9931,0.9247,0.0684,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,Application,8089040297,16.7519,16.5405,0.2114,0.0652,16.7500,0.6536,16.0964,0.0000,32.3025,16.6302,0.2097,689.5322,NA,NA,NA +Presenter.exe,10016,0x1BA6DC82C58,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,8089212782,1.7000,0.0110,1.6890,1.4215,1.1410,1.1410,0.0000,0.0000,31.6842,16.8114,16.9531,706.7807,NA,NA,NA +dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,Application,8089207816,16.5489,16.3643,0.1846,0.0633,16.5507,0.5948,15.9559,0.0000,32.1808,16.8114,0.1217,706.2841,NA,NA,NA +Presenter.exe,10016,0x1BA6DC82C58,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,8089229782,14.8557,0.0081,14.8476,14.9668,1.0941,0.9664,0.1277,0.0000,46.7956,16.5500,-15.1114,708.4807,NA,NA,NA +dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,Application,8089373305,16.5842,16.4108,0.1734,0.0651,16.6084,0.6529,15.9555,0.0000,32.4433,16.5500,-0.2625,722.8330,NA,NA,NA +Presenter.exe,10016,0x1BA6DC82C58,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,8089378339,16.7694,0.0106,16.7588,16.6757,0.9746,0.9094,0.0652,0.0000,48.4899,16.8653,-1.6943,723.3364,NA,NA,NA +dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,Application,8089539147,16.7771,16.6018,0.1753,0.0893,16.7528,0.6018,16.1510,0.0000,32.4091,16.8653,0.0342,739.4172,NA,NA,NA +Presenter.exe,10016,0x1BA6DC82C58,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,8089546033,16.5926,0.0114,16.5812,16.6897,1.0975,1.0219,0.0756,0.0000,48.5858,16.6452,-0.0959,740.1058,NA,NA,NA +dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,Application,8089706918,16.5921,16.4109,0.1812,0.0650,16.6176,0.6386,15.9790,0.0000,32.4973,16.6452,-0.0882,756.1943,NA,NA,NA +Presenter.exe,10016,0x1BA6DC82C58,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,8089711959,16.5729,0.0102,16.5627,16.7229,1.0976,1.0239,0.0737,0.0000,48.6384,16.7233,-0.0526,756.6984,NA,NA,NA +dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,Application,8089872839,16.9451,16.7480,0.1971,0.0905,16.9226,0.6476,16.2750,0.0000,32.5504,16.7233,-0.0531,772.7864,NA,NA,NA +Presenter.exe,10016,0x1BA6DC82C58,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,8089877688,16.9915,0.0100,16.9815,17.0721,1.1068,1.0379,0.0689,0.0000,48.7888,16.4033,-0.1504,773.2713,NA,NA,NA +dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,Application,8090042290,16.5960,16.4134,0.1826,0.0680,16.5927,0.6428,15.9499,0.0000,32.3286,16.4033,0.2218,789.7315,NA,NA,NA +Presenter.exe,10016,0x1BA6DC82C58,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,8090047603,16.5756,0.0119,16.5637,16.6718,1.1016,0.9759,0.1257,0.0000,48.2006,16.7286,0.5882,790.2628,NA,NA,NA +dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,Application,8090208250,16.7261,16.5272,0.1989,0.0647,16.7612,0.6560,16.1052,0.0000,32.1359,16.7286,0.1927,806.3275,NA,NA,NA +dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,Application,8090375511,15.9481,15.8797,0.0684,0.0998,15.9509,0.6154,15.3355,0.0000,32.1384,16.7493,-0.0025,823.0536,NA,NA,NA +dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,Application,8090534992,16.7173,16.5149,0.2024,0.1026,16.6011,0.7830,15.8181,0.0000,32.9396,33.3440,-0.8012,839.0017,NA,NA,NA +dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,Application,8090702165,34.7502,34.5978,0.1524,0.0000,34.8144,0.5554,34.2590,0.0000,49.5663,16.8361,-16.6267,855.7190,NA,NA,NA +dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,Application,8091049667,15.8538,15.7289,0.1249,0.0506,15.8311,1.4108,14.4203,0.0000,31.6522,16.4392,17.9141,890.4692,NA,NA,NA +dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,Application,8091208205,17.7585,17.6017,0.1568,0.0279,17.7863,0.9111,16.8752,0.0000,32.2376,16.7532,-0.5854,906.3230,NA,NA,NA +dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,Application,8091385790,15.4036,15.2594,0.1442,0.0557,15.3402,0.7830,14.5572,0.0000,31.2323,16.6404,1.0053,924.0815,NA,NA,NA +dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,Application,8091539826,17.3968,17.2998,0.0970,0.0000,17.4207,0.8102,16.6105,0.0000,32.4691,16.6866,-1.2368,939.4851,NA,NA,NA +dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,Application,8091713794,15.9041,15.8035,0.1006,0.0162,15.8947,1.0681,14.8266,0.0000,31.7589,16.6360,0.7102,956.8819,NA,NA,NA +dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,Application,8091872835,16.5349,16.4344,0.1005,0.0068,16.8694,0.8471,16.0223,0.0000,32.4908,16.6749,-0.7319,972.7860,NA,NA,NA +dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,Application,8092038184,17.4684,17.3487,0.1197,0.3413,17.1470,0.8412,16.3058,0.0000,32.6308,16.7318,-0.1400,989.3209,NA,NA,NA +dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,Application,8092212868,15.8932,15.7701,0.1231,0.0199,15.8858,1.0858,14.8000,0.0000,31.8942,33.3620,0.7366,1006.7893,NA,NA,NA +dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,Application,8092371800,33.8545,33.7364,0.1181,0.0125,33.8640,0.5780,33.2860,0.0000,49.3630,16.6403,-17.4688,1022.6825,NA,NA,NA +dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,Application,8092710345,16.4354,16.2280,0.2074,0.0220,16.4015,1.0404,15.3611,0.0000,32.1488,16.7244,17.2142,1056.5370,NA,NA,NA +dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,Application,8092874699,16.2913,16.1957,0.0956,0.0000,16.8136,0.3422,16.4714,0.0000,32.4378,16.7013,-0.2890,1072.9724,NA,NA,NA +dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,Application,8093037612,17.8782,17.7893,0.0889,0.5104,17.4035,0.5756,16.8279,0.0000,32.8478,16.7139,-0.4100,1089.2637,NA,NA,NA +dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,Application,8093216394,16.0868,15.9904,0.0964,0.0357,16.0593,0.7770,15.2823,0.0000,31.6835,100.1011,1.1643,1107.1419,NA,NA,NA +dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,Application,8093377262,23.4304,23.2916,0.1388,0.0082,23.4918,1.5215,21.9703,0.0000,115.6978,16.6563,-84.0143,1123.2287,NA,NA,NA +Presenter.exe,5348,0x28F99FCFD50,DXGI,0,0,0,Composed: Flip,Application,8093420326,14.2055,12.8714,1.3341,0.7979,12.3600,0.6429,11.7171,0.0000,128.0477,16.6703,0.0000,1127.5351,NA,NA,NA +dwm.exe,1300,0x296989CD030,DXGI,0,0,0,Hardware: Legacy Flip,Application,8093611566,9.2834,9.2119,0.0715,0.0696,0.0736,0.0736,0.0000,0.0000,108.9237,16.6703,6.7741,1146.6591,NA,NA,NA +Presenter.exe,5348,0x28F99FCFD50,DXGI,0,0,0,Composed: Flip,Application,8093562381,14.5591,14.3415,0.2176,0.1619,90.1034,0.6611,89.4423,0.0000,130.5125,16.6962,-2.4648,1141.7406,NA,NA,NA +Presenter.exe,5348,0x28F99FCFD50,DXGI,0,0,0,Hardware: Independent Flip,Application,8093707972,93.6779,93.5187,0.1592,99.3280,0.5063,0.5063,0.0000,0.0000,132.6496,16.6771,-2.1371,1156.2997,NA,NA,NA +Presenter.exe,5348,0x28F99FCFD50,DXGI,0,0,0,Hardware: Independent Flip,Application,8094644751,15.6293,15.4886,0.1407,22.3156,0.5469,0.5469,0.0000,0.0000,55.6488,16.7369,77.0008,1249.9776,NA,NA,NA +Presenter.exe,5348,0x28F99FCFD50,DXGI,0,0,0,Hardware: Independent Flip,Application,8094801044,15.5550,15.4502,0.1048,23.4320,0.4975,0.4975,0.0000,0.0000,56.7564,16.6767,-1.1076,1265.6069,NA,NA,NA +Presenter.exe,5348,0x28F99FCFD50,DXGI,0,0,0,Hardware: Independent Flip,Application,8094956594,15.6978,15.5254,0.1724,24.5327,0.5034,0.5034,0.0000,0.0000,57.8781,16.7628,-1.1217,1281.1619,NA,NA,NA +Presenter.exe,5348,0x28F99FCFD50,DXGI,0,0,0,Hardware: Independent Flip,Application,8095113572,31.1910,31.0662,0.1248,25.6052,5.8773,0.7893,5.0880,0.0000,58.9431,16.6994,-1.0650,1296.8597,NA,NA,NA +Presenter.exe,5348,0x28F99FCFD50,DXGI,0,0,0,Hardware: Independent Flip,Application,8095425482,15.6129,15.4936,0.1193,11.0417,4.7661,0.7249,4.0412,0.0000,44.4515,16.6824,14.4916,1328.0507,NA,NA,NA +Presenter.exe,5348,0x28F99FCFD50,DXGI,0,0,0,Hardware: Independent Flip,Application,8095581611,15.8078,15.5548,0.2530,12.2542,3.7866,0.8839,2.9027,0.0000,45.5210,16.6802,-1.0695,1343.6636,NA,NA,NA +Presenter.exe,5348,0x28F99FCFD50,DXGI,0,0,0,Hardware: Independent Flip,Application,8095739689,15.6433,15.4025,0.2408,13.1256,2.7791,0.8395,1.9396,0.0000,46.3934,16.6116,-0.8724,1359.4714,NA,NA,NA +Presenter.exe,5348,0x28F99FCFD50,DXGI,0,0,0,Hardware: Independent Flip,Application,8095896122,15.5808,15.3541,0.2267,14.1875,1.5708,0.7974,0.7734,0.0000,47.3617,16.6709,-0.9683,1375.1147,NA,NA,NA +Presenter.exe,5348,0x28F99FCFD50,DXGI,0,0,0,Hardware: Independent Flip,Application,8096051930,15.6142,15.2914,0.3228,15.3041,0.5555,0.5555,0.0000,0.0000,48.4518,16.6826,-1.0901,1390.6955,NA,NA,NA +Presenter.exe,5348,0x28F99FCFD50,DXGI,0,0,0,Hardware: Independent Flip,Application,8096208072,15.7328,15.4834,0.2494,16.2762,0.5506,0.5506,0.0000,0.0000,49.5202,16.6744,-1.0684,1406.3097,NA,NA,NA +Presenter.exe,5348,0x28F99FCFD50,DXGI,0,0,0,Hardware: Independent Flip,Application,8096365400,15.6254,15.3580,0.2674,17.2159,0.5448,0.5448,0.0000,0.0000,50.4618,16.6814,-0.9416,1422.0425,NA,NA,NA +Presenter.exe,5348,0x28F99FCFD50,DXGI,0,0,0,Hardware: Independent Flip,Application,8096521654,15.5938,15.3604,0.2334,18.2766,0.4610,0.4610,0.0000,0.0000,51.5178,16.6774,-1.0560,1437.6679,NA,NA,NA +Presenter.exe,5348,0x28F99FCFD50,DXGI,0,0,0,Hardware: Independent Flip,Application,8096677592,15.6496,15.4017,0.2479,19.3682,0.4559,0.4559,0.0000,0.0000,52.6014,16.6821,-1.0836,1453.2617,NA,NA,NA +Presenter.exe,5348,0x28F99FCFD50,DXGI,0,0,0,Hardware: Independent Flip,Application,8096834088,15.5957,15.3706,0.2251,20.4079,0.4580,0.4580,0.0000,0.0000,53.6339,16.6451,-1.0325,1468.9113,NA,NA,NA +Presenter.exe,5348,0x28F99FCFD50,DXGI,0,0,0,Hardware: Independent Flip,Application,8096990045,15.6203,15.3935,0.2268,21.4743,0.4552,0.4552,0.0000,0.0000,54.6833,16.7920,-1.0494,1484.5070,NA,NA,NA +dwm.exe,1300,0x296989CD030,DXGI,0,0,0,Hardware: Legacy Flip,Application,8093704400,83.3023,83.2556,0.0467,0.0000,0.0000,0.0000,0.0000,0.0000,116.3106,400.3309,-7.3869,1155.9425,NA,NA,NA +dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,Application,8094537423,317.7147,317.5736,0.1411,301.6412,16.1067,1.1908,14.9159,0.0000,433.3392,16.6647,-317.0286,1239.2448,NA,NA,NA +dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,Application,8097714570,116.3149,116.2190,0.0959,0.0332,116.3119,0.8232,115.4887,0.0000,132.2892,16.6500,301.0500,1556.9595,NA,NA,NA +dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,Application,8098877719,16.5674,16.4696,0.0978,0.0302,16.6076,0.7863,15.8213,0.0000,32.6243,16.6839,99.6649,1673.2744,NA,NA,NA +dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,Application,8099043393,16.6770,16.6019,0.0751,0.0704,16.6349,0.8081,15.8268,0.0000,32.7408,16.6248,-0.1165,1689.8418,NA,NA,NA +dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,Application,8099210163,16.5669,16.4887,0.0782,0.0283,16.7327,0.7710,15.9617,0.0000,32.6886,16.7809,0.0522,1706.5188,NA,NA,NA +dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,Application,8099375832,16.7387,16.6020,0.1367,0.1941,16.5627,0.6410,15.9217,0.0000,32.9026,33.3103,-0.2140,1723.0857,NA,NA,NA +dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,Application,8099543219,33.5593,33.4156,0.1437,0.0181,33.5618,0.4199,33.1419,0.0000,49.4742,16.6601,-16.5716,1739.8244,NA,NA,NA +dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,Application,8099878812,17.1797,17.0962,0.0835,0.0206,17.1682,0.5057,16.6625,0.0000,32.5750,33.3678,16.8992,1773.3837,NA,NA,NA +dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,Application,8100050609,33.0817,32.9185,0.1632,0.0091,33.1415,0.7366,32.4049,0.0000,48.7631,16.6852,-16.1881,1790.5634,NA,NA,NA +dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,Application,8100381426,0.9493,0.7762,0.1731,0.0689,0.9106,0.9106,0.0000,0.0000,32.3666,17.0468,16.3965,1823.6451,NA,NA,NA +dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,Application,8100390919,16.0591,15.9152,0.1439,0.0302,16.4586,0.9830,15.4756,0.0000,48.4641,16.5616,-16.0975,1824.5944,NA,NA,NA +dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,Application,8100551510,15.9944,15.9153,0.0791,0.4297,15.5529,0.7723,14.7806,0.0000,48.9666,16.6647,-0.5025,1840.6535,NA,NA,NA +dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,Application,8100711454,18.5807,18.4346,0.1461,0.0000,18.6604,0.6825,17.9779,0.0000,49.6369,100.1420,-0.6703,1856.6479,NA,NA,NA +dwm.exe,1300,0x296989CD030,DXGI,1,0,0,Hardware: Legacy Flip,Application,8100897261,22.2761,22.1746,0.1015,0.0679,22.2520,1.4524,20.7996,0.0000,NA,NA,NA,NA,NA,NA,NA +Presenter.exe,5220,0x13B8AF7D830,DXGI,0,0,0,Composed: Flip,Application,8100926266,18.3140,13.8377,4.4763,1.1974,13.4578,0.6943,12.7635,0.0000,128.2977,0.4528,0.0000,1878.1291,NA,NA,NA +dwm.exe,1300,0x296989CD030,DXGI,0,512,1,Hardware: Legacy Flip,Application,8101120022,9.3358,9.2637,0.0721,0.0438,0.0661,0.0661,0.0000,0.0000,108.9221,0.4528,-59.2852,1897.5047,NA,NA,NA diff --git a/Tests/Gold/test_case_3.csv b/Tests/Gold/test_case_3.csv index 3bedbe9e..62fc40b1 100644 --- a/Tests/Gold/test_case_3.csv +++ b/Tests/Gold/test_case_3.csv @@ -1,116 +1,116 @@ -Application,ProcessID,SwapChainAddress,PresentRuntime,SyncInterval,PresentFlags,AllowsTearing,PresentMode,CPUStartQPC,FrameTime,CPUBusy,CPUWait,GPULatency,GPUTime,GPUBusy,GPUWait,VideoBusy,DisplayLatency,DisplayedTime,AnimationError,AllInputToPhotonLatency,ClickToPhotonLatency -dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,1402486237,16.5699,16.5285,0.0414,0.0153,16.5765,0.5018,16.0747,0.0000,33.0211,567.1641,0.0000,NA,NA -dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,1402651936,567.3668,567.2091,0.1577,0.0219,567.3563,0.6674,566.6889,0.0000,583.6153,16.6568,-550.5942,NA,NA -dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,1408325604,20.1880,20.0060,0.1820,0.0114,20.3189,1.0313,19.2876,0.0000,32.9053,16.6893,550.7100,NA,NA -dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,1408527484,13.2687,13.1630,0.1057,0.1423,13.1539,3.4062,9.7477,0.0000,29.4066,16.6859,3.4987,NA,NA -Presenter.exe,5892,0x1F0FF310E98,D3D9,-1,0,0,Composed: Copy with GPU GDI,1408514918,15.7250,0.3822,15.3428,16.2005,2.5985,2.5581,0.0404,0.0000,47.3491,16.6881,0.0000,NA,NA -dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,1408660171,16.7631,16.6674,0.0957,0.0275,16.7295,1.6659,15.0636,0.0000,32.8238,16.6881,-3.4172,NA,NA -Presenter.exe,5892,0x1F0FF310E98,D3D9,-1,0,0,Composed: Copy with GPU GDI,1408672168,16.2981,0.1123,16.1858,17.5180,2.5715,2.5715,0.0000,0.0000,48.3122,16.6857,-0.9631,NA,NA -dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,1408827802,16.5266,16.4178,0.1088,0.0000,16.5582,2.0061,14.5521,0.0000,32.7488,16.6857,0.0750,NA,NA -Presenter.exe,5892,0x1F0FF310E98,D3D9,-1,0,0,Composed: Copy with GPU GDI,1408835149,16.4908,0.3261,16.1647,17.7042,2.1258,2.1258,0.0000,0.0000,48.6998,16.6738,-0.3876,NA,NA -dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,1408993068,16.8201,16.7221,0.0980,0.0255,16.7860,1.9224,14.8636,0.0000,32.9079,16.6738,-0.1591,NA,NA -Presenter.exe,5892,0x1F0FF310E98,D3D9,-1,0,0,Composed: Copy with GPU GDI,1409000057,16.7344,0.4924,16.2420,18.0376,2.6197,2.6197,0.0000,0.0000,48.8828,16.6818,-0.1830,NA,NA -dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,1409161269,16.6214,16.5317,0.0897,0.0000,16.6298,1.9456,14.6842,0.0000,32.7616,16.6818,0.1463,NA,NA -Presenter.exe,5892,0x1F0FF310E98,D3D9,-1,0,0,Composed: Copy with GPU GDI,1409167401,16.5426,0.5616,15.9810,17.6548,2.5041,2.4704,0.0337,0.0000,48.8302,16.6761,0.0526,NA,NA -dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,1409327483,16.6646,16.5630,0.1016,0.0000,16.8700,1.6641,15.2059,0.0000,32.8220,16.6761,-0.0604,NA,NA -Presenter.exe,5892,0x1F0FF310E98,D3D9,-1,0,0,Composed: Copy with GPU GDI,1409332827,16.3884,0.3728,16.0156,17.8548,2.2393,2.2393,0.0000,0.0000,48.9637,16.6766,-0.1335,NA,NA -dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,1409494129,16.6041,16.5282,0.0759,0.2052,16.6128,1.5370,15.0758,0.0000,32.8335,16.6766,-0.0115,NA,NA -Presenter.exe,5892,0x1F0FF310E98,D3D9,-1,0,0,Composed: Copy with GPU GDI,1409496711,16.6020,0.0186,16.5834,18.1368,2.1263,2.1263,0.0000,0.0000,49.2519,16.6838,-0.2882,NA,NA -dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,1409660170,16.7394,16.6732,0.0662,0.2139,16.5290,1.5959,14.9331,0.0000,32.9060,16.6838,-0.0725,NA,NA -Presenter.exe,5892,0x1F0FF310E98,D3D9,-1,0,0,Composed: Copy with GPU GDI,1409662731,17.0179,0.0056,17.0123,18.1745,2.2147,2.2147,0.0000,0.0000,49.3337,16.6855,-0.0818,NA,NA -dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,1409827564,16.5976,16.5345,0.0631,0.0035,16.6033,1.7109,14.8924,0.0000,32.8504,16.6855,0.0556,NA,NA -Presenter.exe,5892,0x1F0FF310E98,D3D9,-1,0,0,Composed: Copy with GPU GDI,1409832910,16.5960,0.0229,16.5731,17.5731,2.3969,2.3969,0.0000,0.0000,49.0013,16.7005,0.3324,NA,NA -dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,1409993540,16.7247,16.6596,0.0651,0.0092,16.7178,1.5199,15.1979,0.0000,32.9383,16.7005,-0.0879,NA,NA -Presenter.exe,5892,0x1F0FF310E98,D3D9,-1,0,0,Composed: Copy with GPU GDI,1409998870,16.6655,0.0210,16.6445,17.7015,2.2963,2.2496,0.0467,0.0000,49.1058,16.6661,-0.1045,NA,NA -dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,1410160787,16.6528,16.5761,0.0767,0.0023,16.6653,1.5403,15.1250,0.0000,32.9141,16.6661,0.0242,NA,NA -Presenter.exe,5892,0x1F0FF310E98,D3D9,-1,0,0,Composed: Copy with GPU GDI,1410165525,16.5192,0.0254,16.4938,18.2896,2.4267,2.4267,0.0000,0.0000,49.1064,16.6683,-0.0006,NA,NA -Presenter.exe,5892,0x1F0FF310E98,D3D9,-1,0,0,Composed: Copy with GPU GDI,1410330717,16.1545,0.0289,16.1256,15.9451,4.0570,2.2258,1.8312,0.0000,NA,NA,NA,NA,NA -dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,1410327315,16.7408,16.6584,0.0824,0.0148,16.9043,2.1123,14.7920,0.0000,32.9274,16.6683,-0.0133,NA,NA -Presenter.exe,5892,0x1F0FF310E98,D3D9,-1,0,0,Composed: Copy with GPU GDI,1410492262,0.5057,0.0063,0.4994,3.8476,2.0353,2.0353,0.0000,0.0000,33.1010,16.6766,16.0054,NA,NA -dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,1410494723,16.6235,16.5498,0.0737,0.1783,16.4696,1.5034,14.9662,0.0000,32.8549,16.6766,0.0725,NA,NA -Presenter.exe,5892,0x1F0FF310E98,D3D9,-1,0,0,Composed: Copy with GPU GDI,1410497319,16.7259,0.0026,16.7233,18.0790,2.0968,2.0968,0.0000,0.0000,49.2719,16.6820,-16.1709,NA,NA -dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,1410660958,16.7554,16.6774,0.0780,0.0244,16.7316,1.7098,15.0218,0.0000,32.9080,16.6820,-0.0531,NA,NA -Presenter.exe,5892,0x1F0FF310E98,D3D9,-1,0,0,Composed: Copy with GPU GDI,1410664578,16.9920,0.0310,16.9610,17.9805,2.0965,2.0965,0.0000,0.0000,49.2280,16.6804,0.0439,NA,NA -dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,1410828512,16.6693,16.5986,0.0707,0.0006,16.6706,1.6065,15.0641,0.0000,32.8346,16.6804,0.0734,NA,NA -Presenter.exe,5892,0x1F0FF310E98,D3D9,-1,0,0,Composed: Copy with GPU GDI,1410834498,16.4704,0.0251,16.4453,17.7296,2.1019,2.1019,0.0000,0.0000,48.9164,16.6809,0.3116,NA,NA -dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,1410995205,16.5904,16.5156,0.0748,0.0019,16.6084,1.6861,14.9223,0.0000,32.8457,16.6809,-0.0111,NA,NA -Presenter.exe,5892,0x1F0FF310E98,D3D9,-1,0,0,Composed: Copy with GPU GDI,1410999202,16.5722,0.0293,16.5429,17.8332,2.0982,2.0982,0.0000,0.0000,49.1269,16.6805,-0.2105,NA,NA -dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,1411161109,16.6733,16.6002,0.0731,0.0199,16.6749,1.6514,15.0235,0.0000,32.9362,16.6805,-0.0905,NA,NA -Presenter.exe,5892,0x1F0FF310E98,D3D9,-1,0,0,Composed: Copy with GPU GDI,1411164924,16.6298,0.0301,16.5997,17.8792,2.0909,2.0909,0.0000,0.0000,49.2352,266.9701,-0.1083,NA,NA -dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,1411327842,16.6772,16.6071,0.0701,0.0215,16.6812,1.5949,15.0863,0.0000,32.9434,266.9701,-0.0072,NA,NA -dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Other,1411494614,54.9038,50.4058,4.4980,0.0000,0.0000,0.0000,0.0000,0.0000,NA,NA,NA,NA,NA -dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,1412043652,195.9326,174.6420,21.2906,0.0000,232.6440,6.4471,226.1969,0.0000,228.3325,16.6147,-195.3891,NA,NA -dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,1414002978,20.6762,20.3413,0.3349,20.7636,0.0724,0.0724,0.0000,0.0000,49.0146,16.6626,179.3179,NA,NA -dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,1414209740,28.5051,12.3939,16.1112,0.1598,28.3403,3.8580,24.4823,0.0000,45.0010,16.6461,4.0136,NA,NA -dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,1414494791,17.5350,17.4712,0.0638,0.0000,17.5352,2.2629,15.2723,0.0000,33.1420,16.7997,11.8590,NA,NA -dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,1414670141,16.1076,16.0493,0.0583,0.0000,16.1074,3.4097,12.6977,0.0000,32.4067,16.5984,0.7353,NA,NA -dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,1414831217,18.0993,18.0326,0.0667,0.0000,18.0981,2.6579,15.4402,0.0000,32.8975,16.6673,-0.4908,NA,NA -dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,1415012210,15.3191,15.2536,0.0655,0.0000,15.3248,2.8797,12.4451,0.0000,31.4655,16.6824,1.4320,NA,NA -Presenter.exe,10112,0x1ED7B93C580,DXGI,0,0,0,Composed: Flip,1415190018,15.1523,14.1261,1.0262,0.6077,0.9763,0.9763,0.0000,0.0000,NA,NA,NA,NA,NA -dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,1415165401,17.6115,17.5504,0.0611,0.0000,17.6067,1.9963,15.6104,0.0000,32.8288,16.6697,-1.3633,NA,NA -Presenter.exe,10112,0x1ED7B93C580,DXGI,0,0,0,Composed: Flip,1415341541,14.6473,14.5557,0.0916,2.2110,0.8000,0.8000,0.0000,0.0000,31.8845,33.4646,0.0000,NA,NA -dwm.exe,1252,0x22E6AFA2560,DXGI,1,2,0,Hardware: Legacy Flip,1415341516,15.4911,15.4498,0.0413,0.0000,2.2188,2.2188,0.0000,0.0000,31.8870,33.4646,0.9418,NA,NA -Presenter.exe,10112,0x1ED7B93C580,DXGI,0,0,0,Composed: Flip,1415488014,15.6213,15.5673,0.0540,17.2666,1.0023,1.0023,0.0000,0.0000,50.7018,16.6798,-18.8173,NA,NA -Presenter.exe,10112,0x1ED7B93C580,DXGI,0,0,0,Hardware Composed: Independent Flip,1415644227,15.5880,15.5426,0.0454,2.9424,1.0061,1.0061,0.0000,0.0000,51.7603,16.6769,-1.0585,NA,NA -Presenter.exe,10112,0x1ED7B93C580,DXGI,0,0,0,Hardware Composed: Independent Flip,1415800107,15.6199,15.5723,0.0476,19.5049,0.9063,0.9063,0.0000,0.0000,52.8492,16.6744,-1.0889,NA,NA -Presenter.exe,10112,0x1ED7B93C580,DXGI,0,0,0,Hardware Composed: Independent Flip,1415956306,15.6522,15.6057,0.0465,20.5791,0.9324,0.9324,0.0000,0.0000,53.9037,16.6895,-1.0545,NA,NA -Presenter.exe,10112,0x1ED7B93C580,DXGI,0,0,0,Hardware Composed: Independent Flip,1416112828,15.5882,15.5439,0.0443,21.6061,0.9153,0.9153,0.0000,0.0000,54.9410,16.6748,-1.0373,NA,NA -Presenter.exe,10112,0x1ED7B93C580,DXGI,0,0,0,Hardware Composed: Independent Flip,1416268710,15.6985,15.6071,0.0914,22.6908,0.9288,0.9288,0.0000,0.0000,56.0276,16.6837,-1.0866,NA,NA -Presenter.exe,10112,0x1ED7B93C580,DXGI,0,0,0,Hardware Composed: Independent Flip,1416425695,15.5470,15.5006,0.0464,23.6823,0.9153,0.9153,0.0000,0.0000,57.0128,16.6746,-0.9852,NA,NA -Presenter.exe,10112,0x1ED7B93C580,DXGI,0,0,0,Hardware Composed: Independent Flip,1416581165,31.2764,31.2041,0.0723,24.8082,0.9841,0.9841,0.0000,0.0000,58.1404,16.6828,-1.1276,NA,NA -Presenter.exe,10112,0x1ED7B93C580,DXGI,0,0,0,Hardware Composed: Independent Flip,1416893929,15.6328,15.5406,0.0922,10.2162,0.9632,0.9632,0.0000,0.0000,43.5468,16.6800,14.5936,NA,NA -Presenter.exe,10112,0x1ED7B93C580,DXGI,0,0,0,Hardware Composed: Independent Flip,1417050257,15.6150,15.5284,0.0866,11.2568,0.9988,0.9988,0.0000,0.0000,44.5940,16.6837,-1.0472,NA,NA -Presenter.exe,10112,0x1ED7B93C580,DXGI,0,0,0,Hardware Composed: Independent Flip,1417206407,15.6111,15.5327,0.0784,12.3278,0.9684,0.9684,0.0000,0.0000,45.6627,16.6824,-1.0687,NA,NA -Presenter.exe,10112,0x1ED7B93C580,DXGI,0,0,0,Hardware Composed: Independent Flip,1417362518,15.6425,15.5430,0.0995,13.3944,0.9779,0.9779,0.0000,0.0000,46.7340,16.6773,-1.0713,NA,NA -Presenter.exe,10112,0x1ED7B93C580,DXGI,0,0,0,Hardware Composed: Independent Flip,1417518943,15.6043,15.4990,0.1053,14.4359,0.9679,0.9679,0.0000,0.0000,47.7688,16.6854,-1.0348,NA,NA -Presenter.exe,10112,0x1ED7B93C580,DXGI,0,0,0,Hardware Composed: Independent Flip,1417674986,15.6140,15.5151,0.0989,15.5705,0.9760,0.9760,0.0000,0.0000,48.8499,16.6754,-1.0811,NA,NA -Presenter.exe,10112,0x1ED7B93C580,DXGI,0,0,0,Hardware Composed: Independent Flip,1417831126,15.6358,15.5458,0.0900,16.5906,0.9435,0.9435,0.0000,0.0000,49.9113,16.6848,-1.0614,NA,NA -Presenter.exe,10112,0x1ED7B93C580,DXGI,0,0,0,Hardware Composed: Independent Flip,1417987484,15.6773,15.5881,0.0892,17.6267,0.9068,0.9068,0.0000,0.0000,50.9603,16.5903,-1.0490,NA,NA -dwm.exe,1252,0x22E6AFA2560,DXGI,1,2,0,Hardware: Legacy Flip,1415496427,33.2562,33.2274,0.0288,0.0000,0.0000,0.0000,0.0000,0.0000,49.8605,283.4844,-17.9735,NA,NA -dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,1415828989,283.8064,283.7472,0.0592,268.3245,15.4954,2.4809,13.0145,0.0000,300.0887,33.3617,-250.2282,NA,NA -dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,1418667053,33.4996,33.4127,0.0869,0.0135,33.4874,0.5762,32.9112,0.0000,49.6440,16.6405,250.4447,NA,NA -dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,1419002049,16.5939,16.5282,0.0657,0.0013,16.5899,1.8396,14.7503,0.0000,32.7849,16.7173,16.8591,NA,NA -dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,1419167988,16.6557,16.5971,0.0586,0.0000,16.6642,1.4062,15.2580,0.0000,32.9083,16.6410,-0.1234,NA,NA -dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,1419334545,17.3318,17.2714,0.0604,0.0058,17.3238,0.7185,16.6053,0.0000,32.8936,16.7109,0.0147,NA,NA -dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,1419507863,16.0440,15.9864,0.0576,0.0000,16.0417,2.5971,13.4446,0.0000,32.2727,16.6840,0.6209,NA,NA -dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,1419668303,17.1730,17.1200,0.0530,0.0000,17.1837,2.1016,15.0821,0.0000,32.9127,16.6703,-0.6400,NA,NA -dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,1419840033,19.4037,19.3501,0.0536,0.0062,19.7140,3.2188,16.4952,0.0000,32.4100,16.6989,0.5027,NA,NA -Presenter.exe,12980,0x2C6BEB300A0,DXGI,0,0,0,Composed: Flip,1419875294,15.7859,14.1972,1.5887,0.3109,0.9628,0.9628,0.0000,0.0000,45.5828,16.8062,0.0000,NA,NA -dwm.exe,1252,0x22E6AFA2560,DXGI,1,2,0,Hardware: Legacy Flip,1420034070,13.2339,13.2005,0.0334,0.3165,2.1499,2.1499,0.0000,0.0000,29.7052,16.8062,2.7048,NA,NA -Presenter.exe,12980,0x2C6BEB300A0,DXGI,0,0,0,Composed: Flip,1420033153,14.4231,14.0598,0.3633,0.0582,3.4375,1.2580,2.1795,0.0000,46.6031,0.5098,-1.0203,NA,NA -Presenter.exe,12980,0x2C6BEB300A0,DXGI,0,0,1,Hardware Composed: Independent Flip,1420177384,15.5619,15.2680,0.2939,15.3891,1.0152,1.0152,0.0000,0.0000,32.6898,0.6904,13.9133,NA,NA -Presenter.exe,12980,0x2C6BEB300A0,DXGI,0,0,1,Hardware Composed: Independent Flip,1420333003,15.5049,15.3310,0.1739,16.6313,0.9416,0.9416,0.0000,0.0000,17.8183,13.3777,14.8715,NA,NA -Presenter.exe,12980,0x2C6BEB300A0,DXGI,0,0,1,Hardware Composed: Independent Flip,1420488052,15.4932,15.3855,0.1077,2.3436,0.9220,0.9220,0.0000,0.0000,15.6911,15.6007,2.1272,NA,NA -Presenter.exe,12980,0x2C6BEB300A0,DXGI,0,0,1,Hardware Composed: Independent Flip,1420642984,15.5977,15.5108,0.0869,0.2692,0.9117,0.9117,0.0000,0.0000,15.7986,15.5936,-0.1075,NA,NA -Presenter.exe,12980,0x2C6BEB300A0,DXGI,0,0,1,Hardware Composed: Independent Flip,1420798961,15.5877,15.5354,0.0523,0.0724,1.0731,1.0731,0.0000,0.0000,15.7945,15.7079,0.0041,NA,NA -Presenter.exe,12980,0x2C6BEB300A0,DXGI,0,0,1,Hardware Composed: Independent Flip,1420954838,15.6322,15.5751,0.0571,0.0813,1.0742,1.0742,0.0000,0.0000,15.9147,15.8012,-0.1202,NA,NA -Presenter.exe,12980,0x2C6BEB300A0,DXGI,0,0,1,Hardware Composed: Independent Flip,1421111160,15.8084,15.5756,0.2328,0.0672,1.0603,1.0603,0.0000,0.0000,16.0837,15.5071,-0.1690,NA,NA -Presenter.exe,12980,0x2C6BEB300A0,DXGI,0,0,1,Hardware Composed: Independent Flip,1421269244,15.5853,15.3945,0.1908,0.0810,1.0755,1.0755,0.0000,0.0000,15.7824,15.5730,0.3013,NA,NA -Presenter.exe,12980,0x2C6BEB300A0,DXGI,0,0,1,Hardware Composed: Independent Flip,1421425097,15.5241,15.4484,0.0757,0.0748,1.0450,1.0450,0.0000,0.0000,15.7701,15.7348,0.0123,NA,NA -Presenter.exe,12980,0x2C6BEB300A0,DXGI,0,0,1,Hardware Composed: Independent Flip,1421580338,15.7278,15.5406,0.1872,0.0875,1.1105,1.1105,0.0000,0.0000,15.9808,15.4885,-0.2107,NA,NA -Presenter.exe,12980,0x2C6BEB300A0,DXGI,0,0,1,Hardware Composed: Independent Flip,1421737616,15.4764,15.4163,0.0601,0.0738,1.0399,1.0399,0.0000,0.0000,15.7415,15.7111,0.2393,NA,NA -Presenter.exe,12980,0x2C6BEB300A0,DXGI,0,0,1,Hardware Composed: Independent Flip,1421892380,15.7743,15.5948,0.1795,0.0699,1.0803,1.0803,0.0000,0.0000,15.9762,15.4965,-0.2347,NA,NA -Presenter.exe,12980,0x2C6BEB300A0,DXGI,0,0,1,Hardware Composed: Independent Flip,1422050123,15.4844,15.4036,0.0808,0.0794,1.0320,1.0320,0.0000,0.0000,15.6984,15.7116,0.2778,NA,NA -Presenter.exe,12980,0x2C6BEB300A0,DXGI,0,0,1,Hardware Composed: Independent Flip,1422204967,15.6487,15.5401,0.1086,0.1096,1.0964,1.0964,0.0000,0.0000,15.9256,15.5942,-0.2272,NA,NA -Presenter.exe,12980,0x2C6BEB300A0,DXGI,0,0,1,Hardware Composed: Independent Flip,1422361454,15.6115,15.5155,0.0960,0.2288,1.0605,1.0605,0.0000,0.0000,15.8711,15.7140,0.0545,NA,NA -Presenter.exe,12980,0x2C6BEB300A0,DXGI,0,0,1,Hardware Composed: Independent Flip,1422517569,15.6875,15.5619,0.1256,0.0646,1.0961,1.0961,0.0000,0.0000,15.9736,15.3659,-0.1025,NA,NA -dwm.exe,1252,0x22E6AFA2560,DXGI,1,2,0,Hardware: Legacy Flip,1420166409,16.7081,16.6733,0.0348,0.0000,0.0000,0.0000,0.0000,0.0000,33.2775,316.9526,-3.5723,NA,NA -dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,1420333490,317.2960,317.1478,0.1482,303.8754,13.4187,3.1855,10.2332,0.0000,333.5220,33.2218,-300.2445,NA,NA -dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,1423506450,34.2660,34.1997,0.0663,0.0000,34.2637,2.0825,32.1812,0.0000,49.4478,16.6689,284.0742,NA,NA -dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,1423849110,15.8057,15.7408,0.0649,0.0000,15.8720,2.5967,13.2753,0.0000,31.8507,16.6763,17.5971,NA,NA -dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,1424007167,16.8988,16.8490,0.0498,0.0621,16.8440,3.0594,13.7846,0.0000,32.7213,16.6856,-0.8706,NA,NA -dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,1424176155,16.2749,16.2133,0.0616,0.0073,16.2862,2.4399,13.8463,0.0000,32.5081,16.6744,0.2132,NA,NA -dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,1424338904,17.0713,17.0212,0.0501,0.0186,17.0601,1.6711,15.3890,0.0000,32.9076,16.6813,-0.3995,NA,NA -dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,1424509617,16.2578,16.1955,0.0623,0.0074,16.2680,2.4956,13.7724,0.0000,32.5176,33.3588,0.3900,NA,NA -dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,1424672195,33.2851,33.2325,0.0526,0.0176,33.2845,1.6514,31.6331,0.0000,49.6186,33.3651,-17.1010,NA,NA -dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,1425005046,33.4533,33.3908,0.0625,0.0170,33.4594,2.0646,31.3948,0.0000,49.6986,33.3445,-0.0800,NA,NA -dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,1425339579,33.2879,33.2331,0.0548,0.0231,33.5658,0.6867,32.8791,0.0000,49.5898,16.6809,0.1088,NA,NA -dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,1425672458,16.5557,16.5176,0.0381,0.3010,16.2752,0.4978,15.7774,0.0000,32.9828,33.3601,16.6070,NA,NA -dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,1425838015,33.3563,33.3177,0.0386,0.0205,33.3550,0.5141,32.8409,0.0000,49.7872,216.8940,-16.8044,NA,NA -dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,1426171578,216.9787,216.9025,0.0762,0.0192,216.9694,0.7002,216.2692,0.0000,233.3249,33.3297,-183.5377,NA,NA -dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,1428341365,34.3902,34.2769,0.1133,0.0099,34.3751,0.4882,33.8869,0.0000,49.6759,16.6916,183.6490,NA,NA -dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,1428685267,15.8708,15.7817,0.0891,0.0000,15.8722,2.4978,13.3744,0.0000,31.9773,16.6675,17.6986,NA,NA -dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,1428843975,17.1207,17.0303,0.0904,0.0000,17.3217,1.8351,15.4866,0.0000,32.7740,16.6897,-0.7967,NA,NA -dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,1429015182,16.1362,16.0788,0.0574,0.1972,15.9685,2.7083,13.2602,0.0000,32.3430,16.6843,0.4310,NA,NA -dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,1429176544,16.7075,16.6497,0.0578,0.0295,16.6943,2.4529,14.2414,0.0000,32.8911,16.6728,-0.5481,NA,NA -dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,1429343619,16.6821,16.6187,0.0634,0.0163,16.6954,2.2223,14.4731,0.0000,32.8564,16.6749,0.0347,NA,NA +Application,ProcessID,SwapChainAddress,PresentRuntime,SyncInterval,PresentFlags,AllowsTearing,PresentMode,FrameType,CPUStartQPC,FrameTime,CPUBusy,CPUWait,GPULatency,GPUTime,GPUBusy,GPUWait,VideoBusy,DisplayLatency,DisplayedTime,AnimationError,AnimationTime,AllInputToPhotonLatency,ClickToPhotonLatency,InstrumentedLatency +dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,Application,1402486237,16.5699,16.5285,0.0414,0.0153,16.5765,0.5018,16.0747,0.0000,33.0211,567.1641,0.0000,374.7902,NA,NA,NA +dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,Application,1402651936,567.3668,567.2091,0.1577,0.0219,567.3563,0.6674,566.6889,0.0000,583.6153,16.6568,-550.5942,391.3601,NA,NA,NA +dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,Application,1408325604,20.1880,20.0060,0.1820,0.0114,20.3189,1.0313,19.2876,0.0000,32.9053,16.6893,550.7100,958.7269,NA,NA,NA +dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,Application,1408527484,13.2687,13.1630,0.1057,0.1423,13.1539,3.4062,9.7477,0.0000,29.4066,16.6859,3.4987,978.9149,NA,NA,NA +Presenter.exe,5892,0x1F0FF310E98,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,1408514918,15.7250,0.3822,15.3428,16.2005,2.5985,2.5581,0.0404,0.0000,47.3491,16.6881,0.0000,977.6583,NA,NA,NA +dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,Application,1408660171,16.7631,16.6674,0.0957,0.0275,16.7295,1.6659,15.0636,0.0000,32.8238,16.6881,-3.4172,992.1836,NA,NA,NA +Presenter.exe,5892,0x1F0FF310E98,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,1408672168,16.2981,0.1123,16.1858,17.5180,2.5715,2.5715,0.0000,0.0000,48.3122,16.6857,-0.9631,993.3833,NA,NA,NA +dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,Application,1408827802,16.5266,16.4178,0.1088,0.0000,16.5582,2.0061,14.5521,0.0000,32.7488,16.6857,0.0750,1008.9467,NA,NA,NA +Presenter.exe,5892,0x1F0FF310E98,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,1408835149,16.4908,0.3261,16.1647,17.7042,2.1258,2.1258,0.0000,0.0000,48.6998,16.6738,-0.3876,1009.6814,NA,NA,NA +dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,Application,1408993068,16.8201,16.7221,0.0980,0.0255,16.7860,1.9224,14.8636,0.0000,32.9079,16.6738,-0.1591,1025.4733,NA,NA,NA +Presenter.exe,5892,0x1F0FF310E98,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,1409000057,16.7344,0.4924,16.2420,18.0376,2.6197,2.6197,0.0000,0.0000,48.8828,16.6818,-0.1830,1026.1722,NA,NA,NA +dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,Application,1409161269,16.6214,16.5317,0.0897,0.0000,16.6298,1.9456,14.6842,0.0000,32.7616,16.6818,0.1463,1042.2934,NA,NA,NA +Presenter.exe,5892,0x1F0FF310E98,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,1409167401,16.5426,0.5616,15.9810,17.6548,2.5041,2.4704,0.0337,0.0000,48.8302,16.6761,0.0526,1042.9066,NA,NA,NA +dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,Application,1409327483,16.6646,16.5630,0.1016,0.0000,16.8700,1.6641,15.2059,0.0000,32.8220,16.6761,-0.0604,1058.9148,NA,NA,NA +Presenter.exe,5892,0x1F0FF310E98,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,1409332827,16.3884,0.3728,16.0156,17.8548,2.2393,2.2393,0.0000,0.0000,48.9637,16.6766,-0.1335,1059.4492,NA,NA,NA +dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,Application,1409494129,16.6041,16.5282,0.0759,0.2052,16.6128,1.5370,15.0758,0.0000,32.8335,16.6766,-0.0115,1075.5794,NA,NA,NA +Presenter.exe,5892,0x1F0FF310E98,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,1409496711,16.6020,0.0186,16.5834,18.1368,2.1263,2.1263,0.0000,0.0000,49.2519,16.6838,-0.2882,1075.8376,NA,NA,NA +dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,Application,1409660170,16.7394,16.6732,0.0662,0.2139,16.5290,1.5959,14.9331,0.0000,32.9060,16.6838,-0.0725,1092.1835,NA,NA,NA +Presenter.exe,5892,0x1F0FF310E98,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,1409662731,17.0179,0.0056,17.0123,18.1745,2.2147,2.2147,0.0000,0.0000,49.3337,16.6855,-0.0818,1092.4396,NA,NA,NA +dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,Application,1409827564,16.5976,16.5345,0.0631,0.0035,16.6033,1.7109,14.8924,0.0000,32.8504,16.6855,0.0556,1108.9229,NA,NA,NA +Presenter.exe,5892,0x1F0FF310E98,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,1409832910,16.5960,0.0229,16.5731,17.5731,2.3969,2.3969,0.0000,0.0000,49.0013,16.7005,0.3324,1109.4575,NA,NA,NA +dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,Application,1409993540,16.7247,16.6596,0.0651,0.0092,16.7178,1.5199,15.1979,0.0000,32.9383,16.7005,-0.0879,1125.5205,NA,NA,NA +Presenter.exe,5892,0x1F0FF310E98,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,1409998870,16.6655,0.0210,16.6445,17.7015,2.2963,2.2496,0.0467,0.0000,49.1058,16.6661,-0.1045,1126.0535,NA,NA,NA +dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,Application,1410160787,16.6528,16.5761,0.0767,0.0023,16.6653,1.5403,15.1250,0.0000,32.9141,16.6661,0.0242,1142.2452,NA,NA,NA +Presenter.exe,5892,0x1F0FF310E98,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,1410165525,16.5192,0.0254,16.4938,18.2896,2.4267,2.4267,0.0000,0.0000,49.1064,16.6683,-0.0006,1142.7190,NA,NA,NA +Presenter.exe,5892,0x1F0FF310E98,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,1410330717,16.1545,0.0289,16.1256,15.9451,4.0570,2.2258,1.8312,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,Application,1410327315,16.7408,16.6584,0.0824,0.0148,16.9043,2.1123,14.7920,0.0000,32.9274,16.6683,-0.0133,1158.8980,NA,NA,NA +Presenter.exe,5892,0x1F0FF310E98,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,1410492262,0.5057,0.0063,0.4994,3.8476,2.0353,2.0353,0.0000,0.0000,33.1010,16.6766,16.0054,1175.3927,NA,NA,NA +dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,Application,1410494723,16.6235,16.5498,0.0737,0.1783,16.4696,1.5034,14.9662,0.0000,32.8549,16.6766,0.0725,1175.6388,NA,NA,NA +Presenter.exe,5892,0x1F0FF310E98,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,1410497319,16.7259,0.0026,16.7233,18.0790,2.0968,2.0968,0.0000,0.0000,49.2719,16.6820,-16.1709,1175.8984,NA,NA,NA +dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,Application,1410660958,16.7554,16.6774,0.0780,0.0244,16.7316,1.7098,15.0218,0.0000,32.9080,16.6820,-0.0531,1192.2623,NA,NA,NA +Presenter.exe,5892,0x1F0FF310E98,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,1410664578,16.9920,0.0310,16.9610,17.9805,2.0965,2.0965,0.0000,0.0000,49.2280,16.6804,0.0439,1192.6243,NA,NA,NA +dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,Application,1410828512,16.6693,16.5986,0.0707,0.0006,16.6706,1.6065,15.0641,0.0000,32.8346,16.6804,0.0734,1209.0177,NA,NA,NA +Presenter.exe,5892,0x1F0FF310E98,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,1410834498,16.4704,0.0251,16.4453,17.7296,2.1019,2.1019,0.0000,0.0000,48.9164,16.6809,0.3116,1209.6163,NA,NA,NA +dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,Application,1410995205,16.5904,16.5156,0.0748,0.0019,16.6084,1.6861,14.9223,0.0000,32.8457,16.6809,-0.0111,1225.6870,NA,NA,NA +Presenter.exe,5892,0x1F0FF310E98,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,1410999202,16.5722,0.0293,16.5429,17.8332,2.0982,2.0982,0.0000,0.0000,49.1269,16.6805,-0.2105,1226.0867,NA,NA,NA +dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,Application,1411161109,16.6733,16.6002,0.0731,0.0199,16.6749,1.6514,15.0235,0.0000,32.9362,16.6805,-0.0905,1242.2774,NA,NA,NA +Presenter.exe,5892,0x1F0FF310E98,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,1411164924,16.6298,0.0301,16.5997,17.8792,2.0909,2.0909,0.0000,0.0000,49.2352,266.9701,-0.1083,1242.6589,NA,NA,NA +dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,Application,1411327842,16.6772,16.6071,0.0701,0.0215,16.6812,1.5949,15.0863,0.0000,32.9434,266.9701,-0.0072,1258.9507,NA,NA,NA +dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Other,Application,1411494614,54.9038,50.4058,4.4980,0.0000,0.0000,0.0000,0.0000,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,Application,1412043652,195.9326,174.6420,21.2906,0.0000,232.6440,6.4471,226.1969,0.0000,228.3325,16.6147,-195.3891,1330.5317,NA,NA,NA +dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,Application,1414002978,20.6762,20.3413,0.3349,20.7636,0.0724,0.0724,0.0000,0.0000,49.0146,16.6626,179.3179,1526.4643,NA,NA,NA +dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,Application,1414209740,28.5051,12.3939,16.1112,0.1598,28.3403,3.8580,24.4823,0.0000,45.0010,16.6461,4.0136,1547.1405,NA,NA,NA +dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,Application,1414494791,17.5350,17.4712,0.0638,0.0000,17.5352,2.2629,15.2723,0.0000,33.1420,16.7997,11.8590,1575.6456,NA,NA,NA +dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,Application,1414670141,16.1076,16.0493,0.0583,0.0000,16.1074,3.4097,12.6977,0.0000,32.4067,16.5984,0.7353,1593.1806,NA,NA,NA +dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,Application,1414831217,18.0993,18.0326,0.0667,0.0000,18.0981,2.6579,15.4402,0.0000,32.8975,16.6673,-0.4908,1609.2882,NA,NA,NA +dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,Application,1415012210,15.3191,15.2536,0.0655,0.0000,15.3248,2.8797,12.4451,0.0000,31.4655,16.6824,1.4320,1627.3875,NA,NA,NA +Presenter.exe,10112,0x1ED7B93C580,DXGI,0,0,0,Composed: Flip,Application,1415190018,15.1523,14.1261,1.0262,0.6077,0.9763,0.9763,0.0000,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,Application,1415165401,17.6115,17.5504,0.0611,0.0000,17.6067,1.9963,15.6104,0.0000,32.8288,16.6697,-1.3633,1642.7066,NA,NA,NA +Presenter.exe,10112,0x1ED7B93C580,DXGI,0,0,0,Composed: Flip,Application,1415341541,14.6473,14.5557,0.0916,2.2110,0.8000,0.8000,0.0000,0.0000,31.8845,33.4646,0.0000,1660.3206,NA,NA,NA +dwm.exe,1252,0x22E6AFA2560,DXGI,1,2,0,Hardware: Legacy Flip,Application,1415341516,15.4911,15.4498,0.0413,0.0000,2.2188,2.2188,0.0000,0.0000,31.8870,33.4646,0.9418,1660.3181,NA,NA,NA +Presenter.exe,10112,0x1ED7B93C580,DXGI,0,0,0,Composed: Flip,Application,1415488014,15.6213,15.5673,0.0540,17.2666,1.0023,1.0023,0.0000,0.0000,50.7018,16.6798,-18.8173,1674.9679,NA,NA,NA +Presenter.exe,10112,0x1ED7B93C580,DXGI,0,0,0,Hardware Composed: Independent Flip,Application,1415644227,15.5880,15.5426,0.0454,2.9424,1.0061,1.0061,0.0000,0.0000,51.7603,16.6769,-1.0585,1690.5892,NA,NA,NA +Presenter.exe,10112,0x1ED7B93C580,DXGI,0,0,0,Hardware Composed: Independent Flip,Application,1415800107,15.6199,15.5723,0.0476,19.5049,0.9063,0.9063,0.0000,0.0000,52.8492,16.6744,-1.0889,1706.1772,NA,NA,NA +Presenter.exe,10112,0x1ED7B93C580,DXGI,0,0,0,Hardware Composed: Independent Flip,Application,1415956306,15.6522,15.6057,0.0465,20.5791,0.9324,0.9324,0.0000,0.0000,53.9037,16.6895,-1.0545,1721.7971,NA,NA,NA +Presenter.exe,10112,0x1ED7B93C580,DXGI,0,0,0,Hardware Composed: Independent Flip,Application,1416112828,15.5882,15.5439,0.0443,21.6061,0.9153,0.9153,0.0000,0.0000,54.9410,16.6748,-1.0373,1737.4493,NA,NA,NA +Presenter.exe,10112,0x1ED7B93C580,DXGI,0,0,0,Hardware Composed: Independent Flip,Application,1416268710,15.6985,15.6071,0.0914,22.6908,0.9288,0.9288,0.0000,0.0000,56.0276,16.6837,-1.0866,1753.0375,NA,NA,NA +Presenter.exe,10112,0x1ED7B93C580,DXGI,0,0,0,Hardware Composed: Independent Flip,Application,1416425695,15.5470,15.5006,0.0464,23.6823,0.9153,0.9153,0.0000,0.0000,57.0128,16.6746,-0.9852,1768.7360,NA,NA,NA +Presenter.exe,10112,0x1ED7B93C580,DXGI,0,0,0,Hardware Composed: Independent Flip,Application,1416581165,31.2764,31.2041,0.0723,24.8082,0.9841,0.9841,0.0000,0.0000,58.1404,16.6828,-1.1276,1784.2830,NA,NA,NA +Presenter.exe,10112,0x1ED7B93C580,DXGI,0,0,0,Hardware Composed: Independent Flip,Application,1416893929,15.6328,15.5406,0.0922,10.2162,0.9632,0.9632,0.0000,0.0000,43.5468,16.6800,14.5936,1815.5594,NA,NA,NA +Presenter.exe,10112,0x1ED7B93C580,DXGI,0,0,0,Hardware Composed: Independent Flip,Application,1417050257,15.6150,15.5284,0.0866,11.2568,0.9988,0.9988,0.0000,0.0000,44.5940,16.6837,-1.0472,1831.1922,NA,NA,NA +Presenter.exe,10112,0x1ED7B93C580,DXGI,0,0,0,Hardware Composed: Independent Flip,Application,1417206407,15.6111,15.5327,0.0784,12.3278,0.9684,0.9684,0.0000,0.0000,45.6627,16.6824,-1.0687,1846.8072,NA,NA,NA +Presenter.exe,10112,0x1ED7B93C580,DXGI,0,0,0,Hardware Composed: Independent Flip,Application,1417362518,15.6425,15.5430,0.0995,13.3944,0.9779,0.9779,0.0000,0.0000,46.7340,16.6773,-1.0713,1862.4183,NA,NA,NA +Presenter.exe,10112,0x1ED7B93C580,DXGI,0,0,0,Hardware Composed: Independent Flip,Application,1417518943,15.6043,15.4990,0.1053,14.4359,0.9679,0.9679,0.0000,0.0000,47.7688,16.6854,-1.0348,1878.0608,NA,NA,NA +Presenter.exe,10112,0x1ED7B93C580,DXGI,0,0,0,Hardware Composed: Independent Flip,Application,1417674986,15.6140,15.5151,0.0989,15.5705,0.9760,0.9760,0.0000,0.0000,48.8499,16.6754,-1.0811,1893.6651,NA,NA,NA +Presenter.exe,10112,0x1ED7B93C580,DXGI,0,0,0,Hardware Composed: Independent Flip,Application,1417831126,15.6358,15.5458,0.0900,16.5906,0.9435,0.9435,0.0000,0.0000,49.9113,16.6848,-1.0614,1909.2791,NA,NA,NA +Presenter.exe,10112,0x1ED7B93C580,DXGI,0,0,0,Hardware Composed: Independent Flip,Application,1417987484,15.6773,15.5881,0.0892,17.6267,0.9068,0.9068,0.0000,0.0000,50.9603,16.5903,-1.0490,1924.9149,NA,NA,NA +dwm.exe,1252,0x22E6AFA2560,DXGI,1,2,0,Hardware: Legacy Flip,Application,1415496427,33.2562,33.2274,0.0288,0.0000,0.0000,0.0000,0.0000,0.0000,49.8605,283.4844,-17.9735,1675.8092,NA,NA,NA +dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,Application,1415828989,283.8064,283.7472,0.0592,268.3245,15.4954,2.4809,13.0145,0.0000,300.0887,33.3617,-250.2282,1709.0654,NA,NA,NA +dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,Application,1418667053,33.4996,33.4127,0.0869,0.0135,33.4874,0.5762,32.9112,0.0000,49.6440,16.6405,250.4447,1992.8718,NA,NA,NA +dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,Application,1419002049,16.5939,16.5282,0.0657,0.0013,16.5899,1.8396,14.7503,0.0000,32.7849,16.7173,16.8591,2026.3714,NA,NA,NA +dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,Application,1419167988,16.6557,16.5971,0.0586,0.0000,16.6642,1.4062,15.2580,0.0000,32.9083,16.6410,-0.1234,2042.9653,NA,NA,NA +dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,Application,1419334545,17.3318,17.2714,0.0604,0.0058,17.3238,0.7185,16.6053,0.0000,32.8936,16.7109,0.0147,2059.6210,NA,NA,NA +dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,Application,1419507863,16.0440,15.9864,0.0576,0.0000,16.0417,2.5971,13.4446,0.0000,32.2727,16.6840,0.6209,2076.9528,NA,NA,NA +dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,Application,1419668303,17.1730,17.1200,0.0530,0.0000,17.1837,2.1016,15.0821,0.0000,32.9127,16.6703,-0.6400,2092.9968,NA,NA,NA +dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,Application,1419840033,19.4037,19.3501,0.0536,0.0062,19.7140,3.2188,16.4952,0.0000,32.4100,16.6989,0.5027,2110.1698,NA,NA,NA +Presenter.exe,12980,0x2C6BEB300A0,DXGI,0,0,0,Composed: Flip,Application,1419875294,15.7859,14.1972,1.5887,0.3109,0.9628,0.9628,0.0000,0.0000,45.5828,16.8062,0.0000,2113.6959,NA,NA,NA +dwm.exe,1252,0x22E6AFA2560,DXGI,1,2,0,Hardware: Legacy Flip,Application,1420034070,13.2339,13.2005,0.0334,0.3165,2.1499,2.1499,0.0000,0.0000,29.7052,16.8062,2.7048,2129.5735,NA,NA,NA +Presenter.exe,12980,0x2C6BEB300A0,DXGI,0,0,0,Composed: Flip,Application,1420033153,14.4231,14.0598,0.3633,0.0582,3.4375,1.2580,2.1795,0.0000,46.6031,0.5098,-1.0203,2129.4818,NA,NA,NA +Presenter.exe,12980,0x2C6BEB300A0,DXGI,0,0,1,Hardware Composed: Independent Flip,Application,1420177384,15.5619,15.2680,0.2939,15.3891,1.0152,1.0152,0.0000,0.0000,32.6898,0.6904,13.9133,2143.9049,NA,NA,NA +Presenter.exe,12980,0x2C6BEB300A0,DXGI,0,0,1,Hardware Composed: Independent Flip,Application,1420333003,15.5049,15.3310,0.1739,16.6313,0.9416,0.9416,0.0000,0.0000,17.8183,13.3777,14.8715,2159.4668,NA,NA,NA +Presenter.exe,12980,0x2C6BEB300A0,DXGI,0,0,1,Hardware Composed: Independent Flip,Application,1420488052,15.4932,15.3855,0.1077,2.3436,0.9220,0.9220,0.0000,0.0000,15.6911,15.6007,2.1272,2174.9717,NA,NA,NA +Presenter.exe,12980,0x2C6BEB300A0,DXGI,0,0,1,Hardware Composed: Independent Flip,Application,1420642984,15.5977,15.5108,0.0869,0.2692,0.9117,0.9117,0.0000,0.0000,15.7986,15.5936,-0.1075,2190.4649,NA,NA,NA +Presenter.exe,12980,0x2C6BEB300A0,DXGI,0,0,1,Hardware Composed: Independent Flip,Application,1420798961,15.5877,15.5354,0.0523,0.0724,1.0731,1.0731,0.0000,0.0000,15.7945,15.7079,0.0041,2206.0626,NA,NA,NA +Presenter.exe,12980,0x2C6BEB300A0,DXGI,0,0,1,Hardware Composed: Independent Flip,Application,1420954838,15.6322,15.5751,0.0571,0.0813,1.0742,1.0742,0.0000,0.0000,15.9147,15.8012,-0.1202,2221.6503,NA,NA,NA +Presenter.exe,12980,0x2C6BEB300A0,DXGI,0,0,1,Hardware Composed: Independent Flip,Application,1421111160,15.8084,15.5756,0.2328,0.0672,1.0603,1.0603,0.0000,0.0000,16.0837,15.5071,-0.1690,2237.2825,NA,NA,NA +Presenter.exe,12980,0x2C6BEB300A0,DXGI,0,0,1,Hardware Composed: Independent Flip,Application,1421269244,15.5853,15.3945,0.1908,0.0810,1.0755,1.0755,0.0000,0.0000,15.7824,15.5730,0.3013,2253.0909,NA,NA,NA +Presenter.exe,12980,0x2C6BEB300A0,DXGI,0,0,1,Hardware Composed: Independent Flip,Application,1421425097,15.5241,15.4484,0.0757,0.0748,1.0450,1.0450,0.0000,0.0000,15.7701,15.7348,0.0123,2268.6762,NA,NA,NA +Presenter.exe,12980,0x2C6BEB300A0,DXGI,0,0,1,Hardware Composed: Independent Flip,Application,1421580338,15.7278,15.5406,0.1872,0.0875,1.1105,1.1105,0.0000,0.0000,15.9808,15.4885,-0.2107,2284.2003,NA,NA,NA +Presenter.exe,12980,0x2C6BEB300A0,DXGI,0,0,1,Hardware Composed: Independent Flip,Application,1421737616,15.4764,15.4163,0.0601,0.0738,1.0399,1.0399,0.0000,0.0000,15.7415,15.7111,0.2393,2299.9281,NA,NA,NA +Presenter.exe,12980,0x2C6BEB300A0,DXGI,0,0,1,Hardware Composed: Independent Flip,Application,1421892380,15.7743,15.5948,0.1795,0.0699,1.0803,1.0803,0.0000,0.0000,15.9762,15.4965,-0.2347,2315.4045,NA,NA,NA +Presenter.exe,12980,0x2C6BEB300A0,DXGI,0,0,1,Hardware Composed: Independent Flip,Application,1422050123,15.4844,15.4036,0.0808,0.0794,1.0320,1.0320,0.0000,0.0000,15.6984,15.7116,0.2778,2331.1788,NA,NA,NA +Presenter.exe,12980,0x2C6BEB300A0,DXGI,0,0,1,Hardware Composed: Independent Flip,Application,1422204967,15.6487,15.5401,0.1086,0.1096,1.0964,1.0964,0.0000,0.0000,15.9256,15.5942,-0.2272,2346.6632,NA,NA,NA +Presenter.exe,12980,0x2C6BEB300A0,DXGI,0,0,1,Hardware Composed: Independent Flip,Application,1422361454,15.6115,15.5155,0.0960,0.2288,1.0605,1.0605,0.0000,0.0000,15.8711,15.7140,0.0545,2362.3119,NA,NA,NA +Presenter.exe,12980,0x2C6BEB300A0,DXGI,0,0,1,Hardware Composed: Independent Flip,Application,1422517569,15.6875,15.5619,0.1256,0.0646,1.0961,1.0961,0.0000,0.0000,15.9736,15.3659,-0.1025,2377.9234,NA,NA,NA +dwm.exe,1252,0x22E6AFA2560,DXGI,1,2,0,Hardware: Legacy Flip,Application,1420166409,16.7081,16.6733,0.0348,0.0000,0.0000,0.0000,0.0000,0.0000,33.2775,316.9526,-3.5723,2142.8074,NA,NA,NA +dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,Application,1420333490,317.2960,317.1478,0.1482,303.8754,13.4187,3.1855,10.2332,0.0000,333.5220,33.2218,-300.2445,2159.5155,NA,NA,NA +dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,Application,1423506450,34.2660,34.1997,0.0663,0.0000,34.2637,2.0825,32.1812,0.0000,49.4478,16.6689,284.0742,2476.8115,NA,NA,NA +dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,Application,1423849110,15.8057,15.7408,0.0649,0.0000,15.8720,2.5967,13.2753,0.0000,31.8507,16.6763,17.5971,2511.0775,NA,NA,NA +dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,Application,1424007167,16.8988,16.8490,0.0498,0.0621,16.8440,3.0594,13.7846,0.0000,32.7213,16.6856,-0.8706,2526.8832,NA,NA,NA +dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,Application,1424176155,16.2749,16.2133,0.0616,0.0073,16.2862,2.4399,13.8463,0.0000,32.5081,16.6744,0.2132,2543.7820,NA,NA,NA +dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,Application,1424338904,17.0713,17.0212,0.0501,0.0186,17.0601,1.6711,15.3890,0.0000,32.9076,16.6813,-0.3995,2560.0569,NA,NA,NA +dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,Application,1424509617,16.2578,16.1955,0.0623,0.0074,16.2680,2.4956,13.7724,0.0000,32.5176,33.3588,0.3900,2577.1282,NA,NA,NA +dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,Application,1424672195,33.2851,33.2325,0.0526,0.0176,33.2845,1.6514,31.6331,0.0000,49.6186,33.3651,-17.1010,2593.3860,NA,NA,NA +dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,Application,1425005046,33.4533,33.3908,0.0625,0.0170,33.4594,2.0646,31.3948,0.0000,49.6986,33.3445,-0.0800,2626.6711,NA,NA,NA +dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,Application,1425339579,33.2879,33.2331,0.0548,0.0231,33.5658,0.6867,32.8791,0.0000,49.5898,16.6809,0.1088,2660.1244,NA,NA,NA +dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,Application,1425672458,16.5557,16.5176,0.0381,0.3010,16.2752,0.4978,15.7774,0.0000,32.9828,33.3601,16.6070,2693.4123,NA,NA,NA +dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,Application,1425838015,33.3563,33.3177,0.0386,0.0205,33.3550,0.5141,32.8409,0.0000,49.7872,216.8940,-16.8044,2709.9680,NA,NA,NA +dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,Application,1426171578,216.9787,216.9025,0.0762,0.0192,216.9694,0.7002,216.2692,0.0000,233.3249,33.3297,-183.5377,2743.3243,NA,NA,NA +dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,Application,1428341365,34.3902,34.2769,0.1133,0.0099,34.3751,0.4882,33.8869,0.0000,49.6759,16.6916,183.6490,2960.3030,NA,NA,NA +dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,Application,1428685267,15.8708,15.7817,0.0891,0.0000,15.8722,2.4978,13.3744,0.0000,31.9773,16.6675,17.6986,2994.6932,NA,NA,NA +dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,Application,1428843975,17.1207,17.0303,0.0904,0.0000,17.3217,1.8351,15.4866,0.0000,32.7740,16.6897,-0.7967,3010.5640,NA,NA,NA +dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,Application,1429015182,16.1362,16.0788,0.0574,0.1972,15.9685,2.7083,13.2602,0.0000,32.3430,16.6843,0.4310,3027.6847,NA,NA,NA +dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,Application,1429176544,16.7075,16.6497,0.0578,0.0295,16.6943,2.4529,14.2414,0.0000,32.8911,16.6728,-0.5481,3043.8209,NA,NA,NA +dwm.exe,1252,0x22E6AFA2560,DXGI,1,0,0,Hardware: Legacy Flip,Application,1429343619,16.6821,16.6187,0.0634,0.0163,16.6954,2.2223,14.4731,0.0000,32.8564,16.6749,0.0347,3060.5284,NA,NA,NA diff --git a/Tests/Gold/test_case_4.csv b/Tests/Gold/test_case_4.csv index 7d1ed051..de9db7c3 100644 --- a/Tests/Gold/test_case_4.csv +++ b/Tests/Gold/test_case_4.csv @@ -1,187 +1,187 @@ -Application,ProcessID,SwapChainAddress,PresentRuntime,SyncInterval,PresentFlags,AllowsTearing,PresentMode,CPUStartQPC,FrameTime,CPUBusy,CPUWait,GPULatency,GPUTime,GPUBusy,GPUWait,VideoBusy,DisplayLatency,DisplayedTime,AnimationError,AllInputToPhotonLatency,ClickToPhotonLatency -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55436501505,50.1108,50.0105,0.1003,0.0339,50.6409,0.7695,49.8714,0.0000,66.1185,16.7167,0.0000,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55437002613,16.5401,16.4223,0.1178,0.0078,17.0936,0.6222,16.4714,0.0000,32.7244,50.0307,33.3941,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55437168014,52.6186,52.5109,0.1077,0.0404,54.5782,0.7861,53.7921,0.0000,66.2150,16.7512,-33.4906,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55437694200,14.7613,14.5309,0.2304,0.0090,16.0674,1.9944,14.0730,0.0000,30.3476,16.7008,35.8674,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55437841813,16.2531,16.1819,0.0712,0.0000,17.4374,1.4483,15.9891,0.0000,32.2871,16.6816,-1.9395,NA,NA -Presenter.exe,9620,0x19E52815138,D3D9,-1,0,0,Composed: Copy with GPU GDI,55437838580,17.2677,0.2995,16.9682,17.7236,0.8493,0.8493,0.0000,0.0000,49.2920,16.6802,0.0000,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55438004344,16.6976,16.6323,0.0653,0.1150,17.7094,0.9650,16.7444,0.0000,32.7156,16.6802,-0.4285,NA,NA -Presenter.exe,9620,0x19E52815138,D3D9,-1,0,0,Composed: Copy with GPU GDI,55438011257,16.5945,0.0548,16.5397,17.2197,0.9228,0.9228,0.0000,0.0000,48.7045,16.6784,0.5875,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55438171320,16.5597,16.4486,0.1111,0.0219,17.8177,1.1749,16.6428,0.0000,32.6982,16.6784,0.0174,NA,NA -Presenter.exe,9620,0x19E52815138,D3D9,-1,0,0,Composed: Copy with GPU GDI,55438177202,16.6547,0.4308,16.2239,17.3373,1.0901,1.0901,0.0000,0.0000,48.7884,16.6644,-0.0839,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55438336917,16.7907,16.6914,0.0993,0.0596,18.0030,1.2424,16.7606,0.0000,32.8169,16.6644,-0.1187,NA,NA -Presenter.exe,9620,0x19E52815138,D3D9,-1,0,0,Composed: Copy with GPU GDI,55438343749,16.7320,0.4478,16.2842,17.5208,1.3265,1.3265,0.0000,0.0000,48.7981,16.5867,-0.0097,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55438504824,16.5653,16.4757,0.0896,0.0063,17.9082,1.2796,16.6286,0.0000,32.6906,16.5867,0.1263,NA,NA -Presenter.exe,9620,0x19E52815138,D3D9,-1,0,0,Composed: Copy with GPU GDI,55438511069,16.9560,1.8975,15.0585,17.3590,0.7456,0.7456,0.0000,0.0000,48.6528,16.7917,0.1453,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55438670477,16.7312,16.6446,0.0866,0.0274,17.8232,1.3350,16.4882,0.0000,32.7120,16.7917,-0.0214,NA,NA -Presenter.exe,9620,0x19E52815138,D3D9,-1,0,0,Composed: Copy with GPU GDI,55438680629,16.2840,0.1706,16.1134,16.9169,0.8501,0.8501,0.0000,0.0000,48.4885,16.6784,0.1643,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55438837789,16.5213,16.4223,0.0990,0.0016,17.7636,1.1854,16.5782,0.0000,32.7725,16.6784,-0.0605,NA,NA -Presenter.exe,9620,0x19E52815138,D3D9,-1,0,0,Composed: Copy with GPU GDI,55438843469,16.8516,0.0790,16.7726,17.2771,1.0560,1.0560,0.0000,0.0000,48.8829,16.6787,-0.3944,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55439003002,16.9711,16.8869,0.0842,0.0719,18.0434,1.1790,16.8644,0.0000,32.9296,16.6787,-0.1571,NA,NA -Presenter.exe,9620,0x19E52815138,D3D9,-1,0,0,Composed: Copy with GPU GDI,55439011985,16.7069,0.0111,16.6958,17.3209,1.1343,1.1343,0.0000,0.0000,48.7100,16.6831,0.1729,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55439172713,16.6640,16.5648,0.0992,0.0057,17.7905,1.1609,16.6296,0.0000,32.6372,16.6831,0.2924,NA,NA -Presenter.exe,9620,0x19E52815138,D3D9,-1,0,0,Composed: Copy with GPU GDI,55439179054,16.6465,0.0087,16.6378,17.2657,1.1843,1.1843,0.0000,0.0000,48.6862,16.6809,0.0238,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55439339353,16.5331,16.4216,0.1115,0.0059,17.7498,1.1966,16.5532,0.0000,32.6563,16.6809,-0.0191,NA,NA -Presenter.exe,9620,0x19E52815138,D3D9,-1,0,0,Composed: Copy with GPU GDI,55439345519,16.5922,0.0088,16.5834,17.2445,1.2125,1.2125,0.0000,0.0000,48.7206,16.5942,-0.0344,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55439504684,16.8427,16.7567,0.0860,0.0583,17.9540,1.1725,16.7815,0.0000,32.8041,16.5942,-0.1478,NA,NA -Presenter.exe,9620,0x19E52815138,D3D9,-1,0,0,Composed: Copy with GPU GDI,55439511441,16.8224,0.0083,16.8141,17.4371,1.1839,1.1839,0.0000,0.0000,48.7226,16.7377,-0.0020,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55439673111,16.5415,16.4164,0.1251,0.0080,17.7537,1.2290,16.5247,0.0000,32.5556,16.7377,0.2485,NA,NA -Presenter.exe,9620,0x19E52815138,D3D9,-1,0,0,Composed: Copy with GPU GDI,55439679665,16.5530,0.0091,16.5439,17.2061,1.1995,1.1995,0.0000,0.0000,48.6379,16.6240,0.0847,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55439838526,16.6798,16.5928,0.0870,0.0748,18.0254,1.1557,16.8697,0.0000,32.7518,16.6240,-0.1962,NA,NA -Presenter.exe,9620,0x19E52815138,D3D9,-1,0,0,Composed: Copy with GPU GDI,55439845195,16.6575,0.0266,16.6309,17.5614,1.1521,1.1521,0.0000,0.0000,48.7089,16.7115,-0.0710,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55440005324,16.9505,16.8390,0.1115,0.0063,18.1929,1.4676,16.7253,0.0000,32.6960,16.7115,0.0558,NA,NA -Presenter.exe,9620,0x19E52815138,D3D9,-1,0,0,Composed: Copy with GPU GDI,55440011770,16.8926,0.0289,16.8637,17.6242,0.9064,0.9064,0.0000,0.0000,48.7629,16.6588,-0.0540,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55440174829,16.5534,16.4664,0.0870,0.0501,17.7820,1.2073,16.5747,0.0000,32.4570,16.6588,0.2390,NA,NA -Presenter.exe,9620,0x19E52815138,D3D9,-1,0,0,Composed: Copy with GPU GDI,55440180696,16.4343,0.0286,16.4057,17.3135,1.1001,1.1001,0.0000,0.0000,48.5291,16.7580,0.2338,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55440340363,16.4844,16.3959,0.0885,0.0094,17.5603,1.3185,16.2418,0.0000,32.5624,16.7580,-0.1054,NA,NA -Presenter.exe,9620,0x19E52815138,D3D9,-1,0,0,Composed: Copy with GPU GDI,55440345039,16.4981,0.0267,16.4714,17.1961,0.9065,0.9065,0.0000,0.0000,48.8528,16.5970,-0.3237,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55440505207,16.5985,16.4382,0.1603,0.0654,17.6025,1.0602,16.5423,0.0000,32.8360,16.5970,-0.2736,NA,NA -Presenter.exe,9620,0x19E52815138,D3D9,-1,0,0,Composed: Copy with GPU GDI,55440510020,16.8552,0.0091,16.8461,17.2571,0.8614,0.8614,0.0000,0.0000,48.9517,16.6831,-0.0989,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55440671192,16.8966,16.7856,0.1110,0.0013,18.0243,1.1163,16.9080,0.0000,32.8345,16.6831,0.0015,NA,NA -Presenter.exe,9620,0x19E52815138,D3D9,-1,0,0,Composed: Copy with GPU GDI,55440678572,16.6965,0.0326,16.6639,17.3569,1.0225,1.0225,0.0000,0.0000,48.7796,417.0960,0.1721,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55440840158,16.4872,16.3366,0.1506,0.0366,17.6537,1.1489,16.5048,0.0000,32.6210,434.0596,0.2135,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Other,55441005030,146.5247,143.1792,3.3455,0.0000,0.0000,0.0000,0.0000,0.0000,NA,NA,NA,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55442470277,274.1053,273.8454,0.2599,271.8533,14.7956,0.2323,14.5633,0.0000,303.6687,16.3021,-271.0477,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55445211330,31.8504,31.6304,0.2200,0.2043,34.3316,2.8923,31.4393,0.0000,45.8655,16.7018,257.8032,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55445529834,15.0267,14.8796,0.1471,0.0000,16.5984,2.7405,13.8579,0.0000,30.7169,16.6530,15.1486,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55445680101,16.4626,16.3606,0.1020,0.0000,18.4022,1.5701,16.8321,0.0000,32.3432,16.6902,-1.6263,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55445844727,18.2885,18.0987,0.1898,0.0000,21.2736,1.9399,19.3337,0.0000,32.5708,16.6734,-0.2276,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55446027612,15.3800,15.2740,0.1060,0.8430,15.9495,2.1427,13.8068,0.0000,30.9557,16.6712,1.6151,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55446181412,17.3274,17.2165,0.1109,0.0000,18.7235,1.4331,17.2904,0.0000,32.2469,16.6744,-1.2912,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55446354686,15.8835,15.7935,0.0900,0.0000,17.2525,1.4220,15.8305,0.0000,31.5939,16.6839,0.6530,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55446513521,16.2791,16.1671,0.1120,0.0000,17.9211,1.3836,16.5375,0.0000,32.3943,33.3865,-0.8004,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55446676312,33.8728,33.7359,0.1369,0.0200,35.4284,1.7579,33.6705,0.0000,49.5017,16.6452,-17.1074,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55447015040,16.3951,16.3270,0.0681,0.0000,17.3905,1.6031,15.7874,0.0000,32.2741,16.6786,17.2276,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55447178991,16.5435,16.4462,0.0973,0.0032,17.5201,1.0063,16.5138,0.0000,32.5576,16.7210,-0.2835,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55447344426,16.6431,16.5735,0.0696,0.0000,17.0746,1.0040,16.0706,0.0000,32.7351,16.6436,-0.1775,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55447510857,16.8596,16.7520,0.1076,0.0000,18.4560,0.4765,17.9795,0.0000,32.7356,16.7858,-0.0005,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55447679453,16.8039,16.7188,0.0851,0.0000,18.5164,1.6411,16.8753,0.0000,32.6618,16.6031,0.0738,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55447847492,16.7271,16.6281,0.0990,0.0294,18.4753,1.6702,16.8051,0.0000,32.4610,16.6567,0.2008,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55448014763,16.3819,16.2350,0.1469,0.0000,17.1753,1.8234,15.3519,0.0000,32.3906,33.4598,0.0704,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55448178582,34.6409,34.5386,0.1023,0.0000,36.2226,1.0617,35.1609,0.0000,49.4685,16.6068,-17.0779,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55448524991,15.8785,15.8150,0.0635,0.0000,18.0022,1.6131,16.3891,0.0000,31.4344,16.7039,18.0341,NA,NA -Presenter.exe,8536,0x197B10BAB70,DXGI,0,0,0,Composed: Flip,55448709072,13.9509,12.3812,1.5697,1.1699,0.8218,0.8218,0.0000,0.0000,NA,NA,NA,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55448683776,18.7752,18.6639,0.1113,0.0695,19.0200,2.0580,16.9620,0.0000,32.2598,16.6613,-0.8254,NA,NA -Presenter.exe,8536,0x197B10BAB70,DXGI,0,0,0,Composed: Flip,55448848581,14.2491,14.0543,0.1948,0.1171,0.8543,0.8543,0.0000,0.0000,32.4406,16.7707,0.0000,NA,NA -Presenter.exe,8536,0x197B10BAB70,DXGI,0,0,0,Hardware: Independent Flip,55448991072,15.5788,15.4220,0.1568,18.2978,0.9228,0.9228,0.0000,0.0000,34.9622,16.6837,-2.5216,NA,NA -Presenter.exe,8536,0x197B10BAB70,DXGI,0,0,0,Hardware: Independent Flip,55449146860,15.8411,15.5416,0.2995,4.4137,14.9245,0.9202,14.0043,0.0000,36.0671,16.7043,-1.1049,NA,NA -Presenter.exe,8536,0x197B10BAB70,DXGI,0,0,0,Hardware: Independent Flip,55449305271,15.5389,15.2636,0.2753,3.6232,16.5798,0.7561,15.8237,0.0000,36.9303,16.6633,-0.8632,NA,NA -Presenter.exe,8536,0x197B10BAB70,DXGI,0,0,0,Hardware: Independent Flip,55449460660,15.5628,15.3440,0.2188,4.9241,16.4444,0.7436,15.7008,0.0000,38.0547,16.6939,-1.1244,NA,NA -Presenter.exe,8536,0x197B10BAB70,DXGI,0,0,0,Hardware: Independent Flip,55449616288,15.5706,15.3821,0.1885,6.0283,16.4407,0.7858,15.6549,0.0000,39.1858,16.6636,-1.1311,NA,NA -Presenter.exe,8536,0x197B10BAB70,DXGI,0,0,0,Hardware: Independent Flip,55449771994,15.6146,15.4396,0.1750,7.1505,16.4420,0.7481,15.6939,0.0000,40.2788,16.7011,-1.0930,NA,NA -Presenter.exe,8536,0x197B10BAB70,DXGI,0,0,0,Hardware: Independent Flip,55449928140,15.6502,15.4449,0.2053,8.2074,16.4344,0.7963,15.6381,0.0000,41.3653,16.6808,-1.0865,NA,NA -Presenter.exe,8536,0x197B10BAB70,DXGI,0,0,0,Hardware: Independent Flip,55450084642,15.8050,15.4137,0.3913,9.2189,16.4737,0.8018,15.6719,0.0000,42.3959,16.6159,-1.0306,NA,NA -Presenter.exe,8536,0x197B10BAB70,DXGI,0,0,0,Hardware: Independent Flip,55450242692,15.4415,15.2522,0.1893,10.1369,16.4310,0.7974,15.6336,0.0000,43.2068,16.7397,-0.8109,NA,NA -Presenter.exe,8536,0x197B10BAB70,DXGI,0,0,0,Hardware: Independent Flip,55450397107,15.7040,15.4234,0.2806,11.3747,16.3497,0.7703,15.5794,0.0000,44.5050,16.6877,-1.2982,NA,NA -Presenter.exe,8536,0x197B10BAB70,DXGI,0,0,0,Hardware: Independent Flip,55450554147,15.6419,15.2621,0.3798,12.1742,16.6038,0.8122,15.7916,0.0000,45.4887,16.7217,-0.9837,NA,NA -Presenter.exe,8536,0x197B10BAB70,DXGI,0,0,0,Hardware: Independent Flip,55450710566,15.4821,15.3284,0.1537,13.3501,16.4731,0.7912,15.6819,0.0000,46.5685,16.5720,-1.0798,NA,NA -Presenter.exe,8536,0x197B10BAB70,DXGI,0,0,0,Hardware: Independent Flip,55450865387,15.6000,15.4061,0.1939,14.5876,16.4485,0.8922,15.5563,0.0000,47.6584,16.6783,-1.0899,NA,NA -Presenter.exe,8536,0x197B10BAB70,DXGI,0,0,0,Hardware: Independent Flip,55451021387,15.7690,15.4661,0.3029,15.6473,16.3684,1.0362,15.3322,0.0000,48.7367,16.7030,-1.0783,NA,NA -Presenter.exe,8536,0x197B10BAB70,DXGI,0,0,0,Hardware: Independent Flip,55451179077,15.4013,15.2889,0.1124,16.3738,16.5524,0.7307,15.8217,0.0000,49.6707,16.6734,-0.9340,NA,NA -Presenter.exe,8536,0x197B10BAB70,DXGI,0,0,0,Hardware: Independent Flip,55451333090,15.7430,15.5549,0.1881,17.6609,16.5604,0.7697,15.7907,0.0000,50.9428,16.7031,-1.2721,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55448871528,13.9253,13.7786,0.1467,0.0024,14.0715,0.4578,13.6137,0.0000,30.1459,300.2679,2.1139,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55449010781,300.8029,300.7106,0.0923,0.0000,301.2390,3.9056,297.3334,0.0000,316.4885,16.6810,-286.3426,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55452018810,16.6437,16.5277,0.1160,0.0068,18.6162,0.4569,18.1593,0.0000,32.3666,49.9865,284.1219,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55452185247,49.7665,49.6460,0.1205,0.0000,51.2320,2.1737,49.0583,0.0000,65.7094,16.6996,-33.3428,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55452682912,16.5384,16.4273,0.1111,0.0000,16.8422,1.4747,15.3675,0.0000,32.6425,16.6928,33.0669,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55452848296,17.8113,17.7147,0.0966,0.0000,20.0068,0.3528,19.6540,0.0000,32.7969,16.7702,-0.1544,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55453026409,15.5953,15.5063,0.0890,0.0000,17.6042,2.2063,15.3979,0.0000,31.7558,49.9776,1.0411,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55453182362,50.4664,50.3219,0.1445,0.0000,53.2870,2.4080,50.8790,0.0000,66.1381,16.6788,-34.3823,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55453687026,17.0914,16.9389,0.1525,0.0167,19.6402,2.8172,16.8230,0.0000,32.3505,16.6652,33.7876,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55453857940,16.0218,15.9155,0.1063,0.0000,17.8749,2.6085,15.2664,0.0000,31.9243,16.6704,0.4262,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55454018158,20.2905,20.2157,0.0748,0.0000,20.6730,1.8226,18.8504,0.0000,32.5729,18.0375,-0.6486,NA,NA -Presenter.exe,5236,0x285B4C0D1B0,DXGI,0,0,0,Composed: Flip,55454168764,15.5593,13.1056,2.4537,0.8807,0.8945,0.8945,0.0000,0.0000,NA,NA,NA,NA,NA -Presenter.exe,5236,0x285B4C0D1B0,DXGI,0,0,1,Hardware: Independent Flip,55454324357,13.5431,13.3020,0.2411,0.1296,18.6731,0.9864,17.6867,0.0000,18.8027,10.2946,-1844674407370938.5000,NA,NA -Presenter.exe,5236,0x285B4C0D1B0,DXGI,0,0,1,Hardware: Independent Flip,55454459788,15.5504,15.2448,0.3056,6.5527,0.7205,0.7205,0.0000,0.0000,15.5542,15.6223,3.2485,NA,NA -Presenter.exe,5236,0x285B4C0D1B0,DXGI,0,0,1,Hardware: Independent Flip,55454615292,15.5911,15.3901,0.2010,0.8622,0.7932,0.7932,0.0000,0.0000,15.6261,15.8218,-0.0719,NA,NA -Presenter.exe,5236,0x285B4C0D1B0,DXGI,0,0,1,Hardware: Independent Flip,55454771203,15.8199,15.3758,0.4441,0.4673,0.8307,0.8307,0.0000,0.0000,15.8568,15.4013,-0.2307,NA,NA -Presenter.exe,5236,0x285B4C0D1B0,DXGI,0,0,1,Hardware: Independent Flip,55454929402,15.4114,15.2197,0.1917,3.0213,1.0091,1.0091,0.0000,0.0000,15.4382,15.9912,0.4186,NA,NA -Presenter.exe,5236,0x285B4C0D1B0,DXGI,0,0,1,Hardware: Independent Flip,55455083516,15.9766,15.4119,0.5647,0.3353,0.8108,0.8108,0.0000,0.0000,16.0180,15.7889,-0.5798,NA,NA -Presenter.exe,5236,0x285B4C0D1B0,DXGI,0,0,1,Hardware: Independent Flip,55455243282,15.8175,15.0650,0.7525,0.9199,0.8989,0.8989,0.0000,0.0000,15.8303,15.3806,0.1877,NA,NA -Presenter.exe,5236,0x285B4C0D1B0,DXGI,0,0,1,Hardware: Independent Flip,55455401457,15.3597,14.8770,0.4827,0.7452,0.8694,0.8694,0.0000,0.0000,15.3934,15.3255,0.4369,NA,NA -Presenter.exe,5236,0x285B4C0D1B0,DXGI,0,0,1,Hardware: Independent Flip,55455555054,15.3272,15.1119,0.2153,0.9204,0.7632,0.7632,0.0000,0.0000,15.3592,15.6457,0.0342,NA,NA -Presenter.exe,5236,0x285B4C0D1B0,DXGI,0,0,1,Hardware: Independent Flip,55455708326,15.6349,15.4067,0.2282,0.3704,0.7631,0.7631,0.0000,0.0000,15.6777,16.1496,-0.3185,NA,NA -Presenter.exe,5236,0x285B4C0D1B0,DXGI,0,0,1,Hardware: Independent Flip,55455864675,16.1495,15.4016,0.7479,0.4990,0.8032,0.8032,0.0000,0.0000,16.1924,15.1348,-0.5147,NA,NA -Presenter.exe,5236,0x285B4C0D1B0,DXGI,0,0,1,Hardware: Independent Flip,55456026170,15.1227,14.8694,0.2533,0.7465,0.8118,0.8118,0.0000,0.0000,15.1777,15.9401,1.0147,NA,NA -Presenter.exe,5236,0x285B4C0D1B0,DXGI,0,0,1,Hardware: Independent Flip,55456177397,15.9643,15.3754,0.5889,0.3027,0.7669,0.7669,0.0000,0.0000,15.9951,15.7031,-0.8174,NA,NA -Presenter.exe,5236,0x285B4C0D1B0,DXGI,0,0,1,Hardware: Independent Flip,55456337040,15.6782,15.0343,0.6439,0.9248,0.7517,0.7517,0.0000,0.0000,15.7339,15.1543,0.2612,NA,NA -Presenter.exe,5236,0x285B4C0D1B0,DXGI,0,0,1,Hardware: Independent Flip,55456493822,15.1537,14.9736,0.1801,0.8496,0.7915,0.7915,0.0000,0.0000,15.2100,15.7950,0.5239,NA,NA -Presenter.exe,5236,0x285B4C0D1B0,DXGI,0,0,1,Hardware: Independent Flip,55456645359,15.8232,15.4723,0.3509,0.5056,0.7972,0.7972,0.0000,0.0000,15.8513,15.4589,-0.6413,NA,NA -Presenter.exe,5236,0x285B4C0D1B0,DXGI,0,0,1,Hardware: Independent Flip,55456803591,15.4450,15.2384,0.2066,0.2562,0.7690,0.7690,0.0000,0.0000,15.4870,15.8447,0.3643,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55454221063,12.8921,12.7797,0.1124,0.0190,13.1200,0.3837,12.7363,0.0000,30.3199,415.6576,2.2530,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,2,0,Hardware: Legacy Flip,55454349984,420.5636,420.2166,0.3470,0.0000,420.5744,2.5965,417.9779,0.0000,433.0854,16.6921,-402.7655,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,2,0,Hardware: Legacy Flip,55458555620,13.3155,13.1963,0.1192,0.0863,13.4508,0.1428,13.3080,0.0000,29.2139,16.6393,403.8715,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55458688775,32.9514,18.3010,14.6504,0.0000,20.6564,0.3599,20.2965,0.0000,32.5377,33.4337,-3.3238,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55459018289,17.5823,17.4904,0.0919,0.0000,33.5392,2.6582,30.8810,0.0000,33.0200,16.6407,-0.4823,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55459194112,16.2480,16.1818,0.0662,0.0131,17.8640,1.5298,16.3342,0.0000,32.0784,16.6872,0.9416,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55459356592,16.8558,16.7306,0.1252,0.0235,18.4220,1.6564,16.7656,0.0000,32.5176,33.3605,-0.4392,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55459525150,32.9304,32.7987,0.1317,0.0377,34.9276,1.7539,33.1737,0.0000,49.0223,33.4465,-16.5047,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55459854454,33.3227,33.1569,0.1658,0.0408,35.1913,2.2130,32.9783,0.0000,49.5384,33.3119,-0.5161,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55460187681,33.3376,33.2583,0.0793,0.0329,33.7661,2.1431,31.6230,0.0000,49.5276,33.4065,0.0108,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55460521057,33.4083,33.2718,0.1365,0.0587,33.7105,0.6733,33.0372,0.0000,49.5965,33.3033,-0.0689,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55460855140,33.3702,33.2733,0.0969,0.0000,33.7822,0.5526,33.2296,0.0000,49.4915,33.3531,0.1050,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55461188842,33.3773,33.2909,0.0864,0.0339,33.9008,0.6189,33.2819,0.0000,49.4744,33.3698,0.0171,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55461522615,33.6705,33.5245,0.1460,0.1088,33.9496,0.6736,33.2760,0.0000,49.4669,16.6674,0.0075,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55461859320,18.2093,18.1246,0.0847,0.0000,19.8556,0.3923,19.4633,0.0000,32.4638,16.7433,17.0031,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55462041413,14.9503,14.8478,0.1025,0.0012,16.4664,1.6595,14.8069,0.0000,30.9978,16.6742,1.4660,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55462190916,17.8933,17.7504,0.1429,0.0111,20.0221,1.5506,18.4715,0.0000,32.7217,16.6655,-1.7239,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55462369849,15.6344,15.5678,0.0666,0.3280,17.0169,1.8679,15.1490,0.0000,31.4939,16.6421,1.2278,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55462526193,16.6481,16.5850,0.0631,0.0798,18.3271,1.6571,16.6700,0.0000,32.5016,16.7335,-1.0077,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55462692674,16.5715,16.4558,0.1157,0.0419,18.4467,1.7593,16.6874,0.0000,32.5870,16.5648,-0.0854,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55462858389,17.3621,17.2386,0.1235,0.0473,19.1958,1.8879,17.3079,0.0000,32.5803,16.7362,0.0067,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55463032010,15.9208,15.8478,0.0730,0.0000,17.4458,1.9127,15.5331,0.0000,31.9544,16.6276,0.6259,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55463191218,16.7659,16.6729,0.0930,0.0000,18.5133,1.5339,16.9794,0.0000,32.6612,16.7904,-0.7068,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55463358877,16.6597,16.5799,0.0798,0.0000,18.2939,1.7498,16.5441,0.0000,32.6857,16.6905,-0.0245,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55463525474,16.7537,16.6904,0.0633,0.0028,18.4013,1.6356,16.7657,0.0000,32.7165,16.6821,-0.0308,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55463693011,16.8534,16.7896,0.0638,0.0216,18.7193,1.6371,17.0822,0.0000,32.6449,16.6912,0.0716,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55463861545,16.5185,16.4306,0.0879,0.0257,19.4266,1.8746,17.5520,0.0000,32.4827,16.6301,0.1622,NA,NA -Presenter.exe,5192,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,55463750535,29.0196,29.0196,0.0000,13.7598,17.6575,1.1375,16.5200,0.0000,60.2138,16.6938,0.0000,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55464026730,17.5620,17.4226,0.1394,0.0132,20.8780,2.9338,17.9442,0.0000,32.5943,16.6938,-0.1116,NA,NA -Presenter.exe,5192,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,55464040731,19.2337,19.2337,0.0000,15.4732,4.5134,0.9042,3.6092,0.0000,47.8880,16.6218,12.3258,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55464202350,16.1114,15.9953,0.1161,0.0000,19.0199,3.3394,15.6805,0.0000,31.7261,16.6218,0.8682,NA,NA -Presenter.exe,5192,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,55464233068,13.8340,13.8340,0.0000,12.3125,4.2698,0.7656,3.5042,0.0000,45.2761,16.7566,2.6119,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55464363464,16.6221,16.5341,0.0880,0.0090,18.9670,2.9000,16.0670,0.0000,32.2365,16.7566,-0.5104,NA,NA -Presenter.exe,5192,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,55464371408,16.7929,16.7929,0.0000,13.6298,5.2128,1.1695,4.0433,0.0000,48.1987,16.6874,-2.9226,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55464529685,16.4158,16.3304,0.0854,0.0065,18.6106,2.3574,16.2532,0.0000,32.3710,16.6874,-0.1345,NA,NA -Presenter.exe,5192,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,55464539337,16.5512,16.5512,0.0000,13.7275,4.3327,0.6803,3.6524,0.0000,48.0932,16.6794,0.1055,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55464693843,17.0059,16.9150,0.0909,0.0052,18.8473,2.2062,16.6411,0.0000,32.6426,16.6794,-0.2716,NA,NA -Presenter.exe,5192,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,55464704849,16.9171,16.9171,0.0000,11.2397,7.3030,1.2741,6.0289,0.0000,48.2214,16.6834,-0.1282,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55464863902,16.4267,16.3097,0.1170,0.0060,18.1004,1.8698,16.2306,0.0000,32.3161,16.6834,0.3265,NA,NA -Presenter.exe,5192,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,55464874020,16.2675,16.2675,0.0000,10.6923,7.2330,1.2636,5.9694,0.0000,47.9877,16.6742,0.2337,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55465028169,16.4942,16.3985,0.0957,0.0045,18.0219,1.6912,16.3307,0.0000,32.5728,16.6742,-0.2567,NA,NA -Presenter.exe,5192,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,55465036695,16.5873,16.5873,0.0000,9.2388,8.7037,1.1565,7.5472,0.0000,48.3944,16.6776,-0.4067,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55465193111,16.7338,16.6329,0.1009,0.0162,18.1523,1.5328,16.6195,0.0000,32.7528,16.6776,-0.1800,NA,NA -Presenter.exe,5192,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,55465202568,16.7882,16.7882,0.0000,8.3605,9.3428,0.8814,8.4614,0.0000,48.4847,16.6884,-0.0903,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55465360449,16.6009,16.5132,0.0877,0.0092,17.3439,1.4373,15.9066,0.0000,32.6966,16.6884,0.0562,NA,NA -Presenter.exe,5192,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,55465370450,16.1942,16.1942,0.0000,7.1156,9.7624,0.8055,8.9569,0.0000,48.3849,16.6843,0.0998,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55465526458,16.8141,16.7149,0.0992,0.0128,17.7042,0.7616,16.9426,0.0000,32.7841,16.6843,-0.0875,NA,NA -Presenter.exe,5192,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,55465532392,16.9305,16.9305,0.0000,6.5467,11.0672,0.8818,10.1854,0.0000,48.8750,16.6836,-0.4901,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55465694599,16.6857,16.5737,0.1120,0.0063,18.3617,0.9093,17.4524,0.0000,32.6543,16.6836,0.1298,NA,NA -Presenter.exe,5192,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,55465701697,16.9098,16.9098,0.0000,5.2336,13.1398,1.1606,11.9792,0.0000,48.6281,16.6830,0.2469,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55465861456,16.5876,16.4775,0.1101,0.0112,18.0381,1.7002,16.3379,0.0000,32.6522,16.6830,0.0021,NA,NA -Presenter.exe,5192,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,55465870795,16.6209,16.6209,0.0000,3.9965,13.6159,0.8420,12.7739,0.0000,48.4013,16.6778,0.2268,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55466027332,16.6848,16.5740,0.1108,0.0134,18.0511,1.4759,16.5752,0.0000,32.7476,16.6778,-0.0954,NA,NA -Presenter.exe,5192,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,55466037004,16.6207,16.6207,0.0000,2.9791,14.9067,1.1956,13.7111,0.0000,48.4582,16.6850,-0.0569,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55466194180,16.6574,16.5591,0.0983,0.0115,17.7547,1.3848,16.3699,0.0000,32.7406,16.6850,0.0070,NA,NA -Presenter.exe,5192,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,55466203211,16.7033,16.7033,0.0000,1.9730,15.3864,0.8490,14.5374,0.0000,48.5225,16.5928,-0.0643,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55466360754,16.6705,16.5723,0.0982,0.0116,17.8513,1.0934,16.7579,0.0000,32.7682,16.5928,-0.0276,NA,NA -Presenter.exe,5192,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,55466370244,17.0966,17.0966,0.0000,0.7971,17.1803,1.0992,16.0811,0.0000,48.4120,16.7638,0.1105,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55466527459,16.8365,16.7092,0.1273,0.0115,18.0976,1.2504,16.8472,0.0000,32.6905,16.7638,0.0777,NA,NA -Presenter.exe,5192,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,55466541210,17.4006,17.4006,0.0000,1.0020,17.1071,0.9081,16.1990,0.0000,48.0792,16.6069,0.3328,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55466695824,16.4506,16.3367,0.1139,0.0728,17.5249,1.2198,16.3051,0.0000,32.6178,16.6069,0.0727,NA,NA -Presenter.exe,5192,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,55466715216,15.4379,15.4379,0.0000,15.7593,0.4127,0.4127,0.0000,0.0000,47.2855,16.6925,0.7937,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55466860330,16.7967,16.6620,0.1347,0.0617,17.8451,1.1542,16.6909,0.0000,32.7741,16.6925,-0.1563,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55467028297,18.1292,17.9632,0.1660,0.0791,20.8635,1.0576,19.8059,0.0000,32.6699,16.6536,0.1042,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55467209589,15.3609,15.2039,0.1570,0.0747,16.5665,2.7082,13.8583,0.0000,31.1943,16.6405,1.4756,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55467363198,17.1435,17.0361,0.1074,0.0369,19.6775,1.2664,18.4111,0.0000,32.4739,16.6880,-1.2796,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55467534633,16.3485,16.2514,0.0971,0.0197,17.9596,2.6020,15.3576,0.0000,32.0184,16.6770,0.4555,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55467698118,16.9348,16.7742,0.1606,0.0828,18.4019,1.5810,16.8209,0.0000,32.3469,16.6900,-0.3285,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55467867466,16.4438,16.3309,0.1129,0.0000,18.0015,1.5932,16.4083,0.0000,32.1021,16.7115,0.2448,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55468031904,16.7209,16.6467,0.0742,0.0690,18.2828,1.4964,16.7864,0.0000,32.3698,16.6803,-0.2677,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55468199113,16.4882,16.4140,0.0742,0.0121,18.1115,1.6740,16.4375,0.0000,32.3292,16.7568,0.0406,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55468363995,16.8162,16.7101,0.1061,0.0726,18.5059,1.5917,16.9142,0.0000,32.5978,16.5875,-0.2686,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55468532157,16.9900,16.8636,0.1264,0.0121,19.0903,1.7609,17.3294,0.0000,32.3691,16.6704,0.2287,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55468702057,16.6799,16.5820,0.0979,0.0146,19.0490,2.1362,16.9128,0.0000,32.0495,16.6644,0.3196,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55468868856,16.5391,16.4332,0.1059,0.0000,18.0118,2.4166,15.5952,0.0000,32.0340,16.6832,0.0155,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55469034247,16.2469,16.1748,0.0721,0.0000,17.9480,1.4812,16.4668,0.0000,32.1781,16.7635,-0.1441,NA,NA -dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,55469196716,17.2922,16.8327,0.4595,0.0000,18.2688,2.0763,16.1925,0.0000,32.6947,16.7247,-0.5166,NA,NA +Application,ProcessID,SwapChainAddress,PresentRuntime,SyncInterval,PresentFlags,AllowsTearing,PresentMode,FrameType,CPUStartQPC,FrameTime,CPUBusy,CPUWait,GPULatency,GPUTime,GPUBusy,GPUWait,VideoBusy,DisplayLatency,DisplayedTime,AnimationError,AnimationTime,AllInputToPhotonLatency,ClickToPhotonLatency,InstrumentedLatency +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55436501505,50.1108,50.0105,0.1003,0.0339,50.6409,0.7695,49.8714,0.0000,66.1185,16.7167,0.0000,501.5764,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55437002613,16.5401,16.4223,0.1178,0.0078,17.0936,0.6222,16.4714,0.0000,32.7244,50.0307,33.3941,551.6872,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55437168014,52.6186,52.5109,0.1077,0.0404,54.5782,0.7861,53.7921,0.0000,66.2150,16.7512,-33.4906,568.2273,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55437694200,14.7613,14.5309,0.2304,0.0090,16.0674,1.9944,14.0730,0.0000,30.3476,16.7008,35.8674,620.8459,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55437841813,16.2531,16.1819,0.0712,0.0000,17.4374,1.4483,15.9891,0.0000,32.2871,16.6816,-1.9395,635.6072,NA,NA,NA +Presenter.exe,9620,0x19E52815138,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,55437838580,17.2677,0.2995,16.9682,17.7236,0.8493,0.8493,0.0000,0.0000,49.2920,16.6802,0.0000,635.2839,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55438004344,16.6976,16.6323,0.0653,0.1150,17.7094,0.9650,16.7444,0.0000,32.7156,16.6802,-0.4285,651.8603,NA,NA,NA +Presenter.exe,9620,0x19E52815138,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,55438011257,16.5945,0.0548,16.5397,17.2197,0.9228,0.9228,0.0000,0.0000,48.7045,16.6784,0.5875,652.5516,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55438171320,16.5597,16.4486,0.1111,0.0219,17.8177,1.1749,16.6428,0.0000,32.6982,16.6784,0.0174,668.5579,NA,NA,NA +Presenter.exe,9620,0x19E52815138,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,55438177202,16.6547,0.4308,16.2239,17.3373,1.0901,1.0901,0.0000,0.0000,48.7884,16.6644,-0.0839,669.1461,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55438336917,16.7907,16.6914,0.0993,0.0596,18.0030,1.2424,16.7606,0.0000,32.8169,16.6644,-0.1187,685.1176,NA,NA,NA +Presenter.exe,9620,0x19E52815138,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,55438343749,16.7320,0.4478,16.2842,17.5208,1.3265,1.3265,0.0000,0.0000,48.7981,16.5867,-0.0097,685.8008,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55438504824,16.5653,16.4757,0.0896,0.0063,17.9082,1.2796,16.6286,0.0000,32.6906,16.5867,0.1263,701.9083,NA,NA,NA +Presenter.exe,9620,0x19E52815138,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,55438511069,16.9560,1.8975,15.0585,17.3590,0.7456,0.7456,0.0000,0.0000,48.6528,16.7917,0.1453,702.5328,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55438670477,16.7312,16.6446,0.0866,0.0274,17.8232,1.3350,16.4882,0.0000,32.7120,16.7917,-0.0214,718.4736,NA,NA,NA +Presenter.exe,9620,0x19E52815138,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,55438680629,16.2840,0.1706,16.1134,16.9169,0.8501,0.8501,0.0000,0.0000,48.4885,16.6784,0.1643,719.4888,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55438837789,16.5213,16.4223,0.0990,0.0016,17.7636,1.1854,16.5782,0.0000,32.7725,16.6784,-0.0605,735.2048,NA,NA,NA +Presenter.exe,9620,0x19E52815138,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,55438843469,16.8516,0.0790,16.7726,17.2771,1.0560,1.0560,0.0000,0.0000,48.8829,16.6787,-0.3944,735.7728,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55439003002,16.9711,16.8869,0.0842,0.0719,18.0434,1.1790,16.8644,0.0000,32.9296,16.6787,-0.1571,751.7261,NA,NA,NA +Presenter.exe,9620,0x19E52815138,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,55439011985,16.7069,0.0111,16.6958,17.3209,1.1343,1.1343,0.0000,0.0000,48.7100,16.6831,0.1729,752.6244,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55439172713,16.6640,16.5648,0.0992,0.0057,17.7905,1.1609,16.6296,0.0000,32.6372,16.6831,0.2924,768.6972,NA,NA,NA +Presenter.exe,9620,0x19E52815138,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,55439179054,16.6465,0.0087,16.6378,17.2657,1.1843,1.1843,0.0000,0.0000,48.6862,16.6809,0.0238,769.3313,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55439339353,16.5331,16.4216,0.1115,0.0059,17.7498,1.1966,16.5532,0.0000,32.6563,16.6809,-0.0191,785.3612,NA,NA,NA +Presenter.exe,9620,0x19E52815138,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,55439345519,16.5922,0.0088,16.5834,17.2445,1.2125,1.2125,0.0000,0.0000,48.7206,16.5942,-0.0344,785.9778,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55439504684,16.8427,16.7567,0.0860,0.0583,17.9540,1.1725,16.7815,0.0000,32.8041,16.5942,-0.1478,801.8943,NA,NA,NA +Presenter.exe,9620,0x19E52815138,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,55439511441,16.8224,0.0083,16.8141,17.4371,1.1839,1.1839,0.0000,0.0000,48.7226,16.7377,-0.0020,802.5700,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55439673111,16.5415,16.4164,0.1251,0.0080,17.7537,1.2290,16.5247,0.0000,32.5556,16.7377,0.2485,818.7370,NA,NA,NA +Presenter.exe,9620,0x19E52815138,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,55439679665,16.5530,0.0091,16.5439,17.2061,1.1995,1.1995,0.0000,0.0000,48.6379,16.6240,0.0847,819.3924,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55439838526,16.6798,16.5928,0.0870,0.0748,18.0254,1.1557,16.8697,0.0000,32.7518,16.6240,-0.1962,835.2785,NA,NA,NA +Presenter.exe,9620,0x19E52815138,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,55439845195,16.6575,0.0266,16.6309,17.5614,1.1521,1.1521,0.0000,0.0000,48.7089,16.7115,-0.0710,835.9454,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55440005324,16.9505,16.8390,0.1115,0.0063,18.1929,1.4676,16.7253,0.0000,32.6960,16.7115,0.0558,851.9583,NA,NA,NA +Presenter.exe,9620,0x19E52815138,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,55440011770,16.8926,0.0289,16.8637,17.6242,0.9064,0.9064,0.0000,0.0000,48.7629,16.6588,-0.0540,852.6029,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55440174829,16.5534,16.4664,0.0870,0.0501,17.7820,1.2073,16.5747,0.0000,32.4570,16.6588,0.2390,868.9088,NA,NA,NA +Presenter.exe,9620,0x19E52815138,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,55440180696,16.4343,0.0286,16.4057,17.3135,1.1001,1.1001,0.0000,0.0000,48.5291,16.7580,0.2338,869.4955,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55440340363,16.4844,16.3959,0.0885,0.0094,17.5603,1.3185,16.2418,0.0000,32.5624,16.7580,-0.1054,885.4622,NA,NA,NA +Presenter.exe,9620,0x19E52815138,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,55440345039,16.4981,0.0267,16.4714,17.1961,0.9065,0.9065,0.0000,0.0000,48.8528,16.5970,-0.3237,885.9298,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55440505207,16.5985,16.4382,0.1603,0.0654,17.6025,1.0602,16.5423,0.0000,32.8360,16.5970,-0.2736,901.9466,NA,NA,NA +Presenter.exe,9620,0x19E52815138,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,55440510020,16.8552,0.0091,16.8461,17.2571,0.8614,0.8614,0.0000,0.0000,48.9517,16.6831,-0.0989,902.4279,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55440671192,16.8966,16.7856,0.1110,0.0013,18.0243,1.1163,16.9080,0.0000,32.8345,16.6831,0.0015,918.5451,NA,NA,NA +Presenter.exe,9620,0x19E52815138,D3D9,-1,0,0,Composed: Copy with GPU GDI,Application,55440678572,16.6965,0.0326,16.6639,17.3569,1.0225,1.0225,0.0000,0.0000,48.7796,417.0960,0.1721,919.2831,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55440840158,16.4872,16.3366,0.1506,0.0366,17.6537,1.1489,16.5048,0.0000,32.6210,434.0596,0.2135,935.4417,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Other,Application,55441005030,146.5247,143.1792,3.3455,0.0000,0.0000,0.0000,0.0000,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55442470277,274.1053,273.8454,0.2599,271.8533,14.7956,0.2323,14.5633,0.0000,303.6687,16.3021,-271.0477,1098.4536,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55445211330,31.8504,31.6304,0.2200,0.2043,34.3316,2.8923,31.4393,0.0000,45.8655,16.7018,257.8032,1372.5589,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55445529834,15.0267,14.8796,0.1471,0.0000,16.5984,2.7405,13.8579,0.0000,30.7169,16.6530,15.1486,1404.4093,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55445680101,16.4626,16.3606,0.1020,0.0000,18.4022,1.5701,16.8321,0.0000,32.3432,16.6902,-1.6263,1419.4360,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55445844727,18.2885,18.0987,0.1898,0.0000,21.2736,1.9399,19.3337,0.0000,32.5708,16.6734,-0.2276,1435.8986,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55446027612,15.3800,15.2740,0.1060,0.8430,15.9495,2.1427,13.8068,0.0000,30.9557,16.6712,1.6151,1454.1871,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55446181412,17.3274,17.2165,0.1109,0.0000,18.7235,1.4331,17.2904,0.0000,32.2469,16.6744,-1.2912,1469.5671,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55446354686,15.8835,15.7935,0.0900,0.0000,17.2525,1.4220,15.8305,0.0000,31.5939,16.6839,0.6530,1486.8945,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55446513521,16.2791,16.1671,0.1120,0.0000,17.9211,1.3836,16.5375,0.0000,32.3943,33.3865,-0.8004,1502.7780,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55446676312,33.8728,33.7359,0.1369,0.0200,35.4284,1.7579,33.6705,0.0000,49.5017,16.6452,-17.1074,1519.0571,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55447015040,16.3951,16.3270,0.0681,0.0000,17.3905,1.6031,15.7874,0.0000,32.2741,16.6786,17.2276,1552.9299,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55447178991,16.5435,16.4462,0.0973,0.0032,17.5201,1.0063,16.5138,0.0000,32.5576,16.7210,-0.2835,1569.3250,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55447344426,16.6431,16.5735,0.0696,0.0000,17.0746,1.0040,16.0706,0.0000,32.7351,16.6436,-0.1775,1585.8685,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55447510857,16.8596,16.7520,0.1076,0.0000,18.4560,0.4765,17.9795,0.0000,32.7356,16.7858,-0.0005,1602.5116,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55447679453,16.8039,16.7188,0.0851,0.0000,18.5164,1.6411,16.8753,0.0000,32.6618,16.6031,0.0738,1619.3712,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55447847492,16.7271,16.6281,0.0990,0.0294,18.4753,1.6702,16.8051,0.0000,32.4610,16.6567,0.2008,1636.1751,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55448014763,16.3819,16.2350,0.1469,0.0000,17.1753,1.8234,15.3519,0.0000,32.3906,33.4598,0.0704,1652.9022,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55448178582,34.6409,34.5386,0.1023,0.0000,36.2226,1.0617,35.1609,0.0000,49.4685,16.6068,-17.0779,1669.2841,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55448524991,15.8785,15.8150,0.0635,0.0000,18.0022,1.6131,16.3891,0.0000,31.4344,16.7039,18.0341,1703.9250,NA,NA,NA +Presenter.exe,8536,0x197B10BAB70,DXGI,0,0,0,Composed: Flip,Application,55448709072,13.9509,12.3812,1.5697,1.1699,0.8218,0.8218,0.0000,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55448683776,18.7752,18.6639,0.1113,0.0695,19.0200,2.0580,16.9620,0.0000,32.2598,16.6613,-0.8254,1719.8035,NA,NA,NA +Presenter.exe,8536,0x197B10BAB70,DXGI,0,0,0,Composed: Flip,Application,55448848581,14.2491,14.0543,0.1948,0.1171,0.8543,0.8543,0.0000,0.0000,32.4406,16.7707,0.0000,1736.2840,NA,NA,NA +Presenter.exe,8536,0x197B10BAB70,DXGI,0,0,0,Hardware: Independent Flip,Application,55448991072,15.5788,15.4220,0.1568,18.2978,0.9228,0.9228,0.0000,0.0000,34.9622,16.6837,-2.5216,1750.5331,NA,NA,NA +Presenter.exe,8536,0x197B10BAB70,DXGI,0,0,0,Hardware: Independent Flip,Application,55449146860,15.8411,15.5416,0.2995,4.4137,14.9245,0.9202,14.0043,0.0000,36.0671,16.7043,-1.1049,1766.1119,NA,NA,NA +Presenter.exe,8536,0x197B10BAB70,DXGI,0,0,0,Hardware: Independent Flip,Application,55449305271,15.5389,15.2636,0.2753,3.6232,16.5798,0.7561,15.8237,0.0000,36.9303,16.6633,-0.8632,1781.9530,NA,NA,NA +Presenter.exe,8536,0x197B10BAB70,DXGI,0,0,0,Hardware: Independent Flip,Application,55449460660,15.5628,15.3440,0.2188,4.9241,16.4444,0.7436,15.7008,0.0000,38.0547,16.6939,-1.1244,1797.4919,NA,NA,NA +Presenter.exe,8536,0x197B10BAB70,DXGI,0,0,0,Hardware: Independent Flip,Application,55449616288,15.5706,15.3821,0.1885,6.0283,16.4407,0.7858,15.6549,0.0000,39.1858,16.6636,-1.1311,1813.0547,NA,NA,NA +Presenter.exe,8536,0x197B10BAB70,DXGI,0,0,0,Hardware: Independent Flip,Application,55449771994,15.6146,15.4396,0.1750,7.1505,16.4420,0.7481,15.6939,0.0000,40.2788,16.7011,-1.0930,1828.6253,NA,NA,NA +Presenter.exe,8536,0x197B10BAB70,DXGI,0,0,0,Hardware: Independent Flip,Application,55449928140,15.6502,15.4449,0.2053,8.2074,16.4344,0.7963,15.6381,0.0000,41.3653,16.6808,-1.0865,1844.2399,NA,NA,NA +Presenter.exe,8536,0x197B10BAB70,DXGI,0,0,0,Hardware: Independent Flip,Application,55450084642,15.8050,15.4137,0.3913,9.2189,16.4737,0.8018,15.6719,0.0000,42.3959,16.6159,-1.0306,1859.8901,NA,NA,NA +Presenter.exe,8536,0x197B10BAB70,DXGI,0,0,0,Hardware: Independent Flip,Application,55450242692,15.4415,15.2522,0.1893,10.1369,16.4310,0.7974,15.6336,0.0000,43.2068,16.7397,-0.8109,1875.6951,NA,NA,NA +Presenter.exe,8536,0x197B10BAB70,DXGI,0,0,0,Hardware: Independent Flip,Application,55450397107,15.7040,15.4234,0.2806,11.3747,16.3497,0.7703,15.5794,0.0000,44.5050,16.6877,-1.2982,1891.1366,NA,NA,NA +Presenter.exe,8536,0x197B10BAB70,DXGI,0,0,0,Hardware: Independent Flip,Application,55450554147,15.6419,15.2621,0.3798,12.1742,16.6038,0.8122,15.7916,0.0000,45.4887,16.7217,-0.9837,1906.8406,NA,NA,NA +Presenter.exe,8536,0x197B10BAB70,DXGI,0,0,0,Hardware: Independent Flip,Application,55450710566,15.4821,15.3284,0.1537,13.3501,16.4731,0.7912,15.6819,0.0000,46.5685,16.5720,-1.0798,1922.4825,NA,NA,NA +Presenter.exe,8536,0x197B10BAB70,DXGI,0,0,0,Hardware: Independent Flip,Application,55450865387,15.6000,15.4061,0.1939,14.5876,16.4485,0.8922,15.5563,0.0000,47.6584,16.6783,-1.0899,1937.9646,NA,NA,NA +Presenter.exe,8536,0x197B10BAB70,DXGI,0,0,0,Hardware: Independent Flip,Application,55451021387,15.7690,15.4661,0.3029,15.6473,16.3684,1.0362,15.3322,0.0000,48.7367,16.7030,-1.0783,1953.5646,NA,NA,NA +Presenter.exe,8536,0x197B10BAB70,DXGI,0,0,0,Hardware: Independent Flip,Application,55451179077,15.4013,15.2889,0.1124,16.3738,16.5524,0.7307,15.8217,0.0000,49.6707,16.6734,-0.9340,1969.3336,NA,NA,NA +Presenter.exe,8536,0x197B10BAB70,DXGI,0,0,0,Hardware: Independent Flip,Application,55451333090,15.7430,15.5549,0.1881,17.6609,16.5604,0.7697,15.7907,0.0000,50.9428,16.7031,-1.2721,1984.7349,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55448871528,13.9253,13.7786,0.1467,0.0024,14.0715,0.4578,13.6137,0.0000,30.1459,300.2679,2.1139,1738.5787,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55449010781,300.8029,300.7106,0.0923,0.0000,301.2390,3.9056,297.3334,0.0000,316.4885,16.6810,-286.3426,1752.5040,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55452018810,16.6437,16.5277,0.1160,0.0068,18.6162,0.4569,18.1593,0.0000,32.3666,49.9865,284.1219,2053.3069,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55452185247,49.7665,49.6460,0.1205,0.0000,51.2320,2.1737,49.0583,0.0000,65.7094,16.6996,-33.3428,2069.9506,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55452682912,16.5384,16.4273,0.1111,0.0000,16.8422,1.4747,15.3675,0.0000,32.6425,16.6928,33.0669,2119.7171,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55452848296,17.8113,17.7147,0.0966,0.0000,20.0068,0.3528,19.6540,0.0000,32.7969,16.7702,-0.1544,2136.2555,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55453026409,15.5953,15.5063,0.0890,0.0000,17.6042,2.2063,15.3979,0.0000,31.7558,49.9776,1.0411,2154.0668,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55453182362,50.4664,50.3219,0.1445,0.0000,53.2870,2.4080,50.8790,0.0000,66.1381,16.6788,-34.3823,2169.6621,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55453687026,17.0914,16.9389,0.1525,0.0167,19.6402,2.8172,16.8230,0.0000,32.3505,16.6652,33.7876,2220.1285,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55453857940,16.0218,15.9155,0.1063,0.0000,17.8749,2.6085,15.2664,0.0000,31.9243,16.6704,0.4262,2237.2199,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55454018158,20.2905,20.2157,0.0748,0.0000,20.6730,1.8226,18.8504,0.0000,32.5729,18.0375,-0.6486,2253.2417,NA,NA,NA +Presenter.exe,5236,0x285B4C0D1B0,DXGI,0,0,0,Composed: Flip,Application,55454168764,15.5593,13.1056,2.4537,0.8807,0.8945,0.8945,0.0000,0.0000,NA,NA,NA,NA,NA,NA,NA +Presenter.exe,5236,0x285B4C0D1B0,DXGI,0,0,1,Hardware: Independent Flip,Application,55454324357,13.5431,13.3020,0.2411,0.1296,18.6731,0.9864,17.6867,0.0000,18.8027,10.2946,-1844674407370938.5000,2283.8616,NA,NA,NA +Presenter.exe,5236,0x285B4C0D1B0,DXGI,0,0,1,Hardware: Independent Flip,Application,55454459788,15.5504,15.2448,0.3056,6.5527,0.7205,0.7205,0.0000,0.0000,15.5542,15.6223,3.2485,2297.4047,NA,NA,NA +Presenter.exe,5236,0x285B4C0D1B0,DXGI,0,0,1,Hardware: Independent Flip,Application,55454615292,15.5911,15.3901,0.2010,0.8622,0.7932,0.7932,0.0000,0.0000,15.6261,15.8218,-0.0719,2312.9551,NA,NA,NA +Presenter.exe,5236,0x285B4C0D1B0,DXGI,0,0,1,Hardware: Independent Flip,Application,55454771203,15.8199,15.3758,0.4441,0.4673,0.8307,0.8307,0.0000,0.0000,15.8568,15.4013,-0.2307,2328.5462,NA,NA,NA +Presenter.exe,5236,0x285B4C0D1B0,DXGI,0,0,1,Hardware: Independent Flip,Application,55454929402,15.4114,15.2197,0.1917,3.0213,1.0091,1.0091,0.0000,0.0000,15.4382,15.9912,0.4186,2344.3661,NA,NA,NA +Presenter.exe,5236,0x285B4C0D1B0,DXGI,0,0,1,Hardware: Independent Flip,Application,55455083516,15.9766,15.4119,0.5647,0.3353,0.8108,0.8108,0.0000,0.0000,16.0180,15.7889,-0.5798,2359.7775,NA,NA,NA +Presenter.exe,5236,0x285B4C0D1B0,DXGI,0,0,1,Hardware: Independent Flip,Application,55455243282,15.8175,15.0650,0.7525,0.9199,0.8989,0.8989,0.0000,0.0000,15.8303,15.3806,0.1877,2375.7541,NA,NA,NA +Presenter.exe,5236,0x285B4C0D1B0,DXGI,0,0,1,Hardware: Independent Flip,Application,55455401457,15.3597,14.8770,0.4827,0.7452,0.8694,0.8694,0.0000,0.0000,15.3934,15.3255,0.4369,2391.5716,NA,NA,NA +Presenter.exe,5236,0x285B4C0D1B0,DXGI,0,0,1,Hardware: Independent Flip,Application,55455555054,15.3272,15.1119,0.2153,0.9204,0.7632,0.7632,0.0000,0.0000,15.3592,15.6457,0.0342,2406.9313,NA,NA,NA +Presenter.exe,5236,0x285B4C0D1B0,DXGI,0,0,1,Hardware: Independent Flip,Application,55455708326,15.6349,15.4067,0.2282,0.3704,0.7631,0.7631,0.0000,0.0000,15.6777,16.1496,-0.3185,2422.2585,NA,NA,NA +Presenter.exe,5236,0x285B4C0D1B0,DXGI,0,0,1,Hardware: Independent Flip,Application,55455864675,16.1495,15.4016,0.7479,0.4990,0.8032,0.8032,0.0000,0.0000,16.1924,15.1348,-0.5147,2437.8934,NA,NA,NA +Presenter.exe,5236,0x285B4C0D1B0,DXGI,0,0,1,Hardware: Independent Flip,Application,55456026170,15.1227,14.8694,0.2533,0.7465,0.8118,0.8118,0.0000,0.0000,15.1777,15.9401,1.0147,2454.0429,NA,NA,NA +Presenter.exe,5236,0x285B4C0D1B0,DXGI,0,0,1,Hardware: Independent Flip,Application,55456177397,15.9643,15.3754,0.5889,0.3027,0.7669,0.7669,0.0000,0.0000,15.9951,15.7031,-0.8174,2469.1656,NA,NA,NA +Presenter.exe,5236,0x285B4C0D1B0,DXGI,0,0,1,Hardware: Independent Flip,Application,55456337040,15.6782,15.0343,0.6439,0.9248,0.7517,0.7517,0.0000,0.0000,15.7339,15.1543,0.2612,2485.1299,NA,NA,NA +Presenter.exe,5236,0x285B4C0D1B0,DXGI,0,0,1,Hardware: Independent Flip,Application,55456493822,15.1537,14.9736,0.1801,0.8496,0.7915,0.7915,0.0000,0.0000,15.2100,15.7950,0.5239,2500.8081,NA,NA,NA +Presenter.exe,5236,0x285B4C0D1B0,DXGI,0,0,1,Hardware: Independent Flip,Application,55456645359,15.8232,15.4723,0.3509,0.5056,0.7972,0.7972,0.0000,0.0000,15.8513,15.4589,-0.6413,2515.9618,NA,NA,NA +Presenter.exe,5236,0x285B4C0D1B0,DXGI,0,0,1,Hardware: Independent Flip,Application,55456803591,15.4450,15.2384,0.2066,0.2562,0.7690,0.7690,0.0000,0.0000,15.4870,15.8447,0.3643,2531.7850,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55454221063,12.8921,12.7797,0.1124,0.0190,13.1200,0.3837,12.7363,0.0000,30.3199,415.6576,2.2530,2273.5322,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,2,0,Hardware: Legacy Flip,Application,55454349984,420.5636,420.2166,0.3470,0.0000,420.5744,2.5965,417.9779,0.0000,433.0854,16.6921,-402.7655,2286.4243,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,2,0,Hardware: Legacy Flip,Application,55458555620,13.3155,13.1963,0.1192,0.0863,13.4508,0.1428,13.3080,0.0000,29.2139,16.6393,403.8715,2706.9879,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55458688775,32.9514,18.3010,14.6504,0.0000,20.6564,0.3599,20.2965,0.0000,32.5377,33.4337,-3.3238,2720.3034,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55459018289,17.5823,17.4904,0.0919,0.0000,33.5392,2.6582,30.8810,0.0000,33.0200,16.6407,-0.4823,2753.2548,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55459194112,16.2480,16.1818,0.0662,0.0131,17.8640,1.5298,16.3342,0.0000,32.0784,16.6872,0.9416,2770.8371,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55459356592,16.8558,16.7306,0.1252,0.0235,18.4220,1.6564,16.7656,0.0000,32.5176,33.3605,-0.4392,2787.0851,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55459525150,32.9304,32.7987,0.1317,0.0377,34.9276,1.7539,33.1737,0.0000,49.0223,33.4465,-16.5047,2803.9409,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55459854454,33.3227,33.1569,0.1658,0.0408,35.1913,2.2130,32.9783,0.0000,49.5384,33.3119,-0.5161,2836.8713,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55460187681,33.3376,33.2583,0.0793,0.0329,33.7661,2.1431,31.6230,0.0000,49.5276,33.4065,0.0108,2870.1940,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55460521057,33.4083,33.2718,0.1365,0.0587,33.7105,0.6733,33.0372,0.0000,49.5965,33.3033,-0.0689,2903.5316,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55460855140,33.3702,33.2733,0.0969,0.0000,33.7822,0.5526,33.2296,0.0000,49.4915,33.3531,0.1050,2936.9399,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55461188842,33.3773,33.2909,0.0864,0.0339,33.9008,0.6189,33.2819,0.0000,49.4744,33.3698,0.0171,2970.3101,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55461522615,33.6705,33.5245,0.1460,0.1088,33.9496,0.6736,33.2760,0.0000,49.4669,16.6674,0.0075,3003.6874,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55461859320,18.2093,18.1246,0.0847,0.0000,19.8556,0.3923,19.4633,0.0000,32.4638,16.7433,17.0031,3037.3579,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55462041413,14.9503,14.8478,0.1025,0.0012,16.4664,1.6595,14.8069,0.0000,30.9978,16.6742,1.4660,3055.5672,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55462190916,17.8933,17.7504,0.1429,0.0111,20.0221,1.5506,18.4715,0.0000,32.7217,16.6655,-1.7239,3070.5175,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55462369849,15.6344,15.5678,0.0666,0.3280,17.0169,1.8679,15.1490,0.0000,31.4939,16.6421,1.2278,3088.4108,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55462526193,16.6481,16.5850,0.0631,0.0798,18.3271,1.6571,16.6700,0.0000,32.5016,16.7335,-1.0077,3104.0452,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55462692674,16.5715,16.4558,0.1157,0.0419,18.4467,1.7593,16.6874,0.0000,32.5870,16.5648,-0.0854,3120.6933,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55462858389,17.3621,17.2386,0.1235,0.0473,19.1958,1.8879,17.3079,0.0000,32.5803,16.7362,0.0067,3137.2648,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55463032010,15.9208,15.8478,0.0730,0.0000,17.4458,1.9127,15.5331,0.0000,31.9544,16.6276,0.6259,3154.6269,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55463191218,16.7659,16.6729,0.0930,0.0000,18.5133,1.5339,16.9794,0.0000,32.6612,16.7904,-0.7068,3170.5477,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55463358877,16.6597,16.5799,0.0798,0.0000,18.2939,1.7498,16.5441,0.0000,32.6857,16.6905,-0.0245,3187.3136,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55463525474,16.7537,16.6904,0.0633,0.0028,18.4013,1.6356,16.7657,0.0000,32.7165,16.6821,-0.0308,3203.9733,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55463693011,16.8534,16.7896,0.0638,0.0216,18.7193,1.6371,17.0822,0.0000,32.6449,16.6912,0.0716,3220.7270,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55463861545,16.5185,16.4306,0.0879,0.0257,19.4266,1.8746,17.5520,0.0000,32.4827,16.6301,0.1622,3237.5804,NA,NA,NA +Presenter.exe,5192,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,Application,55463750535,29.0196,29.0196,0.0000,13.7598,17.6575,1.1375,16.5200,0.0000,60.2138,16.6938,0.0000,3226.4794,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55464026730,17.5620,17.4226,0.1394,0.0132,20.8780,2.9338,17.9442,0.0000,32.5943,16.6938,-0.1116,3254.0989,NA,NA,NA +Presenter.exe,5192,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,Application,55464040731,19.2337,19.2337,0.0000,15.4732,4.5134,0.9042,3.6092,0.0000,47.8880,16.6218,12.3258,3255.4990,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55464202350,16.1114,15.9953,0.1161,0.0000,19.0199,3.3394,15.6805,0.0000,31.7261,16.6218,0.8682,3271.6609,NA,NA,NA +Presenter.exe,5192,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,Application,55464233068,13.8340,13.8340,0.0000,12.3125,4.2698,0.7656,3.5042,0.0000,45.2761,16.7566,2.6119,3274.7327,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55464363464,16.6221,16.5341,0.0880,0.0090,18.9670,2.9000,16.0670,0.0000,32.2365,16.7566,-0.5104,3287.7723,NA,NA,NA +Presenter.exe,5192,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,Application,55464371408,16.7929,16.7929,0.0000,13.6298,5.2128,1.1695,4.0433,0.0000,48.1987,16.6874,-2.9226,3288.5667,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55464529685,16.4158,16.3304,0.0854,0.0065,18.6106,2.3574,16.2532,0.0000,32.3710,16.6874,-0.1345,3304.3944,NA,NA,NA +Presenter.exe,5192,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,Application,55464539337,16.5512,16.5512,0.0000,13.7275,4.3327,0.6803,3.6524,0.0000,48.0932,16.6794,0.1055,3305.3596,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55464693843,17.0059,16.9150,0.0909,0.0052,18.8473,2.2062,16.6411,0.0000,32.6426,16.6794,-0.2716,3320.8102,NA,NA,NA +Presenter.exe,5192,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,Application,55464704849,16.9171,16.9171,0.0000,11.2397,7.3030,1.2741,6.0289,0.0000,48.2214,16.6834,-0.1282,3321.9108,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55464863902,16.4267,16.3097,0.1170,0.0060,18.1004,1.8698,16.2306,0.0000,32.3161,16.6834,0.3265,3337.8161,NA,NA,NA +Presenter.exe,5192,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,Application,55464874020,16.2675,16.2675,0.0000,10.6923,7.2330,1.2636,5.9694,0.0000,47.9877,16.6742,0.2337,3338.8279,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55465028169,16.4942,16.3985,0.0957,0.0045,18.0219,1.6912,16.3307,0.0000,32.5728,16.6742,-0.2567,3354.2428,NA,NA,NA +Presenter.exe,5192,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,Application,55465036695,16.5873,16.5873,0.0000,9.2388,8.7037,1.1565,7.5472,0.0000,48.3944,16.6776,-0.4067,3355.0954,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55465193111,16.7338,16.6329,0.1009,0.0162,18.1523,1.5328,16.6195,0.0000,32.7528,16.6776,-0.1800,3370.7370,NA,NA,NA +Presenter.exe,5192,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,Application,55465202568,16.7882,16.7882,0.0000,8.3605,9.3428,0.8814,8.4614,0.0000,48.4847,16.6884,-0.0903,3371.6827,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55465360449,16.6009,16.5132,0.0877,0.0092,17.3439,1.4373,15.9066,0.0000,32.6966,16.6884,0.0562,3387.4708,NA,NA,NA +Presenter.exe,5192,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,Application,55465370450,16.1942,16.1942,0.0000,7.1156,9.7624,0.8055,8.9569,0.0000,48.3849,16.6843,0.0998,3388.4709,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55465526458,16.8141,16.7149,0.0992,0.0128,17.7042,0.7616,16.9426,0.0000,32.7841,16.6843,-0.0875,3404.0717,NA,NA,NA +Presenter.exe,5192,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,Application,55465532392,16.9305,16.9305,0.0000,6.5467,11.0672,0.8818,10.1854,0.0000,48.8750,16.6836,-0.4901,3404.6651,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55465694599,16.6857,16.5737,0.1120,0.0063,18.3617,0.9093,17.4524,0.0000,32.6543,16.6836,0.1298,3420.8858,NA,NA,NA +Presenter.exe,5192,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,Application,55465701697,16.9098,16.9098,0.0000,5.2336,13.1398,1.1606,11.9792,0.0000,48.6281,16.6830,0.2469,3421.5956,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55465861456,16.5876,16.4775,0.1101,0.0112,18.0381,1.7002,16.3379,0.0000,32.6522,16.6830,0.0021,3437.5715,NA,NA,NA +Presenter.exe,5192,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,Application,55465870795,16.6209,16.6209,0.0000,3.9965,13.6159,0.8420,12.7739,0.0000,48.4013,16.6778,0.2268,3438.5054,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55466027332,16.6848,16.5740,0.1108,0.0134,18.0511,1.4759,16.5752,0.0000,32.7476,16.6778,-0.0954,3454.1591,NA,NA,NA +Presenter.exe,5192,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,Application,55466037004,16.6207,16.6207,0.0000,2.9791,14.9067,1.1956,13.7111,0.0000,48.4582,16.6850,-0.0569,3455.1263,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55466194180,16.6574,16.5591,0.0983,0.0115,17.7547,1.3848,16.3699,0.0000,32.7406,16.6850,0.0070,3470.8439,NA,NA,NA +Presenter.exe,5192,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,Application,55466203211,16.7033,16.7033,0.0000,1.9730,15.3864,0.8490,14.5374,0.0000,48.5225,16.5928,-0.0643,3471.7470,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55466360754,16.6705,16.5723,0.0982,0.0116,17.8513,1.0934,16.7579,0.0000,32.7682,16.5928,-0.0276,3487.5013,NA,NA,NA +Presenter.exe,5192,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,Application,55466370244,17.0966,17.0966,0.0000,0.7971,17.1803,1.0992,16.0811,0.0000,48.4120,16.7638,0.1105,3488.4503,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55466527459,16.8365,16.7092,0.1273,0.0115,18.0976,1.2504,16.8472,0.0000,32.6905,16.7638,0.0777,3504.1718,NA,NA,NA +Presenter.exe,5192,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,Application,55466541210,17.4006,17.4006,0.0000,1.0020,17.1071,0.9081,16.1990,0.0000,48.0792,16.6069,0.3328,3505.5469,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55466695824,16.4506,16.3367,0.1139,0.0728,17.5249,1.2198,16.3051,0.0000,32.6178,16.6069,0.0727,3521.0083,NA,NA,NA +Presenter.exe,5192,0x0,Other,-1,0,0,Composed: Copy with GPU GDI,Application,55466715216,15.4379,15.4379,0.0000,15.7593,0.4127,0.4127,0.0000,0.0000,47.2855,16.6925,0.7937,3522.9475,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55466860330,16.7967,16.6620,0.1347,0.0617,17.8451,1.1542,16.6909,0.0000,32.7741,16.6925,-0.1563,3537.4589,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55467028297,18.1292,17.9632,0.1660,0.0791,20.8635,1.0576,19.8059,0.0000,32.6699,16.6536,0.1042,3554.2556,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55467209589,15.3609,15.2039,0.1570,0.0747,16.5665,2.7082,13.8583,0.0000,31.1943,16.6405,1.4756,3572.3848,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55467363198,17.1435,17.0361,0.1074,0.0369,19.6775,1.2664,18.4111,0.0000,32.4739,16.6880,-1.2796,3587.7457,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55467534633,16.3485,16.2514,0.0971,0.0197,17.9596,2.6020,15.3576,0.0000,32.0184,16.6770,0.4555,3604.8892,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55467698118,16.9348,16.7742,0.1606,0.0828,18.4019,1.5810,16.8209,0.0000,32.3469,16.6900,-0.3285,3621.2377,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55467867466,16.4438,16.3309,0.1129,0.0000,18.0015,1.5932,16.4083,0.0000,32.1021,16.7115,0.2448,3638.1725,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55468031904,16.7209,16.6467,0.0742,0.0690,18.2828,1.4964,16.7864,0.0000,32.3698,16.6803,-0.2677,3654.6163,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55468199113,16.4882,16.4140,0.0742,0.0121,18.1115,1.6740,16.4375,0.0000,32.3292,16.7568,0.0406,3671.3372,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55468363995,16.8162,16.7101,0.1061,0.0726,18.5059,1.5917,16.9142,0.0000,32.5978,16.5875,-0.2686,3687.8254,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55468532157,16.9900,16.8636,0.1264,0.0121,19.0903,1.7609,17.3294,0.0000,32.3691,16.6704,0.2287,3704.6416,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55468702057,16.6799,16.5820,0.0979,0.0146,19.0490,2.1362,16.9128,0.0000,32.0495,16.6644,0.3196,3721.6316,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55468868856,16.5391,16.4332,0.1059,0.0000,18.0118,2.4166,15.5952,0.0000,32.0340,16.6832,0.0155,3738.3115,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55469034247,16.2469,16.1748,0.0721,0.0000,17.9480,1.4812,16.4668,0.0000,32.1781,16.7635,-0.1441,3754.8506,NA,NA,NA +dwm.exe,10376,0x1BF098B1ED0,DXGI,1,0,0,Hardware: Legacy Flip,Application,55469196716,17.2922,16.8327,0.4595,0.0000,18.2688,2.0763,16.1925,0.0000,32.6947,16.7247,-0.5166,3771.0975,NA,NA,NA diff --git a/Tests/Gold/test_case_5.csv b/Tests/Gold/test_case_5.csv index 2fdc8d7f..96cdcda9 100644 --- a/Tests/Gold/test_case_5.csv +++ b/Tests/Gold/test_case_5.csv @@ -1,646 +1,648 @@ -Application,ProcessID,SwapChainAddress,PresentRuntime,SyncInterval,PresentFlags,AllowsTearing,PresentMode,CPUStartQPC,FrameTime,CPUBusy,CPUWait,GPULatency,GPUTime,GPUBusy,GPUWait,VideoBusy,DisplayLatency,DisplayedTime,AnimationError,AllInputToPhotonLatency,ClickToPhotonLatency -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466961432001,17.6073,17.2350,0.3723,17.0327,0.5275,0.5275,0.0000,0.0000,31.3980,16.7586,0.0000,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466961521260,11.0804,10.5535,0.5269,1.1731,10.1685,1.5667,8.6018,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,0,0,Hardware: Legacy Flip,2466961428054,17.5867,16.8355,0.7512,0.3386,17.0888,0.6061,16.4827,0.0000,31.8110,16.7618,0.0000,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466961608074,16.5670,16.0949,0.4721,15.8758,0.5906,0.5906,0.0000,0.0000,30.5493,16.6266,0.8487,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466961632064,11.0437,10.4814,0.5623,0.2612,10.9128,0.5496,10.3632,0.0000,28.1718,16.6267,0.0000,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,0,0,Hardware: Legacy Flip,2466961603921,16.4443,15.8253,0.6190,0.3682,15.9229,1.5724,14.3505,0.0000,30.9861,16.6267,0.8249,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466961773744,16.1648,15.7207,0.4441,15.5395,0.5192,0.5192,0.0000,0.0000,30.6089,16.7140,-0.0596,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466961742501,10.9768,10.4295,0.5473,0.1897,11.1060,0.8736,10.2324,0.0000,33.7548,16.7167,-5.5830,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466961852269,11.0437,10.5068,0.5369,0.3189,11.0869,1.1073,9.9796,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466961768364,16.1883,15.6423,0.5460,0.4374,15.6401,1.6996,13.9405,0.0000,31.1685,16.7167,-0.1824,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466961935392,17.5810,17.1940,0.3870,16.9146,0.6163,0.6163,0.0000,0.0000,31.1581,16.6171,-0.5492,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466961962706,10.9848,10.4627,0.5221,0.3621,10.8004,0.5107,10.2897,0.0000,28.4510,16.6106,5.3038,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,0,0,Hardware: Legacy Flip,2466961930247,17.6673,16.6936,0.9737,0.4084,17.0207,1.4884,15.5323,0.0000,31.6969,16.6106,-0.5284,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466962111202,17.8642,15.6435,2.2207,15.4494,2.2733,0.9088,1.3645,0.0000,30.1942,16.7208,0.9639,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466962072554,11.0277,10.4314,0.5963,0.2291,11.1478,1.1570,9.9908,0.0000,34.0768,16.7265,-5.6258,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466962182831,10.9237,10.3479,0.5758,0.3492,11.4824,1.6873,9.7951,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466962106920,15.9948,15.2616,0.7332,0.3781,15.4995,1.6057,13.8938,0.0000,30.6402,16.7265,1.0567,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466962289844,15.9479,14.8621,1.0858,14.6428,1.1805,1.1805,0.0000,0.0000,29.0508,16.6311,1.1434,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466962292068,11.0974,10.4993,0.5981,10.8269,0.5896,0.5896,0.0000,0.0000,28.8519,16.6511,5.2249,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,0,0,Hardware: Legacy Flip,2466962266868,17.0939,16.4977,0.5962,2.1561,14.7843,1.3141,13.4702,0.0000,31.3719,16.6511,-0.7317,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466962449323,15.8828,15.4314,0.4514,15.2329,0.5483,0.5483,0.0000,0.0000,29.7340,16.6549,-0.6832,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466962403042,11.1420,10.5772,0.5648,0.3191,11.1602,1.2549,9.9053,0.0000,34.4056,16.6341,-5.5537,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466962514462,11.2056,10.5348,0.6708,0.3373,11.6276,1.4826,10.1450,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,0,0,Hardware: Legacy Flip,2466962437807,16.5216,15.9520,0.5696,1.0270,15.3575,1.0131,14.3444,0.0000,30.9291,16.6341,0.4428,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466962608151,16.3284,15.7753,0.5531,15.5793,0.5649,0.5649,0.0000,0.0000,30.5061,16.6990,-0.7721,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466962626518,11.8598,11.2781,0.5817,11.6173,0.5488,0.5488,0.0000,0.0000,28.6921,16.7113,5.7135,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466962603023,16.2189,15.6569,0.5620,0.4112,15.6809,1.6352,14.0457,0.0000,31.0416,16.7113,-0.1125,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466962771435,16.3668,15.8876,0.4792,15.7099,0.5417,0.5417,0.0000,0.0000,30.8767,16.6655,-0.3706,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466962745116,11.6995,11.1424,0.5571,0.3063,11.7878,0.8878,10.9000,0.0000,33.5436,16.6410,-4.8515,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466962765212,16.4399,15.8757,0.5642,0.4381,15.8941,1.0888,14.8053,0.0000,31.5340,16.6410,-0.4924,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466962935103,16.6493,16.2636,0.3857,16.1172,0.4737,0.4737,0.0000,0.0000,31.1754,16.6566,-0.2987,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466962862111,11.0109,10.4340,0.5769,0.3946,10.9543,0.6927,10.2616,0.0000,38.4851,16.6566,-4.9415,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466962972220,11.0696,10.4561,0.6135,0.3380,10.7081,0.7768,9.9313,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466962929611,16.7741,16.2354,0.5387,0.4340,16.2324,0.6242,15.6082,0.0000,31.7351,16.6566,-0.2011,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466963101596,16.5187,16.1469,0.3718,16.0146,0.4489,0.4489,0.0000,0.0000,31.1827,16.6162,-0.0073,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466963082916,11.8829,11.3447,0.5382,0.1534,12.1818,1.2817,10.9001,0.0000,33.0612,16.6164,5.4239,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466963097352,16.5342,16.0183,0.5159,0.3660,16.0730,0.6042,15.4688,0.0000,31.6176,16.6164,0.1175,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466963266783,16.6037,16.2427,0.3610,16.0900,0.4596,0.4596,0.0000,0.0000,31.2802,16.7559,-0.0975,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466963201745,10.9995,10.4891,0.5104,0.4523,10.8747,0.5849,10.2898,0.0000,37.7947,16.7560,-4.7335,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466963311740,11.0657,10.4913,0.5744,0.3275,10.7171,0.3604,10.3567,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466963262694,16.6156,16.1062,0.5094,0.3537,16.1452,0.5380,15.6072,0.0000,31.6998,16.7560,-0.0822,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466963432820,16.6417,16.2651,0.3766,16.1244,0.4609,0.4609,0.0000,0.0000,31.4324,16.6528,-0.1522,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466963422397,10.8951,10.3996,0.4955,0.1549,11.1069,1.7842,9.3227,0.0000,32.4855,16.6528,5.3092,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466963428850,16.6247,16.1209,0.5038,0.3429,16.1785,1.1430,15.0355,0.0000,31.8402,16.6528,-0.1404,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466963599237,16.8367,16.4395,0.3972,16.3039,0.4737,0.4737,0.0000,0.0000,31.4435,16.7136,-0.0111,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466963531348,11.0541,10.5275,0.5266,0.3667,11.0354,1.0488,9.9866,0.0000,38.2432,16.7139,-5.7577,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466963641889,11.0887,10.4996,0.5891,0.3480,10.7178,0.3983,10.3195,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466963595097,16.8150,16.3001,0.5149,0.3576,16.3603,0.5625,15.7978,0.0000,31.8683,16.7139,-0.0281,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466963767604,17.0805,16.4569,0.6236,16.1430,0.8632,0.8373,0.0259,0.0000,31.3204,16.6176,0.1231,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466963752776,11.1639,10.5872,0.5767,0.1508,11.3660,1.1893,10.1767,0.0000,32.8143,16.6172,5.4289,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466963763247,16.8362,16.1432,0.6930,0.3766,16.2021,0.5332,15.6689,0.0000,31.7672,16.6172,0.1011,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466963938409,16.4395,16.0034,0.4361,15.8363,0.5434,0.5434,0.0000,0.0000,30.8575,16.6867,0.4629,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466963864415,11.9559,11.3513,0.6046,0.3529,11.8749,0.6540,11.2209,0.0000,38.2676,16.6868,-5.4533,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466963983974,11.4340,10.6690,0.7650,0.2719,11.9773,1.3960,10.5813,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466963931609,16.6434,16.0309,0.6125,0.6057,15.9106,0.5305,15.3801,0.0000,31.5482,16.6868,0.2190,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466964102804,16.5434,16.1166,0.4268,15.9796,0.5030,0.5030,0.0000,0.0000,31.1047,16.6576,-0.2472,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466964098314,11.8810,11.3151,0.5659,0.8152,11.2412,1.1632,10.0780,0.0000,31.5645,16.6576,6.7031,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466964098043,16.5534,16.0204,0.5330,0.4163,16.0394,1.2918,14.7476,0.0000,31.5916,16.6576,-0.0434,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466964268238,17.2821,16.2850,0.9971,16.1363,1.0728,0.8762,0.1966,0.0000,31.2189,16.6783,-0.1142,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466964217124,11.9024,11.3447,0.5577,0.2376,12.0399,1.2408,10.7991,0.0000,36.3411,16.6782,-4.7766,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466964336148,11.2715,10.5370,0.7345,0.3751,11.2456,1.2588,9.9868,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466964263577,16.7028,16.1592,0.5436,0.4053,16.1971,0.5502,15.6469,0.0000,31.6958,16.6782,-0.1042,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466964441059,16.0527,15.6378,0.4149,15.4780,0.5138,0.5138,0.0000,0.0000,30.6151,16.5605,0.6038,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466964448863,11.8763,11.3004,0.5759,0.3492,11.7085,0.5556,11.1529,0.0000,29.8454,16.5605,6.4957,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466964430605,16.6441,16.0863,0.5578,0.9724,15.5510,0.7649,14.7861,0.0000,31.6712,16.5605,0.0246,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466964601586,16.6844,16.2786,0.4058,16.1394,0.4849,0.4849,0.0000,0.0000,31.1229,16.7579,-0.5078,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466964567626,11.8452,11.2730,0.5722,0.2452,11.9602,1.0432,10.9170,0.0000,34.5296,16.7578,-4.6842,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466964686078,11.0585,10.5141,0.5444,0.3602,11.0934,1.1605,9.9329,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466964597046,16.6921,16.1508,0.5413,0.3931,16.2003,0.5399,15.6604,0.0000,31.5876,16.7578,0.0836,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466964768430,16.5459,16.1294,0.4165,15.9909,0.4898,0.4898,0.0000,0.0000,31.1964,16.6824,-0.0735,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466964796663,11.1103,10.5661,0.5442,0.3951,10.8444,0.7873,10.0571,0.0000,28.3837,16.6825,6.1459,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466964763967,16.5361,16.0002,0.5359,0.3862,16.0510,0.5728,15.4782,0.0000,31.6533,16.6825,-0.0657,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466964933889,16.6529,16.2422,0.4107,16.1032,0.4895,0.4895,0.0000,0.0000,31.3329,16.6735,-0.1365,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466964907766,11.3938,10.7566,0.6372,0.1908,11.5556,0.9681,10.5875,0.0000,33.9559,16.6741,-5.5722,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466964929328,16.6588,16.1175,0.5413,0.3909,16.1684,0.5101,15.6583,0.0000,31.7997,16.6741,-0.1464,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466965100418,17.0274,16.4566,0.5708,16.2169,0.7459,0.7459,0.0000,0.0000,31.3535,16.6433,-0.0206,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466965021704,11.9693,11.4016,0.5677,0.3526,11.9693,0.7227,11.2466,0.0000,39.2362,16.6423,-5.2803,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466965141397,11.2104,10.5582,0.6522,0.3526,10.8341,0.7857,10.0484,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466965095916,16.8651,16.2282,0.6369,0.3900,16.2771,0.5736,15.7035,0.0000,31.8150,16.6423,-0.0153,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466965270692,16.6766,16.2562,0.4204,16.1140,0.5012,0.5012,0.0000,0.0000,30.9694,16.6732,0.3841,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466965253501,11.5874,11.0054,0.5820,0.1604,11.7881,0.9735,10.8146,0.0000,32.6988,16.6735,6.5374,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466965264567,16.8264,16.0611,0.7653,0.5479,16.1786,0.5566,15.6220,0.0000,31.5922,16.6735,0.2228,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466965437458,16.4789,16.0652,0.4137,15.9139,0.5043,0.5043,0.0000,0.0000,30.9660,16.6587,0.0034,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466965369375,11.2791,10.7051,0.5740,0.3611,11.3904,0.8259,10.5645,0.0000,37.7849,16.6589,-5.0861,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466965482166,11.2233,10.5900,0.6333,0.4724,10.8112,0.3872,10.4240,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466965432831,16.4879,15.8707,0.6172,0.4013,15.9753,0.5834,15.3919,0.0000,31.4393,16.6589,0.1529,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466965602247,16.6877,16.2629,0.4248,16.1217,0.5018,0.5018,0.0000,0.0000,31.1458,16.5705,-0.1798,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466965594399,11.9801,11.3896,0.5905,0.2827,11.8404,1.9038,9.9366,0.0000,31.9414,16.5704,5.8435,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466965597710,16.6749,16.0652,0.6097,0.3930,16.1824,1.1825,14.9999,0.0000,31.6103,16.5704,-0.1710,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466965769124,16.6904,16.2784,0.4120,16.1015,0.5257,0.5257,0.0000,0.0000,31.0286,16.7436,0.1172,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466965714200,11.9172,11.3236,0.5936,0.2063,12.1762,1.2313,10.9449,0.0000,36.5317,16.7431,-4.5903,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466965833372,11.2585,10.3950,0.8635,0.4653,11.3657,1.0609,10.3048,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466965764459,16.7015,16.1084,0.5931,0.4023,16.1657,0.5147,15.6510,0.0000,31.5058,16.7431,0.1045,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466965936028,16.6458,16.1391,0.5067,15.9790,0.6031,0.6031,0.0000,0.0000,31.0818,16.6689,-0.0532,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466965945957,11.7998,11.2206,0.5792,0.5725,11.3428,0.4974,10.8454,0.0000,30.0991,16.6691,6.4326,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466965931474,16.5513,15.9948,0.5565,0.3922,16.0422,0.5372,15.5050,0.0000,31.5474,16.6691,-0.0416,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466966102486,17.1162,16.0188,1.0974,15.8658,1.1837,0.8116,0.3721,0.0000,31.1049,16.6616,-0.0231,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466966063955,11.8388,11.3292,0.5096,0.7924,11.3828,1.0054,10.3774,0.0000,34.9684,16.6609,-4.8693,40.5319,40.5319 -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466966182343,11.0053,10.4926,0.5127,0.3364,10.9376,0.9731,9.9645,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466966096987,16.5312,16.0189,0.5123,0.4862,15.9295,0.5920,15.3375,0.0000,31.6652,16.6609,-0.1178,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466966273648,16.0123,15.6462,0.3661,15.5067,0.4495,0.4495,0.0000,0.0000,30.6503,16.6809,0.4546,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466966292396,11.0266,10.5120,0.5146,0.2687,10.8106,0.5603,10.2503,0.0000,28.7852,16.6810,6.1832,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466966262299,16.7436,16.2380,0.5056,1.0682,15.5734,0.3598,15.2136,0.0000,31.7949,16.6810,-0.1297,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466966433771,16.7177,16.3470,0.3707,16.1129,0.5488,0.5488,0.0000,0.0000,31.3189,16.6582,-0.6686,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466966402662,11.0055,10.4739,0.5316,0.1975,11.1189,0.9344,10.1845,0.0000,34.4396,16.6585,-5.6544,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466966512717,11.0416,10.5223,0.5193,0.3109,11.0734,1.1364,9.9370,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466966429735,16.7140,16.1303,0.5837,0.3475,16.1690,0.6273,15.5417,0.0000,31.7323,16.6585,0.0626,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466966600948,16.6180,16.2331,0.3849,16.0996,0.4616,0.4616,0.0000,0.0000,31.2594,16.6889,0.0595,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466966623133,11.0470,10.5109,0.5361,0.3427,10.9127,0.9458,9.9669,0.0000,29.0510,16.6892,5.3886,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466966596875,16.6034,16.1033,0.5001,0.3513,16.1556,0.5055,15.6501,0.0000,31.6768,16.6892,0.0555,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466966767128,16.6852,16.3023,0.3829,16.1681,0.4599,0.4599,0.0000,0.0000,31.3303,16.6940,-0.0709,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466966733603,10.8885,10.3564,0.5321,0.2123,11.0269,0.8662,10.1607,0.0000,34.6932,16.6888,-5.6422,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466966842488,10.9367,10.4093,0.5274,0.3507,10.9835,1.0869,9.8966,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466966762909,16.6862,16.1550,0.5312,0.3651,16.2249,0.5943,15.6306,0.0000,31.7626,16.6888,-0.0858,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466966933980,18.0029,16.3869,1.6160,16.2128,1.7181,0.8724,0.8457,0.0000,31.3391,16.6131,-0.0088,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466966951855,11.0730,10.5331,0.5399,0.3975,10.7978,0.8716,9.9262,0.0000,29.5568,16.6139,5.1364,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466966929771,16.7675,16.1984,0.5691,0.3637,16.2700,0.6263,15.6437,0.0000,31.7652,16.6139,-0.0026,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466967114009,14.7684,14.4496,0.3188,14.3573,0.3704,0.3704,0.0000,0.0000,29.9493,16.7202,1.3898,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466967062585,11.0625,10.4812,0.5813,0.1827,11.2545,1.0573,10.1972,0.0000,35.0977,16.7245,-5.5409,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466967173210,11.0383,10.7050,0.3333,0.4355,11.0106,0.9370,10.0736,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466967097446,16.0824,15.7374,0.3450,1.5843,14.4293,0.3109,14.1184,0.0000,31.6116,16.7245,0.1536,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466967261693,16.4198,16.1932,0.2266,16.1129,0.2700,0.2700,0.0000,0.0000,31.9011,16.6853,-1.9518,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466967283593,11.3453,10.9291,0.4162,0.4078,11.0902,0.6257,10.4645,0.0000,29.7214,16.6854,5.3763,45.2755,45.2755 -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466967258270,16.5141,16.1971,0.3170,0.3016,16.1536,0.5676,15.5860,0.0000,32.2537,16.6854,-0.6421,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466967425891,17.0650,16.8084,0.2566,16.7174,0.3078,0.3078,0.0000,0.0000,32.1666,16.6632,-0.2655,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466967397046,10.9293,10.5633,0.3660,0.1527,11.2230,0.8081,10.4149,0.0000,35.0615,16.6633,-5.3401,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466967506339,11.1253,10.5774,0.5479,0.4464,11.0202,0.9020,10.1182,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466967423411,17.0315,16.6758,0.3557,0.2111,16.7543,0.6714,16.0829,0.0000,32.4250,16.6633,-0.1713,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466967596541,17.1859,16.7776,0.4083,16.6225,0.5040,0.5040,0.0000,0.0000,31.7648,16.5333,0.4018,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466967617592,11.7395,10.5365,1.2030,0.3413,11.3580,0.5171,10.8409,0.0000,29.6702,16.5334,5.3913,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466967593726,17.0214,16.4836,0.5378,0.2417,16.6623,0.7579,15.9044,0.0000,32.0568,16.5334,0.3682,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466967768400,16.7588,16.3475,0.4113,16.1363,0.5621,0.5621,0.0000,0.0000,31.1122,16.7859,0.6526,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466967734987,11.3158,10.7657,0.5501,0.2330,11.4434,1.0750,10.3684,0.0000,34.4641,16.7858,-4.7939,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466967848145,11.2749,10.6938,0.5811,0.3606,11.2676,1.1459,10.1217,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466967763940,16.7523,16.1523,0.6000,0.3866,16.1957,0.5923,15.6034,0.0000,31.5688,16.7858,0.4880,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466967935988,16.4439,16.0269,0.4170,15.8880,0.4959,0.4959,0.0000,0.0000,31.1393,16.6023,-0.0271,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466967960894,11.1971,10.6415,0.5556,0.3533,10.9904,0.8726,10.1178,0.0000,28.6592,16.6165,5.8049,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466967931463,16.4399,15.9088,0.5311,0.3921,15.9484,0.4979,15.4505,0.0000,31.6023,16.6165,-0.0335,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466968100427,16.7986,16.3952,0.4034,16.2554,0.4832,0.4832,0.0000,0.0000,31.2977,16.7297,-0.1584,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466968072865,11.1963,10.5510,0.6453,0.2087,11.3656,1.0751,10.2905,0.0000,34.0786,16.7282,-5.4194,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466968184828,11.1357,10.5604,0.5753,0.3780,11.1263,1.1135,10.0128,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466968095862,16.8118,16.2808,0.5310,0.3965,16.3154,0.5458,15.7696,0.0000,31.7789,16.7282,-0.1766,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466968268413,16.9014,16.4690,0.4324,16.2981,0.5397,0.5397,0.0000,0.0000,31.2288,16.6410,0.0689,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466968296185,11.4523,10.8756,0.5767,0.3686,11.3340,0.9559,10.3781,0.0000,28.4748,16.6421,5.6038,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466968263980,16.8689,16.2526,0.6163,0.3833,16.3581,0.5673,15.7908,0.0000,31.6953,16.6421,0.0836,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466968437427,16.7467,16.3030,0.4437,16.1167,0.5643,0.5643,0.0000,0.0000,30.9684,16.6754,0.2604,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466968410708,12.1648,11.3997,0.7651,0.3636,12.0794,1.1508,10.9286,0.0000,33.6646,16.6755,-5.1898,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,0,0,Hardware: Legacy Flip,2466968432669,16.7341,16.1460,0.5881,0.4122,16.1803,0.5560,15.6243,0.0000,31.4685,16.6755,0.2268,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466968604894,16.6586,16.1973,0.4613,16.0104,0.5849,0.5849,0.0000,0.0000,30.8971,16.6649,0.0713,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466968532356,11.8531,11.2670,0.5861,0.2782,11.9200,0.8952,11.0248,0.0000,38.1753,16.6649,-4.5107,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466968650887,11.8948,11.2008,0.6940,0.3451,12.3240,1.6527,10.6713,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,0,0,Hardware: Legacy Flip,2466968600010,16.6409,16.0426,0.5983,0.4227,16.0761,1.3861,14.6900,0.0000,31.4099,16.6649,0.0586,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466968771480,16.2787,15.8655,0.4132,15.7254,0.4907,0.4907,0.0000,0.0000,30.9034,16.5573,-0.0063,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466968769835,11.8605,11.3026,0.5579,0.7743,11.2593,0.7515,10.5078,0.0000,31.0923,16.5518,7.0830,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466968766419,16.3314,15.7986,0.5328,0.4428,15.7887,0.7385,15.0502,0.0000,31.4339,16.5518,-0.0240,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466968934267,16.8738,16.4019,0.4719,16.2130,0.5757,0.5757,0.0000,0.0000,31.1820,16.7216,-0.2786,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466968888440,11.0399,10.4354,0.6045,0.2365,11.1655,1.0755,10.0900,0.0000,35.7836,16.7140,-4.6913,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466968998839,12.0039,11.3570,0.6469,0.3621,11.9654,0.7017,11.2637,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466968929733,16.8126,16.1913,0.6213,0.3908,16.2756,0.6355,15.6401,0.0000,31.6543,16.7140,-0.2204,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466969103005,16.8943,16.4578,0.4365,16.2191,0.6078,0.6078,0.0000,0.0000,31.0298,16.6139,0.1522,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466969118878,12.0144,11.3964,0.6180,0.3282,12.0722,1.2741,10.7981,0.0000,29.4538,16.6131,6.3298,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466969097859,16.9278,16.2424,0.6854,0.4295,16.3042,0.5480,15.7562,0.0000,31.5557,16.6131,0.0986,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466969271948,16.6597,16.1043,0.5554,15.9365,0.6566,0.6566,0.0000,0.0000,30.7494,16.7019,0.2804,NA,NA -steamwebhelper.exe,3980,0x21C48E8A710,DXGI,1,0,0,Composed: Flip,2466969154898,12.7771,12.5641,0.2130,12.8255,1.2577,1.2493,0.0084,0.0000,42.4649,16.7025,0.0000,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466969239022,11.0010,10.3769,0.6241,0.3860,10.9930,0.7641,10.2289,0.0000,34.0525,16.7025,-4.5987,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466969349032,11.0051,10.4303,0.5748,0.3780,10.9150,0.6826,10.2324,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466969267137,16.5352,15.9469,0.5883,0.4137,16.0039,0.5486,15.4553,0.0000,31.2410,16.7025,0.3147,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466969438545,17.0311,16.1658,0.8653,15.9792,0.9837,0.8327,0.1510,0.0000,30.7916,16.7498,-0.0422,NA,NA -steamwebhelper.exe,3980,0x21C48E8A710,DXGI,1,0,0,Composed: Flip,2466969282669,15.9782,15.8188,0.1594,16.0413,0.8271,0.8147,0.0124,0.0000,46.3903,16.7503,-3.9254,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466969459083,11.0920,10.5367,0.5553,0.2879,10.9626,0.6811,10.2815,0.0000,28.7489,16.7503,5.3036,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466969432489,16.7289,15.9936,0.7353,0.5390,16.0458,0.5422,15.5036,0.0000,31.4083,16.7503,-0.1673,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466969608856,16.0759,15.6695,0.4064,15.5083,0.5049,0.5049,0.0000,0.0000,30.5103,16.5913,0.2813,NA,NA -steamwebhelper.exe,3980,0x21C48E8A710,DXGI,1,0,0,Composed: Flip,2466969442451,17.0808,16.8994,0.1814,17.0823,0.6043,0.6043,0.0000,0.0000,47.1624,16.5905,-0.7721,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466969570003,11.0442,10.4413,0.6029,0.2209,11.1695,1.0899,10.0796,0.0000,34.4072,16.5905,-5.6583,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466969680445,10.9505,10.3726,0.5779,0.3462,11.0125,0.7887,10.2238,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466969599778,16.5353,15.9599,0.5754,0.8396,15.5765,0.3073,15.2692,0.0000,31.4297,16.5905,-0.0214,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466969769615,16.7540,16.3514,0.4026,16.1901,0.5021,0.5021,0.0000,0.0000,31.0257,16.6249,-0.5154,NA,NA -steamwebhelper.exe,3980,0x21C48E8A710,DXGI,1,0,0,Composed: Flip,2466969613259,16.2340,16.0592,0.1748,0.6058,16.6150,1.2836,15.3314,0.0000,46.6721,16.6264,0.4903,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466969789950,11.0012,10.4660,0.5352,0.4082,10.7325,0.8469,9.8856,0.0000,29.0030,16.6264,5.4042,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466969765131,16.7530,16.2000,0.5530,0.3857,16.2528,0.5808,15.6720,0.0000,31.4849,16.6264,-0.0552,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466969937155,16.8459,16.4329,0.4130,16.2750,0.5089,0.5089,0.0000,0.0000,30.8966,16.8323,0.1291,NA,NA -steamwebhelper.exe,3980,0x21C48E8A710,DXGI,1,0,0,Composed: Flip,2466969775599,16.9647,16.7919,0.1728,17.0256,0.5867,0.5741,0.0126,0.0000,47.0645,16.8315,-0.3924,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466969899962,11.1139,10.5416,0.5723,0.2024,11.2664,0.9327,10.3337,0.0000,34.6282,16.8315,-5.6252,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466970011101,11.8753,11.2924,0.5829,0.3549,11.9235,0.7866,11.1369,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466969932661,16.8389,16.0360,0.8029,0.3876,16.3368,0.5418,15.7950,0.0000,31.3583,16.8315,0.1266,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466970105614,16.3649,15.9588,0.4061,15.7739,0.5284,0.5284,0.0000,0.0000,30.8830,16.6276,0.0136,NA,NA -steamwebhelper.exe,3980,0x21C48E8A710,DXGI,1,0,0,Composed: Flip,2466969945246,16.5917,16.4163,0.1754,0.6962,16.6383,0.8279,15.8104,0.0000,46.9313,16.6279,0.1332,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466970129854,11.6045,10.3924,1.2121,0.4031,11.1660,0.7621,10.4039,0.0000,28.4705,16.6279,6.1577,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466970101050,16.3747,15.7859,0.5888,0.3944,15.8359,0.5221,15.3138,0.0000,31.3509,16.6279,0.0074,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466970269263,16.9851,16.4439,0.5412,16.2780,0.6374,0.6374,0.0000,0.0000,31.1457,16.6878,-0.2627,NA,NA -steamwebhelper.exe,3980,0x21C48E8A710,DXGI,1,0,0,Composed: Flip,2466970111163,16.6929,16.5252,0.1677,16.7576,0.5890,0.5755,0.0135,0.0000,46.9675,16.6872,-0.0362,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466970245899,11.5043,10.8949,0.6094,0.2657,11.5685,1.0633,10.5052,0.0000,33.4939,16.6872,-5.0234,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466970264797,16.8495,16.2667,0.5828,0.3840,16.3406,0.5832,15.7574,0.0000,31.6041,16.6872,-0.2532,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466970439114,16.6671,16.2219,0.4452,15.9850,0.6157,0.6157,0.0000,0.0000,30.8484,16.6463,0.2973,NA,NA -steamwebhelper.exe,3980,0x21C48E8A710,DXGI,1,0,0,Composed: Flip,2466970278092,16.3836,16.1919,0.1917,0.7041,16.7111,1.0657,15.6454,0.0000,46.9618,16.6465,0.0057,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466970360942,11.9932,11.3995,0.5937,0.3299,12.0330,0.8146,11.2184,0.0000,38.6768,16.6465,-5.1829,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466970480874,12.0571,11.2490,0.8081,0.3697,13.1252,2.2623,10.8629,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466970433292,16.7610,16.0725,0.6885,0.5125,16.0547,0.5864,15.4683,0.0000,31.4418,16.6465,0.1623,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466970605785,16.5433,16.1212,0.4221,15.9653,0.5132,0.5132,0.0000,0.0000,30.8276,16.6636,0.0208,NA,NA -steamwebhelper.exe,3980,0x21C48E8A710,DXGI,1,0,0,Composed: Flip,2466970441928,17.3653,17.1725,0.1928,1.0316,17.0409,0.7693,16.2716,0.0000,47.2247,16.6638,-0.2629,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466970601445,11.9322,11.3340,0.5982,11.6779,0.6186,0.6186,0.0000,0.0000,31.2730,16.6638,7.4038,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466970600902,16.5674,15.9879,0.5795,0.4219,16.0317,1.1105,14.9212,0.0000,31.3273,16.6638,0.1145,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466970771218,16.7229,16.2585,0.4644,16.0759,0.5780,0.5780,0.0000,0.0000,30.9479,16.6484,-0.1203,NA,NA -steamwebhelper.exe,3980,0x21C48E8A710,DXGI,1,0,0,Composed: Flip,2466970615581,16.6395,16.4686,0.1709,0.7185,16.3088,1.1675,15.1413,0.0000,46.5232,16.6482,0.7015,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466970720767,11.0018,10.4118,0.5900,0.3643,11.0569,1.1596,9.8973,0.0000,36.0046,16.6482,-4.7316,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466970830785,11.4681,10.6409,0.8272,0.4194,11.8453,1.5480,10.2973,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466970766576,16.6802,16.0789,0.6013,0.3994,16.1407,0.6067,15.5340,0.0000,31.4237,16.6482,-0.0964,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466970938447,16.6899,16.2518,0.4381,16.0872,0.5361,0.5361,0.0000,0.0000,30.8734,16.5826,0.0745,NA,NA -steamwebhelper.exe,3980,0x21C48E8A710,DXGI,1,0,0,Composed: Flip,2466970781976,16.6452,16.4623,0.1829,0.5127,17.2171,1.2115,16.0056,0.0000,46.5319,16.5828,-0.0087,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466970945466,11.8565,11.2311,0.6254,0.7966,11.3708,1.1411,10.2297,0.0000,30.1829,16.5828,5.8217,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466970933378,16.7136,16.1046,0.6090,0.4379,16.1562,0.5523,15.6039,0.0000,31.3917,16.5828,0.0320,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466971105346,16.5060,16.0866,0.4194,15.9348,0.5068,0.5068,0.0000,0.0000,30.7661,16.7620,0.1073,NA,NA -steamwebhelper.exe,3980,0x21C48E8A710,DXGI,1,0,0,Composed: Flip,2466970948428,16.5910,16.4038,0.1872,1.0846,16.3459,1.1556,15.1903,0.0000,46.4695,16.7611,0.0624,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466971064031,11.1736,10.5697,0.6039,0.3109,11.2138,0.8949,10.3189,0.0000,34.9092,16.7611,-4.7263,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466971175767,11.3511,10.6798,0.6713,0.3511,11.1987,0.9755,10.2232,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466971100514,16.5292,15.9574,0.5718,0.4166,16.0014,0.5896,15.4118,0.0000,31.2609,16.7611,0.1308,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466971270406,16.9734,16.1116,0.8618,15.9515,0.9186,0.9186,0.0000,0.0000,31.0221,16.6713,-0.2560,NA,NA -steamwebhelper.exe,3980,0x21C48E8A710,DXGI,1,0,0,Composed: Flip,2466971114338,16.1435,15.9453,0.1982,0.8395,16.3922,1.0366,15.3556,0.0000,46.6396,16.6720,-0.1701,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466971289278,12.0076,11.4007,0.6069,0.2589,11.8945,0.8675,11.0270,0.0000,29.1456,16.6720,5.7636,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466971265806,16.5203,15.9582,0.5621,0.3956,16.0159,0.6885,15.3274,0.0000,31.4928,16.6720,-0.2319,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466971440140,16.3792,15.9477,0.4315,15.7728,0.5429,0.5429,0.0000,0.0000,30.7200,16.6642,0.3021,NA,NA -steamwebhelper.exe,3980,0x21C48E8A710,DXGI,1,0,0,Composed: Flip,2466971275773,17.1016,16.9270,0.1746,17.1628,1.0964,1.0883,0.0081,0.0000,47.1681,16.6636,-0.5285,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466971409354,11.9657,11.3740,0.5917,0.2126,12.1193,0.9564,11.1629,0.0000,33.8100,16.6636,-4.6644,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466971431009,16.8204,16.2367,0.5837,0.8098,15.8761,0.5740,15.3021,0.0000,31.6445,16.6636,-0.1517,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466971603932,16.5703,16.1556,0.4147,15.9994,0.5074,0.5074,0.0000,0.0000,31.0050,16.6080,-0.2850,NA,NA -steamwebhelper.exe,3980,0x21C48E8A710,DXGI,1,0,0,Composed: Flip,2466971446789,16.0484,15.8627,0.1857,16.2944,1.0665,1.0526,0.0139,0.0000,46.7301,16.6089,0.4380,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466971529011,11.0714,10.5029,0.5685,0.3662,11.1163,1.1573,9.9590,0.0000,38.5079,16.6089,-4.6979,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466971639725,11.2580,10.6677,0.5903,0.4111,11.0092,0.9063,10.1029,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466971599213,16.5788,16.0260,0.5528,0.4084,16.0629,0.5627,15.5002,0.0000,31.4877,16.6089,0.1568,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466971769635,16.7693,16.3444,0.4249,16.1236,0.5824,0.5824,0.0000,0.0000,31.0427,16.7151,-0.0377,NA,NA -steamwebhelper.exe,3980,0x21C48E8A710,DXGI,1,0,0,Composed: Flip,2466971607273,26.6049,26.4221,0.1828,26.8932,1.2007,1.2007,0.0000,0.0000,47.2906,16.7143,-0.5605,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466971752305,11.9861,11.3684,0.6177,0.2268,12.1258,1.0061,11.1197,0.0000,32.7874,16.7143,5.7205,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466971765001,16.7657,16.1398,0.6259,0.3999,16.1871,0.5481,15.6390,0.0000,31.5178,16.7143,-0.0301,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466971937328,16.6893,16.2508,0.4385,16.0561,0.5671,0.5671,0.0000,0.0000,30.9885,16.5852,0.0542,NA,NA -steamwebhelper.exe,3980,0x21C48E8A710,DXGI,1,0,0,Composed: Flip,2466971873322,16.3827,16.1974,0.1853,1.4890,16.0470,0.8244,15.2226,0.0000,37.4000,16.5874,9.8906,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466971872166,11.9572,11.3716,0.5856,0.3665,11.9850,0.7751,11.2099,0.0000,37.5156,16.5874,-4.7282,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466971991738,11.1267,10.4478,0.6789,0.3943,11.5269,1.5641,9.9628,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466971932658,16.6734,16.0397,0.6337,0.4037,16.1194,0.7680,15.3514,0.0000,31.4664,16.5874,0.0514,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466972104221,17.0747,16.2057,0.8690,16.0413,0.9573,0.9319,0.0254,0.0000,30.8844,16.7439,0.1041,NA,NA -steamwebhelper.exe,3980,0x21C48E8A710,DXGI,1,0,0,Composed: Flip,2466972037149,16.6360,16.4595,0.1765,16.8616,0.7040,0.6885,0.0155,0.0000,37.6047,16.7453,-0.2047,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466972103005,11.9363,11.3476,0.5887,0.7945,11.4721,0.8072,10.6649,0.0000,31.0191,16.7453,6.4965,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466972099392,16.6467,16.0738,0.5729,0.4168,16.1074,0.7881,15.3193,0.0000,31.3804,16.7453,0.0860,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466972274968,16.0291,15.6384,0.3907,15.4841,0.4863,0.4863,0.0000,0.0000,30.5536,16.6526,0.3308,NA,NA -steamwebhelper.exe,3980,0x21C48E8A710,DXGI,1,0,0,Composed: Flip,2466972203509,16.7394,16.5621,0.1773,16.9473,0.6846,0.6707,0.0139,0.0000,37.7140,16.6485,-0.1093,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466972222368,10.9008,10.3575,0.5433,0.3303,10.9117,1.0814,9.8303,0.0000,35.8281,16.6485,-4.8090,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466972331376,11.0511,10.3244,0.7267,0.3412,11.6292,1.6932,9.9360,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466972265859,16.5094,15.9668,0.5426,0.8348,15.5602,0.5058,15.0544,0.0000,31.4790,16.6485,-0.0986,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466972435259,16.8300,16.4505,0.3795,16.3007,0.4721,0.4721,0.0000,0.0000,31.1771,16.6495,-0.6235,NA,NA -steamwebhelper.exe,3980,0x21C48E8A710,DXGI,1,0,0,Composed: Flip,2466972370903,6.6114,6.4488,0.1626,6.8795,1.1243,1.0614,0.0629,0.0000,37.6231,16.6495,0.0909,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466972441887,10.8568,10.3459,0.5109,0.9193,10.1169,0.6430,9.4739,0.0000,30.5247,16.6495,5.3034,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466972430953,16.8424,16.2681,0.5743,0.3719,16.3594,0.5519,15.8075,0.0000,31.6181,16.6495,-0.1391,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466972603559,16.5524,16.1529,0.3995,15.9733,0.5211,0.5211,0.0000,0.0000,30.9966,16.6747,0.1805,NA,NA -steamwebhelper.exe,3980,0x21C48E8A710,DXGI,1,0,0,Composed: Flip,2466972437017,16.6206,16.4668,0.1538,16.8068,0.5188,0.5071,0.0117,0.0000,47.6612,16.6750,-10.0381,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466972550455,10.9966,10.4739,0.5227,0.2310,11.1064,1.0116,10.0948,0.0000,36.3174,16.6750,-5.7927,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466972660421,10.9779,10.4185,0.5594,0.3408,11.1265,1.2515,9.8750,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466972599377,16.5318,15.9722,0.5596,0.3610,16.0305,0.6194,15.4111,0.0000,31.4252,16.6750,0.1929,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466972769083,16.6616,16.2804,0.3812,16.1324,0.4671,0.4671,0.0000,0.0000,31.1189,16.6955,-0.1223,NA,NA -steamwebhelper.exe,3980,0x21C48E8A710,DXGI,1,0,0,Composed: Flip,2466972603223,16.7097,16.5403,0.1694,0.7499,17.2649,1.1335,16.1314,0.0000,47.7156,16.6958,-0.0544,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466972770200,11.0302,10.5059,0.5243,0.4894,10.6521,1.1487,9.5034,0.0000,31.0179,16.6958,5.2995,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466972764695,16.6800,16.1520,0.5280,0.3808,16.1904,0.7188,15.4716,0.0000,31.5684,16.6958,-0.1432,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466972935699,16.6945,16.3027,0.3918,16.1490,0.4870,0.4870,0.0000,0.0000,31.1528,16.6451,-0.0339,NA,NA -steamwebhelper.exe,3980,0x21C48E8A710,DXGI,1,0,0,Composed: Flip,2466972770320,26.7186,26.5498,0.1688,26.9067,0.7215,0.7066,0.0149,0.0000,47.7017,16.6460,0.0139,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466972880502,11.1322,10.5849,0.5473,0.1687,11.2726,1.0324,10.2402,0.0000,36.6835,16.6460,-5.6656,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466972991824,10.8921,10.3452,0.5469,0.3091,11.1576,0.9753,10.1823,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466972931495,16.6812,16.1287,0.5525,0.3583,16.2111,0.5230,15.6881,0.0000,31.5842,16.6460,-0.0158,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466973102644,16.7817,16.3370,0.4447,16.0825,0.6239,0.6239,0.0000,0.0000,31.1034,16.6566,0.0494,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466973100745,11.1369,10.5584,0.5785,0.5746,11.0273,1.2733,9.7540,0.0000,31.3052,16.6560,5.3783,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466973098307,16.7174,16.0741,0.6433,0.3752,16.1410,1.1216,15.0194,0.0000,31.5490,16.6560,0.0352,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466973270461,16.7392,16.3285,0.4107,16.1461,0.5334,0.5334,0.0000,0.0000,30.9783,16.6674,0.1251,NA,NA -steamwebhelper.exe,3980,0x21C48E8A710,DXGI,1,0,0,Composed: Flip,2466973037506,16.3114,16.1330,0.1784,16.4954,0.7274,0.7057,0.0217,0.0000,37.6291,33.3226,10.0726,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466973212114,10.8452,10.2829,0.5623,0.4650,10.7380,0.6178,10.1202,0.0000,36.8243,16.6666,-5.5191,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466973320566,11.2687,10.4992,0.7695,0.3578,11.7722,1.5690,10.2032,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466973265481,16.7862,16.1433,0.6429,0.4227,16.2214,0.5681,15.6533,0.0000,31.4876,16.6666,0.0614,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466973437853,16.7386,16.3123,0.4263,16.1524,0.5225,0.5225,0.0000,0.0000,30.9065,16.6627,0.0718,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466973433253,11.8799,11.2878,0.5921,0.8613,11.3982,1.3440,10.0542,0.0000,31.3770,16.6635,5.4473,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466973433343,16.7200,16.0172,0.7028,0.3913,16.2121,1.2836,14.9285,0.0000,31.3680,16.6635,0.1196,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466973605239,16.8183,16.0662,0.7521,15.9083,0.8512,0.8512,0.0000,0.0000,30.8306,16.6742,0.0759,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466973552052,10.9585,10.3941,0.5644,0.3796,10.9282,1.1006,9.8276,0.0000,36.1606,16.6739,-4.7836,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466973661637,11.1664,10.5369,0.6295,0.3493,11.1920,0.7989,10.3931,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466973600543,16.4961,15.9342,0.5619,0.4059,15.9720,0.5312,15.4408,0.0000,31.3115,16.6739,0.0565,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466973773422,17.3848,16.2141,1.1707,16.0446,1.2683,0.8010,0.4673,0.0000,30.6865,16.6217,0.1441,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466973773301,11.7421,11.1853,0.5568,0.3749,11.4798,1.0170,10.4628,0.0000,30.7096,16.6214,5.4510,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466973765504,16.9632,16.1658,0.7974,0.7330,16.1034,0.4864,15.6170,0.0000,31.4893,16.6214,-0.1778,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466973947270,15.5903,15.1849,0.4054,15.0100,0.5010,0.5010,0.0000,0.0000,29.9234,16.7667,0.7631,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466973890722,11.0212,10.4458,0.5754,0.1708,11.1731,1.0152,10.1579,0.0000,35.5889,16.7682,-4.8793,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466974000934,12.0938,11.5586,0.5352,0.4254,12.0737,1.1052,10.9685,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466973935136,16.3597,15.7973,0.5624,1.1415,15.0819,0.2785,14.8034,0.0000,31.1475,16.7682,0.3418,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466974103173,16.4690,16.0877,0.3813,15.9384,0.4753,0.4753,0.0000,0.0000,31.0998,16.6094,-1.1764,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466974121872,10.8760,10.3506,0.5254,0.4053,10.6638,0.8376,9.8262,0.0000,29.2421,16.6087,6.3468,48.7335,48.7335 -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466974098733,16.4927,15.9396,0.5531,0.3647,16.0177,0.5327,15.4850,0.0000,31.5560,16.6087,-0.4085,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466974267863,16.9992,16.5880,0.4112,16.4315,0.5110,0.5110,0.0000,0.0000,31.2402,16.6678,-0.1404,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466974230632,11.0202,10.4530,0.5672,0.1970,11.1304,0.8168,10.3136,0.0000,34.9748,16.6677,-5.7327,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466974340834,11.0404,10.4830,0.5574,0.3072,11.0412,1.0887,9.9525,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466974263660,16.9693,16.3845,0.5848,0.3650,16.4868,0.5570,15.9298,0.0000,31.6720,16.6677,-0.1160,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466974437855,16.8841,16.4878,0.3963,16.2410,0.5848,0.5848,0.0000,0.0000,30.9088,16.6605,0.3314,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466974451238,10.9424,10.4004,0.5420,0.3080,10.7322,0.5091,10.2231,0.0000,29.5819,16.6607,5.3929,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466974433353,16.8974,15.9283,0.9691,0.3935,16.2977,0.4860,15.8117,0.0000,31.3704,16.6607,0.3016,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466974606696,16.3043,15.9139,0.3904,15.7532,0.4963,0.4963,0.0000,0.0000,30.6852,16.6645,0.2236,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466974560662,11.0518,10.4623,0.5895,0.1581,11.2102,0.9857,10.2245,0.0000,35.3002,16.6636,-5.7183,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466974671180,10.9282,10.3956,0.5326,0.3165,10.7763,0.8987,9.8776,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466974602327,16.3120,15.7285,0.5835,0.3786,15.8115,0.5190,15.2925,0.0000,31.1337,16.6636,0.2367,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466974769739,16.6404,16.2530,0.3874,16.1000,0.4784,0.4784,0.0000,0.0000,31.0454,16.6300,-0.3602,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466974780462,11.0382,10.4979,0.5403,0.2204,10.9454,0.7328,10.2126,0.0000,29.9838,16.6242,5.3164,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466974765447,16.6444,16.0754,0.5690,0.3744,16.1548,0.4934,15.6614,0.0000,31.4853,16.6242,-0.3516,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466974936143,16.5598,16.1940,0.3658,16.0468,0.4582,0.4582,0.0000,0.0000,31.0350,16.6992,0.0104,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466974890844,11.0009,10.4562,0.5447,0.1949,11.1176,0.9754,10.1422,0.0000,35.5698,16.7036,-5.5860,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466975000853,10.9304,10.4361,0.4943,0.3116,10.7935,0.5356,10.2579,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466974931891,16.5817,16.0530,0.5287,0.3632,16.1088,0.5349,15.5739,0.0000,31.4651,16.7036,0.0202,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466975101741,15.6415,15.4772,0.1643,15.3922,0.2209,0.2209,0.0000,0.0000,31.1744,16.5942,-0.1394,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466975110157,11.0185,10.4246,0.5939,0.1785,10.8899,0.7003,10.1896,0.0000,30.3421,16.5887,5.2277,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466975097708,15.8640,15.6041,0.2599,0.3485,15.4470,0.4594,14.9876,0.0000,31.5870,16.5887,-0.1219,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466975258156,16.5803,16.4304,0.1499,16.3686,0.1872,0.1872,0.0000,0.0000,32.1271,16.7748,-0.9527,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466975220342,11.9574,11.4931,0.4643,0.4697,11.8191,0.9684,10.8507,0.0000,35.9123,16.7845,-5.5702,37.1912,37.1912 -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466975339916,10.9839,10.5411,0.4428,0.3314,11.0586,0.7317,10.3269,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466975256348,16.5968,16.3751,0.2217,0.1524,16.3970,0.6501,15.7469,0.0000,32.3117,16.7845,-0.7247,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466975423959,16.4031,16.2553,0.1478,16.1980,0.1817,0.1817,0.0000,0.0000,32.3216,16.6634,-0.1945,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466975449755,10.8250,10.5556,0.2694,0.4061,10.5676,0.2977,10.2699,0.0000,29.7555,16.6594,6.1568,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466975422316,16.4051,16.1983,0.2068,0.1398,16.2225,0.6414,15.5811,0.0000,32.4994,16.6594,-0.1877,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466975587990,17.6973,17.3639,0.3334,17.2462,0.4009,0.4009,0.0000,0.0000,32.5819,16.6438,-0.2603,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466975558005,11.3987,10.9522,0.4465,0.1487,11.5776,0.6584,10.9192,0.0000,35.5899,16.6440,-5.8344,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466975671992,10.9993,10.5552,0.4441,0.3276,11.0726,0.9929,10.0797,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466975586367,17.4929,17.0559,0.4370,0.1389,17.2696,0.9369,16.3327,0.0000,32.7537,16.6440,-0.2543,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466975764963,16.7674,16.4318,0.3356,16.2255,0.4922,0.4922,0.0000,0.0000,31.5284,16.7014,1.0535,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466975781985,10.8454,10.3809,0.4645,0.4009,10.5749,0.7552,9.8197,0.0000,29.8359,16.7013,5.7540,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466975761296,16.7654,16.2192,0.5462,0.3165,16.2757,0.5819,15.6938,0.0000,31.9048,16.7013,0.8489,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466975932637,16.5384,16.1934,0.3450,16.0754,0.4128,0.4128,0.0000,0.0000,31.4624,16.6286,0.0660,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466975890439,10.8878,10.4402,0.4476,0.1848,11.0481,0.9618,10.0863,0.0000,35.6918,16.6284,-5.8559,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466975999317,11.2359,10.7773,0.4586,0.3451,11.3383,1.0254,10.3129,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466975928950,16.5291,16.0901,0.4390,0.3190,16.1251,0.4813,15.6438,0.0000,31.8407,16.6284,0.0641,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466976098021,16.7163,16.3657,0.3506,16.2476,0.4178,0.4178,0.0000,0.0000,31.5526,16.6107,-0.0902,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466976111676,11.0578,10.6021,0.4557,0.4475,10.7817,0.4388,10.3429,0.0000,30.1965,16.6110,5.4953,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466976094241,16.7105,16.2682,0.4423,0.3278,16.2978,0.5801,15.7177,0.0000,31.9400,16.6110,-0.0993,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466976265184,16.8078,16.2715,0.5363,16.1470,0.6083,0.6083,0.0000,0.0000,31.4470,16.7624,0.1056,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466976222254,11.1163,10.6517,0.4646,0.1752,11.2836,0.8261,10.4575,0.0000,35.7497,16.7625,-5.5532,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466976333417,10.9553,10.4804,0.4749,0.3425,10.7723,0.4636,10.3087,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466976261346,16.6217,16.1745,0.4472,0.3329,16.1979,0.5349,15.6630,0.0000,31.8405,16.7625,0.0995,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466976433262,16.4814,16.1243,0.3571,15.9832,0.4471,0.4471,0.0000,0.0000,31.4016,16.6837,0.0454,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466976442970,10.8579,10.3715,0.4864,0.1633,10.8259,0.7919,10.0340,0.0000,30.4406,16.6839,5.3091,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466976427563,16.6592,16.1852,0.4740,0.5174,16.0357,0.4634,15.5723,0.0000,31.9813,16.6839,-0.1408,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466976598076,16.8015,16.4438,0.3577,16.3208,0.4273,0.4273,0.0000,0.0000,31.6039,16.6808,-0.2023,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466976551549,11.1972,10.7080,0.4892,0.1863,11.3577,0.9999,10.3578,0.0000,36.2666,16.6808,-5.8260,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466976663521,11.0371,10.4857,0.5514,0.3468,11.2376,1.2035,10.0341,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466976594155,16.8005,16.3195,0.4810,0.3410,16.3719,0.5595,15.8124,0.0000,32.0060,16.6808,-0.0247,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466976766091,16.9732,16.3667,0.6065,16.2394,0.6754,0.6754,0.0000,0.0000,31.4832,16.6521,0.1207,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466976773892,10.8562,10.3346,0.5216,0.5473,10.3883,0.3178,10.0705,0.0000,30.7131,16.6527,5.5535,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466976762160,16.7232,16.2313,0.4919,0.3397,16.2928,0.5835,15.7093,0.0000,31.8863,16.6527,0.1197,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466976935823,16.5257,16.1337,0.3920,15.9800,0.4891,0.4891,0.0000,0.0000,31.1621,16.6591,0.3211,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466976882454,11.1150,10.6049,0.5101,0.2244,11.2293,0.9116,10.3177,0.0000,36.5096,16.6590,-5.7965,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466976993604,11.5415,10.8151,0.7264,0.3387,11.5659,1.0044,10.5615,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466976929392,16.7393,16.2150,0.5243,0.5847,16.0384,0.4517,15.5867,0.0000,31.8158,16.6590,0.0705,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466977101080,16.9172,16.4921,0.4251,16.2736,0.5804,0.5804,0.0000,0.0000,31.2955,16.5791,-0.1334,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466977109019,11.7233,11.1747,0.5486,0.3631,11.5206,0.5118,11.0088,0.0000,30.5121,16.5897,5.9975,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466977096785,16.8792,16.1350,0.7442,0.3729,16.3302,0.5908,15.7394,0.0000,31.7355,16.5897,0.0803,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466977270252,16.4917,16.0795,0.4122,15.9413,0.4899,0.4899,0.0000,0.0000,30.9574,16.7524,0.3381,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466977226252,11.9095,11.3462,0.5633,0.2221,12.1698,1.1859,10.9839,0.0000,35.3785,16.7542,-4.8664,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466977345347,11.2454,10.6499,0.5955,0.4824,11.1395,0.6569,10.4826,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466977265577,16.5074,15.9757,0.5317,0.4043,16.0045,0.4497,15.5548,0.0000,31.4460,16.7542,0.2895,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466977435169,16.7107,16.2888,0.4219,16.1448,0.5052,0.5052,0.0000,0.0000,31.2181,16.7017,-0.2607,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466977457801,11.0606,10.4831,0.5775,0.3765,10.9080,0.5901,10.3179,0.0000,28.9778,16.6953,6.4007,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466977430651,16.6982,16.0352,0.6630,0.3913,16.2053,0.5597,15.6456,0.0000,31.6928,16.6953,-0.2468,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466977602276,16.9010,16.4730,0.4280,16.2681,0.5703,0.5703,0.0000,0.0000,31.2091,16.6293,0.0090,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466977568407,12.0450,11.4647,0.5803,0.2285,12.3005,1.2417,11.0588,0.0000,34.6125,16.6364,-5.6347,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,0,0,Hardware: Legacy Flip,2466977597633,16.8940,16.2836,0.6104,0.4036,16.3288,0.5895,15.7393,0.0000,31.6899,16.6364,0.0029,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466977771286,16.4978,16.0055,0.4923,15.8664,0.5669,0.5669,0.0000,0.0000,30.9374,16.6746,0.2717,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466977688857,11.9467,11.3675,0.5792,0.4840,11.8493,0.6594,11.1899,0.0000,39.2039,16.6748,-4.5914,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466977808324,11.1953,10.6069,0.5884,0.3866,10.9423,0.8993,10.0430,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466977766573,16.4371,15.8994,0.5377,0.4087,15.9290,0.5392,15.3898,0.0000,31.4323,16.6748,0.2576,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466977936264,16.6531,16.1594,0.4937,16.0173,0.5703,0.5703,0.0000,0.0000,31.1142,16.6792,-0.1768,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466977920277,11.0690,10.5188,0.5502,0.1970,11.2388,0.9712,10.2676,0.0000,32.7367,16.6662,6.4672,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466977930944,16.6513,16.0968,0.5545,0.4675,16.0818,0.5623,15.5195,0.0000,31.6700,16.6662,-0.2377,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466978102795,16.8010,16.3726,0.4284,16.2247,0.5057,0.5057,0.0000,0.0000,31.1403,16.6573,-0.0261,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466978030967,11.4502,10.8962,0.5540,0.3668,11.4469,1.1195,10.3274,0.0000,38.3339,16.6645,-5.5972,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466978145469,11.2421,10.5853,0.6568,0.3635,10.8544,0.7817,10.0727,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466978097457,16.8616,16.1518,0.7098,0.4683,16.2902,0.5332,15.7570,0.0000,31.6849,16.6645,-0.0149,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466978270805,16.4716,16.0536,0.4180,15.8908,0.5199,0.5199,0.0000,0.0000,30.9966,16.6627,0.1437,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466978257890,12.0247,11.4221,0.6026,0.1746,12.2497,1.0360,11.2137,0.0000,32.3061,16.6694,6.0278,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466978266073,16.4884,15.9261,0.5623,0.4026,15.9614,0.5346,15.4268,0.0000,31.4878,16.6694,0.1971,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466978435521,17.5405,17.1166,0.4239,16.8357,0.6475,0.6475,0.0000,0.0000,31.1877,16.6764,-0.1911,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466978378137,11.0406,10.4704,0.5702,0.3996,11.0849,0.7685,10.3164,0.0000,36.9508,16.6763,-4.6447,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466978488543,10.9905,10.3906,0.5999,0.4439,10.7495,0.4801,10.2694,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,0,0,Hardware: Legacy Flip,2466978430957,17.5261,16.7879,0.7382,0.3955,16.8966,0.5532,16.3434,0.0000,31.6688,16.6763,-0.1810,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466978610926,16.4912,15.9883,0.5029,15.7675,0.6119,0.6119,0.0000,0.0000,30.3236,16.5959,0.8641,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466978598448,11.1242,10.5062,0.6180,0.2072,11.2028,2.9625,8.2403,0.0000,31.5960,16.5975,5.3548,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,0,0,Hardware: Legacy Flip,2466978606218,16.3883,15.7711,0.6172,0.4135,15.8248,2.3219,13.5029,0.0000,30.8190,16.5975,0.8498,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466978775838,16.2421,15.7724,0.4697,15.5629,0.5659,0.5659,0.0000,0.0000,30.4283,16.6632,-0.1047,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466978709690,12.0361,11.4152,0.6209,0.2858,12.0865,0.9448,11.1417,0.0000,37.0693,16.6581,-5.4733,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466978830051,12.0915,11.2979,0.7936,0.3362,12.2092,1.0061,11.2031,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466978770101,16.2713,15.6902,0.5811,0.4619,15.6747,1.6160,14.0587,0.0000,31.0282,16.6581,-0.2092,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466978938259,17.3232,16.8870,0.4362,16.6460,0.6238,0.6238,0.0000,0.0000,30.8494,16.6806,-0.4211,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466978950966,11.8423,11.1956,0.6467,0.4539,11.4823,0.5115,10.9708,0.0000,29.5998,16.6877,7.4695,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,0,0,Hardware: Legacy Flip,2466978932814,17.3852,16.6708,0.7144,0.4312,16.7593,1.2942,15.4651,0.0000,31.4150,16.6877,-0.3868,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466979111491,17.0605,16.1048,0.9557,15.8836,1.0943,1.0943,0.0000,0.0000,30.2068,16.7273,0.6426,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466979069389,12.0066,11.3612,0.6454,0.2683,12.0672,1.0919,10.9753,0.0000,34.4452,16.7227,-4.8454,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,0,0,Hardware: Legacy Flip,2466979106666,16.5332,15.8809,0.6523,0.4291,15.9370,1.9391,13.9979,0.0000,30.7175,16.7227,0.6975,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466979282096,16.0165,15.0018,1.0147,14.8160,0.9984,0.9984,0.0000,0.0000,29.8736,16.6670,0.3332,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466979189455,11.9686,11.3830,0.5856,0.3289,11.9632,0.7418,11.2214,0.0000,39.1613,16.6674,-4.7161,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466979309141,11.0053,10.3850,0.6203,0.3235,10.6570,0.4694,10.1876,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466979271998,15.9383,15.3963,0.5420,0.9272,14.8986,1.3428,13.5558,0.0000,30.9070,16.6674,-0.1895,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466979442261,16.3022,15.8046,0.4976,15.5893,0.5948,0.5948,0.0000,0.0000,30.5241,16.6546,-0.6505,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466979419194,11.0702,10.4855,0.5847,0.1534,11.2627,1.0190,10.2437,0.0000,32.8548,16.6411,6.3065,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466979431381,16.8153,16.1959,0.6194,0.8859,15.7914,0.6698,15.1216,0.0000,31.6361,16.6411,-0.7291,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466979605283,16.4636,16.0627,0.4009,15.9145,0.4869,0.4869,0.0000,0.0000,30.8765,16.6481,-0.3524,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466979529896,10.9315,10.3024,0.6291,0.3459,10.9670,1.1325,9.8345,0.0000,38.4257,16.6484,-5.5709,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466979639211,11.9818,11.4082,0.5736,0.3870,11.6851,0.9310,10.7541,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466979599534,16.5975,16.0033,0.5942,0.4568,16.0326,1.2137,14.8189,0.0000,31.4619,16.6484,0.1742,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466979769919,16.7169,16.1689,0.5480,16.0251,0.6285,0.6285,0.0000,0.0000,31.0610,16.6722,-0.1845,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466979759029,11.9518,11.4426,0.5092,0.2468,12.0249,1.8375,10.1874,0.0000,32.1608,16.6723,6.2649,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466979765509,16.5709,16.0374,0.5335,0.3788,16.0873,1.3225,14.7648,0.0000,31.5128,16.6723,-0.0509,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466979937088,16.8591,16.4430,0.4161,16.2833,0.5138,0.5138,0.0000,0.0000,31.0163,16.7037,0.0447,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466979878547,10.9963,10.4536,0.5427,0.3199,11.0109,1.0393,9.9716,0.0000,36.8813,16.7222,-4.7205,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466979988510,11.1926,10.4243,0.7683,0.3345,11.6800,1.2528,10.4272,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466979931218,16.9864,16.1238,0.8626,0.5237,16.3466,0.6146,15.7320,0.0000,31.6142,16.7222,-0.1014,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466980105679,16.4286,16.0104,0.4182,15.8268,0.5364,0.5364,0.0000,0.0000,30.8609,16.6405,0.1554,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466980100436,11.8621,11.2607,0.6014,0.8219,11.2427,1.0893,10.1534,0.0000,31.4146,16.6225,5.4667,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466980101082,16.4278,15.8164,0.6114,0.3977,15.8888,1.1278,14.7610,0.0000,31.3500,16.6225,0.2642,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466980269965,16.8597,16.3141,0.5456,16.1516,0.6430,0.6430,0.0000,0.0000,31.0728,16.6043,-0.2119,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466980219057,12.0235,11.4410,0.5825,0.2530,12.1384,1.1009,11.0375,0.0000,36.1750,16.6042,-4.7604,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466980339292,10.8663,10.3476,0.5187,0.3679,11.2436,1.4376,9.8060,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466980265360,16.7332,16.1133,0.6199,0.3951,16.2170,0.5783,15.6387,0.0000,31.5447,16.6042,-0.1947,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466980438562,16.5022,16.0947,0.4075,15.8728,0.5653,0.5653,0.0000,0.0000,30.8174,16.7365,0.2554,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466980447955,11.1027,10.5469,0.5558,10.8681,0.3636,0.3503,0.0133,0.0000,29.8894,16.7359,6.2856,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466980432692,16.6407,16.0260,0.6147,0.5219,15.9379,0.6025,15.3354,0.0000,31.4157,16.7359,0.1290,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466980603584,16.9178,16.3207,0.5971,16.1615,0.6832,0.6832,0.0000,0.0000,31.0517,16.6667,-0.2343,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466980558982,11.0227,10.4439,0.5788,0.1889,11.2237,1.0655,10.1582,0.0000,35.5226,16.6668,-5.6332,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466980669209,11.0323,10.4097,0.6226,0.3899,11.4027,1.5135,9.8892,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466980599099,16.7230,15.9961,0.7269,0.3844,16.2256,0.5506,15.6750,0.0000,31.5109,16.6668,-0.0952,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466980772762,16.9494,16.0020,0.9474,15.8118,1.0524,1.0524,0.0000,0.0000,30.8006,16.6797,0.2511,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466980779532,11.9055,11.3058,0.5997,11.6564,0.3943,0.3815,0.0128,0.0000,30.1344,16.6803,5.3882,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466980766329,16.6019,15.9174,0.6845,0.5702,15.8849,0.5259,15.3590,0.0000,31.4547,16.6803,0.0562,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466980942256,16.0324,15.6050,0.4274,15.4610,0.5099,0.5099,0.0000,0.0000,30.5309,16.6491,0.2697,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466980898587,11.1539,10.3940,0.7599,0.2092,11.3738,1.2164,10.1574,0.0000,34.9092,16.6488,-4.7748,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466981010126,11.5065,10.9539,0.5526,0.4291,11.5472,0.8166,10.7306,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466980932348,16.5549,16.0026,0.5523,0.9056,15.5462,0.5106,15.0356,0.0000,31.5331,16.6488,-0.0784,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466981102580,16.8752,16.4409,0.4343,16.2909,0.5214,0.5214,0.0000,0.0000,31.1476,16.6736,-0.6167,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466981125191,11.0579,10.4926,0.5653,0.4698,10.7774,0.4607,10.3167,0.0000,28.8976,16.6735,6.0116,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466981097897,16.8663,16.1285,0.7378,0.4068,16.3524,0.5377,15.8147,0.0000,31.6270,16.6735,-0.0939,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466981271332,17.0753,16.2318,0.8435,16.0838,0.9172,0.8868,0.0304,0.0000,30.9460,16.6625,0.2016,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466981235770,12.0446,11.4510,0.5936,0.2534,12.1326,0.9411,11.1915,0.0000,34.5132,16.6627,-5.6156,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466981266560,16.6646,15.9418,0.7228,0.4143,16.1467,0.5553,15.5914,0.0000,31.4342,16.6627,0.1928,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466981442085,16.4799,15.6122,0.8677,15.4444,0.9535,0.9287,0.0248,0.0000,30.5332,16.6569,0.4128,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466981356216,11.2111,10.3485,0.8626,0.3414,11.1190,1.0955,10.0235,0.0000,39.1313,16.6563,-4.6181,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466981468327,11.8411,11.2692,0.5719,0.2540,11.6994,0.7606,10.9388,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466981433206,16.4594,15.8932,0.5662,0.8136,15.5187,0.5179,15.0008,0.0000,31.4323,16.6563,0.0019,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466981606884,16.2723,15.8607,0.4116,15.7173,0.4941,0.4941,0.0000,0.0000,30.7102,16.6544,-0.1770,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466981586738,10.9745,10.4254,0.5491,0.1757,11.1016,0.9045,10.1971,0.0000,32.7354,16.6539,6.3959,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466981597800,16.7270,16.1046,0.6224,0.8264,15.7993,0.4128,15.3865,0.0000,31.6292,16.6539,-0.1969,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466981769607,16.6075,16.2066,0.4009,15.9698,0.5759,0.5759,0.0000,0.0000,31.0923,16.6601,-0.3821,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466981696483,11.0422,10.4748,0.5674,0.3028,11.0892,0.7571,10.3321,0.0000,38.4148,16.6602,-5.6794,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466981806905,11.0556,10.3913,0.6643,0.3498,10.6821,0.7782,9.9039,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466981765070,16.6200,15.9944,0.6256,0.3928,16.0307,0.6071,15.4236,0.0000,31.5561,16.6602,0.0731,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466981935682,16.7085,16.3234,0.3851,16.1716,0.4809,0.4809,0.0000,0.0000,31.1449,16.6572,-0.0526,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466981917461,11.9031,11.3567,0.5464,0.1631,12.0318,1.0034,11.0284,0.0000,32.9772,16.6571,5.4376,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466981931270,16.7268,15.9484,0.7784,0.3794,16.2334,0.5138,15.7196,0.0000,31.5963,16.6571,-0.0402,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466982102767,16.3907,16.0101,0.3806,15.8799,0.4544,0.4544,0.0000,0.0000,31.0936,16.6755,0.0513,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466982036492,11.9629,11.4287,0.5342,0.2918,12.1042,0.9278,11.1764,0.0000,37.7312,16.6861,-4.7540,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466982156121,10.9445,10.4000,0.5445,0.4331,11.0711,0.8436,10.2275,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466982098538,16.3963,15.8988,0.4975,0.3669,15.9359,0.5462,15.3897,0.0000,31.5266,16.6861,0.0697,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466982266674,17.0596,16.6827,0.3769,16.5308,0.4724,0.4724,0.0000,0.0000,31.3784,16.5959,-0.2848,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466982265566,10.9755,10.4424,0.5331,0.5597,10.5126,0.9358,9.5768,0.0000,31.5099,16.5932,6.2213,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466982262501,17.0437,16.5469,0.4968,0.3609,16.5872,1.2166,15.3706,0.0000,31.8164,16.5932,-0.2898,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466982437270,16.2528,15.8807,0.3721,15.7465,0.4449,0.4449,0.0000,0.0000,30.9147,16.7020,0.4637,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466982375321,11.0671,10.5552,0.5119,0.1563,11.2402,1.0416,10.1986,0.0000,37.1276,16.7087,-5.6177,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466982485992,11.0082,10.4785,0.5297,0.3294,11.4825,1.5000,9.9825,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466982432938,16.2752,15.7772,0.4980,0.3768,15.8029,0.5702,15.2327,0.0000,31.3659,16.7087,0.4505,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466982599798,17.1530,16.7909,0.3621,16.6044,0.5025,0.5025,0.0000,0.0000,31.3639,16.7108,-0.4492,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466982596074,10.9493,10.4556,0.4937,0.8037,10.4079,1.9459,8.4620,0.0000,31.7610,16.7055,5.3666,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,0,0,Hardware: Legacy Flip,2466982595690,17.1642,16.6309,0.5333,0.3494,16.6658,2.0402,14.6256,0.0000,31.7994,16.7055,-0.4335,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466982771328,16.2649,15.8609,0.4040,15.6889,0.4778,0.4778,0.0000,0.0000,30.9217,16.6579,0.4422,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466982705567,11.0458,10.5215,0.5243,0.2623,11.0982,0.8252,10.2730,0.0000,37.5172,16.6590,-5.7562,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466982816025,10.8939,10.3965,0.4974,0.3147,10.7150,0.5156,10.1994,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466982767332,16.1859,15.6701,0.5158,0.3535,15.7350,1.7504,13.9846,0.0000,31.3407,16.6590,0.4587,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466982933977,17.0975,16.4259,0.6716,16.1918,0.7852,0.7852,0.0000,0.0000,31.3147,16.6561,-0.3930,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466982924964,10.9862,10.4993,0.4869,0.2127,10.8368,2.0673,8.7695,0.0000,32.2365,16.6462,5.2807,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466982929191,16.8402,16.2829,0.5573,0.3804,16.2900,1.2539,15.0361,0.0000,31.8138,16.6462,-0.4731,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466983104952,16.5740,16.1692,0.4048,16.0212,0.4963,0.4963,0.0000,0.0000,30.8733,16.6895,0.4414,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466983034826,11.0674,10.5519,0.5155,0.2027,11.0970,0.9087,10.1883,0.0000,37.8965,16.6898,-5.6600,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466983145500,11.0851,10.5000,0.5851,0.2323,10.8318,0.5409,10.2909,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466983097593,16.8647,16.1767,0.6880,0.6154,16.1417,0.3313,15.8104,0.0000,31.6198,16.6898,0.1940,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466983270692,16.3959,15.9577,0.4382,15.7925,0.5476,0.5476,0.0000,0.0000,30.9888,16.6815,-0.1155,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466983256351,10.8958,10.3563,0.5395,0.1713,11.1613,0.9880,10.1733,0.0000,32.4338,16.6847,5.4627,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466983266240,16.3660,15.8360,0.5300,0.3887,15.8490,0.5471,15.3019,0.0000,31.4449,16.6847,0.1749,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466983434651,16.8500,16.3042,0.5458,16.1588,0.6201,0.6201,0.0000,0.0000,31.2744,16.6424,-0.2856,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466983365309,10.9811,10.4718,0.5093,0.4368,10.8684,0.5737,10.2947,0.0000,38.2227,16.6486,-5.7889,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466983475120,11.0289,10.4381,0.5908,0.3241,10.6844,0.4310,10.2534,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466983429900,16.7417,16.2243,0.5174,0.4193,16.2146,0.5074,15.7072,0.0000,31.7636,16.6486,-0.3187,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466983603151,16.6060,16.2238,0.3822,16.0765,0.4740,0.4740,0.0000,0.0000,31.0668,16.6514,0.2076,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466983585409,10.9373,10.4106,0.5267,0.1668,11.0987,0.9683,10.1304,0.0000,32.8613,16.6408,5.3614,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466983597317,16.7683,16.2238,0.5445,0.5123,16.1476,0.4038,15.7438,0.0000,31.6705,16.6408,0.0931,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466983769211,16.4125,16.0563,0.3562,15.9139,0.4435,0.4435,0.0000,0.0000,31.1122,16.6682,-0.0454,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466983694782,11.1178,10.5897,0.5281,0.3282,11.1457,1.0444,10.1013,0.0000,38.5648,16.6682,-5.7035,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466983805960,11.0364,10.4864,0.5500,0.3561,10.6594,0.3456,10.3138,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466983765000,16.4353,15.9493,0.4860,0.3656,15.9694,0.4876,15.4818,0.0000,31.5430,16.6682,0.1275,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466983933336,16.8399,16.4893,0.3506,16.3345,0.4526,0.4526,0.0000,0.0000,31.3679,16.6625,-0.2557,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466983916324,10.8914,10.3882,0.5032,0.1575,11.0712,1.0810,9.9902,0.0000,33.0788,16.6622,5.4860,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466983929353,16.8514,16.1911,0.6603,0.3432,16.3896,0.5565,15.8331,0.0000,31.7759,16.6622,-0.2329,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466984101735,16.5178,16.1534,0.3644,15.9431,0.5207,0.5207,0.0000,0.0000,31.1905,16.6205,0.1774,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466984025238,10.9416,10.4625,0.4791,0.3373,10.9753,0.9446,10.0307,0.0000,38.8496,16.6209,-5.7708,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466984134654,11.7279,11.2814,0.4465,0.3710,11.4301,0.6470,10.7831,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466984097867,16.4947,15.9505,0.5442,0.3340,15.9959,0.5217,15.4742,0.0000,31.5867,16.6209,0.1892,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466984266913,16.6988,16.3052,0.3936,16.1739,0.4716,0.4716,0.0000,0.0000,31.2932,16.7372,-0.1027,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466984251933,11.1275,10.6649,0.4626,0.2020,11.2850,0.9529,10.3321,0.0000,32.8010,16.7369,6.0486,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466984262814,16.6786,16.0018,0.6768,0.3559,16.2279,0.5722,15.6557,0.0000,31.7129,16.7369,-0.1262,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466984433901,16.4877,16.1424,0.3453,15.9800,0.4558,0.4558,0.0000,0.0000,31.3316,16.6776,-0.0384,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466984363208,10.8480,10.3936,0.4544,0.3595,10.8147,0.6328,10.1819,0.0000,38.4104,16.6779,-5.6094,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466984471688,11.0250,10.4758,0.5492,0.3262,10.6787,0.6385,10.0402,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466984429600,16.5193,16.0614,0.4579,0.3768,16.0333,0.5248,15.5085,0.0000,31.7712,16.6779,-0.0583,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466984598778,16.5840,16.2504,0.3336,16.1318,0.4035,0.4035,0.0000,0.0000,31.5215,16.6457,-0.1899,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466984581938,10.9123,10.4522,0.4601,0.1426,11.1047,1.1476,9.9571,0.0000,33.2153,16.6456,5.1951,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466984691061,11.0547,10.5921,0.4626,0.3350,11.1102,0.9826,10.1276,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466984594793,16.6158,16.1631,0.4527,0.3466,16.1837,0.5509,15.6328,0.0000,31.9298,16.6456,-0.1586,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466984764618,16.8378,16.4967,0.3411,16.3761,0.4116,0.4116,0.0000,0.0000,31.5832,16.5924,-0.0617,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466984801608,10.9694,10.5012,0.4682,0.3905,10.8369,0.5319,10.3050,0.0000,27.8939,16.5923,5.3214,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466984760951,16.8296,16.2890,0.5406,0.3180,16.4248,0.6295,15.7953,0.0000,31.9596,16.5923,-0.0298,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466984932996,16.5987,16.2467,0.3520,16.0910,0.4558,0.4558,0.0000,0.0000,31.3378,16.7355,0.2454,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466984911302,10.9284,10.4648,0.4636,0.2580,11.0006,0.6958,10.3048,0.0000,33.5168,16.7359,-5.6229,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466985020586,11.1049,10.6419,0.4630,0.3302,11.1063,0.9169,10.1894,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466984929247,16.5519,16.1103,0.4416,0.3248,16.1411,0.5684,15.5727,0.0000,31.7223,16.7359,0.2373,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466985098983,16.4676,16.1218,0.3458,15.9832,0.4339,0.4339,0.0000,0.0000,31.4746,16.5874,-0.1368,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466985131635,10.9313,10.4355,0.4958,0.3316,10.7564,0.7686,9.9878,0.0000,28.2194,16.5878,5.2974,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466985094766,16.5099,16.0511,0.4588,0.3698,16.0351,0.5357,15.4994,0.0000,31.9063,16.5878,-0.1840,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466985263659,17.0533,16.7028,0.3505,16.5745,0.4263,0.4263,0.0000,0.0000,31.5944,16.6865,-0.1198,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466985240948,11.0554,10.5796,0.4758,0.2113,11.1753,0.9221,10.2532,0.0000,33.8759,16.6863,-5.6565,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466985351502,10.9761,10.4977,0.4784,0.3312,10.9690,0.6385,10.3305,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466985259865,17.0454,16.3764,0.6690,0.3289,16.6250,0.6309,15.9941,0.0000,31.9842,16.6863,-0.0779,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466985434192,16.5217,16.1724,0.3493,15.9505,0.5175,0.5175,0.0000,0.0000,31.2276,16.7276,0.3668,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466985461263,11.0052,10.5215,0.4837,0.3241,10.7839,0.4827,10.3012,0.0000,28.5307,16.7269,5.3452,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466985430319,16.5240,15.9725,0.5515,0.3348,16.0030,0.5856,15.4174,0.0000,31.6251,16.7269,0.3591,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466985599409,16.6914,16.2848,0.4066,16.1460,0.4871,0.4871,0.0000,0.0000,31.4335,16.6853,-0.2059,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466985571315,11.1075,10.5814,0.5261,0.1570,11.2804,0.8569,10.4235,0.0000,34.2524,16.6856,-5.7217,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466985682390,10.9503,10.4110,0.5393,0.3299,10.9043,0.9775,9.9268,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466985595559,16.6322,16.1240,0.5082,0.3313,16.1997,0.4979,15.7018,0.0000,31.8280,16.6856,-0.2029,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466985766323,16.7732,16.4220,0.3512,16.2659,0.4528,0.4528,0.0000,0.0000,31.4274,16.6645,0.0061,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466985791893,10.9943,10.4799,0.5144,0.2839,10.8145,0.7413,10.0732,0.0000,28.8802,16.6660,5.3722,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466985761881,16.8292,16.2845,0.5447,0.3859,16.3242,0.4400,15.8842,0.0000,31.8814,16.6660,-0.0534,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466985934055,16.6309,16.2768,0.3541,16.1449,0.4319,0.4319,0.0000,0.0000,31.3187,16.6575,0.1087,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466985901836,10.9036,10.4237,0.4799,0.1607,11.0986,0.9975,10.1011,0.0000,34.5519,16.6567,-5.6717,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466986010872,11.0855,10.5892,0.4963,0.3557,11.1268,1.1142,10.0126,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466985930173,16.6284,16.1387,0.4897,0.3337,16.1994,0.5496,15.6498,0.0000,31.7182,16.6567,0.1632,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466986100364,16.5795,16.2044,0.3751,16.0745,0.4495,0.4495,0.0000,0.0000,31.3453,16.6708,-0.0266,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466986121727,10.9422,10.4737,0.4685,0.3970,10.6580,0.7316,9.9264,0.0000,29.2195,16.6707,5.3324,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466986096457,16.5600,16.0902,0.4698,0.3366,16.1286,0.5237,15.6049,0.0000,31.7465,16.6707,-0.0283,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466986266159,16.9199,16.5450,0.3749,16.4104,0.4380,0.4380,0.0000,0.0000,31.4366,16.6599,-0.0913,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466986231149,11.0220,10.5321,0.4899,0.1669,11.1899,0.9850,10.2049,0.0000,34.9480,16.6598,-5.7285,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466986341369,11.0230,10.5154,0.5076,0.3348,11.0215,1.0188,10.0027,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466986262057,16.9183,16.4289,0.4894,0.3547,16.4659,0.5479,15.9180,0.0000,31.8572,16.6598,-0.1107,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466986435358,16.6821,16.3175,0.3646,16.1570,0.4704,0.4704,0.0000,0.0000,31.1766,16.6686,0.2600,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466986451599,11.0324,10.5187,0.5137,0.3333,10.8066,0.7962,10.0104,0.0000,29.5628,16.6686,5.3852,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466986431240,16.6914,16.0788,0.6126,0.3403,16.2285,0.6529,15.5756,0.0000,31.5987,16.6686,0.2585,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466986602179,16.4877,16.0935,0.3942,15.9568,0.4739,0.4739,0.0000,0.0000,31.1631,16.6796,0.0135,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466986561923,10.9556,10.4550,0.5006,0.1640,11.1336,0.9707,10.1629,0.0000,35.1990,16.6794,-5.6362,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466986671479,11.0219,10.5106,0.5113,0.3420,10.9954,1.0104,9.9850,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466986598154,16.4604,15.9701,0.4903,0.3478,16.0115,0.4744,15.5371,0.0000,31.5759,16.6794,0.0228,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466986767056,16.8277,16.4426,0.3851,16.2399,0.5027,0.5027,0.0000,0.0000,31.3550,16.6582,-0.1919,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466986781698,10.9795,10.4787,0.5008,0.3155,10.8607,0.8342,10.0265,0.0000,29.9009,16.6585,5.2981,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466986762758,16.8347,16.2739,0.5608,0.3728,16.2969,0.5129,15.7840,0.0000,31.7949,16.6585,-0.2190,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466986935333,16.5346,16.1738,0.3608,16.0079,0.4704,0.4704,0.0000,0.0000,31.1855,16.6668,0.1695,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466986891493,11.0375,10.4995,0.5380,0.2005,11.2128,0.8724,10.3404,0.0000,35.5799,16.6665,-5.6790,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466987001868,10.9995,10.4735,0.5260,0.3758,10.7692,0.7682,10.0010,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466986931105,16.5590,16.0160,0.5430,0.3377,16.0930,0.5252,15.5678,0.0000,31.6187,16.6665,0.1762,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466987100679,16.6451,16.2676,0.3775,16.1345,0.4540,0.4540,0.0000,0.0000,31.3177,16.6666,-0.1322,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466987111863,10.9632,10.4578,0.5054,0.2023,10.8687,0.8110,10.0577,0.0000,30.2094,16.6667,5.3705,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466987096695,16.6313,16.1497,0.4816,0.3421,16.1908,0.5207,15.6701,0.0000,31.7262,16.6667,-0.1075,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466987267130,17.2066,16.8320,0.3746,16.6790,0.4716,0.4716,0.0000,0.0000,31.3392,16.6680,-0.0215,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466987221495,11.0017,10.4444,0.5573,0.1634,11.1581,0.9708,10.1873,0.0000,35.9129,16.6674,-5.7035,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466987331512,11.2058,10.4735,0.7323,0.3198,11.4936,1.3174,10.1762,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466987263008,17.1961,16.2860,0.9101,0.3556,16.7356,0.5366,16.1990,0.0000,31.7616,16.6674,-0.0354,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466987439196,16.1467,15.7897,0.3570,15.6566,0.4356,0.4356,0.0000,0.0000,30.8006,16.6736,0.5386,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466987443570,11.7944,11.3213,0.4731,11.5857,0.3218,0.3096,0.0122,0.0000,30.3728,16.6743,5.5401,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466987434969,16.1775,15.6799,0.4976,0.3667,15.7126,0.5836,15.1290,0.0000,31.2329,16.6743,0.5287,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466987600663,16.8444,16.4694,0.3750,16.3097,0.4803,0.4803,0.0000,0.0000,31.3275,16.6514,-0.5269,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466987561514,11.0153,10.5251,0.4902,0.1672,11.1713,0.9647,10.2066,0.0000,35.2527,16.6510,-4.8799,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466987671667,11.6392,11.0939,0.5453,0.3232,11.6447,0.6776,10.9671,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466987596744,16.8246,16.1410,0.6836,0.3374,16.3642,0.6049,15.7593,0.0000,31.7297,16.6510,-0.4968,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466987769107,16.5934,16.2325,0.3609,16.0667,0.4731,0.4731,0.0000,0.0000,31.1345,16.6684,0.1930,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466987788059,10.9204,10.4392,0.4812,0.3287,10.7018,0.7009,10.0009,0.0000,29.2492,16.6690,6.0035,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466987764990,16.6081,16.1029,0.5052,0.3573,16.1211,0.5061,15.6150,0.0000,31.5561,16.6690,0.1736,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466987935041,16.5354,16.1876,0.3478,16.0561,0.4266,0.4266,0.0000,0.0000,31.2095,16.6331,-0.0750,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466987897263,10.9744,10.4877,0.4867,0.1654,11.1511,0.9879,10.1632,0.0000,34.9978,16.6325,-5.7486,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466988007007,11.0443,10.5418,0.5025,0.3421,11.0606,1.0430,10.0176,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466987931071,16.5506,16.0784,0.4722,0.3434,16.1097,0.4983,15.6114,0.0000,31.6170,16.6325,-0.0609,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466988100395,16.7444,16.3889,0.3555,16.1912,0.4989,0.4989,0.0000,0.0000,31.3072,16.7001,-0.0977,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466988117450,10.9749,10.5027,0.4722,0.3584,10.7413,0.4409,10.3004,0.0000,29.6116,16.7005,5.3862,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466988096577,16.7355,16.1608,0.5747,0.3291,16.2439,0.6238,15.6201,0.0000,31.6989,16.7005,-0.0819,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466988267839,16.4935,16.1035,0.3900,15.9489,0.4904,0.4904,0.0000,0.0000,31.2629,16.6633,0.0443,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466988227199,11.0089,10.4974,0.5115,0.1779,11.1648,0.9693,10.1955,0.0000,35.3372,16.6636,-5.7256,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466988337288,11.0801,10.5238,0.5563,0.3338,11.0657,0.9207,10.1450,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466988263932,16.4585,15.9642,0.4943,0.3364,16.0032,0.5427,15.4605,0.0000,31.6639,16.6636,0.0350,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466988432774,16.7570,16.4083,0.3487,16.2765,0.4275,0.4275,0.0000,0.0000,31.4327,16.6777,-0.1698,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466988448089,10.8233,10.3560,0.4673,0.3194,10.6410,0.4674,10.1736,0.0000,29.9118,16.6782,5.4254,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466988428517,16.7996,16.3100,0.4896,0.3715,16.3307,0.5027,15.8280,0.0000,31.8690,16.6782,-0.2051,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466988600344,16.7133,16.3552,0.3581,16.2172,0.4418,0.4418,0.0000,0.0000,31.3534,16.6579,0.0793,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466988556322,11.1144,10.5875,0.5269,0.1923,11.2677,1.0144,10.2533,0.0000,35.7667,16.6573,-5.8549,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466988667466,10.9107,10.4120,0.4987,0.3456,11.2087,1.3830,9.8257,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466988596513,16.7011,16.1685,0.5326,0.3301,16.2702,0.5870,15.6832,0.0000,31.7476,16.6573,0.1214,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466988767477,16.8860,16.4726,0.4134,16.2426,0.5885,0.5885,0.0000,0.0000,31.2980,16.7162,0.0554,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466988776573,11.0606,10.5709,0.4897,10.8460,0.3279,0.3165,0.0114,0.0000,30.3989,16.7165,5.3678,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466988763524,16.8288,16.2425,0.5863,0.3410,16.2969,0.5978,15.6991,0.0000,31.7038,16.7165,0.0438,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466988936337,16.5033,16.1103,0.3930,15.9525,0.4551,0.4551,0.0000,0.0000,31.1282,16.6208,0.1698,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466988887179,11.0993,10.5288,0.5705,0.1704,11.2614,0.8679,10.3935,0.0000,36.0548,16.6196,-5.6559,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466988998172,11.0628,10.3855,0.6773,0.3325,11.3177,1.2776,10.0401,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466988931812,16.5274,16.0167,0.5107,0.3976,16.0074,0.4671,15.5403,0.0000,31.5915,16.6196,0.1123,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466989101370,16.7236,16.3696,0.3540,16.2305,0.4388,0.4388,0.0000,0.0000,31.2457,16.5894,-0.1175,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466989108800,10.8738,10.3666,0.5072,0.5874,10.3534,0.3362,10.0172,0.0000,30.5123,16.5897,5.5425,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466989097086,16.7609,16.2156,0.5453,0.3327,16.3262,0.5600,15.7662,0.0000,31.6837,16.5897,-0.0922,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466989268606,16.6329,16.2690,0.3639,16.1057,0.4706,0.4706,0.0000,0.0000,31.1115,16.7453,0.1342,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466989217538,10.9058,10.4158,0.4900,0.2050,11.0748,0.9967,10.0781,0.0000,36.2282,16.7452,-5.7159,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466989326596,11.0119,10.5021,0.5098,0.3740,10.9226,0.5680,10.3546,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466989264695,16.6237,16.1197,0.5040,0.3368,16.1600,0.5447,15.6153,0.0000,31.5125,16.7452,0.1712,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466989434935,16.6253,16.2540,0.3713,16.0266,0.5272,0.5272,0.0000,0.0000,31.2239,16.6644,-0.1124,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466989436715,11.0658,10.5876,0.4782,0.3401,10.7873,0.6625,10.1248,0.0000,31.0557,16.6643,5.1725,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466989430932,16.6191,16.0401,0.5790,0.3437,16.0832,0.5160,15.5672,0.0000,31.6340,16.6643,-0.1215,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466989601188,16.6168,16.2548,0.3620,16.1199,0.4438,0.4438,0.0000,0.0000,31.2630,16.6696,-0.0391,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466989547373,11.0046,10.4791,0.5255,0.1956,11.1518,0.9209,10.2309,0.0000,36.6542,16.6701,-5.5985,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466989657419,10.9663,10.4610,0.5053,0.3428,11.1688,1.2274,9.9414,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466989597123,16.6253,16.1145,0.5108,0.3350,16.1914,0.5184,15.6730,0.0000,31.6792,16.6701,-0.0452,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466989767356,16.6767,16.3092,0.3675,16.1774,0.4473,0.4473,0.0000,0.0000,31.3158,16.6666,-0.0528,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466989767082,11.0685,10.5860,0.4825,0.5453,10.7097,0.9913,9.7184,0.0000,31.3534,16.6669,5.3008,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466989763376,16.6722,16.2052,0.4670,0.3449,16.2305,1.2608,14.9697,0.0000,31.7240,16.6669,-0.0448,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466989934123,16.8181,16.4072,0.4109,16.2690,0.4941,0.4941,0.0000,0.0000,31.3057,16.6676,0.0101,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466989877767,10.9350,10.4436,0.4914,0.1901,11.1174,1.0540,10.0634,0.0000,36.9518,16.6684,-5.5984,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466989987117,11.2129,10.4893,0.7236,0.3725,12.2178,1.6721,10.5457,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466989930098,16.7743,16.2774,0.4969,0.3505,16.3210,0.5417,15.7793,0.0000,31.7187,16.6684,0.0053,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466990102304,16.5905,16.2310,0.3595,16.0704,0.4664,0.4664,0.0000,0.0000,31.1552,16.6808,0.1505,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466990099246,11.8050,11.2590,0.5460,11.5789,0.3315,0.3196,0.0119,0.0000,31.4723,16.6800,5.4795,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466990097841,16.6403,16.0880,0.5523,0.3913,16.1254,1.1719,14.9535,0.0000,31.6128,16.6800,0.1059,NA,NA -dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,2466990268209,16.7234,16.3326,0.3908,16.1552,0.5125,0.5125,0.0000,0.0000,31.2455,16.6026,-0.0903,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466990217296,11.0297,10.5131,0.5166,0.1634,11.3078,1.1209,10.1869,0.0000,36.3473,16.6027,-4.8750,NA,NA -PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,2466990327593,10.9290,10.4000,0.5290,0.4415,10.9380,0.7138,10.2242,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,2466990264244,16.6913,16.1484,0.5429,0.3428,16.2089,0.5687,15.6402,0.0000,31.6525,16.6027,-0.0397,NA,NA -dwm.exe,2656,0x0,Other,-1,0,0,Hardware: Legacy Flip,2466990762136,0.4445,0.4445,0.0000,0.0412,0.4340,0.4340,0.0000,0.0000,15.1795,16.6506,0.0000,NA,NA -dwm.exe,2656,0x0,Other,-1,0,0,Hardware: Legacy Flip,2466990766581,16.2299,16.2299,0.0000,0.0307,16.2331,1.1912,15.0419,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x0,Other,-1,0,0,Hardware: Legacy Flip,2466990928880,0.5601,0.5601,0.0000,0.0339,0.5573,0.5573,0.0000,0.0000,15.1557,16.6617,0.0238,NA,NA -dwm.exe,2656,0x0,Other,-1,0,0,Hardware: Legacy Flip,2466990934481,15.9238,15.9238,0.0000,0.0311,15.9288,0.4599,15.4689,0.0000,NA,NA,NA,NA,NA -PresentBench.exe,24892,0x0,Other,-1,0,0,Composed: Flip,2466990877183,10.8779,10.8779,0.0000,0.2428,11.0732,1.0574,10.0158,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x0,Other,-1,0,0,Hardware: Legacy Flip,2466991093719,0.3869,0.3869,0.0000,0.0361,0.3800,0.3800,0.0000,0.0000,15.3335,16.6960,-0.1778,NA,NA -dwm.exe,2656,0x0,Other,-1,0,0,Hardware: Legacy Flip,2466991097588,16.2489,16.2489,0.0000,0.0292,16.2553,1.1345,15.1208,0.0000,NA,NA,NA,NA,NA -PresentBench.exe,24892,0x0,Other,-1,0,0,Composed: Flip,2466990985962,21.9470,21.9470,0.0000,12.1264,10.0758,0.4935,9.5823,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x0,Other,-1,0,0,Hardware: Legacy Flip,2466991260077,0.3769,0.3769,0.0000,0.0356,0.3751,0.3751,0.0000,0.0000,15.3937,16.6454,-0.0602,NA,NA -dwm.exe,2656,0x0,Other,-1,0,0,Hardware: Legacy Flip,2466991263846,16.2973,16.2973,0.0000,0.0338,16.2994,0.6254,15.6740,0.0000,NA,NA,NA,NA,NA -PresentBench.exe,24892,0x0,Other,-1,0,0,Composed: Flip,2466991205432,11.3131,11.3131,0.0000,0.2552,11.5774,1.0810,10.4964,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x0,Other,-1,0,0,Hardware: Legacy Flip,2466991426819,0.4018,0.4018,0.0000,0.0359,0.3989,0.3989,0.0000,0.0000,15.3649,16.6717,0.0288,NA,NA -dwm.exe,2656,0x0,Other,-1,0,0,Hardware: Legacy Flip,2466991430837,16.2790,16.2790,0.0000,0.0330,16.2815,1.1176,15.1639,0.0000,NA,NA,NA,NA,NA -PresentBench.exe,24892,0x0,Other,-1,0,0,Composed: Flip,2466991318563,22.2326,22.2326,0.0000,12.1850,10.2241,0.4127,9.8114,0.0000,NA,NA,NA,NA,NA -dwm.exe,2656,0x0,Other,-1,0,0,Hardware: Legacy Flip,2466991593627,0.4080,0.4080,0.0000,0.0355,0.4045,0.4045,0.0000,0.0000,15.3558,16.6754,0.0091,NA,NA -dwm.exe,2656,0x0,Other,-1,0,0,Hardware: Legacy Flip,2466991597707,16.3723,16.3723,0.0000,0.0320,16.3802,0.5989,15.7813,0.0000,NA,NA,NA,NA,NA +Application,ProcessID,SwapChainAddress,PresentRuntime,SyncInterval,PresentFlags,AllowsTearing,PresentMode,FrameType,CPUStartQPC,FrameTime,CPUBusy,CPUWait,GPULatency,GPUTime,GPUBusy,GPUWait,VideoBusy,DisplayLatency,DisplayedTime,AnimationError,AnimationTime,AllInputToPhotonLatency,ClickToPhotonLatency,InstrumentedLatency +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466961432001,17.6073,17.2350,0.3723,17.0327,0.5275,0.5275,0.0000,0.0000,31.3980,16.7586,0.0000,1939.5329,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466961521260,11.0804,10.5535,0.5269,1.1731,10.1685,1.5667,8.6018,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466961428054,17.5867,16.8355,0.7512,0.3386,17.0888,0.6061,16.4827,0.0000,31.8110,16.7618,0.0000,1939.1382,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466961608074,16.5670,16.0949,0.4721,15.8758,0.5906,0.5906,0.0000,0.0000,30.5493,16.6266,0.8487,1957.1402,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466961632064,11.0437,10.4814,0.5623,0.2612,10.9128,0.5496,10.3632,0.0000,28.1718,16.6267,0.0000,1959.5392,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466961603921,16.4443,15.8253,0.6190,0.3682,15.9229,1.5724,14.3505,0.0000,30.9861,16.6267,0.8249,1956.7249,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466961773744,16.1648,15.7207,0.4441,15.5395,0.5192,0.5192,0.0000,0.0000,30.6089,16.7140,-0.0596,1973.7072,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466961742501,10.9768,10.4295,0.5473,0.1897,11.1060,0.8736,10.2324,0.0000,33.7548,16.7167,-5.5830,1970.5829,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466961852269,11.0437,10.5068,0.5369,0.3189,11.0869,1.1073,9.9796,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466961768364,16.1883,15.6423,0.5460,0.4374,15.6401,1.6996,13.9405,0.0000,31.1685,16.7167,-0.1824,1973.1692,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466961935392,17.5810,17.1940,0.3870,16.9146,0.6163,0.6163,0.0000,0.0000,31.1581,16.6171,-0.5492,1989.8720,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466961962706,10.9848,10.4627,0.5221,0.3621,10.8004,0.5107,10.2897,0.0000,28.4510,16.6106,5.3038,1992.6034,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466961930247,17.6673,16.6936,0.9737,0.4084,17.0207,1.4884,15.5323,0.0000,31.6969,16.6106,-0.5284,1989.3575,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466962111202,17.8642,15.6435,2.2207,15.4494,2.2733,0.9088,1.3645,0.0000,30.1942,16.7208,0.9639,2007.4530,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466962072554,11.0277,10.4314,0.5963,0.2291,11.1478,1.1570,9.9908,0.0000,34.0768,16.7265,-5.6258,2003.5882,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466962182831,10.9237,10.3479,0.5758,0.3492,11.4824,1.6873,9.7951,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466962106920,15.9948,15.2616,0.7332,0.3781,15.4995,1.6057,13.8938,0.0000,30.6402,16.7265,1.0567,2007.0248,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466962289844,15.9479,14.8621,1.0858,14.6428,1.1805,1.1805,0.0000,0.0000,29.0508,16.6311,1.1434,2025.3172,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466962292068,11.0974,10.4993,0.5981,10.8269,0.5896,0.5896,0.0000,0.0000,28.8519,16.6511,5.2249,2025.5396,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466962266868,17.0939,16.4977,0.5962,2.1561,14.7843,1.3141,13.4702,0.0000,31.3719,16.6511,-0.7317,2023.0196,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466962449323,15.8828,15.4314,0.4514,15.2329,0.5483,0.5483,0.0000,0.0000,29.7340,16.6549,-0.6832,2041.2651,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466962403042,11.1420,10.5772,0.5648,0.3191,11.1602,1.2549,9.9053,0.0000,34.4056,16.6341,-5.5537,2036.6370,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466962514462,11.2056,10.5348,0.6708,0.3373,11.6276,1.4826,10.1450,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466962437807,16.5216,15.9520,0.5696,1.0270,15.3575,1.0131,14.3444,0.0000,30.9291,16.6341,0.4428,2040.1135,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466962608151,16.3284,15.7753,0.5531,15.5793,0.5649,0.5649,0.0000,0.0000,30.5061,16.6990,-0.7721,2057.1479,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466962626518,11.8598,11.2781,0.5817,11.6173,0.5488,0.5488,0.0000,0.0000,28.6921,16.7113,5.7135,2058.9846,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466962603023,16.2189,15.6569,0.5620,0.4112,15.6809,1.6352,14.0457,0.0000,31.0416,16.7113,-0.1125,2056.6351,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466962771435,16.3668,15.8876,0.4792,15.7099,0.5417,0.5417,0.0000,0.0000,30.8767,16.6655,-0.3706,2073.4763,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466962745116,11.6995,11.1424,0.5571,0.3063,11.7878,0.8878,10.9000,0.0000,33.5436,16.6410,-4.8515,2070.8444,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466962765212,16.4399,15.8757,0.5642,0.4381,15.8941,1.0888,14.8053,0.0000,31.5340,16.6410,-0.4924,2072.8540,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466962935103,16.6493,16.2636,0.3857,16.1172,0.4737,0.4737,0.0000,0.0000,31.1754,16.6566,-0.2987,2089.8431,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466962862111,11.0109,10.4340,0.5769,0.3946,10.9543,0.6927,10.2616,0.0000,38.4851,16.6566,-4.9415,2082.5439,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466962972220,11.0696,10.4561,0.6135,0.3380,10.7081,0.7768,9.9313,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466962929611,16.7741,16.2354,0.5387,0.4340,16.2324,0.6242,15.6082,0.0000,31.7351,16.6566,-0.2011,2089.2939,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466963101596,16.5187,16.1469,0.3718,16.0146,0.4489,0.4489,0.0000,0.0000,31.1827,16.6162,-0.0073,2106.4924,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466963082916,11.8829,11.3447,0.5382,0.1534,12.1818,1.2817,10.9001,0.0000,33.0612,16.6164,5.4239,2104.6244,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466963097352,16.5342,16.0183,0.5159,0.3660,16.0730,0.6042,15.4688,0.0000,31.6176,16.6164,0.1175,2106.0680,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466963266783,16.6037,16.2427,0.3610,16.0900,0.4596,0.4596,0.0000,0.0000,31.2802,16.7559,-0.0975,2123.0111,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466963201745,10.9995,10.4891,0.5104,0.4523,10.8747,0.5849,10.2898,0.0000,37.7947,16.7560,-4.7335,2116.5073,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466963311740,11.0657,10.4913,0.5744,0.3275,10.7171,0.3604,10.3567,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466963262694,16.6156,16.1062,0.5094,0.3537,16.1452,0.5380,15.6072,0.0000,31.6998,16.7560,-0.0822,2122.6022,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466963432820,16.6417,16.2651,0.3766,16.1244,0.4609,0.4609,0.0000,0.0000,31.4324,16.6528,-0.1522,2139.6148,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466963422397,10.8951,10.3996,0.4955,0.1549,11.1069,1.7842,9.3227,0.0000,32.4855,16.6528,5.3092,2138.5725,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466963428850,16.6247,16.1209,0.5038,0.3429,16.1785,1.1430,15.0355,0.0000,31.8402,16.6528,-0.1404,2139.2178,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466963599237,16.8367,16.4395,0.3972,16.3039,0.4737,0.4737,0.0000,0.0000,31.4435,16.7136,-0.0111,2156.2565,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466963531348,11.0541,10.5275,0.5266,0.3667,11.0354,1.0488,9.9866,0.0000,38.2432,16.7139,-5.7577,2149.4676,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466963641889,11.0887,10.4996,0.5891,0.3480,10.7178,0.3983,10.3195,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466963595097,16.8150,16.3001,0.5149,0.3576,16.3603,0.5625,15.7978,0.0000,31.8683,16.7139,-0.0281,2155.8425,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466963767604,17.0805,16.4569,0.6236,16.1430,0.8632,0.8373,0.0259,0.0000,31.3204,16.6176,0.1231,2173.0932,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466963752776,11.1639,10.5872,0.5767,0.1508,11.3660,1.1893,10.1767,0.0000,32.8143,16.6172,5.4289,2171.6104,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466963763247,16.8362,16.1432,0.6930,0.3766,16.2021,0.5332,15.6689,0.0000,31.7672,16.6172,0.1011,2172.6575,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466963938409,16.4395,16.0034,0.4361,15.8363,0.5434,0.5434,0.0000,0.0000,30.8575,16.6867,0.4629,2190.1737,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466963864415,11.9559,11.3513,0.6046,0.3529,11.8749,0.6540,11.2209,0.0000,38.2676,16.6868,-5.4533,2182.7743,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466963983974,11.4340,10.6690,0.7650,0.2719,11.9773,1.3960,10.5813,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466963931609,16.6434,16.0309,0.6125,0.6057,15.9106,0.5305,15.3801,0.0000,31.5482,16.6868,0.2190,2189.4937,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466964102804,16.5434,16.1166,0.4268,15.9796,0.5030,0.5030,0.0000,0.0000,31.1047,16.6576,-0.2472,2206.6132,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466964098314,11.8810,11.3151,0.5659,0.8152,11.2412,1.1632,10.0780,0.0000,31.5645,16.6576,6.7031,2206.1642,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466964098043,16.5534,16.0204,0.5330,0.4163,16.0394,1.2918,14.7476,0.0000,31.5916,16.6576,-0.0434,2206.1371,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466964268238,17.2821,16.2850,0.9971,16.1363,1.0728,0.8762,0.1966,0.0000,31.2189,16.6783,-0.1142,2223.1566,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466964217124,11.9024,11.3447,0.5577,0.2376,12.0399,1.2408,10.7991,0.0000,36.3411,16.6782,-4.7766,2218.0452,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466964336148,11.2715,10.5370,0.7345,0.3751,11.2456,1.2588,9.9868,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466964263577,16.7028,16.1592,0.5436,0.4053,16.1971,0.5502,15.6469,0.0000,31.6958,16.6782,-0.1042,2222.6905,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466964441059,16.0527,15.6378,0.4149,15.4780,0.5138,0.5138,0.0000,0.0000,30.6151,16.5605,0.6038,2240.4387,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466964448863,11.8763,11.3004,0.5759,0.3492,11.7085,0.5556,11.1529,0.0000,29.8454,16.5605,6.4957,2241.2191,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466964430605,16.6441,16.0863,0.5578,0.9724,15.5510,0.7649,14.7861,0.0000,31.6712,16.5605,0.0246,2239.3933,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466964601586,16.6844,16.2786,0.4058,16.1394,0.4849,0.4849,0.0000,0.0000,31.1229,16.7579,-0.5078,2256.4914,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466964567626,11.8452,11.2730,0.5722,0.2452,11.9602,1.0432,10.9170,0.0000,34.5296,16.7578,-4.6842,2253.0954,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466964686078,11.0585,10.5141,0.5444,0.3602,11.0934,1.1605,9.9329,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466964597046,16.6921,16.1508,0.5413,0.3931,16.2003,0.5399,15.6604,0.0000,31.5876,16.7578,0.0836,2256.0374,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466964768430,16.5459,16.1294,0.4165,15.9909,0.4898,0.4898,0.0000,0.0000,31.1964,16.6824,-0.0735,2273.1758,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466964796663,11.1103,10.5661,0.5442,0.3951,10.8444,0.7873,10.0571,0.0000,28.3837,16.6825,6.1459,2275.9991,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466964763967,16.5361,16.0002,0.5359,0.3862,16.0510,0.5728,15.4782,0.0000,31.6533,16.6825,-0.0657,2272.7295,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466964933889,16.6529,16.2422,0.4107,16.1032,0.4895,0.4895,0.0000,0.0000,31.3329,16.6735,-0.1365,2289.7217,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466964907766,11.3938,10.7566,0.6372,0.1908,11.5556,0.9681,10.5875,0.0000,33.9559,16.6741,-5.5722,2287.1094,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466964929328,16.6588,16.1175,0.5413,0.3909,16.1684,0.5101,15.6583,0.0000,31.7997,16.6741,-0.1464,2289.2656,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466965100418,17.0274,16.4566,0.5708,16.2169,0.7459,0.7459,0.0000,0.0000,31.3535,16.6433,-0.0206,2306.3746,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466965021704,11.9693,11.4016,0.5677,0.3526,11.9693,0.7227,11.2466,0.0000,39.2362,16.6423,-5.2803,2298.5032,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466965141397,11.2104,10.5582,0.6522,0.3526,10.8341,0.7857,10.0484,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466965095916,16.8651,16.2282,0.6369,0.3900,16.2771,0.5736,15.7035,0.0000,31.8150,16.6423,-0.0153,2305.9244,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466965270692,16.6766,16.2562,0.4204,16.1140,0.5012,0.5012,0.0000,0.0000,30.9694,16.6732,0.3841,2323.4020,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466965253501,11.5874,11.0054,0.5820,0.1604,11.7881,0.9735,10.8146,0.0000,32.6988,16.6735,6.5374,2321.6829,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466965264567,16.8264,16.0611,0.7653,0.5479,16.1786,0.5566,15.6220,0.0000,31.5922,16.6735,0.2228,2322.7895,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466965437458,16.4789,16.0652,0.4137,15.9139,0.5043,0.5043,0.0000,0.0000,30.9660,16.6587,0.0034,2340.0786,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466965369375,11.2791,10.7051,0.5740,0.3611,11.3904,0.8259,10.5645,0.0000,37.7849,16.6589,-5.0861,2333.2703,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466965482166,11.2233,10.5900,0.6333,0.4724,10.8112,0.3872,10.4240,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466965432831,16.4879,15.8707,0.6172,0.4013,15.9753,0.5834,15.3919,0.0000,31.4393,16.6589,0.1529,2339.6159,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466965602247,16.6877,16.2629,0.4248,16.1217,0.5018,0.5018,0.0000,0.0000,31.1458,16.5705,-0.1798,2356.5575,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466965594399,11.9801,11.3896,0.5905,0.2827,11.8404,1.9038,9.9366,0.0000,31.9414,16.5704,5.8435,2355.7727,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466965597710,16.6749,16.0652,0.6097,0.3930,16.1824,1.1825,14.9999,0.0000,31.6103,16.5704,-0.1710,2356.1038,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466965769124,16.6904,16.2784,0.4120,16.1015,0.5257,0.5257,0.0000,0.0000,31.0286,16.7436,0.1172,2373.2452,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466965714200,11.9172,11.3236,0.5936,0.2063,12.1762,1.2313,10.9449,0.0000,36.5317,16.7431,-4.5903,2367.7528,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466965833372,11.2585,10.3950,0.8635,0.4653,11.3657,1.0609,10.3048,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466965764459,16.7015,16.1084,0.5931,0.4023,16.1657,0.5147,15.6510,0.0000,31.5058,16.7431,0.1045,2372.7787,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466965936028,16.6458,16.1391,0.5067,15.9790,0.6031,0.6031,0.0000,0.0000,31.0818,16.6689,-0.0532,2389.9356,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466965945957,11.7998,11.2206,0.5792,0.5725,11.3428,0.4974,10.8454,0.0000,30.0991,16.6691,6.4326,2390.9285,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466965931474,16.5513,15.9948,0.5565,0.3922,16.0422,0.5372,15.5050,0.0000,31.5474,16.6691,-0.0416,2389.4802,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466966102486,17.1162,16.0188,1.0974,15.8658,1.1837,0.8116,0.3721,0.0000,31.1049,16.6616,-0.0231,2406.5814,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466966063955,11.8388,11.3292,0.5096,0.7924,11.3828,1.0054,10.3774,0.0000,34.9684,16.6609,-4.8693,2402.7283,40.5319,40.5319,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466966182343,11.0053,10.4926,0.5127,0.3364,10.9376,0.9731,9.9645,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466966096987,16.5312,16.0189,0.5123,0.4862,15.9295,0.5920,15.3375,0.0000,31.6652,16.6609,-0.1178,2406.0315,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466966273648,16.0123,15.6462,0.3661,15.5067,0.4495,0.4495,0.0000,0.0000,30.6503,16.6809,0.4546,2423.6976,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466966292396,11.0266,10.5120,0.5146,0.2687,10.8106,0.5603,10.2503,0.0000,28.7852,16.6810,6.1832,2425.5724,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466966262299,16.7436,16.2380,0.5056,1.0682,15.5734,0.3598,15.2136,0.0000,31.7949,16.6810,-0.1297,2422.5627,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466966433771,16.7177,16.3470,0.3707,16.1129,0.5488,0.5488,0.0000,0.0000,31.3189,16.6582,-0.6686,2439.7099,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466966402662,11.0055,10.4739,0.5316,0.1975,11.1189,0.9344,10.1845,0.0000,34.4396,16.6585,-5.6544,2436.5990,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466966512717,11.0416,10.5223,0.5193,0.3109,11.0734,1.1364,9.9370,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466966429735,16.7140,16.1303,0.5837,0.3475,16.1690,0.6273,15.5417,0.0000,31.7323,16.6585,0.0626,2439.3063,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466966600948,16.6180,16.2331,0.3849,16.0996,0.4616,0.4616,0.0000,0.0000,31.2594,16.6889,0.0595,2456.4276,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466966623133,11.0470,10.5109,0.5361,0.3427,10.9127,0.9458,9.9669,0.0000,29.0510,16.6892,5.3886,2458.6461,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466966596875,16.6034,16.1033,0.5001,0.3513,16.1556,0.5055,15.6501,0.0000,31.6768,16.6892,0.0555,2456.0203,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466966767128,16.6852,16.3023,0.3829,16.1681,0.4599,0.4599,0.0000,0.0000,31.3303,16.6940,-0.0709,2473.0456,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466966733603,10.8885,10.3564,0.5321,0.2123,11.0269,0.8662,10.1607,0.0000,34.6932,16.6888,-5.6422,2469.6931,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466966842488,10.9367,10.4093,0.5274,0.3507,10.9835,1.0869,9.8966,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466966762909,16.6862,16.1550,0.5312,0.3651,16.2249,0.5943,15.6306,0.0000,31.7626,16.6888,-0.0858,2472.6237,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466966933980,18.0029,16.3869,1.6160,16.2128,1.7181,0.8724,0.8457,0.0000,31.3391,16.6131,-0.0088,2489.7308,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466966951855,11.0730,10.5331,0.5399,0.3975,10.7978,0.8716,9.9262,0.0000,29.5568,16.6139,5.1364,2491.5183,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466966929771,16.7675,16.1984,0.5691,0.3637,16.2700,0.6263,15.6437,0.0000,31.7652,16.6139,-0.0026,2489.3099,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466967114009,14.7684,14.4496,0.3188,14.3573,0.3704,0.3704,0.0000,0.0000,29.9493,16.7202,1.3898,2507.7337,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466967062585,11.0625,10.4812,0.5813,0.1827,11.2545,1.0573,10.1972,0.0000,35.0977,16.7245,-5.5409,2502.5913,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466967173210,11.0383,10.7050,0.3333,0.4355,11.0106,0.9370,10.0736,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466967097446,16.0824,15.7374,0.3450,1.5843,14.4293,0.3109,14.1184,0.0000,31.6116,16.7245,0.1536,2506.0774,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466967261693,16.4198,16.1932,0.2266,16.1129,0.2700,0.2700,0.0000,0.0000,31.9011,16.6853,-1.9518,2522.5021,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466967283593,11.3453,10.9291,0.4162,0.4078,11.0902,0.6257,10.4645,0.0000,29.7214,16.6854,5.3763,2524.6921,45.2755,45.2755,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466967258270,16.5141,16.1971,0.3170,0.3016,16.1536,0.5676,15.5860,0.0000,32.2537,16.6854,-0.6421,2522.1598,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466967425891,17.0650,16.8084,0.2566,16.7174,0.3078,0.3078,0.0000,0.0000,32.1666,16.6632,-0.2655,2538.9219,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466967397046,10.9293,10.5633,0.3660,0.1527,11.2230,0.8081,10.4149,0.0000,35.0615,16.6633,-5.3401,2536.0374,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466967506339,11.1253,10.5774,0.5479,0.4464,11.0202,0.9020,10.1182,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466967423411,17.0315,16.6758,0.3557,0.2111,16.7543,0.6714,16.0829,0.0000,32.4250,16.6633,-0.1713,2538.6739,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466967596541,17.1859,16.7776,0.4083,16.6225,0.5040,0.5040,0.0000,0.0000,31.7648,16.5333,0.4018,2555.9869,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466967617592,11.7395,10.5365,1.2030,0.3413,11.3580,0.5171,10.8409,0.0000,29.6702,16.5334,5.3913,2558.0920,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466967593726,17.0214,16.4836,0.5378,0.2417,16.6623,0.7579,15.9044,0.0000,32.0568,16.5334,0.3682,2555.7054,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466967768400,16.7588,16.3475,0.4113,16.1363,0.5621,0.5621,0.0000,0.0000,31.1122,16.7859,0.6526,2573.1728,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466967734987,11.3158,10.7657,0.5501,0.2330,11.4434,1.0750,10.3684,0.0000,34.4641,16.7858,-4.7939,2569.8315,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466967848145,11.2749,10.6938,0.5811,0.3606,11.2676,1.1459,10.1217,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466967763940,16.7523,16.1523,0.6000,0.3866,16.1957,0.5923,15.6034,0.0000,31.5688,16.7858,0.4880,2572.7268,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466967935988,16.4439,16.0269,0.4170,15.8880,0.4959,0.4959,0.0000,0.0000,31.1393,16.6023,-0.0271,2589.9316,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466967960894,11.1971,10.6415,0.5556,0.3533,10.9904,0.8726,10.1178,0.0000,28.6592,16.6165,5.8049,2592.4222,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466967931463,16.4399,15.9088,0.5311,0.3921,15.9484,0.4979,15.4505,0.0000,31.6023,16.6165,-0.0335,2589.4791,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466968100427,16.7986,16.3952,0.4034,16.2554,0.4832,0.4832,0.0000,0.0000,31.2977,16.7297,-0.1584,2606.3755,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466968072865,11.1963,10.5510,0.6453,0.2087,11.3656,1.0751,10.2905,0.0000,34.0786,16.7282,-5.4194,2603.6193,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466968184828,11.1357,10.5604,0.5753,0.3780,11.1263,1.1135,10.0128,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466968095862,16.8118,16.2808,0.5310,0.3965,16.3154,0.5458,15.7696,0.0000,31.7789,16.7282,-0.1766,2605.9190,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466968268413,16.9014,16.4690,0.4324,16.2981,0.5397,0.5397,0.0000,0.0000,31.2288,16.6410,0.0689,2623.1741,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466968296185,11.4523,10.8756,0.5767,0.3686,11.3340,0.9559,10.3781,0.0000,28.4748,16.6421,5.6038,2625.9513,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466968263980,16.8689,16.2526,0.6163,0.3833,16.3581,0.5673,15.7908,0.0000,31.6953,16.6421,0.0836,2622.7308,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466968437427,16.7467,16.3030,0.4437,16.1167,0.5643,0.5643,0.0000,0.0000,30.9684,16.6754,0.2604,2640.0755,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466968410708,12.1648,11.3997,0.7651,0.3636,12.0794,1.1508,10.9286,0.0000,33.6646,16.6755,-5.1898,2637.4036,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466968432669,16.7341,16.1460,0.5881,0.4122,16.1803,0.5560,15.6243,0.0000,31.4685,16.6755,0.2268,2639.5997,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466968604894,16.6586,16.1973,0.4613,16.0104,0.5849,0.5849,0.0000,0.0000,30.8971,16.6649,0.0713,2656.8222,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466968532356,11.8531,11.2670,0.5861,0.2782,11.9200,0.8952,11.0248,0.0000,38.1753,16.6649,-4.5107,2649.5684,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466968650887,11.8948,11.2008,0.6940,0.3451,12.3240,1.6527,10.6713,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466968600010,16.6409,16.0426,0.5983,0.4227,16.0761,1.3861,14.6900,0.0000,31.4099,16.6649,0.0586,2656.3338,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466968771480,16.2787,15.8655,0.4132,15.7254,0.4907,0.4907,0.0000,0.0000,30.9034,16.5573,-0.0063,2673.4808,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466968769835,11.8605,11.3026,0.5579,0.7743,11.2593,0.7515,10.5078,0.0000,31.0923,16.5518,7.0830,2673.3163,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466968766419,16.3314,15.7986,0.5328,0.4428,15.7887,0.7385,15.0502,0.0000,31.4339,16.5518,-0.0240,2672.9747,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466968934267,16.8738,16.4019,0.4719,16.2130,0.5757,0.5757,0.0000,0.0000,31.1820,16.7216,-0.2786,2689.7595,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466968888440,11.0399,10.4354,0.6045,0.2365,11.1655,1.0755,10.0900,0.0000,35.7836,16.7140,-4.6913,2685.1768,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466968998839,12.0039,11.3570,0.6469,0.3621,11.9654,0.7017,11.2637,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466968929733,16.8126,16.1913,0.6213,0.3908,16.2756,0.6355,15.6401,0.0000,31.6543,16.7140,-0.2204,2689.3061,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466969103005,16.8943,16.4578,0.4365,16.2191,0.6078,0.6078,0.0000,0.0000,31.0298,16.6139,0.1522,2706.6333,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466969118878,12.0144,11.3964,0.6180,0.3282,12.0722,1.2741,10.7981,0.0000,29.4538,16.6131,6.3298,2708.2206,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466969097859,16.9278,16.2424,0.6854,0.4295,16.3042,0.5480,15.7562,0.0000,31.5557,16.6131,0.0986,2706.1187,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466969271948,16.6597,16.1043,0.5554,15.9365,0.6566,0.6566,0.0000,0.0000,30.7494,16.7019,0.2804,2723.5276,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466969239022,11.0010,10.3769,0.6241,0.3860,10.9930,0.7641,10.2289,0.0000,34.0525,16.7025,-4.5987,2720.2350,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466969349032,11.0051,10.4303,0.5748,0.3780,10.9150,0.6826,10.2324,0.0000,NA,NA,NA,NA,NA,NA,NA +steamwebhelper.exe,3980,0x21C48E8A710,DXGI,1,0,0,Composed: Flip,Application,2466969154898,12.7771,12.5641,0.2130,12.8255,1.2577,1.2493,0.0084,0.0000,42.4649,16.7025,0.0000,2711.8226,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466969267137,16.5352,15.9469,0.5883,0.4137,16.0039,0.5486,15.4553,0.0000,31.2410,16.7025,0.3147,2723.0465,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466969438545,17.0311,16.1658,0.8653,15.9792,0.9837,0.8327,0.1510,0.0000,30.7916,16.7498,-0.0422,2740.1873,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466969459083,11.0920,10.5367,0.5553,0.2879,10.9626,0.6811,10.2815,0.0000,28.7489,16.7503,5.3036,2742.2411,NA,NA,NA +steamwebhelper.exe,3980,0x21C48E8A710,DXGI,1,0,0,Composed: Flip,Application,2466969282669,15.9782,15.8188,0.1594,16.0413,0.8271,0.8147,0.0124,0.0000,46.3903,16.7503,-3.9254,2724.5997,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466969432489,16.7289,15.9936,0.7353,0.5390,16.0458,0.5422,15.5036,0.0000,31.4083,16.7503,-0.1673,2739.5817,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466969608856,16.0759,15.6695,0.4064,15.5083,0.5049,0.5049,0.0000,0.0000,30.5103,16.5913,0.2813,2757.2184,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466969570003,11.0442,10.4413,0.6029,0.2209,11.1695,1.0899,10.0796,0.0000,34.4072,16.5905,-5.6583,2753.3331,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466969680445,10.9505,10.3726,0.5779,0.3462,11.0125,0.7887,10.2238,0.0000,NA,NA,NA,NA,NA,NA,NA +steamwebhelper.exe,3980,0x21C48E8A710,DXGI,1,0,0,Composed: Flip,Application,2466969442451,17.0808,16.8994,0.1814,17.0823,0.6043,0.6043,0.0000,0.0000,47.1624,16.5905,-0.7721,2740.5779,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466969599778,16.5353,15.9599,0.5754,0.8396,15.5765,0.3073,15.2692,0.0000,31.4297,16.5905,-0.0214,2756.3106,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466969769615,16.7540,16.3514,0.4026,16.1901,0.5021,0.5021,0.0000,0.0000,31.0257,16.6249,-0.5154,2773.2943,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466969789950,11.0012,10.4660,0.5352,0.4082,10.7325,0.8469,9.8856,0.0000,29.0030,16.6264,5.4042,2775.3278,NA,NA,NA +steamwebhelper.exe,3980,0x21C48E8A710,DXGI,1,0,0,Composed: Flip,Application,2466969613259,16.2340,16.0592,0.1748,0.6058,16.6150,1.2836,15.3314,0.0000,46.6721,16.6264,0.4903,2757.6587,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466969765131,16.7530,16.2000,0.5530,0.3857,16.2528,0.5808,15.6720,0.0000,31.4849,16.6264,-0.0552,2772.8459,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466969937155,16.8459,16.4329,0.4130,16.2750,0.5089,0.5089,0.0000,0.0000,30.8966,16.8323,0.1291,2790.0483,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466969899962,11.1139,10.5416,0.5723,0.2024,11.2664,0.9327,10.3337,0.0000,34.6282,16.8315,-5.6252,2786.3290,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466970011101,11.8753,11.2924,0.5829,0.3549,11.9235,0.7866,11.1369,0.0000,NA,NA,NA,NA,NA,NA,NA +steamwebhelper.exe,3980,0x21C48E8A710,DXGI,1,0,0,Composed: Flip,Application,2466969775599,16.9647,16.7919,0.1728,17.0256,0.5867,0.5741,0.0126,0.0000,47.0645,16.8315,-0.3924,2773.8927,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466969932661,16.8389,16.0360,0.8029,0.3876,16.3368,0.5418,15.7950,0.0000,31.3583,16.8315,0.1266,2789.5989,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466970105614,16.3649,15.9588,0.4061,15.7739,0.5284,0.5284,0.0000,0.0000,30.8830,16.6276,0.0136,2806.8942,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466970129854,11.6045,10.3924,1.2121,0.4031,11.1660,0.7621,10.4039,0.0000,28.4705,16.6279,6.1577,2809.3182,NA,NA,NA +steamwebhelper.exe,3980,0x21C48E8A710,DXGI,1,0,0,Composed: Flip,Application,2466969945246,16.5917,16.4163,0.1754,0.6962,16.6383,0.8279,15.8104,0.0000,46.9313,16.6279,0.1332,2790.8574,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466970101050,16.3747,15.7859,0.5888,0.3944,15.8359,0.5221,15.3138,0.0000,31.3509,16.6279,0.0074,2806.4378,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466970269263,16.9851,16.4439,0.5412,16.2780,0.6374,0.6374,0.0000,0.0000,31.1457,16.6878,-0.2627,2823.2591,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466970245899,11.5043,10.8949,0.6094,0.2657,11.5685,1.0633,10.5052,0.0000,33.4939,16.6872,-5.0234,2820.9227,NA,NA,NA +steamwebhelper.exe,3980,0x21C48E8A710,DXGI,1,0,0,Composed: Flip,Application,2466970111163,16.6929,16.5252,0.1677,16.7576,0.5890,0.5755,0.0135,0.0000,46.9675,16.6872,-0.0362,2807.4491,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466970264797,16.8495,16.2667,0.5828,0.3840,16.3406,0.5832,15.7574,0.0000,31.6041,16.6872,-0.2532,2822.8125,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466970439114,16.6671,16.2219,0.4452,15.9850,0.6157,0.6157,0.0000,0.0000,30.8484,16.6463,0.2973,2840.2442,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466970360942,11.9932,11.3995,0.5937,0.3299,12.0330,0.8146,11.2184,0.0000,38.6768,16.6465,-5.1829,2832.4270,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466970480874,12.0571,11.2490,0.8081,0.3697,13.1252,2.2623,10.8629,0.0000,NA,NA,NA,NA,NA,NA,NA +steamwebhelper.exe,3980,0x21C48E8A710,DXGI,1,0,0,Composed: Flip,Application,2466970278092,16.3836,16.1919,0.1917,0.7041,16.7111,1.0657,15.6454,0.0000,46.9618,16.6465,0.0057,2824.1420,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466970433292,16.7610,16.0725,0.6885,0.5125,16.0547,0.5864,15.4683,0.0000,31.4418,16.6465,0.1623,2839.6620,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466970605785,16.5433,16.1212,0.4221,15.9653,0.5132,0.5132,0.0000,0.0000,30.8276,16.6636,0.0208,2856.9113,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466970601445,11.9322,11.3340,0.5982,11.6779,0.6186,0.6186,0.0000,0.0000,31.2730,16.6638,7.4038,2856.4773,NA,NA,NA +steamwebhelper.exe,3980,0x21C48E8A710,DXGI,1,0,0,Composed: Flip,Application,2466970441928,17.3653,17.1725,0.1928,1.0316,17.0409,0.7693,16.2716,0.0000,47.2247,16.6638,-0.2629,2840.5256,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466970600902,16.5674,15.9879,0.5795,0.4219,16.0317,1.1105,14.9212,0.0000,31.3273,16.6638,0.1145,2856.4230,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466970771218,16.7229,16.2585,0.4644,16.0759,0.5780,0.5780,0.0000,0.0000,30.9479,16.6484,-0.1203,2873.4546,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466970720767,11.0018,10.4118,0.5900,0.3643,11.0569,1.1596,9.8973,0.0000,36.0046,16.6482,-4.7316,2868.4095,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466970830785,11.4681,10.6409,0.8272,0.4194,11.8453,1.5480,10.2973,0.0000,NA,NA,NA,NA,NA,NA,NA +steamwebhelper.exe,3980,0x21C48E8A710,DXGI,1,0,0,Composed: Flip,Application,2466970615581,16.6395,16.4686,0.1709,0.7185,16.3088,1.1675,15.1413,0.0000,46.5232,16.6482,0.7015,2857.8909,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466970766576,16.6802,16.0789,0.6013,0.3994,16.1407,0.6067,15.5340,0.0000,31.4237,16.6482,-0.0964,2872.9904,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466970938447,16.6899,16.2518,0.4381,16.0872,0.5361,0.5361,0.0000,0.0000,30.8734,16.5826,0.0745,2890.1775,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466970945466,11.8565,11.2311,0.6254,0.7966,11.3708,1.1411,10.2297,0.0000,30.1829,16.5828,5.8217,2890.8794,NA,NA,NA +steamwebhelper.exe,3980,0x21C48E8A710,DXGI,1,0,0,Composed: Flip,Application,2466970781976,16.6452,16.4623,0.1829,0.5127,17.2171,1.2115,16.0056,0.0000,46.5319,16.5828,-0.0087,2874.5304,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466970933378,16.7136,16.1046,0.6090,0.4379,16.1562,0.5523,15.6039,0.0000,31.3917,16.5828,0.0320,2889.6706,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466971105346,16.5060,16.0866,0.4194,15.9348,0.5068,0.5068,0.0000,0.0000,30.7661,16.7620,0.1073,2906.8674,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466971064031,11.1736,10.5697,0.6039,0.3109,11.2138,0.8949,10.3189,0.0000,34.9092,16.7611,-4.7263,2902.7359,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466971175767,11.3511,10.6798,0.6713,0.3511,11.1987,0.9755,10.2232,0.0000,NA,NA,NA,NA,NA,NA,NA +steamwebhelper.exe,3980,0x21C48E8A710,DXGI,1,0,0,Composed: Flip,Application,2466970948428,16.5910,16.4038,0.1872,1.0846,16.3459,1.1556,15.1903,0.0000,46.4695,16.7611,0.0624,2891.1756,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466971100514,16.5292,15.9574,0.5718,0.4166,16.0014,0.5896,15.4118,0.0000,31.2609,16.7611,0.1308,2906.3842,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466971270406,16.9734,16.1116,0.8618,15.9515,0.9186,0.9186,0.0000,0.0000,31.0221,16.6713,-0.2560,2923.3734,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466971289278,12.0076,11.4007,0.6069,0.2589,11.8945,0.8675,11.0270,0.0000,29.1456,16.6720,5.7636,2925.2606,NA,NA,NA +steamwebhelper.exe,3980,0x21C48E8A710,DXGI,1,0,0,Composed: Flip,Application,2466971114338,16.1435,15.9453,0.1982,0.8395,16.3922,1.0366,15.3556,0.0000,46.6396,16.6720,-0.1701,2907.7666,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466971265806,16.5203,15.9582,0.5621,0.3956,16.0159,0.6885,15.3274,0.0000,31.4928,16.6720,-0.2319,2922.9134,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466971440140,16.3792,15.9477,0.4315,15.7728,0.5429,0.5429,0.0000,0.0000,30.7200,16.6642,0.3021,2940.3468,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466971409354,11.9657,11.3740,0.5917,0.2126,12.1193,0.9564,11.1629,0.0000,33.8100,16.6636,-4.6644,2937.2682,NA,NA,NA +steamwebhelper.exe,3980,0x21C48E8A710,DXGI,1,0,0,Composed: Flip,Application,2466971275773,17.1016,16.9270,0.1746,17.1628,1.0964,1.0883,0.0081,0.0000,47.1681,16.6636,-0.5285,2923.9101,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466971431009,16.8204,16.2367,0.5837,0.8098,15.8761,0.5740,15.3021,0.0000,31.6445,16.6636,-0.1517,2939.4337,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466971603932,16.5703,16.1556,0.4147,15.9994,0.5074,0.5074,0.0000,0.0000,31.0050,16.6080,-0.2850,2956.7260,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466971529011,11.0714,10.5029,0.5685,0.3662,11.1163,1.1573,9.9590,0.0000,38.5079,16.6089,-4.6979,2949.2339,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466971639725,11.2580,10.6677,0.5903,0.4111,11.0092,0.9063,10.1029,0.0000,NA,NA,NA,NA,NA,NA,NA +steamwebhelper.exe,3980,0x21C48E8A710,DXGI,1,0,0,Composed: Flip,Application,2466971446789,16.0484,15.8627,0.1857,16.2944,1.0665,1.0526,0.0139,0.0000,46.7301,16.6089,0.4380,2941.0117,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466971599213,16.5788,16.0260,0.5528,0.4084,16.0629,0.5627,15.5002,0.0000,31.4877,16.6089,0.1568,2956.2541,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466971769635,16.7693,16.3444,0.4249,16.1236,0.5824,0.5824,0.0000,0.0000,31.0427,16.7151,-0.0377,2973.2963,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466971752305,11.9861,11.3684,0.6177,0.2268,12.1258,1.0061,11.1197,0.0000,32.7874,16.7143,5.7205,2971.5633,NA,NA,NA +steamwebhelper.exe,3980,0x21C48E8A710,DXGI,1,0,0,Composed: Flip,Application,2466971607273,26.6049,26.4221,0.1828,26.8932,1.2007,1.2007,0.0000,0.0000,47.2906,16.7143,-0.5605,2957.0601,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466971765001,16.7657,16.1398,0.6259,0.3999,16.1871,0.5481,15.6390,0.0000,31.5178,16.7143,-0.0301,2972.8329,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466971937328,16.6893,16.2508,0.4385,16.0561,0.5671,0.5671,0.0000,0.0000,30.9885,16.5852,0.0542,2990.0656,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466971872166,11.9572,11.3716,0.5856,0.3665,11.9850,0.7751,11.2099,0.0000,37.5156,16.5874,-4.7282,2983.5494,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466971991738,11.1267,10.4478,0.6789,0.3943,11.5269,1.5641,9.9628,0.0000,NA,NA,NA,NA,NA,NA,NA +steamwebhelper.exe,3980,0x21C48E8A710,DXGI,1,0,0,Composed: Flip,Application,2466971873322,16.3827,16.1974,0.1853,1.4890,16.0470,0.8244,15.2226,0.0000,37.4000,16.5874,9.8906,2983.6650,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466971932658,16.6734,16.0397,0.6337,0.4037,16.1194,0.7680,15.3514,0.0000,31.4664,16.5874,0.0514,2989.5986,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466972104221,17.0747,16.2057,0.8690,16.0413,0.9573,0.9319,0.0254,0.0000,30.8844,16.7439,0.1041,3006.7549,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466972103005,11.9363,11.3476,0.5887,0.7945,11.4721,0.8072,10.6649,0.0000,31.0191,16.7453,6.4965,3006.6333,NA,NA,NA +steamwebhelper.exe,3980,0x21C48E8A710,DXGI,1,0,0,Composed: Flip,Application,2466972037149,16.6360,16.4595,0.1765,16.8616,0.7040,0.6885,0.0155,0.0000,37.6047,16.7453,-0.2047,3000.0477,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466972099392,16.6467,16.0738,0.5729,0.4168,16.1074,0.7881,15.3193,0.0000,31.3804,16.7453,0.0860,3006.2720,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466972274968,16.0291,15.6384,0.3907,15.4841,0.4863,0.4863,0.0000,0.0000,30.5536,16.6526,0.3308,3023.8296,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466972222368,10.9008,10.3575,0.5433,0.3303,10.9117,1.0814,9.8303,0.0000,35.8281,16.6485,-4.8090,3018.5696,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466972331376,11.0511,10.3244,0.7267,0.3412,11.6292,1.6932,9.9360,0.0000,NA,NA,NA,NA,NA,NA,NA +steamwebhelper.exe,3980,0x21C48E8A710,DXGI,1,0,0,Composed: Flip,Application,2466972203509,16.7394,16.5621,0.1773,16.9473,0.6846,0.6707,0.0139,0.0000,37.7140,16.6485,-0.1093,3016.6837,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466972265859,16.5094,15.9668,0.5426,0.8348,15.5602,0.5058,15.0544,0.0000,31.4790,16.6485,-0.0986,3022.9187,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466972435259,16.8300,16.4505,0.3795,16.3007,0.4721,0.4721,0.0000,0.0000,31.1771,16.6495,-0.6235,3039.8587,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466972441887,10.8568,10.3459,0.5109,0.9193,10.1169,0.6430,9.4739,0.0000,30.5247,16.6495,5.3034,3040.5215,NA,NA,NA +steamwebhelper.exe,3980,0x21C48E8A710,DXGI,1,0,0,Composed: Flip,Application,2466972370903,6.6114,6.4488,0.1626,6.8795,1.1243,1.0614,0.0629,0.0000,37.6231,16.6495,0.0909,3033.4231,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466972430953,16.8424,16.2681,0.5743,0.3719,16.3594,0.5519,15.8075,0.0000,31.6181,16.6495,-0.1391,3039.4281,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466972603559,16.5524,16.1529,0.3995,15.9733,0.5211,0.5211,0.0000,0.0000,30.9966,16.6747,0.1805,3056.6887,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466972550455,10.9966,10.4739,0.5227,0.2310,11.1064,1.0116,10.0948,0.0000,36.3174,16.6750,-5.7927,3051.3783,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466972660421,10.9779,10.4185,0.5594,0.3408,11.1265,1.2515,9.8750,0.0000,NA,NA,NA,NA,NA,NA,NA +steamwebhelper.exe,3980,0x21C48E8A710,DXGI,1,0,0,Composed: Flip,Application,2466972437017,16.6206,16.4668,0.1538,16.8068,0.5188,0.5071,0.0117,0.0000,47.6612,16.6750,-10.0381,3040.0345,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466972599377,16.5318,15.9722,0.5596,0.3610,16.0305,0.6194,15.4111,0.0000,31.4252,16.6750,0.1929,3056.2705,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466972769083,16.6616,16.2804,0.3812,16.1324,0.4671,0.4671,0.0000,0.0000,31.1189,16.6955,-0.1223,3073.2411,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466972770200,11.0302,10.5059,0.5243,0.4894,10.6521,1.1487,9.5034,0.0000,31.0179,16.6958,5.2995,3073.3528,NA,NA,NA +steamwebhelper.exe,3980,0x21C48E8A710,DXGI,1,0,0,Composed: Flip,Application,2466972603223,16.7097,16.5403,0.1694,0.7499,17.2649,1.1335,16.1314,0.0000,47.7156,16.6958,-0.0544,3056.6551,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466972764695,16.6800,16.1520,0.5280,0.3808,16.1904,0.7188,15.4716,0.0000,31.5684,16.6958,-0.1432,3072.8023,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466972935699,16.6945,16.3027,0.3918,16.1490,0.4870,0.4870,0.0000,0.0000,31.1528,16.6451,-0.0339,3089.9027,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466972880502,11.1322,10.5849,0.5473,0.1687,11.2726,1.0324,10.2402,0.0000,36.6835,16.6460,-5.6656,3084.3830,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466972991824,10.8921,10.3452,0.5469,0.3091,11.1576,0.9753,10.1823,0.0000,NA,NA,NA,NA,NA,NA,NA +steamwebhelper.exe,3980,0x21C48E8A710,DXGI,1,0,0,Composed: Flip,Application,2466972770320,26.7186,26.5498,0.1688,26.9067,0.7215,0.7066,0.0149,0.0000,47.7017,16.6460,0.0139,3073.3648,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466972931495,16.6812,16.1287,0.5525,0.3583,16.2111,0.5230,15.6881,0.0000,31.5842,16.6460,-0.0158,3089.4823,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466973102644,16.7817,16.3370,0.4447,16.0825,0.6239,0.6239,0.0000,0.0000,31.1034,16.6566,0.0494,3106.5972,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466973100745,11.1369,10.5584,0.5785,0.5746,11.0273,1.2733,9.7540,0.0000,31.3052,16.6560,5.3783,3106.4073,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466973098307,16.7174,16.0741,0.6433,0.3752,16.1410,1.1216,15.0194,0.0000,31.5490,16.6560,0.0352,3106.1635,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466973270461,16.7392,16.3285,0.4107,16.1461,0.5334,0.5334,0.0000,0.0000,30.9783,16.6674,0.1251,3123.3789,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466973212114,10.8452,10.2829,0.5623,0.4650,10.7380,0.6178,10.1202,0.0000,36.8243,16.6666,-5.5191,3117.5442,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466973320566,11.2687,10.4992,0.7695,0.3578,11.7722,1.5690,10.2032,0.0000,NA,NA,NA,NA,NA,NA,NA +steamwebhelper.exe,3980,0x21C48E8A710,DXGI,1,0,0,Composed: Flip,Application,2466973037506,16.3114,16.1330,0.1784,16.4954,0.7274,0.7057,0.0217,0.0000,37.6291,33.3226,10.0726,3100.0834,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466973265481,16.7862,16.1433,0.6429,0.4227,16.2214,0.5681,15.6533,0.0000,31.4876,16.6666,0.0614,3122.8809,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466973437853,16.7386,16.3123,0.4263,16.1524,0.5225,0.5225,0.0000,0.0000,30.9065,16.6627,0.0718,3140.1181,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466973433253,11.8799,11.2878,0.5921,0.8613,11.3982,1.3440,10.0542,0.0000,31.3770,16.6635,5.4473,3139.6581,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466973433343,16.7200,16.0172,0.7028,0.3913,16.2121,1.2836,14.9285,0.0000,31.3680,16.6635,0.1196,3139.6671,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466973605239,16.8183,16.0662,0.7521,15.9083,0.8512,0.8512,0.0000,0.0000,30.8306,16.6742,0.0759,3156.8567,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466973552052,10.9585,10.3941,0.5644,0.3796,10.9282,1.1006,9.8276,0.0000,36.1606,16.6739,-4.7836,3151.5380,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466973661637,11.1664,10.5369,0.6295,0.3493,11.1920,0.7989,10.3931,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466973600543,16.4961,15.9342,0.5619,0.4059,15.9720,0.5312,15.4408,0.0000,31.3115,16.6739,0.0565,3156.3871,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466973773422,17.3848,16.2141,1.1707,16.0446,1.2683,0.8010,0.4673,0.0000,30.6865,16.6217,0.1441,3173.6750,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466973773301,11.7421,11.1853,0.5568,0.3749,11.4798,1.0170,10.4628,0.0000,30.7096,16.6214,5.4510,3173.6629,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466973765504,16.9632,16.1658,0.7974,0.7330,16.1034,0.4864,15.6170,0.0000,31.4893,16.6214,-0.1778,3172.8832,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466973947270,15.5903,15.1849,0.4054,15.0100,0.5010,0.5010,0.0000,0.0000,29.9234,16.7667,0.7631,3191.0598,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466973890722,11.0212,10.4458,0.5754,0.1708,11.1731,1.0152,10.1579,0.0000,35.5889,16.7682,-4.8793,3185.4050,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466974000934,12.0938,11.5586,0.5352,0.4254,12.0737,1.1052,10.9685,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466973935136,16.3597,15.7973,0.5624,1.1415,15.0819,0.2785,14.8034,0.0000,31.1475,16.7682,0.3418,3189.8464,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466974103173,16.4690,16.0877,0.3813,15.9384,0.4753,0.4753,0.0000,0.0000,31.0998,16.6094,-1.1764,3206.6501,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466974121872,10.8760,10.3506,0.5254,0.4053,10.6638,0.8376,9.8262,0.0000,29.2421,16.6087,6.3468,3208.5200,48.7335,48.7335,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466974098733,16.4927,15.9396,0.5531,0.3647,16.0177,0.5327,15.4850,0.0000,31.5560,16.6087,-0.4085,3206.2061,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466974267863,16.9992,16.5880,0.4112,16.4315,0.5110,0.5110,0.0000,0.0000,31.2402,16.6678,-0.1404,3223.1191,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466974230632,11.0202,10.4530,0.5672,0.1970,11.1304,0.8168,10.3136,0.0000,34.9748,16.6677,-5.7327,3219.3960,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466974340834,11.0404,10.4830,0.5574,0.3072,11.0412,1.0887,9.9525,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466974263660,16.9693,16.3845,0.5848,0.3650,16.4868,0.5570,15.9298,0.0000,31.6720,16.6677,-0.1160,3222.6988,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466974437855,16.8841,16.4878,0.3963,16.2410,0.5848,0.5848,0.0000,0.0000,30.9088,16.6605,0.3314,3240.1183,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466974451238,10.9424,10.4004,0.5420,0.3080,10.7322,0.5091,10.2231,0.0000,29.5819,16.6607,5.3929,3241.4566,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466974433353,16.8974,15.9283,0.9691,0.3935,16.2977,0.4860,15.8117,0.0000,31.3704,16.6607,0.3016,3239.6681,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466974606696,16.3043,15.9139,0.3904,15.7532,0.4963,0.4963,0.0000,0.0000,30.6852,16.6645,0.2236,3257.0024,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466974560662,11.0518,10.4623,0.5895,0.1581,11.2102,0.9857,10.2245,0.0000,35.3002,16.6636,-5.7183,3252.3990,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466974671180,10.9282,10.3956,0.5326,0.3165,10.7763,0.8987,9.8776,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466974602327,16.3120,15.7285,0.5835,0.3786,15.8115,0.5190,15.2925,0.0000,31.1337,16.6636,0.2367,3256.5655,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466974769739,16.6404,16.2530,0.3874,16.1000,0.4784,0.4784,0.0000,0.0000,31.0454,16.6300,-0.3602,3273.3067,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466974780462,11.0382,10.4979,0.5403,0.2204,10.9454,0.7328,10.2126,0.0000,29.9838,16.6242,5.3164,3274.3790,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466974765447,16.6444,16.0754,0.5690,0.3744,16.1548,0.4934,15.6614,0.0000,31.4853,16.6242,-0.3516,3272.8775,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466974936143,16.5598,16.1940,0.3658,16.0468,0.4582,0.4582,0.0000,0.0000,31.0350,16.6992,0.0104,3289.9471,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466974890844,11.0009,10.4562,0.5447,0.1949,11.1176,0.9754,10.1422,0.0000,35.5698,16.7036,-5.5860,3285.4172,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466975000853,10.9304,10.4361,0.4943,0.3116,10.7935,0.5356,10.2579,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466974931891,16.5817,16.0530,0.5287,0.3632,16.1088,0.5349,15.5739,0.0000,31.4651,16.7036,0.0202,3289.5219,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466975101741,15.6415,15.4772,0.1643,15.3922,0.2209,0.2209,0.0000,0.0000,31.1744,16.5942,-0.1394,3306.5069,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466975110157,11.0185,10.4246,0.5939,0.1785,10.8899,0.7003,10.1896,0.0000,30.3421,16.5887,5.2277,3307.3485,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466975097708,15.8640,15.6041,0.2599,0.3485,15.4470,0.4594,14.9876,0.0000,31.5870,16.5887,-0.1219,3306.1036,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466975258156,16.5803,16.4304,0.1499,16.3686,0.1872,0.1872,0.0000,0.0000,32.1271,16.7748,-0.9527,3322.1484,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466975220342,11.9574,11.4931,0.4643,0.4697,11.8191,0.9684,10.8507,0.0000,35.9123,16.7845,-5.5702,3318.3670,37.1912,37.1912,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466975339916,10.9839,10.5411,0.4428,0.3314,11.0586,0.7317,10.3269,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466975256348,16.5968,16.3751,0.2217,0.1524,16.3970,0.6501,15.7469,0.0000,32.3117,16.7845,-0.7247,3321.9676,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466975423959,16.4031,16.2553,0.1478,16.1980,0.1817,0.1817,0.0000,0.0000,32.3216,16.6634,-0.1945,3338.7287,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466975449755,10.8250,10.5556,0.2694,0.4061,10.5676,0.2977,10.2699,0.0000,29.7555,16.6594,6.1568,3341.3083,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466975422316,16.4051,16.1983,0.2068,0.1398,16.2225,0.6414,15.5811,0.0000,32.4994,16.6594,-0.1877,3338.5644,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466975587990,17.6973,17.3639,0.3334,17.2462,0.4009,0.4009,0.0000,0.0000,32.5819,16.6438,-0.2603,3355.1318,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466975558005,11.3987,10.9522,0.4465,0.1487,11.5776,0.6584,10.9192,0.0000,35.5899,16.6440,-5.8344,3352.1333,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466975671992,10.9993,10.5552,0.4441,0.3276,11.0726,0.9929,10.0797,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466975586367,17.4929,17.0559,0.4370,0.1389,17.2696,0.9369,16.3327,0.0000,32.7537,16.6440,-0.2543,3354.9695,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466975764963,16.7674,16.4318,0.3356,16.2255,0.4922,0.4922,0.0000,0.0000,31.5284,16.7014,1.0535,3372.8291,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466975781985,10.8454,10.3809,0.4645,0.4009,10.5749,0.7552,9.8197,0.0000,29.8359,16.7013,5.7540,3374.5313,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466975761296,16.7654,16.2192,0.5462,0.3165,16.2757,0.5819,15.6938,0.0000,31.9048,16.7013,0.8489,3372.4624,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466975932637,16.5384,16.1934,0.3450,16.0754,0.4128,0.4128,0.0000,0.0000,31.4624,16.6286,0.0660,3389.5965,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466975890439,10.8878,10.4402,0.4476,0.1848,11.0481,0.9618,10.0863,0.0000,35.6918,16.6284,-5.8559,3385.3767,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466975999317,11.2359,10.7773,0.4586,0.3451,11.3383,1.0254,10.3129,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466975928950,16.5291,16.0901,0.4390,0.3190,16.1251,0.4813,15.6438,0.0000,31.8407,16.6284,0.0641,3389.2278,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466976098021,16.7163,16.3657,0.3506,16.2476,0.4178,0.4178,0.0000,0.0000,31.5526,16.6107,-0.0902,3406.1349,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466976111676,11.0578,10.6021,0.4557,0.4475,10.7817,0.4388,10.3429,0.0000,30.1965,16.6110,5.4953,3407.5004,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466976094241,16.7105,16.2682,0.4423,0.3278,16.2978,0.5801,15.7177,0.0000,31.9400,16.6110,-0.0993,3405.7569,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466976265184,16.8078,16.2715,0.5363,16.1470,0.6083,0.6083,0.0000,0.0000,31.4470,16.7624,0.1056,3422.8512,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466976222254,11.1163,10.6517,0.4646,0.1752,11.2836,0.8261,10.4575,0.0000,35.7497,16.7625,-5.5532,3418.5582,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466976333417,10.9553,10.4804,0.4749,0.3425,10.7723,0.4636,10.3087,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466976261346,16.6217,16.1745,0.4472,0.3329,16.1979,0.5349,15.6630,0.0000,31.8405,16.7625,0.0995,3422.4674,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466976433262,16.4814,16.1243,0.3571,15.9832,0.4471,0.4471,0.0000,0.0000,31.4016,16.6837,0.0454,3439.6590,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466976442970,10.8579,10.3715,0.4864,0.1633,10.8259,0.7919,10.0340,0.0000,30.4406,16.6839,5.3091,3440.6298,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466976427563,16.6592,16.1852,0.4740,0.5174,16.0357,0.4634,15.5723,0.0000,31.9813,16.6839,-0.1408,3439.0891,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466976598076,16.8015,16.4438,0.3577,16.3208,0.4273,0.4273,0.0000,0.0000,31.6039,16.6808,-0.2023,3456.1404,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466976551549,11.1972,10.7080,0.4892,0.1863,11.3577,0.9999,10.3578,0.0000,36.2666,16.6808,-5.8260,3451.4877,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466976663521,11.0371,10.4857,0.5514,0.3468,11.2376,1.2035,10.0341,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466976594155,16.8005,16.3195,0.4810,0.3410,16.3719,0.5595,15.8124,0.0000,32.0060,16.6808,-0.0247,3455.7483,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466976766091,16.9732,16.3667,0.6065,16.2394,0.6754,0.6754,0.0000,0.0000,31.4832,16.6521,0.1207,3472.9419,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466976773892,10.8562,10.3346,0.5216,0.5473,10.3883,0.3178,10.0705,0.0000,30.7131,16.6527,5.5535,3473.7220,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466976762160,16.7232,16.2313,0.4919,0.3397,16.2928,0.5835,15.7093,0.0000,31.8863,16.6527,0.1197,3472.5488,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466976935823,16.5257,16.1337,0.3920,15.9800,0.4891,0.4891,0.0000,0.0000,31.1621,16.6591,0.3211,3489.9151,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466976882454,11.1150,10.6049,0.5101,0.2244,11.2293,0.9116,10.3177,0.0000,36.5096,16.6590,-5.7965,3484.5782,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466976993604,11.5415,10.8151,0.7264,0.3387,11.5659,1.0044,10.5615,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466976929392,16.7393,16.2150,0.5243,0.5847,16.0384,0.4517,15.5867,0.0000,31.8158,16.6590,0.0705,3489.2720,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466977101080,16.9172,16.4921,0.4251,16.2736,0.5804,0.5804,0.0000,0.0000,31.2955,16.5791,-0.1334,3506.4408,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466977109019,11.7233,11.1747,0.5486,0.3631,11.5206,0.5118,11.0088,0.0000,30.5121,16.5897,5.9975,3507.2347,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466977096785,16.8792,16.1350,0.7442,0.3729,16.3302,0.5908,15.7394,0.0000,31.7355,16.5897,0.0803,3506.0113,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466977270252,16.4917,16.0795,0.4122,15.9413,0.4899,0.4899,0.0000,0.0000,30.9574,16.7524,0.3381,3523.3580,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466977226252,11.9095,11.3462,0.5633,0.2221,12.1698,1.1859,10.9839,0.0000,35.3785,16.7542,-4.8664,3518.9580,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466977345347,11.2454,10.6499,0.5955,0.4824,11.1395,0.6569,10.4826,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466977265577,16.5074,15.9757,0.5317,0.4043,16.0045,0.4497,15.5548,0.0000,31.4460,16.7542,0.2895,3522.8905,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466977435169,16.7107,16.2888,0.4219,16.1448,0.5052,0.5052,0.0000,0.0000,31.2181,16.7017,-0.2607,3539.8497,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466977457801,11.0606,10.4831,0.5775,0.3765,10.9080,0.5901,10.3179,0.0000,28.9778,16.6953,6.4007,3542.1129,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466977430651,16.6982,16.0352,0.6630,0.3913,16.2053,0.5597,15.6456,0.0000,31.6928,16.6953,-0.2468,3539.3979,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466977602276,16.9010,16.4730,0.4280,16.2681,0.5703,0.5703,0.0000,0.0000,31.2091,16.6293,0.0090,3556.5604,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466977568407,12.0450,11.4647,0.5803,0.2285,12.3005,1.2417,11.0588,0.0000,34.6125,16.6364,-5.6347,3553.1735,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466977597633,16.8940,16.2836,0.6104,0.4036,16.3288,0.5895,15.7393,0.0000,31.6899,16.6364,0.0029,3556.0961,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466977771286,16.4978,16.0055,0.4923,15.8664,0.5669,0.5669,0.0000,0.0000,30.9374,16.6746,0.2717,3573.4614,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466977688857,11.9467,11.3675,0.5792,0.4840,11.8493,0.6594,11.1899,0.0000,39.2039,16.6748,-4.5914,3565.2185,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466977808324,11.1953,10.6069,0.5884,0.3866,10.9423,0.8993,10.0430,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466977766573,16.4371,15.8994,0.5377,0.4087,15.9290,0.5392,15.3898,0.0000,31.4323,16.6748,0.2576,3572.9901,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466977936264,16.6531,16.1594,0.4937,16.0173,0.5703,0.5703,0.0000,0.0000,31.1142,16.6792,-0.1768,3589.9592,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466977920277,11.0690,10.5188,0.5502,0.1970,11.2388,0.9712,10.2676,0.0000,32.7367,16.6662,6.4672,3588.3605,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466977930944,16.6513,16.0968,0.5545,0.4675,16.0818,0.5623,15.5195,0.0000,31.6700,16.6662,-0.2377,3589.4272,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466978102795,16.8010,16.3726,0.4284,16.2247,0.5057,0.5057,0.0000,0.0000,31.1403,16.6573,-0.0261,3606.6123,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466978030967,11.4502,10.8962,0.5540,0.3668,11.4469,1.1195,10.3274,0.0000,38.3339,16.6645,-5.5972,3599.4295,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466978145469,11.2421,10.5853,0.6568,0.3635,10.8544,0.7817,10.0727,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466978097457,16.8616,16.1518,0.7098,0.4683,16.2902,0.5332,15.7570,0.0000,31.6849,16.6645,-0.0149,3606.0785,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466978270805,16.4716,16.0536,0.4180,15.8908,0.5199,0.5199,0.0000,0.0000,30.9966,16.6627,0.1437,3623.4133,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466978257890,12.0247,11.4221,0.6026,0.1746,12.2497,1.0360,11.2137,0.0000,32.3061,16.6694,6.0278,3622.1218,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466978266073,16.4884,15.9261,0.5623,0.4026,15.9614,0.5346,15.4268,0.0000,31.4878,16.6694,0.1971,3622.9401,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466978435521,17.5405,17.1166,0.4239,16.8357,0.6475,0.6475,0.0000,0.0000,31.1877,16.6764,-0.1911,3639.8849,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466978378137,11.0406,10.4704,0.5702,0.3996,11.0849,0.7685,10.3164,0.0000,36.9508,16.6763,-4.6447,3634.1465,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466978488543,10.9905,10.3906,0.5999,0.4439,10.7495,0.4801,10.2694,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466978430957,17.5261,16.7879,0.7382,0.3955,16.8966,0.5532,16.3434,0.0000,31.6688,16.6763,-0.1810,3639.4285,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466978610926,16.4912,15.9883,0.5029,15.7675,0.6119,0.6119,0.0000,0.0000,30.3236,16.5959,0.8641,3657.4254,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466978598448,11.1242,10.5062,0.6180,0.2072,11.2028,2.9625,8.2403,0.0000,31.5960,16.5975,5.3548,3656.1776,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466978606218,16.3883,15.7711,0.6172,0.4135,15.8248,2.3219,13.5029,0.0000,30.8190,16.5975,0.8498,3656.9546,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466978775838,16.2421,15.7724,0.4697,15.5629,0.5659,0.5659,0.0000,0.0000,30.4283,16.6632,-0.1047,3673.9166,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466978709690,12.0361,11.4152,0.6209,0.2858,12.0865,0.9448,11.1417,0.0000,37.0693,16.6581,-5.4733,3667.3018,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466978830051,12.0915,11.2979,0.7936,0.3362,12.2092,1.0061,11.2031,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466978770101,16.2713,15.6902,0.5811,0.4619,15.6747,1.6160,14.0587,0.0000,31.0282,16.6581,-0.2092,3673.3429,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466978938259,17.3232,16.8870,0.4362,16.6460,0.6238,0.6238,0.0000,0.0000,30.8494,16.6806,-0.4211,3690.1587,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466978950966,11.8423,11.1956,0.6467,0.4539,11.4823,0.5115,10.9708,0.0000,29.5998,16.6877,7.4695,3691.4294,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466978932814,17.3852,16.6708,0.7144,0.4312,16.7593,1.2942,15.4651,0.0000,31.4150,16.6877,-0.3868,3689.6142,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466979111491,17.0605,16.1048,0.9557,15.8836,1.0943,1.0943,0.0000,0.0000,30.2068,16.7273,0.6426,3707.4819,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466979069389,12.0066,11.3612,0.6454,0.2683,12.0672,1.0919,10.9753,0.0000,34.4452,16.7227,-4.8454,3703.2717,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466979106666,16.5332,15.8809,0.6523,0.4291,15.9370,1.9391,13.9979,0.0000,30.7175,16.7227,0.6975,3706.9994,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466979282096,16.0165,15.0018,1.0147,14.8160,0.9984,0.9984,0.0000,0.0000,29.8736,16.6670,0.3332,3724.5424,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466979189455,11.9686,11.3830,0.5856,0.3289,11.9632,0.7418,11.2214,0.0000,39.1613,16.6674,-4.7161,3715.2783,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466979309141,11.0053,10.3850,0.6203,0.3235,10.6570,0.4694,10.1876,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466979271998,15.9383,15.3963,0.5420,0.9272,14.8986,1.3428,13.5558,0.0000,30.9070,16.6674,-0.1895,3723.5326,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466979442261,16.3022,15.8046,0.4976,15.5893,0.5948,0.5948,0.0000,0.0000,30.5241,16.6546,-0.6505,3740.5589,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466979419194,11.0702,10.4855,0.5847,0.1534,11.2627,1.0190,10.2437,0.0000,32.8548,16.6411,6.3065,3738.2522,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466979431381,16.8153,16.1959,0.6194,0.8859,15.7914,0.6698,15.1216,0.0000,31.6361,16.6411,-0.7291,3739.4709,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466979605283,16.4636,16.0627,0.4009,15.9145,0.4869,0.4869,0.0000,0.0000,30.8765,16.6481,-0.3524,3756.8611,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466979529896,10.9315,10.3024,0.6291,0.3459,10.9670,1.1325,9.8345,0.0000,38.4257,16.6484,-5.5709,3749.3224,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466979639211,11.9818,11.4082,0.5736,0.3870,11.6851,0.9310,10.7541,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466979599534,16.5975,16.0033,0.5942,0.4568,16.0326,1.2137,14.8189,0.0000,31.4619,16.6484,0.1742,3756.2862,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466979769919,16.7169,16.1689,0.5480,16.0251,0.6285,0.6285,0.0000,0.0000,31.0610,16.6722,-0.1845,3773.3247,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466979759029,11.9518,11.4426,0.5092,0.2468,12.0249,1.8375,10.1874,0.0000,32.1608,16.6723,6.2649,3772.2357,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466979765509,16.5709,16.0374,0.5335,0.3788,16.0873,1.3225,14.7648,0.0000,31.5128,16.6723,-0.0509,3772.8837,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466979937088,16.8591,16.4430,0.4161,16.2833,0.5138,0.5138,0.0000,0.0000,31.0163,16.7037,0.0447,3790.0416,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466979878547,10.9963,10.4536,0.5427,0.3199,11.0109,1.0393,9.9716,0.0000,36.8813,16.7222,-4.7205,3784.1875,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466979988510,11.1926,10.4243,0.7683,0.3345,11.6800,1.2528,10.4272,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466979931218,16.9864,16.1238,0.8626,0.5237,16.3466,0.6146,15.7320,0.0000,31.6142,16.7222,-0.1014,3789.4546,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466980105679,16.4286,16.0104,0.4182,15.8268,0.5364,0.5364,0.0000,0.0000,30.8609,16.6405,0.1554,3806.9007,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466980100436,11.8621,11.2607,0.6014,0.8219,11.2427,1.0893,10.1534,0.0000,31.4146,16.6225,5.4667,3806.3764,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466980101082,16.4278,15.8164,0.6114,0.3977,15.8888,1.1278,14.7610,0.0000,31.3500,16.6225,0.2642,3806.4410,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466980269965,16.8597,16.3141,0.5456,16.1516,0.6430,0.6430,0.0000,0.0000,31.0728,16.6043,-0.2119,3823.3293,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466980219057,12.0235,11.4410,0.5825,0.2530,12.1384,1.1009,11.0375,0.0000,36.1750,16.6042,-4.7604,3818.2385,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466980339292,10.8663,10.3476,0.5187,0.3679,11.2436,1.4376,9.8060,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466980265360,16.7332,16.1133,0.6199,0.3951,16.2170,0.5783,15.6387,0.0000,31.5447,16.6042,-0.1947,3822.8688,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466980438562,16.5022,16.0947,0.4075,15.8728,0.5653,0.5653,0.0000,0.0000,30.8174,16.7365,0.2554,3840.1890,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466980447955,11.1027,10.5469,0.5558,10.8681,0.3636,0.3503,0.0133,0.0000,29.8894,16.7359,6.2856,3841.1283,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466980432692,16.6407,16.0260,0.6147,0.5219,15.9379,0.6025,15.3354,0.0000,31.4157,16.7359,0.1290,3839.6020,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466980603584,16.9178,16.3207,0.5971,16.1615,0.6832,0.6832,0.0000,0.0000,31.0517,16.6667,-0.2343,3856.6912,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466980558982,11.0227,10.4439,0.5788,0.1889,11.2237,1.0655,10.1582,0.0000,35.5226,16.6668,-5.6332,3852.2310,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466980669209,11.0323,10.4097,0.6226,0.3899,11.4027,1.5135,9.8892,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466980599099,16.7230,15.9961,0.7269,0.3844,16.2256,0.5506,15.6750,0.0000,31.5109,16.6668,-0.0952,3856.2427,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466980772762,16.9494,16.0020,0.9474,15.8118,1.0524,1.0524,0.0000,0.0000,30.8006,16.6797,0.2511,3873.6090,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466980779532,11.9055,11.3058,0.5997,11.6564,0.3943,0.3815,0.0128,0.0000,30.1344,16.6803,5.3882,3874.2860,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466980766329,16.6019,15.9174,0.6845,0.5702,15.8849,0.5259,15.3590,0.0000,31.4547,16.6803,0.0562,3872.9657,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466980942256,16.0324,15.6050,0.4274,15.4610,0.5099,0.5099,0.0000,0.0000,30.5309,16.6491,0.2697,3890.5584,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466980898587,11.1539,10.3940,0.7599,0.2092,11.3738,1.2164,10.1574,0.0000,34.9092,16.6488,-4.7748,3886.1915,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466981010126,11.5065,10.9539,0.5526,0.4291,11.5472,0.8166,10.7306,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466980932348,16.5549,16.0026,0.5523,0.9056,15.5462,0.5106,15.0356,0.0000,31.5331,16.6488,-0.0784,3889.5676,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466981102580,16.8752,16.4409,0.4343,16.2909,0.5214,0.5214,0.0000,0.0000,31.1476,16.6736,-0.6167,3906.5908,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466981125191,11.0579,10.4926,0.5653,0.4698,10.7774,0.4607,10.3167,0.0000,28.8976,16.6735,6.0116,3908.8519,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466981097897,16.8663,16.1285,0.7378,0.4068,16.3524,0.5377,15.8147,0.0000,31.6270,16.6735,-0.0939,3906.1225,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466981271332,17.0753,16.2318,0.8435,16.0838,0.9172,0.8868,0.0304,0.0000,30.9460,16.6625,0.2016,3923.4660,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466981235770,12.0446,11.4510,0.5936,0.2534,12.1326,0.9411,11.1915,0.0000,34.5132,16.6627,-5.6156,3919.9098,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466981266560,16.6646,15.9418,0.7228,0.4143,16.1467,0.5553,15.5914,0.0000,31.4342,16.6627,0.1928,3922.9888,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466981442085,16.4799,15.6122,0.8677,15.4444,0.9535,0.9287,0.0248,0.0000,30.5332,16.6569,0.4128,3940.5413,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466981356216,11.2111,10.3485,0.8626,0.3414,11.1190,1.0955,10.0235,0.0000,39.1313,16.6563,-4.6181,3931.9544,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466981468327,11.8411,11.2692,0.5719,0.2540,11.6994,0.7606,10.9388,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466981433206,16.4594,15.8932,0.5662,0.8136,15.5187,0.5179,15.0008,0.0000,31.4323,16.6563,0.0019,3939.6534,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466981606884,16.2723,15.8607,0.4116,15.7173,0.4941,0.4941,0.0000,0.0000,30.7102,16.6544,-0.1770,3957.0212,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466981586738,10.9745,10.4254,0.5491,0.1757,11.1016,0.9045,10.1971,0.0000,32.7354,16.6539,6.3959,3955.0066,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466981597800,16.7270,16.1046,0.6224,0.8264,15.7993,0.4128,15.3865,0.0000,31.6292,16.6539,-0.1969,3956.1128,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466981769607,16.6075,16.2066,0.4009,15.9698,0.5759,0.5759,0.0000,0.0000,31.0923,16.6601,-0.3821,3973.2935,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466981696483,11.0422,10.4748,0.5674,0.3028,11.0892,0.7571,10.3321,0.0000,38.4148,16.6602,-5.6794,3965.9811,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466981806905,11.0556,10.3913,0.6643,0.3498,10.6821,0.7782,9.9039,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466981765070,16.6200,15.9944,0.6256,0.3928,16.0307,0.6071,15.4236,0.0000,31.5561,16.6602,0.0731,3972.8398,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466981935682,16.7085,16.3234,0.3851,16.1716,0.4809,0.4809,0.0000,0.0000,31.1449,16.6572,-0.0526,3989.9010,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466981917461,11.9031,11.3567,0.5464,0.1631,12.0318,1.0034,11.0284,0.0000,32.9772,16.6571,5.4376,3988.0789,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466981931270,16.7268,15.9484,0.7784,0.3794,16.2334,0.5138,15.7196,0.0000,31.5963,16.6571,-0.0402,3989.4598,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466982102767,16.3907,16.0101,0.3806,15.8799,0.4544,0.4544,0.0000,0.0000,31.0936,16.6755,0.0513,4006.6095,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466982036492,11.9629,11.4287,0.5342,0.2918,12.1042,0.9278,11.1764,0.0000,37.7312,16.6861,-4.7540,3999.9820,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466982156121,10.9445,10.4000,0.5445,0.4331,11.0711,0.8436,10.2275,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466982098538,16.3963,15.8988,0.4975,0.3669,15.9359,0.5462,15.3897,0.0000,31.5266,16.6861,0.0697,4006.1866,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466982266674,17.0596,16.6827,0.3769,16.5308,0.4724,0.4724,0.0000,0.0000,31.3784,16.5959,-0.2848,4023.0002,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466982265566,10.9755,10.4424,0.5331,0.5597,10.5126,0.9358,9.5768,0.0000,31.5099,16.5932,6.2213,4022.8894,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466982262501,17.0437,16.5469,0.4968,0.3609,16.5872,1.2166,15.3706,0.0000,31.8164,16.5932,-0.2898,4022.5829,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466982437270,16.2528,15.8807,0.3721,15.7465,0.4449,0.4449,0.0000,0.0000,30.9147,16.7020,0.4637,4040.0598,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466982375321,11.0671,10.5552,0.5119,0.1563,11.2402,1.0416,10.1986,0.0000,37.1276,16.7087,-5.6177,4033.8649,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466982485992,11.0082,10.4785,0.5297,0.3294,11.4825,1.5000,9.9825,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466982432938,16.2752,15.7772,0.4980,0.3768,15.8029,0.5702,15.2327,0.0000,31.3659,16.7087,0.4505,4039.6266,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466982599798,17.1530,16.7909,0.3621,16.6044,0.5025,0.5025,0.0000,0.0000,31.3639,16.7108,-0.4492,4056.3126,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466982596074,10.9493,10.4556,0.4937,0.8037,10.4079,1.9459,8.4620,0.0000,31.7610,16.7055,5.3666,4055.9402,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466982595690,17.1642,16.6309,0.5333,0.3494,16.6658,2.0402,14.6256,0.0000,31.7994,16.7055,-0.4335,4055.9018,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466982771328,16.2649,15.8609,0.4040,15.6889,0.4778,0.4778,0.0000,0.0000,30.9217,16.6579,0.4422,4073.4656,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466982705567,11.0458,10.5215,0.5243,0.2623,11.0982,0.8252,10.2730,0.0000,37.5172,16.6590,-5.7562,4066.8895,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466982816025,10.8939,10.3965,0.4974,0.3147,10.7150,0.5156,10.1994,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466982767332,16.1859,15.6701,0.5158,0.3535,15.7350,1.7504,13.9846,0.0000,31.3407,16.6590,0.4587,4073.0660,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466982933977,17.0975,16.4259,0.6716,16.1918,0.7852,0.7852,0.0000,0.0000,31.3147,16.6561,-0.3930,4089.7305,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466982924964,10.9862,10.4993,0.4869,0.2127,10.8368,2.0673,8.7695,0.0000,32.2365,16.6462,5.2807,4088.8292,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466982929191,16.8402,16.2829,0.5573,0.3804,16.2900,1.2539,15.0361,0.0000,31.8138,16.6462,-0.4731,4089.2519,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466983104952,16.5740,16.1692,0.4048,16.0212,0.4963,0.4963,0.0000,0.0000,30.8733,16.6895,0.4414,4106.8280,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466983034826,11.0674,10.5519,0.5155,0.2027,11.0970,0.9087,10.1883,0.0000,37.8965,16.6898,-5.6600,4099.8154,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466983145500,11.0851,10.5000,0.5851,0.2323,10.8318,0.5409,10.2909,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466983097593,16.8647,16.1767,0.6880,0.6154,16.1417,0.3313,15.8104,0.0000,31.6198,16.6898,0.1940,4106.0921,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466983270692,16.3959,15.9577,0.4382,15.7925,0.5476,0.5476,0.0000,0.0000,30.9888,16.6815,-0.1155,4123.4020,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466983256351,10.8958,10.3563,0.5395,0.1713,11.1613,0.9880,10.1733,0.0000,32.4338,16.6847,5.4627,4121.9679,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466983266240,16.3660,15.8360,0.5300,0.3887,15.8490,0.5471,15.3019,0.0000,31.4449,16.6847,0.1749,4122.9568,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466983434651,16.8500,16.3042,0.5458,16.1588,0.6201,0.6201,0.0000,0.0000,31.2744,16.6424,-0.2856,4139.7979,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466983365309,10.9811,10.4718,0.5093,0.4368,10.8684,0.5737,10.2947,0.0000,38.2227,16.6486,-5.7889,4132.8637,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466983475120,11.0289,10.4381,0.5908,0.3241,10.6844,0.4310,10.2534,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466983429900,16.7417,16.2243,0.5174,0.4193,16.2146,0.5074,15.7072,0.0000,31.7636,16.6486,-0.3187,4139.3228,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466983603151,16.6060,16.2238,0.3822,16.0765,0.4740,0.4740,0.0000,0.0000,31.0668,16.6514,0.2076,4156.6479,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466983585409,10.9373,10.4106,0.5267,0.1668,11.0987,0.9683,10.1304,0.0000,32.8613,16.6408,5.3614,4154.8737,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466983597317,16.7683,16.2238,0.5445,0.5123,16.1476,0.4038,15.7438,0.0000,31.6705,16.6408,0.0931,4156.0645,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466983769211,16.4125,16.0563,0.3562,15.9139,0.4435,0.4435,0.0000,0.0000,31.1122,16.6682,-0.0454,4173.2539,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466983694782,11.1178,10.5897,0.5281,0.3282,11.1457,1.0444,10.1013,0.0000,38.5648,16.6682,-5.7035,4165.8110,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466983805960,11.0364,10.4864,0.5500,0.3561,10.6594,0.3456,10.3138,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466983765000,16.4353,15.9493,0.4860,0.3656,15.9694,0.4876,15.4818,0.0000,31.5430,16.6682,0.1275,4172.8328,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466983933336,16.8399,16.4893,0.3506,16.3345,0.4526,0.4526,0.0000,0.0000,31.3679,16.6625,-0.2557,4189.6664,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466983916324,10.8914,10.3882,0.5032,0.1575,11.0712,1.0810,9.9902,0.0000,33.0788,16.6622,5.4860,4187.9652,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466983929353,16.8514,16.1911,0.6603,0.3432,16.3896,0.5565,15.8331,0.0000,31.7759,16.6622,-0.2329,4189.2681,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466984101735,16.5178,16.1534,0.3644,15.9431,0.5207,0.5207,0.0000,0.0000,31.1905,16.6205,0.1774,4206.5063,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466984025238,10.9416,10.4625,0.4791,0.3373,10.9753,0.9446,10.0307,0.0000,38.8496,16.6209,-5.7708,4198.8566,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466984134654,11.7279,11.2814,0.4465,0.3710,11.4301,0.6470,10.7831,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466984097867,16.4947,15.9505,0.5442,0.3340,15.9959,0.5217,15.4742,0.0000,31.5867,16.6209,0.1892,4206.1195,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466984266913,16.6988,16.3052,0.3936,16.1739,0.4716,0.4716,0.0000,0.0000,31.2932,16.7372,-0.1027,4223.0241,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466984251933,11.1275,10.6649,0.4626,0.2020,11.2850,0.9529,10.3321,0.0000,32.8010,16.7369,6.0486,4221.5261,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466984262814,16.6786,16.0018,0.6768,0.3559,16.2279,0.5722,15.6557,0.0000,31.7129,16.7369,-0.1262,4222.6142,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466984433901,16.4877,16.1424,0.3453,15.9800,0.4558,0.4558,0.0000,0.0000,31.3316,16.6776,-0.0384,4239.7229,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466984363208,10.8480,10.3936,0.4544,0.3595,10.8147,0.6328,10.1819,0.0000,38.4104,16.6779,-5.6094,4232.6536,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466984471688,11.0250,10.4758,0.5492,0.3262,10.6787,0.6385,10.0402,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466984429600,16.5193,16.0614,0.4579,0.3768,16.0333,0.5248,15.5085,0.0000,31.7712,16.6779,-0.0583,4239.2928,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466984598778,16.5840,16.2504,0.3336,16.1318,0.4035,0.4035,0.0000,0.0000,31.5215,16.6457,-0.1899,4256.2106,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466984581938,10.9123,10.4522,0.4601,0.1426,11.1047,1.1476,9.9571,0.0000,33.2153,16.6456,5.1951,4254.5266,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466984691061,11.0547,10.5921,0.4626,0.3350,11.1102,0.9826,10.1276,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466984594793,16.6158,16.1631,0.4527,0.3466,16.1837,0.5509,15.6328,0.0000,31.9298,16.6456,-0.1586,4255.8121,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466984764618,16.8378,16.4967,0.3411,16.3761,0.4116,0.4116,0.0000,0.0000,31.5832,16.5924,-0.0617,4272.7946,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466984801608,10.9694,10.5012,0.4682,0.3905,10.8369,0.5319,10.3050,0.0000,27.8939,16.5923,5.3214,4276.4936,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466984760951,16.8296,16.2890,0.5406,0.3180,16.4248,0.6295,15.7953,0.0000,31.9596,16.5923,-0.0298,4272.4279,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466984932996,16.5987,16.2467,0.3520,16.0910,0.4558,0.4558,0.0000,0.0000,31.3378,16.7355,0.2454,4289.6324,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466984911302,10.9284,10.4648,0.4636,0.2580,11.0006,0.6958,10.3048,0.0000,33.5168,16.7359,-5.6229,4287.4630,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466985020586,11.1049,10.6419,0.4630,0.3302,11.1063,0.9169,10.1894,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466984929247,16.5519,16.1103,0.4416,0.3248,16.1411,0.5684,15.5727,0.0000,31.7223,16.7359,0.2373,4289.2575,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466985098983,16.4676,16.1218,0.3458,15.9832,0.4339,0.4339,0.0000,0.0000,31.4746,16.5874,-0.1368,4306.2311,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466985131635,10.9313,10.4355,0.4958,0.3316,10.7564,0.7686,9.9878,0.0000,28.2194,16.5878,5.2974,4309.4963,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466985094766,16.5099,16.0511,0.4588,0.3698,16.0351,0.5357,15.4994,0.0000,31.9063,16.5878,-0.1840,4305.8094,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466985263659,17.0533,16.7028,0.3505,16.5745,0.4263,0.4263,0.0000,0.0000,31.5944,16.6865,-0.1198,4322.6987,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466985240948,11.0554,10.5796,0.4758,0.2113,11.1753,0.9221,10.2532,0.0000,33.8759,16.6863,-5.6565,4320.4276,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466985351502,10.9761,10.4977,0.4784,0.3312,10.9690,0.6385,10.3305,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466985259865,17.0454,16.3764,0.6690,0.3289,16.6250,0.6309,15.9941,0.0000,31.9842,16.6863,-0.0779,4322.3193,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466985434192,16.5217,16.1724,0.3493,15.9505,0.5175,0.5175,0.0000,0.0000,31.2276,16.7276,0.3668,4339.7520,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466985461263,11.0052,10.5215,0.4837,0.3241,10.7839,0.4827,10.3012,0.0000,28.5307,16.7269,5.3452,4342.4591,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466985430319,16.5240,15.9725,0.5515,0.3348,16.0030,0.5856,15.4174,0.0000,31.6251,16.7269,0.3591,4339.3647,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466985599409,16.6914,16.2848,0.4066,16.1460,0.4871,0.4871,0.0000,0.0000,31.4335,16.6853,-0.2059,4356.2737,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466985571315,11.1075,10.5814,0.5261,0.1570,11.2804,0.8569,10.4235,0.0000,34.2524,16.6856,-5.7217,4353.4643,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466985682390,10.9503,10.4110,0.5393,0.3299,10.9043,0.9775,9.9268,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466985595559,16.6322,16.1240,0.5082,0.3313,16.1997,0.4979,15.7018,0.0000,31.8280,16.6856,-0.2029,4355.8887,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466985766323,16.7732,16.4220,0.3512,16.2659,0.4528,0.4528,0.0000,0.0000,31.4274,16.6645,0.0061,4372.9651,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466985791893,10.9943,10.4799,0.5144,0.2839,10.8145,0.7413,10.0732,0.0000,28.8802,16.6660,5.3722,4375.5221,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466985761881,16.8292,16.2845,0.5447,0.3859,16.3242,0.4400,15.8842,0.0000,31.8814,16.6660,-0.0534,4372.5209,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466985934055,16.6309,16.2768,0.3541,16.1449,0.4319,0.4319,0.0000,0.0000,31.3187,16.6575,0.1087,4389.7383,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466985901836,10.9036,10.4237,0.4799,0.1607,11.0986,0.9975,10.1011,0.0000,34.5519,16.6567,-5.6717,4386.5164,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466986010872,11.0855,10.5892,0.4963,0.3557,11.1268,1.1142,10.0126,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466985930173,16.6284,16.1387,0.4897,0.3337,16.1994,0.5496,15.6498,0.0000,31.7182,16.6567,0.1632,4389.3501,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466986100364,16.5795,16.2044,0.3751,16.0745,0.4495,0.4495,0.0000,0.0000,31.3453,16.6708,-0.0266,4406.3692,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466986121727,10.9422,10.4737,0.4685,0.3970,10.6580,0.7316,9.9264,0.0000,29.2195,16.6707,5.3324,4408.5055,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466986096457,16.5600,16.0902,0.4698,0.3366,16.1286,0.5237,15.6049,0.0000,31.7465,16.6707,-0.0283,4405.9785,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466986266159,16.9199,16.5450,0.3749,16.4104,0.4380,0.4380,0.0000,0.0000,31.4366,16.6599,-0.0913,4422.9487,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466986231149,11.0220,10.5321,0.4899,0.1669,11.1899,0.9850,10.2049,0.0000,34.9480,16.6598,-5.7285,4419.4477,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466986341369,11.0230,10.5154,0.5076,0.3348,11.0215,1.0188,10.0027,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466986262057,16.9183,16.4289,0.4894,0.3547,16.4659,0.5479,15.9180,0.0000,31.8572,16.6598,-0.1107,4422.5385,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466986435358,16.6821,16.3175,0.3646,16.1570,0.4704,0.4704,0.0000,0.0000,31.1766,16.6686,0.2600,4439.8686,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466986451599,11.0324,10.5187,0.5137,0.3333,10.8066,0.7962,10.0104,0.0000,29.5628,16.6686,5.3852,4441.4927,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466986431240,16.6914,16.0788,0.6126,0.3403,16.2285,0.6529,15.5756,0.0000,31.5987,16.6686,0.2585,4439.4568,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466986602179,16.4877,16.0935,0.3942,15.9568,0.4739,0.4739,0.0000,0.0000,31.1631,16.6796,0.0135,4456.5507,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466986561923,10.9556,10.4550,0.5006,0.1640,11.1336,0.9707,10.1629,0.0000,35.1990,16.6794,-5.6362,4452.5251,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466986671479,11.0219,10.5106,0.5113,0.3420,10.9954,1.0104,9.9850,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466986598154,16.4604,15.9701,0.4903,0.3478,16.0115,0.4744,15.5371,0.0000,31.5759,16.6794,0.0228,4456.1482,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466986767056,16.8277,16.4426,0.3851,16.2399,0.5027,0.5027,0.0000,0.0000,31.3550,16.6582,-0.1919,4473.0384,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466986781698,10.9795,10.4787,0.5008,0.3155,10.8607,0.8342,10.0265,0.0000,29.9009,16.6585,5.2981,4474.5026,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466986762758,16.8347,16.2739,0.5608,0.3728,16.2969,0.5129,15.7840,0.0000,31.7949,16.6585,-0.2190,4472.6086,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466986935333,16.5346,16.1738,0.3608,16.0079,0.4704,0.4704,0.0000,0.0000,31.1855,16.6668,0.1695,4489.8661,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466986891493,11.0375,10.4995,0.5380,0.2005,11.2128,0.8724,10.3404,0.0000,35.5799,16.6665,-5.6790,4485.4821,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466987001868,10.9995,10.4735,0.5260,0.3758,10.7692,0.7682,10.0010,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466986931105,16.5590,16.0160,0.5430,0.3377,16.0930,0.5252,15.5678,0.0000,31.6187,16.6665,0.1762,4489.4433,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466987100679,16.6451,16.2676,0.3775,16.1345,0.4540,0.4540,0.0000,0.0000,31.3177,16.6666,-0.1322,4506.4007,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466987111863,10.9632,10.4578,0.5054,0.2023,10.8687,0.8110,10.0577,0.0000,30.2094,16.6667,5.3705,4507.5191,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466987096695,16.6313,16.1497,0.4816,0.3421,16.1908,0.5207,15.6701,0.0000,31.7262,16.6667,-0.1075,4506.0023,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466987267130,17.2066,16.8320,0.3746,16.6790,0.4716,0.4716,0.0000,0.0000,31.3392,16.6680,-0.0215,4523.0458,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466987221495,11.0017,10.4444,0.5573,0.1634,11.1581,0.9708,10.1873,0.0000,35.9129,16.6674,-5.7035,4518.4823,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466987331512,11.2058,10.4735,0.7323,0.3198,11.4936,1.3174,10.1762,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466987263008,17.1961,16.2860,0.9101,0.3556,16.7356,0.5366,16.1990,0.0000,31.7616,16.6674,-0.0354,4522.6336,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466987439196,16.1467,15.7897,0.3570,15.6566,0.4356,0.4356,0.0000,0.0000,30.8006,16.6736,0.5386,4540.2524,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466987443570,11.7944,11.3213,0.4731,11.5857,0.3218,0.3096,0.0122,0.0000,30.3728,16.6743,5.5401,4540.6898,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466987434969,16.1775,15.6799,0.4976,0.3667,15.7126,0.5836,15.1290,0.0000,31.2329,16.6743,0.5287,4539.8297,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466987600663,16.8444,16.4694,0.3750,16.3097,0.4803,0.4803,0.0000,0.0000,31.3275,16.6514,-0.5269,4556.3991,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466987561514,11.0153,10.5251,0.4902,0.1672,11.1713,0.9647,10.2066,0.0000,35.2527,16.6510,-4.8799,4552.4842,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466987671667,11.6392,11.0939,0.5453,0.3232,11.6447,0.6776,10.9671,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466987596744,16.8246,16.1410,0.6836,0.3374,16.3642,0.6049,15.7593,0.0000,31.7297,16.6510,-0.4968,4556.0072,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466987769107,16.5934,16.2325,0.3609,16.0667,0.4731,0.4731,0.0000,0.0000,31.1345,16.6684,0.1930,4573.2435,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466987788059,10.9204,10.4392,0.4812,0.3287,10.7018,0.7009,10.0009,0.0000,29.2492,16.6690,6.0035,4575.1387,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466987764990,16.6081,16.1029,0.5052,0.3573,16.1211,0.5061,15.6150,0.0000,31.5561,16.6690,0.1736,4572.8318,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466987935041,16.5354,16.1876,0.3478,16.0561,0.4266,0.4266,0.0000,0.0000,31.2095,16.6331,-0.0750,4589.8369,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466987897263,10.9744,10.4877,0.4867,0.1654,11.1511,0.9879,10.1632,0.0000,34.9978,16.6325,-5.7486,4586.0591,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466988007007,11.0443,10.5418,0.5025,0.3421,11.0606,1.0430,10.0176,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466987931071,16.5506,16.0784,0.4722,0.3434,16.1097,0.4983,15.6114,0.0000,31.6170,16.6325,-0.0609,4589.4399,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466988100395,16.7444,16.3889,0.3555,16.1912,0.4989,0.4989,0.0000,0.0000,31.3072,16.7001,-0.0977,4606.3723,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466988117450,10.9749,10.5027,0.4722,0.3584,10.7413,0.4409,10.3004,0.0000,29.6116,16.7005,5.3862,4608.0778,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466988096577,16.7355,16.1608,0.5747,0.3291,16.2439,0.6238,15.6201,0.0000,31.6989,16.7005,-0.0819,4605.9905,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466988267839,16.4935,16.1035,0.3900,15.9489,0.4904,0.4904,0.0000,0.0000,31.2629,16.6633,0.0443,4623.1167,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466988227199,11.0089,10.4974,0.5115,0.1779,11.1648,0.9693,10.1955,0.0000,35.3372,16.6636,-5.7256,4619.0527,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466988337288,11.0801,10.5238,0.5563,0.3338,11.0657,0.9207,10.1450,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466988263932,16.4585,15.9642,0.4943,0.3364,16.0032,0.5427,15.4605,0.0000,31.6639,16.6636,0.0350,4622.7260,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466988432774,16.7570,16.4083,0.3487,16.2765,0.4275,0.4275,0.0000,0.0000,31.4327,16.6777,-0.1698,4639.6102,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466988448089,10.8233,10.3560,0.4673,0.3194,10.6410,0.4674,10.1736,0.0000,29.9118,16.6782,5.4254,4641.1417,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466988428517,16.7996,16.3100,0.4896,0.3715,16.3307,0.5027,15.8280,0.0000,31.8690,16.6782,-0.2051,4639.1845,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466988600344,16.7133,16.3552,0.3581,16.2172,0.4418,0.4418,0.0000,0.0000,31.3534,16.6579,0.0793,4656.3672,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466988556322,11.1144,10.5875,0.5269,0.1923,11.2677,1.0144,10.2533,0.0000,35.7667,16.6573,-5.8549,4651.9650,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466988667466,10.9107,10.4120,0.4987,0.3456,11.2087,1.3830,9.8257,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466988596513,16.7011,16.1685,0.5326,0.3301,16.2702,0.5870,15.6832,0.0000,31.7476,16.6573,0.1214,4655.9841,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466988767477,16.8860,16.4726,0.4134,16.2426,0.5885,0.5885,0.0000,0.0000,31.2980,16.7162,0.0554,4673.0805,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466988776573,11.0606,10.5709,0.4897,10.8460,0.3279,0.3165,0.0114,0.0000,30.3989,16.7165,5.3678,4673.9901,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466988763524,16.8288,16.2425,0.5863,0.3410,16.2969,0.5978,15.6991,0.0000,31.7038,16.7165,0.0438,4672.6852,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466988936337,16.5033,16.1103,0.3930,15.9525,0.4551,0.4551,0.0000,0.0000,31.1282,16.6208,0.1698,4689.9665,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466988887179,11.0993,10.5288,0.5705,0.1704,11.2614,0.8679,10.3935,0.0000,36.0548,16.6196,-5.6559,4685.0507,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466988998172,11.0628,10.3855,0.6773,0.3325,11.3177,1.2776,10.0401,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466988931812,16.5274,16.0167,0.5107,0.3976,16.0074,0.4671,15.5403,0.0000,31.5915,16.6196,0.1123,4689.5140,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466989101370,16.7236,16.3696,0.3540,16.2305,0.4388,0.4388,0.0000,0.0000,31.2457,16.5894,-0.1175,4706.4698,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466989108800,10.8738,10.3666,0.5072,0.5874,10.3534,0.3362,10.0172,0.0000,30.5123,16.5897,5.5425,4707.2128,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466989097086,16.7609,16.2156,0.5453,0.3327,16.3262,0.5600,15.7662,0.0000,31.6837,16.5897,-0.0922,4706.0414,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466989268606,16.6329,16.2690,0.3639,16.1057,0.4706,0.4706,0.0000,0.0000,31.1115,16.7453,0.1342,4723.1934,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466989217538,10.9058,10.4158,0.4900,0.2050,11.0748,0.9967,10.0781,0.0000,36.2282,16.7452,-5.7159,4718.0866,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466989326596,11.0119,10.5021,0.5098,0.3740,10.9226,0.5680,10.3546,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466989264695,16.6237,16.1197,0.5040,0.3368,16.1600,0.5447,15.6153,0.0000,31.5125,16.7452,0.1712,4722.8023,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466989434935,16.6253,16.2540,0.3713,16.0266,0.5272,0.5272,0.0000,0.0000,31.2239,16.6644,-0.1124,4739.8263,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466989436715,11.0658,10.5876,0.4782,0.3401,10.7873,0.6625,10.1248,0.0000,31.0557,16.6643,5.1725,4740.0043,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466989430932,16.6191,16.0401,0.5790,0.3437,16.0832,0.5160,15.5672,0.0000,31.6340,16.6643,-0.1215,4739.4260,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466989601188,16.6168,16.2548,0.3620,16.1199,0.4438,0.4438,0.0000,0.0000,31.2630,16.6696,-0.0391,4756.4516,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466989547373,11.0046,10.4791,0.5255,0.1956,11.1518,0.9209,10.2309,0.0000,36.6542,16.6701,-5.5985,4751.0701,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466989657419,10.9663,10.4610,0.5053,0.3428,11.1688,1.2274,9.9414,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466989597123,16.6253,16.1145,0.5108,0.3350,16.1914,0.5184,15.6730,0.0000,31.6792,16.6701,-0.0452,4756.0451,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466989767356,16.6767,16.3092,0.3675,16.1774,0.4473,0.4473,0.0000,0.0000,31.3158,16.6666,-0.0528,4773.0684,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466989767082,11.0685,10.5860,0.4825,0.5453,10.7097,0.9913,9.7184,0.0000,31.3534,16.6669,5.3008,4773.0410,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466989763376,16.6722,16.2052,0.4670,0.3449,16.2305,1.2608,14.9697,0.0000,31.7240,16.6669,-0.0448,4772.6704,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466989934123,16.8181,16.4072,0.4109,16.2690,0.4941,0.4941,0.0000,0.0000,31.3057,16.6676,0.0101,4789.7451,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466989877767,10.9350,10.4436,0.4914,0.1901,11.1174,1.0540,10.0634,0.0000,36.9518,16.6684,-5.5984,4784.1095,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466989987117,11.2129,10.4893,0.7236,0.3725,12.2178,1.6721,10.5457,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466989930098,16.7743,16.2774,0.4969,0.3505,16.3210,0.5417,15.7793,0.0000,31.7187,16.6684,0.0053,4789.3426,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466990102304,16.5905,16.2310,0.3595,16.0704,0.4664,0.4664,0.0000,0.0000,31.1552,16.6808,0.1505,4806.5632,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466990099246,11.8050,11.2590,0.5460,11.5789,0.3315,0.3196,0.0119,0.0000,31.4723,16.6800,5.4795,4806.2574,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466990097841,16.6403,16.0880,0.5523,0.3913,16.1254,1.1719,14.9535,0.0000,31.6128,16.6800,0.1059,4806.1169,NA,NA,NA +dwm.exe,2656,0x19D7EF5E390,DXGI,1,0,0,Hardware: Legacy Flip,Application,2466990268209,16.7234,16.3326,0.3908,16.1552,0.5125,0.5125,0.0000,0.0000,31.2455,16.6026,-0.0903,4823.1537,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466990217296,11.0297,10.5131,0.5166,0.1634,11.3078,1.1209,10.1869,0.0000,36.3473,16.6027,-4.8750,4818.0624,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466990327593,10.9290,10.4000,0.5290,0.4415,10.9380,0.7138,10.2242,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x19D7F1BA8F0,DXGI,1,2,0,Hardware: Legacy Flip,Application,2466990264244,16.6913,16.1484,0.5429,0.3428,16.2089,0.5687,15.6402,0.0000,31.6525,16.6027,-0.0397,4822.7572,NA,NA,NA +PresentBench.exe,24892,0x2A70D2CAC00,DXGI,0,0,0,Composed: Flip,Application,2466990436883,11.0281,10.5264,0.5017,0.4505,10.6892,0.6655,10.0237,0.0000,30.9913,16.7242,5.3560,4840.0211,NA,NA,NA +dwm.exe,2656,0x0,Other,-1,0,0,Hardware: Legacy Flip,Application,2466990766581,16.7900,16.7900,0.0000,16.2638,0.5573,0.5573,0.0000,0.0000,31.3856,16.6617,0.0000,4872.9909,NA,NA,NA +PresentBench.exe,24892,0x0,Other,-1,0,0,Composed: Flip,Application,2466990765467,11.1716,11.1716,0.0000,0.6719,10.6918,0.9088,9.7830,0.0000,31.5068,16.6620,0.0000,4872.8795,NA,NA,NA +dwm.exe,2656,0x100000000,Other,-1,0,0,Hardware: Legacy Flip,Application,2466990762136,16.6744,16.6744,0.0000,0.4752,16.2331,1.1912,15.0419,0.0000,31.8399,16.6620,0.0000,4872.5464,NA,NA,NA +dwm.exe,2656,0x0,Other,-1,0,0,Hardware: Legacy Flip,Application,2466990934481,16.3107,16.3107,0.0000,15.9599,0.3800,0.3800,0.0000,0.0000,31.2573,16.6960,0.1283,4889.7809,NA,NA,NA +PresentBench.exe,24892,0x0,Other,-1,0,0,Composed: Flip,Application,2466990877183,10.8779,10.8779,0.0000,0.2428,11.0732,1.0574,10.0158,0.0000,36.9972,16.6957,-5.4904,4884.0511,NA,NA,NA +PresentBench.exe,24892,0x0,Other,-1,0,0,Composed: Flip,Application,2466990985962,10.8881,10.8881,0.0000,0.4381,11.6883,1.4385,10.2498,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x100000000,Other,-1,0,0,Hardware: Legacy Flip,Application,2466990928880,16.4839,16.4839,0.0000,0.5912,15.9288,0.4599,15.4689,0.0000,31.8275,16.6957,0.0124,4889.2208,NA,NA,NA +dwm.exe,2656,0x0,Other,-1,0,0,Hardware: Legacy Flip,Application,2466991097588,16.6258,16.6258,0.0000,16.2845,0.3751,0.3751,0.0000,0.0000,31.6426,16.6454,-0.3853,4906.0916,NA,NA,NA +PresentBench.exe,24892,0x0,Other,-1,0,0,Composed: Flip,Application,2466991094843,11.0589,11.0589,0.0000,1.2383,10.0758,0.4935,9.5823,0.0000,31.9269,16.6451,5.0703,4905.8171,NA,NA,NA +dwm.exe,2656,0x100000000,Other,-1,0,0,Hardware: Legacy Flip,Application,2466991093719,16.6358,16.6358,0.0000,0.4161,16.2553,1.1345,15.1208,0.0000,32.0393,16.6451,-0.2118,4905.7047,NA,NA,NA +dwm.exe,2656,0x0,Other,-1,0,0,Hardware: Legacy Flip,Application,2466991263846,16.6991,16.6991,0.0000,16.3332,0.3989,0.3989,0.0000,0.0000,31.6622,16.6717,-0.0196,4922.7174,NA,NA,NA +PresentBench.exe,24892,0x0,Other,-1,0,0,Composed: Flip,Application,2466991205432,11.3131,11.3131,0.0000,0.2552,11.5774,1.0810,10.4964,0.0000,37.5131,16.6721,-5.5862,4916.8760,NA,NA,NA +PresentBench.exe,24892,0x0,Other,-1,0,0,Composed: Flip,Application,2466991318563,11.1039,11.1039,0.0000,0.5195,11.6655,1.3005,10.3650,0.0000,NA,NA,NA,NA,NA,NA,NA +dwm.exe,2656,0x100000000,Other,-1,0,0,Hardware: Legacy Flip,Application,2466991260077,16.6742,16.6742,0.0000,0.4107,16.2994,0.6254,15.6740,0.0000,32.0486,16.6721,-0.0093,4922.3405,NA,NA,NA +dwm.exe,2656,0x0,Other,-1,0,0,Hardware: Legacy Flip,Application,2466991430837,16.6870,16.6870,0.0000,16.3145,0.4045,0.4045,0.0000,0.0000,31.6348,16.6754,0.0274,4939.4165,NA,NA,NA +PresentBench.exe,24892,0x0,Other,-1,0,0,Composed: Flip,Application,2466991429602,11.1287,11.1287,0.0000,1.0811,10.2241,0.4127,9.8114,0.0000,31.7682,16.6761,5.7449,4939.2930,NA,NA,NA +dwm.exe,2656,0x100000000,Other,-1,0,0,Hardware: Legacy Flip,Application,2466991426819,16.6808,16.6808,0.0000,0.4348,16.2815,1.1176,15.1639,0.0000,32.0465,16.6761,0.0021,4939.0147,NA,NA,NA diff --git a/Tests/Gold/test_case_5_v1.csv b/Tests/Gold/test_case_5_v1.csv index 27582f4e..816566fd 100644 --- a/Tests/Gold/test_case_5_v1.csv +++ b/Tests/Gold/test_case_5_v1.csv @@ -162,119 +162,119 @@ PresentBench.exe,24892,0x000002A70D2CAC00,DXGI,0,0,1,2.70757370000000,0.64690000 PresentBench.exe,24892,0x000002A70D2CAC00,DXGI,0,0,0,2.71961700000000,0.61800000000000,12.04330000000000,0,Composed: Flip,1.00400000000000,18.05740000000000,16.71400000000000,-11.06820000000000,1.27410000000000,0.00000000000000,0.00000000000000,2466969232842 dwm.exe,2656,0x0000019D7F1BA8F0,DXGI,1,2,0,2.72236110000000,0.68540000000000,16.86370000000000,0,Hardware: Legacy Flip,0.49130000000000,15.31330000000000,16.71400000000000,-15.81290000000000,0.54800000000000,0.00000000000000,0.00000000000000,2466969260283 dwm.exe,2656,0x0000019D7EF5E390,DXGI,1,0,0,2.73963190000000,0.55540000000000,16.54080000000000,0,Hardware: Legacy Flip,0.48880000000000,14.64510000000000,16.61390000000000,-0.16780000000000,0.65660000000000,0.00000000000000,0.00000000000000,2466969432991 -steamwebhelper.exe,3980,0x0000021C48E8A710,DXGI,1,0,0,2.72438670000000,0.21300000000000,12.76920000000000,0,Composed: Flip,1.51910000000000,29.90080000000000,16.61310000000000,0.26140000000000,1.24930000000000,0.00000000000000,0.00000000000000,2466969280539 PresentBench.exe,24892,0x000002A70D2CAC00,DXGI,0,0,0,2.73061190000000,0.62410000000000,10.99490000000000,0,Composed: Flip,1.00210000000000,23.67560000000000,16.61310000000000,-9.99090000000000,0.76410000000000,0.00000000000000,0.00000000000000,2466969342791 +steamwebhelper.exe,3980,0x0000021C48E8A710,DXGI,1,0,0,2.72438670000000,0.21300000000000,12.76920000000000,0,Composed: Flip,1.51910000000000,29.90080000000000,16.61310000000000,0.26140000000000,1.24930000000000,0.00000000000000,0.00000000000000,2466969280539 dwm.exe,2656,0x0000019D7F1BA8F0,DXGI,1,2,0,2.73899340000000,0.58830000000000,16.63230000000000,0,Hardware: Legacy Flip,0.47070000000000,15.29410000000000,16.61310000000000,-15.53320000000000,0.54860000000000,0.00000000000000,0.00000000000000,2466969426606 dwm.exe,2656,0x0000019D7EF5E390,DXGI,1,0,0,2.75635310000000,0.86530000000000,16.72120000000000,0,Hardware: Legacy Flip,0.79710000000000,14.62580000000000,16.70190000000000,-0.18660000000000,0.83270000000000,0.00000000000000,0.00000000000000,2466969600203 -steamwebhelper.exe,3980,0x0000021C48E8A710,DXGI,1,0,0,2.74041850000000,0.15940000000000,16.03180000000000,0,Composed: Flip,1.04960000000000,30.57150000000000,16.70250000000000,0.22250000000000,0.81470000000000,0.00000000000000,0.00000000000000,2466969440857 PresentBench.exe,24892,0x000002A70D2CAC00,DXGI,0,0,1,2.74166630000000,0.57480000000000,11.05440000000000,0,Composed: Flip,0.86270000000000,0.00000000000000,0.00000000000000,-10.05230000000000,0.68260000000000,0.00000000000000,0.00000000000000,2466969453335 PresentBench.exe,24892,0x000002A70D2CAC00,DXGI,0,0,0,2.75277780000000,0.55530000000000,11.11150000000000,0,Composed: Flip,0.71380000000000,18.21220000000000,16.70250000000000,-10.24880000000000,0.68110000000000,0.00000000000000,0.00000000000000,2466969564450 +steamwebhelper.exe,3980,0x0000021C48E8A710,DXGI,1,0,0,2.74041850000000,0.15940000000000,16.03180000000000,0,Composed: Flip,1.04960000000000,30.57150000000000,16.70250000000000,0.22250000000000,0.81470000000000,0.00000000000000,0.00000000000000,2466969440857 dwm.exe,2656,0x0000019D7F1BA8F0,DXGI,1,2,0,2.75557530000000,0.73530000000000,16.58190000000000,0,Hardware: Legacy Flip,0.59120000000000,15.41470000000000,16.70250000000000,-15.45460000000000,0.54220000000000,0.00000000000000,0.00000000000000,2466969592425 dwm.exe,2656,0x0000019D7EF5E390,DXGI,1,0,0,2.77288790000000,0.40640000000000,16.53480000000000,0,Hardware: Legacy Flip,0.34370000000000,14.84080000000000,16.74980000000000,-0.16120000000000,0.50490000000000,0.00000000000000,0.00000000000000,2466969765551 -steamwebhelper.exe,3980,0x0000021C48E8A710,DXGI,1,0,0,2.75747730000000,0.18140000000000,17.05880000000000,0,Composed: Flip,0.78720000000000,30.26300000000000,16.75030000000000,0.18290000000000,0.60430000000000,0.00000000000000,0.00000000000000,2466969611445 PresentBench.exe,24892,0x000002A70D2CAC00,DXGI,0,0,0,2.76377440000000,0.60290000000000,10.99660000000000,0,Composed: Flip,0.94910000000000,23.96590000000000,16.75030000000000,-10.22040000000000,1.08990000000000,0.00000000000000,0.00000000000000,2466969674416 +steamwebhelper.exe,3980,0x0000021C48E8A710,DXGI,1,0,0,2.75747730000000,0.18140000000000,17.05880000000000,0,Composed: Flip,0.78720000000000,30.26300000000000,16.75030000000000,0.18290000000000,0.60430000000000,0.00000000000000,0.00000000000000,2466969611445 dwm.exe,2656,0x0000019D7F1BA8F0,DXGI,1,2,0,2.77227050000000,0.57540000000000,16.69520000000000,0,Hardware: Legacy Flip,0.45620000000000,15.46980000000000,16.75030000000000,-15.12030000000000,0.30730000000000,0.00000000000000,0.00000000000000,2466969759377 dwm.exe,2656,0x0000019D7EF5E390,DXGI,1,0,0,2.78964570000000,0.40260000000000,16.75780000000000,0,Hardware: Legacy Flip,0.34080000000000,14.67430000000000,16.59130000000000,-0.16130000000000,0.50210000000000,0.00000000000000,0.00000000000000,2466969933129 -steamwebhelper.exe,3980,0x0000021C48E8A710,DXGI,1,0,0,2.77371790000000,0.17480000000000,16.24060000000000,0,Composed: Flip,1.16160000000000,30.61290000000000,16.59050000000000,-15.45340000000000,1.28360000000000,0.00000000000000,0.00000000000000,2466969773851 PresentBench.exe,24892,0x000002A70D2CAC00,DXGI,0,0,1,2.77474990000000,0.57790000000000,10.97550000000000,0,Composed: Flip,0.98610000000000,0.00000000000000,0.00000000000000,-10.02640000000000,0.78870000000000,0.00000000000000,0.00000000000000,2466969784171 PresentBench.exe,24892,0x000002A70D2CAC00,DXGI,0,0,0,2.78579380000000,0.53520000000000,11.04390000000000,0,Composed: Flip,0.67470000000000,18.53700000000000,16.59050000000000,-10.05780000000000,0.84690000000000,0.00000000000000,0.00000000000000,2466969894610 +steamwebhelper.exe,3980,0x0000021C48E8A710,DXGI,1,0,0,2.77371790000000,0.17480000000000,16.24060000000000,0,Composed: Flip,1.16160000000000,30.61290000000000,16.59050000000000,-15.45340000000000,1.28360000000000,0.00000000000000,0.00000000000000,2466969773851 dwm.exe,2656,0x0000019D7F1BA8F0,DXGI,1,2,0,2.78904590000000,0.55300000000000,16.77540000000000,0,Hardware: Legacy Flip,0.43850000000000,15.28490000000000,16.59050000000000,-15.81430000000000,0.58080000000000,0.00000000000000,0.00000000000000,2466969927131 dwm.exe,2656,0x0000019D7EF5E390,DXGI,1,0,0,2.80648120000000,0.41300000000000,16.83550000000000,0,Hardware: Legacy Flip,0.35100000000000,14.46370000000000,16.62490000000000,-0.15790000000000,0.50890000000000,0.00000000000000,0.00000000000000,2466970101484 -steamwebhelper.exe,3980,0x0000021C48E8A710,DXGI,1,0,0,2.79068460000000,0.17280000000000,16.96670000000000,0,Composed: Flip,0.82040000000000,30.27260000000000,16.62640000000000,0.23370000000000,0.57410000000000,0.00000000000000,0.00000000000000,2466969943518 PresentBench.exe,24892,0x000002A70D2CAC00,DXGI,0,0,0,2.79687060000000,0.57230000000000,11.07680000000000,0,Composed: Flip,0.92720000000000,24.08660000000000,16.62640000000000,-10.33920000000000,0.93270000000000,0.00000000000000,0.00000000000000,2466970005378 +steamwebhelper.exe,3980,0x0000021C48E8A710,DXGI,1,0,0,2.79068460000000,0.17280000000000,16.96670000000000,0,Composed: Flip,0.82040000000000,30.27260000000000,16.62640000000000,0.23370000000000,0.57410000000000,0.00000000000000,0.00000000000000,2466969943518 dwm.exe,2656,0x0000019D7F1BA8F0,DXGI,1,2,0,2.80563490000000,0.80290000000000,16.58900000000000,0,Hardware: Legacy Flip,0.68840000000000,15.32230000000000,16.62640000000000,-15.64840000000000,0.54180000000000,0.00000000000000,0.00000000000000,2466970093021 dwm.exe,2656,0x0000019D7EF5E390,DXGI,1,0,0,2.82285300000000,0.40610000000000,16.37180000000000,0,Hardware: Legacy Flip,0.34350000000000,14.92420000000000,16.83230000000000,-0.18490000000000,0.52840000000000,0.00000000000000,0.00000000000000,2466970265202 -steamwebhelper.exe,3980,0x0000021C48E8A710,DXGI,1,0,0,2.80727370000000,0.17540000000000,16.58910000000000,0,Composed: Flip,0.91820000000000,30.51500000000000,16.83150000000000,-15.72010000000000,0.82790000000000,0.00000000000000,0.00000000000000,2466970109409 PresentBench.exe,24892,0x000002A70D2CAC00,DXGI,0,0,1,2.80873530000000,0.58290000000000,11.86470000000000,0,Composed: Flip,0.98600000000000,0.00000000000000,0.00000000000000,-10.93750000000000,0.78660000000000,0.00000000000000,0.00000000000000,2466970124025 PresentBench.exe,24892,0x000002A70D2CAC00,DXGI,0,0,0,2.81971060000000,1.21210000000000,10.97530000000000,0,Composed: Flip,1.17670000000000,18.07810000000000,16.83150000000000,-9.98930000000000,0.76210000000000,0.00000000000000,0.00000000000000,2466970233778 +steamwebhelper.exe,3980,0x0000021C48E8A710,DXGI,1,0,0,2.80727370000000,0.17540000000000,16.58910000000000,0,Composed: Flip,0.91820000000000,30.51500000000000,16.83150000000000,-15.72010000000000,0.82790000000000,0.00000000000000,0.00000000000000,2466970109409 dwm.exe,2656,0x0000019D7F1BA8F0,DXGI,1,2,0,2.82222370000000,0.58880000000000,16.58880000000000,0,Hardware: Legacy Flip,0.44440000000000,15.56500000000000,16.83150000000000,-15.39150000000000,0.52210000000000,0.00000000000000,0.00000000000000,2466970258909 dwm.exe,2656,0x0000019D7EF5E390,DXGI,1,0,0,2.83970300000000,0.54120000000000,16.85000000000000,0,Hardware: Legacy Flip,0.47150000000000,14.70180000000000,16.62760000000000,-0.16590000000000,0.63740000000000,0.00000000000000,0.00000000000000,2466970433702 -steamwebhelper.exe,3980,0x0000021C48E8A710,DXGI,1,0,0,2.82397430000000,0.16770000000000,16.70060000000000,0,Composed: Flip,0.82140000000000,30.44230000000000,16.62790000000000,0.23240000000000,0.57550000000000,0.00000000000000,0.00000000000000,2466970276415 PresentBench.exe,24892,0x000002A70D2CAC00,DXGI,0,0,0,2.83181760000000,0.60940000000000,12.10700000000000,0,Composed: Flip,0.93930000000000,22.59900000000000,16.62790000000000,-10.62920000000000,1.06330000000000,0.00000000000000,0.00000000000000,2466970354848 +steamwebhelper.exe,3980,0x0000021C48E8A710,DXGI,1,0,0,2.82397430000000,0.16770000000000,16.70060000000000,0,Composed: Flip,0.82140000000000,30.44230000000000,16.62790000000000,0.23240000000000,0.57550000000000,0.00000000000000,0.00000000000000,2466970276415 dwm.exe,2656,0x0000019D7F1BA8F0,DXGI,1,2,0,2.83907920000000,0.58280000000000,16.85550000000000,0,Hardware: Legacy Flip,0.45790000000000,15.33740000000000,16.62790000000000,-15.88270000000000,0.58320000000000,0.00000000000000,0.00000000000000,2466970427464 dwm.exe,2656,0x0000019D7EF5E390,DXGI,1,0,0,2.85646610000000,0.44520000000000,16.76310000000000,0,Hardware: Legacy Flip,0.37880000000000,14.62650000000000,16.68780000000000,-0.23690000000000,0.61570000000000,0.00000000000000,0.00000000000000,2466970601333 -steamwebhelper.exe,3980,0x0000021C48E8A710,DXGI,1,0,0,2.84033390000000,0.19170000000000,16.35960000000000,0,Composed: Flip,1.22330000000000,30.76990000000000,16.68720000000000,-15.48780000000000,1.06570000000000,0.00000000000000,0.00000000000000,2466970440011 PresentBench.exe,24892,0x000002A70D2CAC00,DXGI,0,0,0,2.84382650000000,0.59370000000000,12.00890000000000,0,Composed: Flip,0.96340000000000,27.27730000000000,16.68720000000000,-11.06960000000000,0.81460000000000,0.00000000000000,0.00000000000000,2466970474937 +steamwebhelper.exe,3980,0x0000021C48E8A710,DXGI,1,0,0,2.84033390000000,0.19170000000000,16.35960000000000,0,Composed: Flip,1.22330000000000,30.76990000000000,16.68720000000000,-15.48780000000000,1.06570000000000,0.00000000000000,0.00000000000000,2466970440011 dwm.exe,2656,0x0000019D7F1BA8F0,DXGI,1,2,0,2.85573450000000,0.68850000000000,16.65530000000000,0,Hardware: Legacy Flip,0.49470000000000,15.36930000000000,16.68720000000000,-15.56000000000000,0.58640000000000,0.00000000000000,0.00000000000000,2466970594017 dwm.exe,2656,0x0000019D7EF5E390,DXGI,1,0,0,2.87303250000000,0.42210000000000,16.56640000000000,0,Hardware: Legacy Flip,0.35730000000000,14.70640000000000,16.64630000000000,-0.15590000000000,0.51320000000000,0.00000000000000,0.00000000000000,2466970766997 -steamwebhelper.exe,3980,0x0000021C48E8A710,DXGI,1,0,0,2.85769810000000,0.19280000000000,17.36420000000000,0,Composed: Flip,0.90000000000000,30.05220000000000,16.64650000000000,-16.14090000000000,0.76930000000000,0.00000000000000,0.00000000000000,2466970613653 PresentBench.exe,24892,0x000002A70D2CAC00,DXGI,0,0,1,2.85566920000000,0.80810000000000,11.84270000000000,0,Composed: Flip,2.24590000000000,0.00000000000000,0.00000000000000,-10.87930000000000,2.26230000000000,0.00000000000000,0.00000000000000,2466970593364 PresentBench.exe,24892,0x000002A70D2CAC00,DXGI,0,0,0,2.86781130000000,0.59820000000000,12.14210000000000,0,Composed: Flip,0.96250000000000,19.93900000000000,16.64650000000000,0.34390000000000,0.61860000000000,0.00000000000000,0.00000000000000,2466970714785 +steamwebhelper.exe,3980,0x0000021C48E8A710,DXGI,1,0,0,2.85769810000000,0.19280000000000,17.36420000000000,0,Composed: Flip,0.90000000000000,30.05220000000000,16.64650000000000,-16.14090000000000,0.76930000000000,0.00000000000000,0.00000000000000,2466970613653 dwm.exe,2656,0x0000019D7F1BA8F0,DXGI,1,2,0,2.87241090000000,0.57950000000000,16.67640000000000,0,Hardware: Legacy Flip,0.46570000000000,15.33940000000000,16.64650000000000,-15.56600000000000,1.11050000000000,0.00000000000000,0.00000000000000,2466970760781 dwm.exe,2656,0x0000019D7EF5E390,DXGI,1,0,0,2.88971310000000,0.46440000000000,16.68060000000000,0,Hardware: Legacy Flip,0.39540000000000,14.68940000000000,16.66360000000000,-0.18260000000000,0.57800000000000,0.00000000000000,0.00000000000000,2466970933803 -steamwebhelper.exe,3980,0x0000021C48E8A710,DXGI,1,0,0,2.87435950000000,0.17090000000000,16.66140000000000,0,Composed: Flip,0.55870000000000,30.05460000000000,16.66380000000000,-15.75010000000000,1.16750000000000,0.00000000000000,0.00000000000000,2466970780267 PresentBench.exe,24892,0x000002A70D2CAC00,DXGI,0,0,0,2.87882130000000,0.59000000000000,11.01000000000000,0,Composed: Flip,1.00940000000000,25.59280000000000,16.66380000000000,-10.04750000000000,1.15960000000000,0.00000000000000,0.00000000000000,2466970824885 +steamwebhelper.exe,3980,0x0000021C48E8A710,DXGI,1,0,0,2.87435950000000,0.17090000000000,16.66140000000000,0,Composed: Flip,0.55870000000000,30.05460000000000,16.66380000000000,-15.75010000000000,1.16750000000000,0.00000000000000,0.00000000000000,2466970780267 dwm.exe,2656,0x0000019D7F1BA8F0,DXGI,1,2,0,2.88906930000000,0.60130000000000,16.65840000000000,0,Hardware: Legacy Flip,0.46120000000000,15.34480000000000,16.66380000000000,-15.67950000000000,0.60670000000000,0.00000000000000,0.00000000000000,2466970927365 dwm.exe,2656,0x0000019D7EF5E390,DXGI,1,0,0,2.90642930000000,0.43810000000000,16.71620000000000,0,Hardware: Legacy Flip,0.37150000000000,14.62160000000000,16.64840000000000,-0.16460000000000,0.53610000000000,0.00000000000000,0.00000000000000,2466971100965 -steamwebhelper.exe,3980,0x0000021C48E8A710,DXGI,1,0,0,2.89099270000000,0.18290000000000,16.63320000000000,0,Composed: Flip,1.26750000000000,30.06960000000000,16.64820000000000,-15.94960000000000,1.21150000000000,0.00000000000000,0.00000000000000,2466970946599 PresentBench.exe,24892,0x000002A70D2CAC00,DXGI,0,0,1,2.89005220000000,0.82720000000000,11.23090000000000,0,Composed: Flip,1.62380000000000,0.00000000000000,0.00000000000000,-10.22150000000000,1.54800000000000,0.00000000000000,0.00000000000000,2466970937194 PresentBench.exe,24892,0x000002A70D2CAC00,DXGI,0,0,0,2.90211050000000,0.62540000000000,12.05830000000000,0,Composed: Flip,0.93630000000000,18.95180000000000,16.64820000000000,-10.43450000000000,1.14110000000000,0.00000000000000,0.00000000000000,2466971057777 +steamwebhelper.exe,3980,0x0000021C48E8A710,DXGI,1,0,0,2.89099270000000,0.18290000000000,16.63320000000000,0,Composed: Flip,1.26750000000000,30.06960000000000,16.64820000000000,-15.94960000000000,1.21150000000000,0.00000000000000,0.00000000000000,2466970946599 dwm.exe,2656,0x0000019D7F1BA8F0,DXGI,1,2,0,2.90577520000000,0.60900000000000,16.70590000000000,0,Hardware: Legacy Flip,0.48950000000000,15.28710000000000,16.64820000000000,-15.66670000000000,0.55230000000000,0.00000000000000,0.00000000000000,2466971094424 dwm.exe,2656,0x0000019D7EF5E390,DXGI,1,0,0,2.92295400000000,0.41940000000000,16.52470000000000,0,Hardware: Legacy Flip,0.35500000000000,14.67950000000000,16.58260000000000,-0.15180000000000,0.50680000000000,0.00000000000000,0.00000000000000,2466971266212 -steamwebhelper.exe,3980,0x0000021C48E8A710,DXGI,1,0,0,2.90757940000000,0.18720000000000,16.58670000000000,0,Composed: Flip,1.02670000000000,30.06570000000000,16.58280000000000,-15.31920000000000,1.15560000000000,0.00000000000000,0.00000000000000,2466971112466 PresentBench.exe,24892,0x000002A70D2CAC00,DXGI,0,0,0,2.91330560000000,0.60390000000000,11.19510000000000,0,Composed: Flip,0.95500000000000,24.33950000000000,16.58280000000000,-10.25880000000000,0.89490000000000,0.00000000000000,0.00000000000000,2466971169728 +steamwebhelper.exe,3980,0x0000021C48E8A710,DXGI,1,0,0,2.90757940000000,0.18720000000000,16.58670000000000,0,Composed: Flip,1.02670000000000,30.06570000000000,16.58280000000000,-15.31920000000000,1.15560000000000,0.00000000000000,0.00000000000000,2466971112466 dwm.exe,2656,0x0000019D7F1BA8F0,DXGI,1,2,0,2.92234160000000,0.57180000000000,16.56640000000000,0,Hardware: Legacy Flip,0.46060000000000,15.30350000000000,16.58280000000000,-15.54080000000000,0.58960000000000,0.00000000000000,0.00000000000000,2466971260088 dwm.exe,2656,0x0000019D7EF5E390,DXGI,1,0,0,2.93948500000000,0.86180000000000,16.53100000000000,0,Hardware: Legacy Flip,0.75850000000000,14.91050000000000,16.76200000000000,-0.16010000000000,0.91860000000000,0.00000000000000,0.00000000000000,2466971431522 -steamwebhelper.exe,3980,0x0000021C48E8A710,DXGI,1,0,0,2.92371190000000,0.19820000000000,16.13250000000000,0,Composed: Flip,1.28640000000000,30.69430000000000,16.76110000000000,-15.10580000000000,1.03660000000000,0.00000000000000,0.00000000000000,2466971273791 PresentBench.exe,24892,0x000002A70D2CAC00,DXGI,0,0,1,2.92458930000000,0.67130000000000,11.28370000000000,0,Composed: Flip,0.87000000000000,0.00000000000000,0.00000000000000,-10.32870000000000,0.97550000000000,0.00000000000000,0.00000000000000,2466971282565 PresentBench.exe,24892,0x000002A70D2CAC00,DXGI,0,0,0,2.93666130000000,0.60690000000000,12.07200000000000,0,Composed: Flip,0.75270000000000,17.74490000000000,16.76110000000000,-11.14180000000000,0.86750000000000,0.00000000000000,0.00000000000000,2466971403285 +steamwebhelper.exe,3980,0x0000021C48E8A710,DXGI,1,0,0,2.92371190000000,0.19820000000000,16.13250000000000,0,Composed: Flip,1.28640000000000,30.69430000000000,16.76110000000000,-15.10580000000000,1.03660000000000,0.00000000000000,0.00000000000000,2466971273791 dwm.exe,2656,0x0000019D7F1BA8F0,DXGI,1,2,0,2.93887160000000,0.56210000000000,16.53000000000000,0,Hardware: Legacy Flip,0.45330000000000,15.53460000000000,16.76110000000000,-15.56260000000000,0.68850000000000,0.00000000000000,0.00000000000000,2466971425388 dwm.exe,2656,0x0000019D7EF5E390,DXGI,1,0,0,2.95629450000000,0.43150000000000,16.80950000000000,0,Hardware: Legacy Flip,0.36800000000000,14.77230000000000,16.67130000000000,-0.17490000000000,0.54290000000000,0.00000000000000,0.00000000000000,2466971599617 -steamwebhelper.exe,3980,0x0000021C48E8A710,DXGI,1,0,0,2.94083710000000,0.17460000000000,17.12520000000000,0,Composed: Flip,1.33220000000000,30.24110000000000,16.67200000000000,0.23580000000000,1.08830000000000,0.00000000000000,0.00000000000000,2466971445043 PresentBench.exe,24892,0x000002A70D2CAC00,DXGI,0,0,0,2.94864220000000,0.59170000000000,11.98090000000000,0,Composed: Flip,0.95790000000000,22.43600000000000,16.67200000000000,-11.16140000000000,0.95640000000000,0.00000000000000,0.00000000000000,2466971523094 +steamwebhelper.exe,3980,0x0000021C48E8A710,DXGI,1,0,0,2.94083710000000,0.17460000000000,17.12520000000000,0,Composed: Flip,1.33220000000000,30.24110000000000,16.67200000000000,0.23580000000000,1.08830000000000,0.00000000000000,0.00000000000000,2466971445043 dwm.exe,2656,0x0000019D7F1BA8F0,DXGI,1,2,0,2.95567040000000,0.58370000000000,16.79880000000000,0,Hardware: Legacy Flip,0.44920000000000,15.40780000000000,16.67200000000000,-15.42690000000000,0.57400000000000,0.00000000000000,0.00000000000000,2466971593376 dwm.exe,2656,0x0000019D7EF5E390,DXGI,1,0,0,2.97288160000000,0.41470000000000,16.58710000000000,0,Hardware: Legacy Flip,0.35120000000000,14.84940000000000,16.66420000000000,-0.15620000000000,0.50740000000000,0.00000000000000,0.00000000000000,2466971765488 -steamwebhelper.exe,3980,0x0000021C48E8A710,DXGI,1,0,0,2.95687440000000,0.18570000000000,16.03730000000000,0,Composed: Flip,1.49820000000000,30.86740000000000,16.66360000000000,0.43170000000000,1.05260000000000,0.00000000000000,0.00000000000000,2466971605416 PresentBench.exe,24892,0x000002A70D2CAC00,DXGI,0,0,0,2.95973680000000,0.56850000000000,11.09460000000000,0,Composed: Flip,0.97960000000000,28.00500000000000,16.66360000000000,-10.13670000000000,1.15730000000000,0.00000000000000,0.00000000000000,2466971634040 +steamwebhelper.exe,3980,0x0000021C48E8A710,DXGI,1,0,0,2.95687440000000,0.18570000000000,16.03730000000000,0,Composed: Flip,1.49820000000000,30.86740000000000,16.66360000000000,0.43170000000000,1.05260000000000,0.00000000000000,0.00000000000000,2466971605416 dwm.exe,2656,0x0000019D7F1BA8F0,DXGI,1,2,0,2.97228010000000,0.55280000000000,16.60970000000000,0,Hardware: Legacy Flip,0.44530000000000,15.46170000000000,16.66360000000000,-15.61760000000000,0.56270000000000,0.00000000000000,0.00000000000000,2466971759473 dwm.exe,2656,0x0000019D7EF5E390,DXGI,1,0,0,2.98964070000000,0.42490000000000,16.75910000000000,0,Hardware: Legacy Flip,0.36160000000000,14.69830000000000,16.60800000000000,-0.22080000000000,0.58240000000000,0.00000000000000,0.00000000000000,2466971933079 -steamwebhelper.exe,3980,0x0000021C48E8A710,DXGI,1,0,0,2.98348220000000,0.18280000000000,26.60780000000000,0,Composed: Flip,1.67180000000000,20.86850000000000,16.60890000000000,0.47110000000000,1.20070000000000,0.00000000000000,0.00000000000000,2466971871494 PresentBench.exe,24892,0x000002A70D2CAC00,DXGI,0,0,1,2.97097300000000,0.59030000000000,11.23620000000000,0,Composed: Flip,0.75260000000000,0.00000000000000,0.00000000000000,-10.25660000000000,0.90630000000000,0.00000000000000,0.00000000000000,2466971746402 PresentBench.exe,24892,0x000002A70D2CAC00,DXGI,0,0,0,2.98293170000000,0.61770000000000,11.95870000000000,0,Composed: Flip,0.98420000000000,21.41900000000000,16.60890000000000,-11.14160000000000,1.00610000000000,0.00000000000000,0.00000000000000,2466971865989 +steamwebhelper.exe,3980,0x0000021C48E8A710,DXGI,1,0,0,2.98348220000000,0.18280000000000,26.60780000000000,0,Composed: Flip,1.67180000000000,20.86850000000000,16.60890000000000,0.47110000000000,1.20070000000000,0.00000000000000,0.00000000000000,2466971871494 dwm.exe,2656,0x0000019D7F1BA8F0,DXGI,1,2,0,2.98897270000000,0.62590000000000,16.69260000000000,0,Hardware: Legacy Flip,0.44720000000000,15.37800000000000,16.60890000000000,-15.73990000000000,0.54810000000000,0.00000000000000,0.00000000000000,2466971926399 dwm.exe,2656,0x0000019D7EF5E390,DXGI,1,0,0,3.00631640000000,0.43850000000000,16.67570000000000,0,Hardware: Legacy Flip,0.37240000000000,14.73770000000000,16.71510000000000,-0.19470000000000,0.56710000000000,0.00000000000000,0.00000000000000,2466972099836 -steamwebhelper.exe,3980,0x0000021C48E8A710,DXGI,1,0,0,2.99986240000000,0.18530000000000,16.38020000000000,0,Composed: Flip,1.33860000000000,21.20260000000000,16.71430000000000,-14.70840000000000,0.82440000000000,0.00000000000000,0.00000000000000,2466972035296 PresentBench.exe,24892,0x000002A70D2CAC00,DXGI,0,0,0,2.99492100000000,0.58560000000000,11.98930000000000,0,Composed: Flip,0.97990000000000,26.14400000000000,16.71430000000000,-11.00510000000000,0.77510000000000,0.00000000000000,0.00000000000000,2466971985882 +steamwebhelper.exe,3980,0x0000021C48E8A710,DXGI,1,0,0,2.99986240000000,0.18530000000000,16.38020000000000,0,Composed: Flip,1.33860000000000,21.20260000000000,16.71430000000000,-14.70840000000000,0.82440000000000,0.00000000000000,0.00000000000000,2466972035296 dwm.exe,2656,0x0000019D7F1BA8F0,DXGI,1,2,0,3.00563830000000,0.63370000000000,16.66560000000000,0,Hardware: Legacy Flip,0.48340000000000,15.42670000000000,16.71430000000000,-15.63600000000000,0.76800000000000,0.00000000000000,0.00000000000000,2466972093055 dwm.exe,2656,0x0000019D7EF5E390,DXGI,1,0,0,3.02296060000000,0.86900000000000,16.64420000000000,0,Hardware: Legacy Flip,0.79290000000000,14.67870000000000,16.58520000000000,-0.16440000000000,0.93190000000000,0.00000000000000,0.00000000000000,2466972266278 -steamwebhelper.exe,3980,0x0000021C48E8A710,DXGI,1,0,0,3.01650720000000,0.17650000000000,16.64480000000000,0,Composed: Flip,1.10610000000000,21.14520000000000,16.58740000000000,0.40210000000000,0.68850000000000,0.00000000000000,0.00000000000000,2466972201744 PresentBench.exe,24892,0x000002A70D2CAC00,DXGI,0,0,1,3.00595440000000,0.67890000000000,11.03340000000000,0,Composed: Flip,1.47340000000000,0.00000000000000,0.00000000000000,-10.05350000000000,1.56410000000000,0.00000000000000,0.00000000000000,2466972096216 PresentBench.exe,24892,0x000002A70D2CAC00,DXGI,0,0,0,3.01798090000000,0.58870000000000,12.02650000000000,0,Composed: Flip,0.91900000000000,19.67150000000000,16.58740000000000,-10.55310000000000,0.80720000000000,0.00000000000000,0.00000000000000,2466972216481 +steamwebhelper.exe,3980,0x0000021C48E8A710,DXGI,1,0,0,3.01650720000000,0.17650000000000,16.64480000000000,0,Composed: Flip,1.10610000000000,21.14520000000000,16.58740000000000,0.40210000000000,0.68850000000000,0.00000000000000,0.00000000000000,2466972201744 dwm.exe,2656,0x0000019D7F1BA8F0,DXGI,1,2,0,3.02234580000000,0.57290000000000,16.70750000000000,0,Hardware: Legacy Flip,0.45040000000000,15.30660000000000,16.58740000000000,-15.65700000000000,0.78810000000000,0.00000000000000,0.00000000000000,2466972260130 dwm.exe,2656,0x0000019D7EF5E390,DXGI,1,0,0,3.03946800000000,0.39070000000000,16.50740000000000,0,Hardware: Legacy Flip,0.33200000000000,14.91520000000000,16.74390000000000,-0.15430000000000,0.48630000000000,0.00000000000000,0.00000000000000,2466972431352 -steamwebhelper.exe,3980,0x0000021C48E8A710,DXGI,1,0,0,3.03324580000000,0.17730000000000,16.73860000000000,0,Composed: Flip,1.06980000000000,21.15190000000000,16.74530000000000,0.38520000000000,0.67070000000000,0.00000000000000,0.00000000000000,2466972369130 PresentBench.exe,24892,0x000002A70D2CAC00,DXGI,0,0,0,3.02892710000000,0.54330000000000,10.94620000000000,0,Composed: Flip,0.88450000000000,25.47060000000000,16.74530000000000,-10.02720000000000,1.08140000000000,0.00000000000000,0.00000000000000,2466972325943 +steamwebhelper.exe,3980,0x0000021C48E8A710,DXGI,1,0,0,3.03324580000000,0.17730000000000,16.73860000000000,0,Composed: Flip,1.06980000000000,21.15190000000000,16.74530000000000,0.38520000000000,0.67070000000000,0.00000000000000,0.00000000000000,2466972369130 dwm.exe,2656,0x0000019D7F1BA8F0,DXGI,1,2,0,3.03888550000000,0.54260000000000,16.53970000000000,0,Hardware: Legacy Flip,0.42820000000000,15.51220000000000,16.74530000000000,-15.13200000000000,0.50580000000000,0.00000000000000,0.00000000000000,2466972425527 dwm.exe,2656,0x0000019D7EF5E390,DXGI,1,0,0,3.05630920000000,0.37950000000000,16.84120000000000,0,Hardware: Legacy Flip,0.32230000000000,14.72660000000000,16.65260000000000,-0.14980000000000,0.47210000000000,0.00000000000000,0.00000000000000,2466972599764 -steamwebhelper.exe,3980,0x0000021C48E8A710,DXGI,1,0,0,3.03987190000000,0.16260000000000,6.62610000000000,0,Composed: Flip,1.55500000000000,31.17430000000000,16.64850000000000,0.43070000000000,1.06140000000000,0.00000000000000,0.00000000000000,2466972435391 PresentBench.exe,24892,0x000002A70D2CAC00,DXGI,0,0,1,3.03979480000000,0.72670000000000,10.86770000000000,0,Composed: Flip,1.64600000000000,0.00000000000000,0.00000000000000,-9.98320000000000,1.69320000000000,0.00000000000000,0.00000000000000,2466972434620 PresentBench.exe,24892,0x000002A70D2CAC00,DXGI,0,0,0,3.05086740000000,0.51090000000000,11.07260000000000,0,Composed: Flip,0.69030000000000,20.17880000000000,16.64850000000000,-9.42660000000000,0.64300000000000,0.00000000000000,0.00000000000000,2466972545346 +steamwebhelper.exe,3980,0x0000021C48E8A710,DXGI,1,0,0,3.03987190000000,0.16260000000000,6.62610000000000,0,Composed: Flip,1.55500000000000,31.17430000000000,16.64850000000000,0.43070000000000,1.06140000000000,0.00000000000000,0.00000000000000,2466972435391 dwm.exe,2656,0x0000019D7F1BA8F0,DXGI,1,2,0,3.05569620000000,0.57430000000000,16.81070000000000,0,Hardware: Legacy Flip,0.46320000000000,15.35000000000000,16.64850000000000,-15.89620000000000,0.55190000000000,0.00000000000000,0.00000000000000,2466972593634 dwm.exe,2656,0x0000019D7EF5E390,DXGI,1,0,0,3.07284160000000,0.39950000000000,16.53240000000000,0,Hardware: Legacy Flip,0.34150000000000,14.84370000000000,16.64950000000000,-0.17960000000000,0.52110000000000,0.00000000000000,0.00000000000000,2466972765088 -steamwebhelper.exe,3980,0x0000021C48E8A710,DXGI,1,0,0,3.05650130000000,0.15380000000000,16.62940000000000,0,Composed: Flip,0.85880000000000,31.19440000000000,16.64950000000000,0.34000000000000,0.50710000000000,0.00000000000000,0.00000000000000,2466972601685 PresentBench.exe,24892,0x000002A70D2CAC00,DXGI,0,0,0,3.06185220000000,0.52270000000000,10.98480000000000,0,Composed: Flip,0.86350000000000,25.84350000000000,16.64950000000000,-10.24290000000000,1.01160000000000,0.00000000000000,0.00000000000000,2466972655194 +steamwebhelper.exe,3980,0x0000021C48E8A710,DXGI,1,0,0,3.05650130000000,0.15380000000000,16.62940000000000,0,Composed: Flip,0.85880000000000,31.19440000000000,16.64950000000000,0.34000000000000,0.50710000000000,0.00000000000000,0.00000000000000,2466972601685 dwm.exe,2656,0x0000019D7F1BA8F0,DXGI,1,2,0,3.07224270000000,0.55960000000000,16.54650000000000,0,Hardware: Legacy Flip,0.41930000000000,15.45300000000000,16.64950000000000,-15.61120000000000,0.61940000000000,0.00000000000000,0.00000000000000,2466972759099 dwm.exe,2656,0x0000019D7EF5E390,DXGI,1,0,0,3.08952150000000,0.38120000000000,16.67990000000000,0,Hardware: Legacy Flip,0.31910000000000,14.83850000000000,16.67470000000000,-0.14800000000000,0.46710000000000,0.00000000000000,0.00000000000000,2466972931887 -steamwebhelper.exe,3980,0x0000021C48E8A710,DXGI,1,0,0,3.07319540000000,0.16940000000000,16.69410000000000,0,Composed: Flip,1.47450000000000,31.17530000000000,16.67500000000000,-15.79040000000000,1.13350000000000,0.00000000000000,0.00000000000000,2466972768626 PresentBench.exe,24892,0x000002A70D2CAC00,DXGI,0,0,1,3.07279340000000,0.55940000000000,10.94120000000000,0,Composed: Flip,1.04880000000000,0.00000000000000,0.00000000000000,-10.07770000000000,1.25150000000000,0.00000000000000,0.00000000000000,2466972764606 PresentBench.exe,24892,0x000002A70D2CAC00,DXGI,0,0,0,3.08385870000000,0.52430000000000,11.06530000000000,0,Composed: Flip,0.63560000000000,20.51200000000000,16.67500000000000,-10.01650000000000,1.14870000000000,0.00000000000000,0.00000000000000,2466972875259 +steamwebhelper.exe,3980,0x0000021C48E8A710,DXGI,1,0,0,3.07319540000000,0.16940000000000,16.69410000000000,0,Composed: Flip,1.47450000000000,31.17530000000000,16.67500000000000,-15.79040000000000,1.13350000000000,0.00000000000000,0.00000000000000,2466972768626 dwm.exe,2656,0x0000019D7F1BA8F0,DXGI,1,2,0,3.08895430000000,0.52800000000000,16.71160000000000,0,Hardware: Legacy Flip,0.41920000000000,15.41640000000000,16.67500000000000,-15.77120000000000,0.71880000000000,0.00000000000000,0.00000000000000,2466972926215 dwm.exe,2656,0x0000019D7EF5E390,DXGI,1,0,0,3.10620540000000,0.39180000000000,16.68390000000000,0,Hardware: Legacy Flip,0.33330000000000,14.85010000000000,16.69550000000000,-0.15370000000000,0.48700000000000,0.00000000000000,0.00000000000000,2466973098726 -steamwebhelper.exe,3980,0x0000021C48E8A710,DXGI,1,0,0,3.09991460000000,0.16880000000000,26.71920000000000,0,Composed: Flip,1.07840000000000,21.15190000000000,16.69580000000000,0.35690000000000,0.70660000000000,0.00000000000000,0.00000000000000,2466973035818 PresentBench.exe,24892,0x000002A70D2CAC00,DXGI,0,0,0,3.09496790000000,0.54730000000000,11.10920000000000,0,Composed: Flip,0.85640000000000,26.09860000000000,16.69580000000000,-10.41620000000000,1.03240000000000,0.00000000000000,0.00000000000000,2466972986351 +steamwebhelper.exe,3980,0x0000021C48E8A710,DXGI,1,0,0,3.09991460000000,0.16880000000000,26.71920000000000,0,Composed: Flip,1.07840000000000,21.15190000000000,16.69580000000000,0.35690000000000,0.70660000000000,0.00000000000000,0.00000000000000,2466973035818 dwm.exe,2656,0x0000019D7F1BA8F0,DXGI,1,2,0,3.10561100000000,0.55250000000000,16.65670000000000,0,Hardware: Legacy Flip,0.44070000000000,15.45550000000000,16.69580000000000,-15.77040000000000,0.52300000000000,0.00000000000000,0.00000000000000,2466973092782 dwm.exe,2656,0x0000019D7EF5E390,DXGI,1,0,0,3.12293420000000,0.44470000000000,16.72880000000000,0,Hardware: Legacy Flip,0.36940000000000,14.76640000000000,16.64510000000000,-0.25450000000000,0.62390000000000,0.00000000000000,0.00000000000000,2466973266014 -steamwebhelper.exe,3980,0x0000021C48E8A710,DXGI,1,0,0,3.11621640000000,0.17840000000000,16.30180000000000,0,Composed: Flip,1.08980000000000,21.49610000000000,16.64600000000000,0.36240000000000,0.70570000000000,0.00000000000000,0.00000000000000,2466973198836 PresentBench.exe,24892,0x000002A70D2CAC00,DXGI,0,0,1,3.10586040000000,0.54690000000000,10.89250000000000,0,Composed: Flip,1.12150000000000,0.00000000000000,0.00000000000000,-10.03610000000000,0.97530000000000,0.00000000000000,0.00000000000000,2466973095276 PresentBench.exe,24892,0x000002A70D2CAC00,DXGI,0,0,0,3.11696570000000,0.57850000000000,11.10530000000000,0,Composed: Flip,1.04350000000000,20.74680000000000,16.64600000000000,-9.98380000000000,1.27330000000000,0.00000000000000,0.00000000000000,2466973206329 +steamwebhelper.exe,3980,0x0000021C48E8A710,DXGI,1,0,0,3.11621640000000,0.17840000000000,16.30180000000000,0,Composed: Flip,1.08980000000000,21.49610000000000,16.64600000000000,0.36240000000000,0.70570000000000,0.00000000000000,0.00000000000000,2466973198836 dwm.exe,2656,0x0000019D7F1BA8F0,DXGI,1,2,0,3.12223760000000,0.64330000000000,16.62660000000000,0,Hardware: Legacy Flip,0.44210000000000,15.47490000000000,16.64600000000000,-15.69890000000000,1.12160000000000,0.00000000000000,0.00000000000000,2466973259048 dwm.exe,2656,0x0000019D7EF5E390,DXGI,1,0,0,3.13970740000000,0.41070000000000,16.77320000000000,0,Hardware: Legacy Flip,0.35100000000000,14.64980000000000,16.65660000000000,-0.18240000000000,0.53340000000000,0.00000000000000,0.00000000000000,2466973433746 PresentBench.exe,24892,0x000002A70D2CAC00,DXGI,0,0,0,3.12782710000000,0.56230000000000,10.86140000000000,0,Composed: Flip,0.92010000000000,26.54140000000000,16.65600000000000,-9.81790000000000,0.61780000000000,0.00000000000000,0.00000000000000,2466973314943 dwm.exe,2656,0x0000019D7F1BA8F0,DXGI,1,2,0,3.13902420000000,0.64290000000000,16.78660000000000,0,Hardware: Legacy Flip,0.50080000000000,15.34430000000000,16.65600000000000,-15.72060000000000,0.56810000000000,0.00000000000000,0.00000000000000,2466973426914 dwm.exe,2656,0x0000019D7EF5E390,DXGI,1,0,0,3.15643040000000,0.42630000000000,16.72300000000000,0,Hardware: Legacy Flip,0.36260000000000,14.59420000000000,16.66740000000000,-0.15990000000000,0.52250000000000,0.00000000000000,0.00000000000000,2466973600976 -steamwebhelper.exe,3980,0x0000021C48E8A710,DXGI,1,0,0,3.14001000000000,0.18890000000000,23.79360000000000,0,Composed: Flip,1.74950000000000,31.02510000000000,33.32260000000000,0.51520000000000,1.22910000000000,0.00000000000000,0.00000000000000,2466973436772 PresentBench.exe,24892,0x000002A70D2CAC00,DXGI,0,0,1,3.13888860000000,0.76950000000000,11.06150000000000,0,Composed: Flip,1.63080000000000,0.00000000000000,0.00000000000000,-10.14140000000000,1.56900000000000,0.00000000000000,0.00000000000000,2466973425558 PresentBench.exe,24892,0x000002A70D2CAC00,DXGI,0,0,0,3.15094590000000,0.59210000000000,12.05730000000000,0,Composed: Flip,0.97170000000000,20.08920000000000,16.66660000000000,-10.42650000000000,1.34400000000000,0.00000000000000,0.00000000000000,2466973546131 +steamwebhelper.exe,3980,0x0000021C48E8A710,DXGI,1,0,0,3.14001000000000,0.18890000000000,23.79360000000000,0,Composed: Flip,1.74950000000000,31.02510000000000,33.32260000000000,0.51520000000000,1.22910000000000,0.00000000000000,0.00000000000000,2466973436772 dwm.exe,2656,0x0000019D7F1BA8F0,DXGI,1,2,0,3.15568430000000,0.70280000000000,16.66010000000000,0,Hardware: Legacy Flip,0.58620000000000,15.35080000000000,16.66660000000000,-15.62590000000000,1.28360000000000,0.00000000000000,0.00000000000000,2466973593515 dwm.exe,2656,0x0000019D7EF5E390,DXGI,1,0,0,3.17292290000000,0.75210000000000,16.49250000000000,0,Hardware: Legacy Flip,0.69330000000000,14.76440000000000,16.66270000000000,-0.15790000000000,0.85120000000000,0.00000000000000,0.00000000000000,2466973765901 PresentBench.exe,24892,0x000002A70D2CAC00,DXGI,0,0,0,3.16193210000000,0.56440000000000,10.98620000000000,0,Composed: Flip,0.91370000000000,25.76650000000000,16.66350000000000,-10.01450000000000,1.10060000000000,0.00000000000000,0.00000000000000,2466973655993 @@ -632,22 +632,24 @@ dwm.exe,2656,0x0000019D7EF5E390,DXGI,1,0,0,4.85605620000000,0.36340000000000,16. PresentBench.exe,24892,0x000002A70D2CAC00,DXGI,0,0,1,4.83949210000000,0.52900000000000,10.91660000000000,0,Composed: Flip,0.97950000000000,0.00000000000000,0.00000000000000,-9.95850000000000,0.71380000000000,0.00000000000000,0.00000000000000,2466990431593 PresentBench.exe,24892,0x000002A70D2CAC00,DXGI,0,0,0,4.85054750000000,0.50170000000000,11.05540000000000,0,Composed: Flip,0.61330000000000,20.46490000000000,16.60270000000000,-10.07590000000000,0.66550000000000,0.00000000000000,0.00000000000000,2466990542147 dwm.exe,2656,0x0000019D7F1BA8F0,DXGI,1,2,0,4.85553040000000,0.49200000000000,16.62480000000000,0,Hardware: Legacy Flip,0.39030000000000,15.48200000000000,16.60270000000000,-15.70900000000000,0.70800000000000,0.00000000000000,0.00000000000000,2466990591976 -PresentBench.exe,24892,0x000002A70D2CAC00,DXGI,0,0,1,4.86155290000000,0.51650000000000,11.00540000000000,0,Composed: Flip,0.76960000000000,0.00000000000000,0.00000000000000,-10.33720000000000,0.97580000000000,0.00000000000000,0.00000000000000,2466990652201 -dwm.exe,2656,0x0000000000000000,Other,-1,0,0,4.87299090000000,0.00000000000000,0.44450000000000,0,Hardware: Legacy Flip,0.03070000000000,14.73500000000000,0.00000000000000,-0.40330000000000,0.43400000000000,0.00000000000000,0.00000000000000,2466990766581 -dwm.exe,2656,0x0000000000000000,Other,-1,0,1,4.88922080000000,0.00000000000000,16.22990000000000,0,Hardware: Legacy Flip,0.03390000000000,0.00000000000000,0.00000000000000,-16.19920000000000,1.19120000000000,0.00000000000000,0.00000000000000,2466990928880 -dwm.exe,2656,0x0000000000000000,Other,-1,0,0,4.88978090000000,0.00000000000000,0.56010000000000,0,Hardware: Legacy Flip,0.03110000000000,14.59560000000000,16.65060000000000,-0.52620000000000,0.55730000000000,0.00000000000000,0.00000000000000,2466990934481 -PresentBench.exe,24892,0x0000000000000000,Other,-1,0,1,4.89492900000000,0.00000000000000,10.87790000000000,0,Composed: Flip,0.43810000000000,0.00000000000000,0.00000000000000,-10.63510000000000,1.05740000000000,0.00000000000000,0.00000000000000,2466990985962 -dwm.exe,2656,0x0000000000000000,Other,-1,0,1,4.90570470000000,0.00000000000000,15.92380000000000,0,Hardware: Legacy Flip,0.03610000000000,0.00000000000000,0.00000000000000,-15.89270000000000,0.45990000000000,0.00000000000000,0.00000000000000,2466991093719 -dwm.exe,2656,0x0000000000000000,Other,-1,0,0,4.90609160000000,0.00000000000000,0.38690000000000,0,Hardware: Legacy Flip,0.02920000000000,14.94660000000000,16.66170000000000,-0.35080000000000,0.38000000000000,0.00000000000000,0.00000000000000,2466991097588 -PresentBench.exe,24892,0x0000000000000000,Other,-1,0,1,4.91687600000000,0.00000000000000,21.94700000000000,0,Composed: Flip,0.25520000000000,0.00000000000000,0.00000000000000,-9.82060000000000,0.49350000000000,0.00000000000000,0.00000000000000,2466991205432 -dwm.exe,2656,0x0000000000000000,Other,-1,0,1,4.92234050000000,0.00000000000000,16.24890000000000,0,Hardware: Legacy Flip,0.03560000000000,0.00000000000000,0.00000000000000,-16.21970000000000,1.13450000000000,0.00000000000000,0.00000000000000,2466991260077 -dwm.exe,2656,0x0000000000000000,Other,-1,0,0,4.92271740000000,0.00000000000000,0.37690000000000,0,Hardware: Legacy Flip,0.03380000000000,15.01680000000000,16.69600000000000,-0.34130000000000,0.37510000000000,0.00000000000000,0.00000000000000,2466991263846 -PresentBench.exe,24892,0x0000000000000000,Other,-1,0,1,4.92818910000000,0.00000000000000,11.31310000000000,0,Composed: Flip,0.51950000000000,0.00000000000000,0.00000000000000,-11.05790000000000,1.08100000000000,0.00000000000000,0.00000000000000,2466991318563 -dwm.exe,2656,0x0000000000000000,Other,-1,0,1,4.93901470000000,0.00000000000000,16.29730000000000,0,Hardware: Legacy Flip,0.03590000000000,0.00000000000000,0.00000000000000,-16.26350000000000,0.62540000000000,0.00000000000000,0.00000000000000,2466991426819 -dwm.exe,2656,0x0000000000000000,Other,-1,0,0,4.93941650000000,0.00000000000000,0.40180000000000,0,Hardware: Legacy Flip,0.03300000000000,14.96310000000000,16.64540000000000,-0.36590000000000,0.39890000000000,0.00000000000000,0.00000000000000,2466991430837 -PresentBench.exe,24892,0x0000000000000000,Other,-1,0,1,4.95042170000000,0.00000000000000,22.23260000000000,0,Composed: Flip,0.17650000000000,0.00000000000000,0.00000000000000,-10.04760000000000,0.41270000000000,0.00000000000000,0.00000000000000,2466991540889 -dwm.exe,2656,0x0000000000000000,Other,-1,0,1,4.95569550000000,0.00000000000000,16.27900000000000,0,Hardware: Legacy Flip,0.03550000000000,0.00000000000000,0.00000000000000,-16.24600000000000,1.11760000000000,0.00000000000000,0.00000000000000,2466991593627 -dwm.exe,2656,0x0000000000000000,Other,-1,0,0,4.95610350000000,0.00000000000000,0.40800000000000,0,Hardware: Legacy Flip,0.03200000000000,14.94780000000000,16.67170000000000,-0.37250000000000,0.40450000000000,0.00000000000000,0.00000000000000,2466991597707 -PresentBench.exe,24892,0x0000000000000000,Other,-1,0,1,4.96140390000000,0.00000000000000,10.98220000000000,0,Composed: Flip,0.39960000000000,0.00000000000000,0.00000000000000,-10.75370000000000,1.04900000000000,0.00000000000000,0.00000000000000,2466991650711 -dwm.exe,2656,0x0000000000000000,Other,-1,0,1,4.97247580000000,0.00000000000000,16.37230000000000,0,Hardware: Legacy Flip,0.03990000000000,0.00000000000000,0.00000000000000,-16.34030000000000,0.59890000000000,0.00000000000000,0.00000000000000,2466991761430 -dwm.exe,2656,0x0000000000000000,Other,-1,0,0,4.97287680000000,0.00000000000000,0.40100000000000,0,Hardware: Legacy Flip,0.03240000000000,14.84990000000000,16.67540000000000,-0.36110000000000,0.39350000000000,0.00000000000000,0.00000000000000,2466991765440 +PresentBench.exe,24892,0x000002A70D2CAC00,DXGI,0,0,0,4.86155290000000,0.51650000000000,11.00540000000000,0,Composed: Flip,0.76960000000000,26.18370000000000,16.72420000000000,-10.33720000000000,0.97580000000000,0.00000000000000,0.00000000000000,2466990652201 +dwm.exe,2656,0x0000000000000000,Other,-1,0,0,4.88978090000000,0.00000000000000,16.79000000000000,0,Hardware: Legacy Flip,0.03110000000000,14.59560000000000,16.65060000000000,-0.52620000000000,0.55730000000000,0.00000000000000,0.00000000000000,2466990934481 +PresentBench.exe,24892,0x0000000000000000,Other,-1,0,0,4.88405110000000,0.00000000000000,11.17160000000000,0,Composed: Flip,0.19210000000000,20.33520000000000,0.00000000000000,-10.49970000000000,0.90880000000000,0.00000000000000,0.00000000000000,2466990877183 +dwm.exe,2656,0x0000000100000000,Other,-1,0,0,4.88922080000000,0.00000000000000,16.67440000000000,0,Hardware: Legacy Flip,0.03390000000000,15.16550000000000,16.64970000000000,-16.19920000000000,1.19120000000000,0.00000000000000,0.00000000000000,2466990928880 +dwm.exe,2656,0x0000000000000000,Other,-1,0,0,4.90609160000000,0.00000000000000,16.31070000000000,0,Hardware: Legacy Flip,0.02920000000000,14.94660000000000,16.66170000000000,-0.35080000000000,0.38000000000000,0.00000000000000,0.00000000000000,2466991097588 +PresentBench.exe,24892,0x0000000000000000,Other,-1,0,0,4.89492900000000,0.00000000000000,10.87790000000000,0,Composed: Flip,0.43810000000000,26.11930000000000,16.66200000000000,-10.63510000000000,1.05740000000000,0.00000000000000,0.00000000000000,2466990985962 +dwm.exe,2656,0x0000000100000000,Other,-1,0,0,4.90570470000000,0.00000000000000,16.48390000000000,0,Hardware: Legacy Flip,0.03610000000000,15.34360000000000,16.66200000000000,-15.89270000000000,0.45990000000000,0.00000000000000,0.00000000000000,2466991093719 +dwm.exe,2656,0x0000000000000000,Other,-1,0,0,4.92271740000000,0.00000000000000,16.62580000000000,0,Hardware: Legacy Flip,0.03380000000000,15.01680000000000,16.69600000000000,-0.34130000000000,0.37510000000000,0.00000000000000,0.00000000000000,2466991263846 +PresentBench.exe,24892,0x0000000000000000,Other,-1,0,1,4.90581710000000,0.00000000000000,10.88810000000000,0,Composed: Flip,1.23830000000000,0.00000000000000,0.00000000000000,-10.45000000000000,1.43850000000000,0.00000000000000,0.00000000000000,2466991094843 +PresentBench.exe,24892,0x0000000000000000,Other,-1,0,0,4.91687600000000,0.00000000000000,11.05890000000000,0,Composed: Flip,0.25520000000000,20.86800000000000,16.69570000000000,-9.82060000000000,0.49350000000000,0.00000000000000,0.00000000000000,2466991205432 +dwm.exe,2656,0x0000000100000000,Other,-1,0,0,4.92234050000000,0.00000000000000,16.63580000000000,0,Hardware: Legacy Flip,0.03560000000000,15.40350000000000,16.69570000000000,-16.21970000000000,1.13450000000000,0.00000000000000,0.00000000000000,2466991260077 +dwm.exe,2656,0x0000000000000000,Other,-1,0,0,4.93941650000000,0.00000000000000,16.69910000000000,0,Hardware: Legacy Flip,0.03300000000000,14.96310000000000,16.64540000000000,-0.36590000000000,0.39890000000000,0.00000000000000,0.00000000000000,2466991430837 +PresentBench.exe,24892,0x0000000000000000,Other,-1,0,0,4.92818910000000,0.00000000000000,11.31310000000000,0,Composed: Flip,0.51950000000000,26.20000000000000,16.64510000000000,-11.05790000000000,1.08100000000000,0.00000000000000,0.00000000000000,2466991318563 +dwm.exe,2656,0x0000000100000000,Other,-1,0,0,4.93901470000000,0.00000000000000,16.67420000000000,0,Hardware: Legacy Flip,0.03590000000000,15.37440000000000,16.64510000000000,-16.26350000000000,0.62540000000000,0.00000000000000,0.00000000000000,2466991426819 +dwm.exe,2656,0x0000000000000000,Other,-1,0,0,4.95610350000000,0.00000000000000,16.68700000000000,0,Hardware: Legacy Flip,0.03200000000000,14.94780000000000,16.67170000000000,-0.37250000000000,0.40450000000000,0.00000000000000,0.00000000000000,2466991597707 +PresentBench.exe,24892,0x0000000000000000,Other,-1,0,1,4.93929300000000,0.00000000000000,11.10390000000000,0,Composed: Flip,1.08110000000000,0.00000000000000,0.00000000000000,-10.58440000000000,1.30050000000000,0.00000000000000,0.00000000000000,2466991429602 +PresentBench.exe,24892,0x0000000000000000,Other,-1,0,0,4.95042170000000,0.00000000000000,11.12870000000000,0,Composed: Flip,0.17650000000000,20.63950000000000,16.67210000000000,-10.04760000000000,0.41270000000000,0.00000000000000,0.00000000000000,2466991540889 +dwm.exe,2656,0x0000000100000000,Other,-1,0,0,4.95569550000000,0.00000000000000,16.68080000000000,0,Hardware: Legacy Flip,0.03550000000000,15.36570000000000,16.67210000000000,-16.24600000000000,1.11760000000000,0.00000000000000,0.00000000000000,2466991593627 +dwm.exe,2656,0x0000000000000000,Other,-1,0,0,4.97287680000000,0.00000000000000,16.77330000000000,0,Hardware: Legacy Flip,0.03240000000000,14.84990000000000,16.67540000000000,-0.36110000000000,0.39350000000000,0.00000000000000,0.00000000000000,2466991765440 +PresentBench.exe,24892,0x0000000000000000,Other,-1,0,0,4.96140390000000,0.00000000000000,10.98220000000000,0,Composed: Flip,0.39960000000000,26.33340000000000,16.67610000000000,-10.75370000000000,1.04900000000000,0.00000000000000,0.00000000000000,2466991650711 +dwm.exe,2656,0x0000000100000000,Other,-1,0,0,4.97247580000000,0.00000000000000,16.78030000000000,0,Hardware: Legacy Flip,0.03990000000000,15.26150000000000,16.67610000000000,-16.34030000000000,0.59890000000000,0.00000000000000,0.00000000000000,2466991761430 diff --git a/Tests/PresentMon.cpp b/Tests/PresentMon.cpp index 80d66932..0933c55f 100644 --- a/Tests/PresentMon.cpp +++ b/Tests/PresentMon.cpp @@ -166,7 +166,8 @@ bool PresentMonCsv::Open(char const* file, int line, std::wstring const& path) Header_PresentMode, Header_DisplayLatency, Header_DisplayedTime, - Header_AnimationError }); + Header_AnimationError, + Header_AnimationTime }); auto track_gpu = CheckAllIfAny(headerColumnIndex_, &columnsOK, { Header_GPULatency, Header_GPUTime, Header_GPUBusy, @@ -174,6 +175,7 @@ bool PresentMonCsv::Open(char const* file, int line, std::wstring const& path) auto track_gpu_video = CheckAllIfAny(headerColumnIndex_, &columnsOK, { Header_VideoBusy }); auto track_input = CheckAllIfAny(headerColumnIndex_, &columnsOK, { Header_ClickToPhotonLatency }); auto track_frame_type = CheckAllIfAny(headerColumnIndex_, &columnsOK, { Header_FrameType }); + auto track_app_timing = CheckAllIfAny(headerColumnIndex_, &columnsOK, { Header_InstrumentedLatency }); switch (time) { case 1: params_.emplace_back(L"--qpc_time"); break; @@ -185,6 +187,7 @@ bool PresentMonCsv::Open(char const* file, int line, std::wstring const& path) if (track_gpu_video) params_.emplace_back(L"--track_gpu_video"); if (!track_input) params_.emplace_back(L"--no_track_input"); if (track_frame_type) params_.emplace_back(L"--track_frame_type"); + if (track_app_timing) params_.emplace_back(L"--track_app_timing"); } if (!columnsOK) { diff --git a/Tests/PresentMonTests.h b/Tests/PresentMonTests.h index 69a987c8..dcfb2e7e 100644 --- a/Tests/PresentMonTests.h +++ b/Tests/PresentMonTests.h @@ -37,9 +37,13 @@ struct PresentMonCsv Header_DisplayLatency, Header_DisplayedTime, Header_AnimationError, + Header_AnimationTime, Header_ClickToPhotonLatency, Header_AllInputToPhotonLatency, + // App Provided Metrics + Header_InstrumentedLatency, + // --v1_metrics Header_Runtime, Header_Dropped, @@ -91,9 +95,9 @@ struct PresentMonCsv case Header_DisplayLatency: return "DisplayLatency"; case Header_DisplayedTime: return "DisplayedTime"; case Header_AnimationError: return "AnimationError"; + case Header_AnimationTime: return "AnimationTime"; case Header_ClickToPhotonLatency: return "ClickToPhotonLatency"; case Header_AllInputToPhotonLatency: return "AllInputToPhotonLatency"; - case Header_Runtime: return "Runtime"; case Header_Dropped: return "Dropped"; case Header_TimeInSeconds: return "TimeInSeconds"; @@ -110,6 +114,8 @@ struct PresentMonCsv case Header_WasBatched: return "WasBatched"; case Header_DwmNotified: return "DwmNotified"; + + case Header_InstrumentedLatency: return "InstrumentedLatency"; } return ""; } diff --git a/Tools/create_gold_csvs.cmd b/Tools/create_gold_csvs.cmd index ef0e7690..ae8b0076 100644 --- a/Tools/create_gold_csvs.cmd +++ b/Tools/create_gold_csvs.cmd @@ -39,6 +39,6 @@ exit /b 0 exit /b 0 ) - echo %presentmon% --no_console_stats --stop_existing_session --qpc_time --track_gpu_video %~3 --etl_file %1 --output_file %2 - %presentmon% --no_console_stats --stop_existing_session --qpc_time --track_gpu_video %~3 --etl_file %1 --output_file %2 >NUL 2>&1 + echo %presentmon% --no_console_stats --stop_existing_session --qpc_time --track_frame_type --track_app_timing --track_gpu_video %~3 --etl_file %1 --output_file %2 + %presentmon% --no_console_stats --stop_existing_session --qpc_time --track_frame_type --track_app_timing --track_gpu_video %~3 --etl_file %1 --output_file %2 >NUL 2>&1 exit /b 0