We need to have a mechanism for measuring input event latency in mus. Each ui::Event carries at ui::LatencyInfo [1], and we are supposed to insert check-points into those at various times. This happens in the ui, content, and cc layers. The ui and cc layers *probably* work OK in mus land (although I haven't verified yet), but the content layers are missing for mus. Also, the renderer processes can insert some of the check-points [2], and the browser/compositor merges those back. We would want to do something similar for mus. 1: https://cs.chromium.org/chromium/src/ui/events/event.h?sq=package:chromium&dr=Ss&l=89 2: https://cs.chromium.org/chromium/src/content/renderer/input/render_widget_input_handler.cc?sq=package:chromium&dr=C&rcl=1485491011&l=250
We also need to plumb LatencyInfo through gpu code: https://cs.chromium.org/chromium/src/gpu/ipc/in_process_command_buffer.cc?sq=package:chromium&l=1073
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/2e7ded925d16d7e4c7c406f15b887520d5c2a71f commit 2e7ded925d16d7e4c7c406f15b887520d5c2a71f Author: mfomitchev <mfomitchev@chromium.org> Date: Thu Mar 02 21:25:22 2017 Adding LatencyInfo to mojom::Event. Also updating the struct traits. BUG= 686865 Review-Url: https://codereview.chromium.org/2728883002 Cr-Commit-Position: refs/heads/master@{#454380} [modify] https://crrev.com/2e7ded925d16d7e4c7c406f15b887520d5c2a71f/ui/events/mojo/event.mojom [modify] https://crrev.com/2e7ded925d16d7e4c7c406f15b887520d5c2a71f/ui/events/mojo/event.typemap [modify] https://crrev.com/2e7ded925d16d7e4c7c406f15b887520d5c2a71f/ui/events/mojo/event_struct_traits.cc [modify] https://crrev.com/2e7ded925d16d7e4c7c406f15b887520d5c2a71f/ui/events/mojo/event_struct_traits.h
We need this to be able to measure performance, so making it a blocker for 681067, and slapping mustash-1 on this.
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/3540cc14cd0b86a200aaedb2ef7fe024978aa98d commit 3540cc14cd0b86a200aaedb2ef7fe024978aa98d Author: mfomitchev <mfomitchev@chromium.org> Date: Thu Mar 23 21:28:28 2017 Adding first_event_time and last_event_time to LatencyInfo mojom. These are used by RenderWidgetHostLatencyTracker. Legacy Chrome IPC serializes them, and so should Mojo. BUG= 686865 Review-Url: https://codereview.chromium.org/2768393002 Cr-Commit-Position: refs/heads/master@{#459228} [modify] https://crrev.com/3540cc14cd0b86a200aaedb2ef7fe024978aa98d/ui/events/mojo/latency_info.mojom [modify] https://crrev.com/3540cc14cd0b86a200aaedb2ef7fe024978aa98d/ui/events/mojo/latency_info_struct_traits.cc [modify] https://crrev.com/3540cc14cd0b86a200aaedb2ef7fe024978aa98d/ui/events/mojo/latency_info_struct_traits.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/3249950eb5a68320b971ec02e537c338be7f3a9c commit 3249950eb5a68320b971ec02e537c338be7f3a9c Author: mfomitchev <mfomitchev@chromium.org> Date: Tue Mar 28 17:25:49 2017 Turning ui/events/ipc into a source_set There's no good reason for ui/events/ipc to be a component. BUG= 686865 Review-Url: https://codereview.chromium.org/2777103003 Cr-Commit-Position: refs/heads/master@{#460153} [modify] https://crrev.com/3249950eb5a68320b971ec02e537c338be7f3a9c/ui/events/ipc/BUILD.gn [delete] https://crrev.com/b39d83360c64113ff17e64169c49e1a83329b61e/ui/events/ipc/events_ipc_export.h [modify] https://crrev.com/3249950eb5a68320b971ec02e537c338be7f3a9c/ui/events/ipc/latency_info_param_traits.h [modify] https://crrev.com/3249950eb5a68320b971ec02e537c338be7f3a9c/ui/events/ipc/latency_info_param_traits_macros.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/3ba450ad80c201c9746279d356137dab519ca2dd commit 3ba450ad80c201c9746279d356137dab519ca2dd Author: mfomitchev <mfomitchev@chromium.org> Date: Mon Apr 03 18:20:40 2017 Moving LatencyInfo into a separate component. This is necessary so that various parts of the GPU code do not need to depend on ui/events. BUG= 686865 TBR=ben@chromium.org CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Review-Url: https://codereview.chromium.org/2783973002 Cr-Commit-Position: refs/heads/master@{#461475} [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/BUILD.gn [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/cc/BUILD.gn [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/cc/DEPS [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/cc/ipc/BUILD.gn [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/cc/ipc/DEPS [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/cc/ipc/cc_param_traits_macros.h [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/cc/ipc/cc_serialization_perftest.cc [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/cc/ipc/compositor_frame_for_blink.typemap [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/cc/ipc/compositor_frame_metadata.mojom [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/cc/ipc/compositor_frame_metadata_struct_traits.cc [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/cc/output/compositor_frame_metadata.h [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/cc/output/direct_renderer.h [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/cc/output/gl_renderer.h [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/cc/output/gl_renderer_unittest.cc [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/cc/output/latency_info_swap_promise.h [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/cc/output/output_surface_frame.h [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/cc/output/overlay_unittest.cc [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/cc/output/software_renderer.h [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/cc/output/vulkan_renderer.h [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/cc/surfaces/BUILD.gn [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/cc/surfaces/display.h [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/content/DEPS [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/content/browser/compositor/image_transport_factory.h [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/content/browser/compositor/offscreen_browser_compositor_output_surface.h [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/content/browser/compositor/software_browser_compositor_output_surface.cc [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/content/browser/gpu/gpu_process_host.cc [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/content/browser/loader/resource_scheduler_unittest.cc [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/content/browser/renderer_host/input/main_thread_event_queue_browsertest.cc [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/content/browser/renderer_host/input/non_blocking_event_browsertest.cc [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/content/browser/renderer_host/input/render_widget_host_latency_tracker.h [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/content/browser/renderer_host/input/synthetic_gesture_target_base.cc [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/content/browser/renderer_host/input/synthetic_pointer_action.cc [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/content/browser/renderer_host/input/synthetic_tap_gesture.cc [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/content/browser/renderer_host/input/synthetic_touchscreen_pinch_gesture.cc [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/content/browser/renderer_host/input/touch_action_browsertest.cc [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/content/browser/renderer_host/input/touch_input_browsertest.cc [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/content/browser/renderer_host/render_widget_host_impl.h [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/content/browser/renderer_host/render_widget_host_view_event_handler.h [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/content/browser/renderer_host/render_widget_host_view_mac_unittest.mm [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/content/browser/site_per_process_browsertest.cc [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/content/common/BUILD.gn [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/content/common/input/event_with_latency_info.h [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/content/common/input/input_event.h [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/content/common/input/input_event_ack.h [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/content/common/input_messages.h [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/content/gpu/BUILD.gn [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/content/public/test/browser_test_utils.cc [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/content/renderer/BUILD.gn [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/content/renderer/input/main_thread_event_queue.h [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/content/renderer/input/render_widget_input_handler.cc [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/content/renderer/input/scoped_web_input_event_with_latency_info.h [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/content/renderer/render_view_impl.cc [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/content/test/BUILD.gn [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/gpu/ipc/client/BUILD.gn [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/gpu/ipc/client/DEPS [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/gpu/ipc/client/command_buffer_proxy_impl.h [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/gpu/ipc/client/gpu_channel_host.h [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/gpu/ipc/common/BUILD.gn [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/gpu/ipc/common/DEPS [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/gpu/ipc/common/gpu_messages.h [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/gpu/ipc/service/BUILD.gn [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/gpu/ipc/service/DEPS [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/gpu/ipc/service/gpu_command_buffer_stub.h [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/gpu/ipc/service/image_transport_surface_delegate.h [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/gpu/ipc/service/image_transport_surface_overlay_mac.h [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/gpu/ipc/service/pass_through_image_transport_surface.h [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/mojo/public/tools/bindings/chromium_bindings_configuration.gni [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/ui/events/BUILD.gn [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/ui/events/DEPS [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/ui/events/OWNERS [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/ui/events/blink/BUILD.gn [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/ui/events/blink/DEPS [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/ui/events/blink/event_with_callback.h [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/ui/events/blink/input_handler_proxy.cc [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/ui/events/blink/input_handler_proxy_unittest.cc [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/ui/events/blink/web_input_event_traits.h [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/ui/events/event.h [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/ui/events/mojo/BUILD.gn [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/ui/events/mojo/DEPS [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/ui/events/mojo/event.mojom [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/ui/events/mojo/event.typemap [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/ui/events/mojo/event_struct_traits.cc [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/ui/events/mojo/struct_traits_unittest.cc [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/ui/events/mojo/traits_test_service.mojom [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/ui/events/mojo/typemaps.gni [add] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/ui/latency/BUILD.gn [add] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/ui/latency/DEPS [add] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/ui/latency/OWNERS [rename] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/ui/latency/ipc/BUILD.gn [rename] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/ui/latency/ipc/OWNERS [rename] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/ui/latency/ipc/latency_info_param_traits.cc [rename] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/ui/latency/ipc/latency_info_param_traits.h [rename] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/ui/latency/ipc/latency_info_param_traits_macros.h [rename] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/ui/latency/ipc/latency_info_param_traits_unittest.cc [rename] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/ui/latency/latency_info.cc [rename] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/ui/latency/latency_info.dot [rename] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/ui/latency/latency_info.h [rename] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/ui/latency/latency_info_unittest.cc [add] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/ui/latency/mojo/BUILD.gn [add] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/ui/latency/mojo/DEPS [add] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/ui/latency/mojo/OWNERS [rename] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/ui/latency/mojo/latency_info.mojom [rename] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/ui/latency/mojo/latency_info.typemap [rename] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/ui/latency/mojo/latency_info_struct_traits.cc [rename] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/ui/latency/mojo/latency_info_struct_traits.h [add] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/ui/latency/mojo/struct_traits_unittest.cc [add] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/ui/latency/mojo/traits_test_service.mojom [add] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/ui/latency/mojo/typemaps.gni [modify] https://crrev.com/3ba450ad80c201c9746279d356137dab519ca2dd/ui/surface/DEPS
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/60addc8dc6c4d88a452b132ad7666d0eb1014fd7 commit 60addc8dc6c4d88a452b132ad7666d0eb1014fd7 Author: mfomitchev <mfomitchev@chromium.org> Date: Tue Apr 04 17:14:55 2017 Renaming gpu swap buffer callbacks as well as a screenshot latency component. - Renamed WINDOW_SNAPSHOT_FRAME_NUMBER_COMPONENT to BROWSER_SNAPSHOT_FRAME_NUMBER_COMPONENT: the screenshots that are tracked by this component are only the ones that are made via RenderWidgetHostImpl::GetSnapshotFromBrowser. Other screenshots (e.g. ones made via ui::ScreenshotGrabber are not tracked). - renamed GPU buffer swap callbacks in render_host to OnGpuSwapBufersCompleted. Previous names were a bit misleading. TBR=tsepez@chromium.org, BUG= 686865 CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel Review-Url: https://codereview.chromium.org/2788893004 Cr-Commit-Position: refs/heads/master@{#461759} [modify] https://crrev.com/60addc8dc6c4d88a452b132ad7666d0eb1014fd7/cc/surfaces/compositor_frame_sink_support_unittest.cc [modify] https://crrev.com/60addc8dc6c4d88a452b132ad7666d0eb1014fd7/content/browser/compositor/gpu_browser_compositor_output_surface.cc [modify] https://crrev.com/60addc8dc6c4d88a452b132ad7666d0eb1014fd7/content/browser/compositor/offscreen_browser_compositor_output_surface.cc [modify] https://crrev.com/60addc8dc6c4d88a452b132ad7666d0eb1014fd7/content/browser/compositor/software_browser_compositor_output_surface.cc [modify] https://crrev.com/60addc8dc6c4d88a452b132ad7666d0eb1014fd7/content/browser/renderer_host/compositor_impl_android.cc [modify] https://crrev.com/60addc8dc6c4d88a452b132ad7666d0eb1014fd7/content/browser/renderer_host/input/render_widget_host_latency_tracker.cc [modify] https://crrev.com/60addc8dc6c4d88a452b132ad7666d0eb1014fd7/content/browser/renderer_host/input/render_widget_host_latency_tracker.h [modify] https://crrev.com/60addc8dc6c4d88a452b132ad7666d0eb1014fd7/content/browser/renderer_host/input/render_widget_host_latency_tracker_unittest.cc [modify] https://crrev.com/60addc8dc6c4d88a452b132ad7666d0eb1014fd7/content/browser/renderer_host/render_widget_host_impl.cc [modify] https://crrev.com/60addc8dc6c4d88a452b132ad7666d0eb1014fd7/content/browser/renderer_host/render_widget_host_impl.h [modify] https://crrev.com/60addc8dc6c4d88a452b132ad7666d0eb1014fd7/ui/latency/latency_info.cc [modify] https://crrev.com/60addc8dc6c4d88a452b132ad7666d0eb1014fd7/ui/latency/latency_info.h [modify] https://crrev.com/60addc8dc6c4d88a452b132ad7666d0eb1014fd7/ui/latency/mojo/latency_info_struct_traits.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/423ac49938d1eb92a4aa2d08558dafb007595285 commit 423ac49938d1eb92a4aa2d08558dafb007595285 Author: mfomitchev <mfomitchev@chromium.org> Date: Fri Apr 07 17:13:01 2017 Re-adding and fixing StructTraitsTest for events and latency. StructTraitsTest for events and latency were removed from the build by accident in https://codereview.chromium.org/2783973002. BUG= 686865 Review-Url: https://codereview.chromium.org/2802923002 Cr-Commit-Position: refs/heads/master@{#462902} [modify] https://crrev.com/423ac49938d1eb92a4aa2d08558dafb007595285/ui/events/BUILD.gn [modify] https://crrev.com/423ac49938d1eb92a4aa2d08558dafb007595285/ui/events/mojo/struct_traits_unittest.cc [modify] https://crrev.com/423ac49938d1eb92a4aa2d08558dafb007595285/ui/latency/BUILD.gn [modify] https://crrev.com/423ac49938d1eb92a4aa2d08558dafb007595285/ui/latency/mojo/struct_traits_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/426ea5dd2cf7061a7860a34d502f2c191a343a8e commit 426ea5dd2cf7061a7860a34d502f2c191a343a8e Author: mfomitchev <mfomitchev@chromium.org> Date: Fri Apr 14 03:09:51 2017 Plumbing input event latency reporting through Mus GPU. Adds support for input event latency reporting for Mus. There's two subtle differences between the Mus flow and the non-Mus flow: - DISPLAY_COMPOSITOR_RECEIVED_FRAME_COMPONENT is logged if there are ANY latency components present. - OnGpuSwapBuffersCompleted() is called if there are ANY latency components present. In non-Mus flow these are done only when there are browser-specific latency components present. In practice this shouldn't have any effect on UMA latency reporting, because currently OnGpuSwapBuffersCompleted() exits early if it doesn't see RWH-specific latency components. However it should prove useful for getting latency data for non-blink use cases in the future. Other changes: - Adds logging of DISPLAY_COMPOSITOR_RECEIVED_FRAME_COMPONENT in SurfaceFactory::SubmitCompositorFrame(). - Plumbs through LatencyInfo propagation for the in-process GPU command buffer case (i.e. for Mus GPU). - Adds LatencyTracker to DisplayOutputSurface, and calls LatencyTracker::OnGpuSwapBuffersCompleted from DisplayOutputSurface::OnGpuSwapBuffersCompleted, which ensures UMA latency data is reported in Mus. TBR=bbudge@chromium.org,danakj@chromium.org BUG= 686865 CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Review-Url: https://codereview.chromium.org/2806163004 Cr-Commit-Position: refs/heads/master@{#464664} [modify] https://crrev.com/426ea5dd2cf7061a7860a34d502f2c191a343a8e/cc/surfaces/compositor_frame_sink_support_unittest.cc [modify] https://crrev.com/426ea5dd2cf7061a7860a34d502f2c191a343a8e/cc/surfaces/surface_factory.cc [modify] https://crrev.com/426ea5dd2cf7061a7860a34d502f2c191a343a8e/cc/test/test_context_support.cc [modify] https://crrev.com/426ea5dd2cf7061a7860a34d502f2c191a343a8e/cc/test/test_context_support.h [modify] https://crrev.com/426ea5dd2cf7061a7860a34d502f2c191a343a8e/gpu/BUILD.gn [add] https://crrev.com/426ea5dd2cf7061a7860a34d502f2c191a343a8e/gpu/command_buffer/client/DEPS [modify] https://crrev.com/426ea5dd2cf7061a7860a34d502f2c191a343a8e/gpu/command_buffer/client/client_test_helper.h [modify] https://crrev.com/426ea5dd2cf7061a7860a34d502f2c191a343a8e/gpu/command_buffer/client/context_support.h [modify] https://crrev.com/426ea5dd2cf7061a7860a34d502f2c191a343a8e/gpu/command_buffer/client/gles2_implementation.cc [modify] https://crrev.com/426ea5dd2cf7061a7860a34d502f2c191a343a8e/gpu/command_buffer/client/gles2_implementation.h [modify] https://crrev.com/426ea5dd2cf7061a7860a34d502f2c191a343a8e/gpu/command_buffer/client/gpu_control.h [modify] https://crrev.com/426ea5dd2cf7061a7860a34d502f2c191a343a8e/gpu/command_buffer/tests/gl_manager.cc [modify] https://crrev.com/426ea5dd2cf7061a7860a34d502f2c191a343a8e/gpu/command_buffer/tests/gl_manager.h [modify] https://crrev.com/426ea5dd2cf7061a7860a34d502f2c191a343a8e/gpu/gles2_conform_support/egl/context.cc [modify] https://crrev.com/426ea5dd2cf7061a7860a34d502f2c191a343a8e/gpu/gles2_conform_support/egl/context.h [add] https://crrev.com/426ea5dd2cf7061a7860a34d502f2c191a343a8e/gpu/ipc/DEPS [modify] https://crrev.com/426ea5dd2cf7061a7860a34d502f2c191a343a8e/gpu/ipc/client/command_buffer_proxy_impl.cc [modify] https://crrev.com/426ea5dd2cf7061a7860a34d502f2c191a343a8e/gpu/ipc/client/command_buffer_proxy_impl.h [modify] https://crrev.com/426ea5dd2cf7061a7860a34d502f2c191a343a8e/gpu/ipc/in_process_command_buffer.cc [modify] https://crrev.com/426ea5dd2cf7061a7860a34d502f2c191a343a8e/gpu/ipc/in_process_command_buffer.h [modify] https://crrev.com/426ea5dd2cf7061a7860a34d502f2c191a343a8e/ppapi/proxy/ppapi_command_buffer_proxy.cc [modify] https://crrev.com/426ea5dd2cf7061a7860a34d502f2c191a343a8e/ppapi/proxy/ppapi_command_buffer_proxy.h [modify] https://crrev.com/426ea5dd2cf7061a7860a34d502f2c191a343a8e/services/ui/surfaces/BUILD.gn [modify] https://crrev.com/426ea5dd2cf7061a7860a34d502f2c191a343a8e/services/ui/surfaces/DEPS [modify] https://crrev.com/426ea5dd2cf7061a7860a34d502f2c191a343a8e/services/ui/surfaces/display_output_surface.cc [modify] https://crrev.com/426ea5dd2cf7061a7860a34d502f2c191a343a8e/services/ui/surfaces/display_output_surface.h [modify] https://crrev.com/426ea5dd2cf7061a7860a34d502f2c191a343a8e/ui/latency/BUILD.gn [modify] https://crrev.com/426ea5dd2cf7061a7860a34d502f2c191a343a8e/ui/latency/latency_info.h [add] https://crrev.com/426ea5dd2cf7061a7860a34d502f2c191a343a8e/ui/latency/latency_info_test_support.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/ee01a831cd8e163cec02f3ca6196dfb439e89c8f commit ee01a831cd8e163cec02f3ca6196dfb439e89c8f Author: mfomitchev <mfomitchev@chromium.org> Date: Tue Apr 18 20:55:02 2017 Adding latency_unittests to run on trybots. BUG= 686865 Review-Url: https://codereview.chromium.org/2817063002 Cr-Commit-Position: refs/heads/master@{#465364} [modify] https://crrev.com/ee01a831cd8e163cec02f3ca6196dfb439e89c8f/testing/buildbot/chromium.android.fyi.json [modify] https://crrev.com/ee01a831cd8e163cec02f3ca6196dfb439e89c8f/testing/buildbot/chromium.android.json [modify] https://crrev.com/ee01a831cd8e163cec02f3ca6196dfb439e89c8f/testing/buildbot/chromium.chromiumos.json [modify] https://crrev.com/ee01a831cd8e163cec02f3ca6196dfb439e89c8f/testing/buildbot/chromium.full.json [modify] https://crrev.com/ee01a831cd8e163cec02f3ca6196dfb439e89c8f/testing/buildbot/chromium.fyi.json [modify] https://crrev.com/ee01a831cd8e163cec02f3ca6196dfb439e89c8f/testing/buildbot/chromium.memory.fyi.json [modify] https://crrev.com/ee01a831cd8e163cec02f3ca6196dfb439e89c8f/testing/buildbot/chromium.memory.json [modify] https://crrev.com/ee01a831cd8e163cec02f3ca6196dfb439e89c8f/testing/buildbot/chromium.win.json [modify] https://crrev.com/ee01a831cd8e163cec02f3ca6196dfb439e89c8f/testing/buildbot/gn_isolate_map.pyl [modify] https://crrev.com/ee01a831cd8e163cec02f3ca6196dfb439e89c8f/tools/determinism/deterministic_build_whitelist.pyl [modify] https://crrev.com/ee01a831cd8e163cec02f3ca6196dfb439e89c8f/tools/valgrind/chrome_tests.py
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/859478de176cb190f39398aba66157315e66fd17 commit 859478de176cb190f39398aba66157315e66fd17 Author: mfomitchev <mfomitchev@chromium.org> Date: Mon May 01 18:50:38 2017 Adding source_event_type to LatencyInfo mojom This is needed for proper latency reporting in Mus and in fact also in classic Chrome now that renderers submit compositor frames over Mojo. BUG= 686865 Review-Url: https://codereview.chromium.org/2847553003 Cr-Commit-Position: refs/heads/master@{#468372} [modify] https://crrev.com/859478de176cb190f39398aba66157315e66fd17/ui/latency/mojo/latency_info.mojom [modify] https://crrev.com/859478de176cb190f39398aba66157315e66fd17/ui/latency/mojo/latency_info_struct_traits.cc [modify] https://crrev.com/859478de176cb190f39398aba66157315e66fd17/ui/latency/mojo/latency_info_struct_traits.h [modify] https://crrev.com/859478de176cb190f39398aba66157315e66fd17/ui/latency/mojo/struct_traits_unittest.cc
Comment 1 by fsam...@chromium.org
, Jan 30 2017