Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(95)

Unified Diff: ui/events/latency_info.cc

Issue 2771053003: WIP: Plumbing input event latency reporting through Mus GPU.
Patch Set: Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ui/events/latency_info.cc
diff --git a/ui/events/latency_info.cc b/ui/events/latency_info.cc
index 272704b8121b20e461c0b826e16184578c3b60e5..961d1308baa4acd59308500cb55ce3a316c976f5 100644
--- a/ui/events/latency_info.cc
+++ b/ui/events/latency_info.cc
@@ -20,38 +20,6 @@ namespace {
const size_t kMaxLatencyInfoNumber = 100;
-const char* GetComponentName(ui::LatencyComponentType type) {
-#define CASE_TYPE(t) case ui::t: return #t
- switch (type) {
- CASE_TYPE(INPUT_EVENT_LATENCY_BEGIN_RWH_COMPONENT);
- CASE_TYPE(LATENCY_BEGIN_SCROLL_LISTENER_UPDATE_MAIN_COMPONENT);
- CASE_TYPE(INPUT_EVENT_LATENCY_SCROLL_UPDATE_ORIGINAL_COMPONENT);
- CASE_TYPE(INPUT_EVENT_LATENCY_FIRST_SCROLL_UPDATE_ORIGINAL_COMPONENT);
- CASE_TYPE(INPUT_EVENT_LATENCY_ORIGINAL_COMPONENT);
- CASE_TYPE(INPUT_EVENT_LATENCY_UI_COMPONENT);
- CASE_TYPE(INPUT_EVENT_LATENCY_RENDERING_SCHEDULED_MAIN_COMPONENT);
- CASE_TYPE(INPUT_EVENT_LATENCY_RENDERING_SCHEDULED_IMPL_COMPONENT);
- CASE_TYPE(INPUT_EVENT_LATENCY_FORWARD_SCROLL_UPDATE_TO_MAIN_COMPONENT);
- CASE_TYPE(INPUT_EVENT_LATENCY_ACK_RWH_COMPONENT);
- CASE_TYPE(WINDOW_SNAPSHOT_FRAME_NUMBER_COMPONENT);
- CASE_TYPE(TAB_SHOW_COMPONENT);
- CASE_TYPE(INPUT_EVENT_LATENCY_RENDERER_MAIN_COMPONENT);
- CASE_TYPE(INPUT_EVENT_LATENCY_RENDERER_SWAP_COMPONENT);
- CASE_TYPE(INPUT_EVENT_BROWSER_RECEIVED_RENDERER_SWAP_COMPONENT);
- CASE_TYPE(INPUT_EVENT_GPU_SWAP_BUFFER_COMPONENT);
- CASE_TYPE(INPUT_EVENT_LATENCY_GENERATE_SCROLL_UPDATE_FROM_MOUSE_WHEEL);
- CASE_TYPE(INPUT_EVENT_LATENCY_TERMINATED_NO_SWAP_COMPONENT);
- CASE_TYPE(INPUT_EVENT_LATENCY_TERMINATED_FRAME_SWAP_COMPONENT);
- CASE_TYPE(INPUT_EVENT_LATENCY_TERMINATED_COMMIT_FAILED_COMPONENT);
- CASE_TYPE(INPUT_EVENT_LATENCY_TERMINATED_COMMIT_NO_UPDATE_COMPONENT);
- CASE_TYPE(INPUT_EVENT_LATENCY_TERMINATED_SWAP_FAILED_COMPONENT);
- default:
- DLOG(WARNING) << "Unhandled LatencyComponentType.\n";
- break;
- }
-#undef CASE_TYPE
- return "unknown";
-}
bool IsTerminalComponent(ui::LatencyComponentType type) {
switch (type) {
@@ -130,6 +98,39 @@ static base::LazyInstance<LatencyInfoEnabledInitializer>::Leaky
namespace ui {
+const char* GetComponentName(ui::LatencyComponentType type) {
+#define CASE_TYPE(t) case ui::t: return #t
+ switch (type) {
+ CASE_TYPE(INPUT_EVENT_LATENCY_BEGIN_RWH_COMPONENT);
+ CASE_TYPE(LATENCY_BEGIN_SCROLL_LISTENER_UPDATE_MAIN_COMPONENT);
+ CASE_TYPE(INPUT_EVENT_LATENCY_SCROLL_UPDATE_ORIGINAL_COMPONENT);
+ CASE_TYPE(INPUT_EVENT_LATENCY_FIRST_SCROLL_UPDATE_ORIGINAL_COMPONENT);
+ CASE_TYPE(INPUT_EVENT_LATENCY_ORIGINAL_COMPONENT);
+ CASE_TYPE(INPUT_EVENT_LATENCY_UI_COMPONENT);
+ CASE_TYPE(INPUT_EVENT_LATENCY_RENDERING_SCHEDULED_MAIN_COMPONENT);
+ CASE_TYPE(INPUT_EVENT_LATENCY_RENDERING_SCHEDULED_IMPL_COMPONENT);
+ CASE_TYPE(INPUT_EVENT_LATENCY_FORWARD_SCROLL_UPDATE_TO_MAIN_COMPONENT);
+ CASE_TYPE(INPUT_EVENT_LATENCY_ACK_RWH_COMPONENT);
+ CASE_TYPE(WINDOW_SNAPSHOT_FRAME_NUMBER_COMPONENT);
+ CASE_TYPE(TAB_SHOW_COMPONENT);
+ CASE_TYPE(INPUT_EVENT_LATENCY_RENDERER_MAIN_COMPONENT);
+ CASE_TYPE(INPUT_EVENT_LATENCY_RENDERER_SWAP_COMPONENT);
+ CASE_TYPE(INPUT_EVENT_BROWSER_RECEIVED_RENDERER_SWAP_COMPONENT);
+ CASE_TYPE(INPUT_EVENT_GPU_SWAP_BUFFER_COMPONENT);
+ CASE_TYPE(INPUT_EVENT_LATENCY_GENERATE_SCROLL_UPDATE_FROM_MOUSE_WHEEL);
+ CASE_TYPE(INPUT_EVENT_LATENCY_TERMINATED_NO_SWAP_COMPONENT);
+ CASE_TYPE(INPUT_EVENT_LATENCY_TERMINATED_FRAME_SWAP_COMPONENT);
+ CASE_TYPE(INPUT_EVENT_LATENCY_TERMINATED_COMMIT_FAILED_COMPONENT);
+ CASE_TYPE(INPUT_EVENT_LATENCY_TERMINATED_COMMIT_NO_UPDATE_COMPONENT);
+ CASE_TYPE(INPUT_EVENT_LATENCY_TERMINATED_SWAP_FAILED_COMPONENT);
+ default:
+ DLOG(WARNING) << "Unhandled LatencyComponentType.\n";
+ break;
+ }
+#undef CASE_TYPE
+ return "unknown";
+}
+
LatencyInfo::LatencyInfo() : LatencyInfo(SourceEventType::UNKNOWN) {}
LatencyInfo::LatencyInfo(SourceEventType type)
@@ -355,6 +356,20 @@ bool LatencyInfo::FindLatency(LatencyComponentType type,
return true;
}
+bool LatencyInfo::FindLatency(LatencyComponentType type,
+ LatencyComponent* output) const {
+ LatencyMap::const_iterator it = latency_components_.begin();
+ while (it != latency_components_.end()) {
+ if (it->first.first == type) {
+ if (output)
+ *output = it->second;
+ return true;
+ }
+ it++;
+ }
+ return false;
+}
+
void LatencyInfo::RemoveLatency(LatencyComponentType type) {
LatencyMap::iterator it = latency_components_.begin();
while (it != latency_components_.end()) {

Powered by Google App Engine
This is Rietveld 408576698