Geoff Lang has uploaded this change for review.
Add a histogram of time spent waiting on GPU backpressure
Bug: angleproject:8153
Change-Id: I831f6c09c744677e1cc717315a39991f5229b5b8
---
M tools/metrics/histograms/metadata/gpu/histograms.xml
M ui/gl/gl_context.cc
2 files changed, 17 insertions(+), 0 deletions(-)
diff --git a/tools/metrics/histograms/metadata/gpu/histograms.xml b/tools/metrics/histograms/metadata/gpu/histograms.xml
index 00b2d61..a5ce5ba9 100644
--- a/tools/metrics/histograms/metadata/gpu/histograms.xml
+++ b/tools/metrics/histograms/metadata/gpu/histograms.xml
@@ -408,6 +408,15 @@
</summary>
</histogram>
+<histogram name="GPU.BackpressureFenceWaitTimeUs" units="microseconds"
+ expires_after="2024-04-28">
+ <owner>geof...@chromium.org</owner>
+ <owner>angle...@google.com</owner>
+ <summary>
+ Number of microseconds spent waiting for backpressure to resolve.
+ </summary>
+</histogram>
+
<histogram name="GPU.BlocklistFeatureTestResults"
enum="GPUBlocklistFeatureTestResults" expires_after="2024-04-28">
<owner>vmi...@chromium.org</owner>
diff --git a/ui/gl/gl_context.cc b/ui/gl/gl_context.cc
index 01866cb..18f1509 100644
--- a/ui/gl/gl_context.cc
+++ b/ui/gl/gl_context.cc
@@ -12,6 +12,7 @@
#include "base/lazy_instance.h"
#include "base/logging.h"
#include "base/memory/ptr_util.h"
+#include "base/metrics/histogram_macros.h"
#include "base/strings/string_util.h"
#include "base/trace_event/trace_event.h"
#include "build/build_config.h"
@@ -258,6 +259,8 @@
auto [fence, events] = std::move(found->second);
backpressure_fences_.erase(found);
+ base::TimeTicks backpressure_start = base::TimeTicks::Now();
+
// Poll for all Metal shared events to be signaled with a 1ms delay.
bool events_complete = false;
while (!events_complete) {
@@ -302,6 +305,11 @@
}
fence.reset();
+ base::TimeTicks backpressure_end = base::TimeTicks::Now();
+ UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES(
+ "GPU.BackpressureFenceWaitTimeUs", backpressure_end - backpressure_start,
+ base::Microseconds(1), base::Milliseconds(100), 100);
+
// Waiting on |fence_id| has implicitly waited on all previous fences, so
// remove them.
while (!backpressure_fences_.empty() &&
To view, visit change 5054387. To unsubscribe, or for help writing mail filters, visit settings.
Geoff Lang abandoned this change.
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |