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

Issue 2805053004: Plumbing input event latency reporting through Mus GPU.

Created:
3 years, 8 months ago by mfomitchev
Modified:
3 years, 8 months ago
Reviewers:
sadrul, tdresser
CC:
chromium-reviews, rjkroege, darin (slow to review), qsr+mojo_chromium.org, viettrungluu+watch_chromium.org, jam, dtapuska+chromiumwatch_chromium.org, abarth-chromium, jbauman+watch_chromium.org, Aaron Boodman, darin-cc_chromium.org, yzshen+watch_chromium.org, piman+watch_chromium.org, kalyank, cc-bugs_chromium.org, danakj+watch_chromium.org
Target Ref:
refs/heads/master
Project:
chromium
Visibility:
Public.

Description

Plumbing input event latency reporting through Mus GPU. This CL mostly shuffles things around to enable input event latency reporting in Mus. However there are two functional changes: - DISPLAY_COMPOSITOR_RECEIVED_FRAME_COMPONENT (which replaces INPUT_EVENT_BROWSER_RECEIVED_RENDERER_SWAP_COMPONENT) is logged if there are ANY latency components present. - OnGpuSwapBuffersCompleted() is now called if there are ANY latency components present. This shouldn't have any effect on the browser UMA latency reporting, because currently OnGpuSwapBuffersCompleted() exits early if it doesn't see blink-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). - Factors out OnGpuSwapBuffersCompleted() from RenderWidgetHostLatencyTracker into LatencyTracker - a new class in ui/latency, which RWHLatencyTracker now extends. - Adds LatencyTracker to DisplayOutputSurface, and calls LatencyTracker::OnGpuSwapBuffersCompleted from DisplayOutputSurface::OnGpuSwapBuffersCompleted, which ensures UMA latency data is reported in Mus. 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

Patch Set 1 #

Patch Set 2 : --similarity 20 #

Patch Set 3 : Some more fixes. #

Patch Set 4 : --similarity 20 #

Patch Set 5 : NON_EXPORTED_BASE #

Unified diffs Side-by-side diffs Delta from patch set Stats (+343 lines, -809 lines) Patch
M cc/surfaces/compositor_frame_sink_support_unittest.cc View 3 chunks +27 lines, -3 lines 0 comments Download
M cc/surfaces/surface_factory.cc View 1 chunk +8 lines, -0 lines 0 comments Download
M cc/test/test_context_support.h View 1 chunk +2 lines, -0 lines 0 comments Download
M cc/test/test_context_support.cc View 1 chunk +3 lines, -0 lines 0 comments Download
M content/browser/BUILD.gn View 1 chunk +1 line, -0 lines 0 comments Download
M content/browser/compositor/gpu_browser_compositor_output_surface.cc View 1 chunk +1 line, -1 line 0 comments Download
M content/browser/renderer_host/DEPS View 1 chunk +1 line, -0 lines 0 comments Download
M content/browser/renderer_host/compositor_impl_android.cc View 1 chunk +1 line, -1 line 0 comments Download
M content/browser/renderer_host/input/render_widget_host_latency_tracker.h View 1 2 3 4 4 chunks +9 lines, -6 lines 0 comments Download
M content/browser/renderer_host/input/render_widget_host_latency_tracker.cc View 1 2 5 chunks +22 lines, -262 lines 0 comments Download
M content/browser/renderer_host/input/render_widget_host_latency_tracker_unittest.cc View 1 2 1 chunk +1 line, -2 lines 0 comments Download
M gpu/BUILD.gn View 1 chunk +1 line, -0 lines 0 comments Download
A + gpu/command_buffer/client/DEPS View 1 2 3 4 1 chunk +1 line, -8 lines 0 comments Download
M gpu/command_buffer/client/client_test_helper.h View 2 chunks +2 lines, -0 lines 0 comments Download
M gpu/command_buffer/client/context_support.h View 2 chunks +9 lines, -0 lines 0 comments Download
M gpu/command_buffer/client/gles2_implementation.h View 1 chunk +2 lines, -0 lines 0 comments Download
M gpu/command_buffer/client/gles2_implementation.cc View 1 chunk +5 lines, -0 lines 0 comments Download
M gpu/command_buffer/client/gpu_control.h View 2 chunks +9 lines, -0 lines 0 comments Download
M gpu/command_buffer/tests/gl_manager.h View 1 chunk +2 lines, -0 lines 0 comments Download
M gpu/command_buffer/tests/gl_manager.cc View 1 chunk +3 lines, -0 lines 0 comments Download
M gpu/gles2_conform_support/egl/context.h View 1 chunk +2 lines, -0 lines 0 comments Download
M gpu/gles2_conform_support/egl/context.cc View 1 chunk +3 lines, -0 lines 0 comments Download
A + gpu/ipc/DEPS View 1 2 3 4 1 chunk +1 line, -8 lines 0 comments Download
M gpu/ipc/client/command_buffer_proxy_impl.h View 2 chunks +2 lines, -1 line 0 comments Download
M gpu/ipc/client/command_buffer_proxy_impl.cc View 2 chunks +7 lines, -7 lines 0 comments Download
M gpu/ipc/in_process_command_buffer.h View 3 chunks +8 lines, -0 lines 0 comments Download
M gpu/ipc/in_process_command_buffer.cc View 3 chunks +14 lines, -1 line 0 comments Download
M gpu/ipc/service/pass_through_image_transport_surface.h View 1 chunk +3 lines, -1 line 0 comments Download
M gpu/ipc/service/pass_through_image_transport_surface.cc View 2 chunks +2 lines, -2 lines 0 comments Download
M ppapi/proxy/ppapi_command_buffer_proxy.h View 1 chunk +2 lines, -0 lines 0 comments Download
M ppapi/proxy/ppapi_command_buffer_proxy.cc View 1 chunk +3 lines, -0 lines 0 comments Download
M services/ui/surfaces/BUILD.gn View 1 2 1 chunk +1 line, -0 lines 0 comments Download
M services/ui/surfaces/DEPS View 1 2 1 chunk +1 line, -0 lines 0 comments Download
M services/ui/surfaces/display_output_surface.h View 3 chunks +4 lines, -1 line 0 comments Download
M services/ui/surfaces/display_output_surface.cc View 4 chunks +12 lines, -2 lines 0 comments Download
M ui/latency/BUILD.gn View 1 2 3 4 2 chunks +17 lines, -1 line 0 comments Download
M ui/latency/DEPS View 1 chunk +0 lines, -1 line 0 comments Download
A ui/latency/latency_histogram_macros.h View 1 chunk +45 lines, -0 lines 0 comments Download
M ui/latency/latency_info.h View 3 chunks +16 lines, -3 lines 0 comments Download
M ui/latency/latency_info.cc View 2 chunks +15 lines, -1 line 0 comments Download
A ui/latency/latency_info_test_support.cc View 1 chunk +13 lines, -0 lines 0 comments Download
A + ui/latency/latency_tracker.h View 1 2 3 4 1 chunk +22 lines, -72 lines 0 comments Download
A + ui/latency/latency_tracker.cc View 1 2 3 4 14 chunks +33 lines, -418 lines 0 comments Download
M ui/latency/mojo/latency_info.mojom View 1 chunk +3 lines, -3 lines 0 comments Download
M ui/latency/mojo/latency_info_struct_traits.cc View 2 chunks +4 lines, -4 lines 0 comments Download

Depends on Patchset:

Messages

Total messages: 23 (18 generated)
mfomitchev
tdresser@chromium.org: Please review changes in ui/latency and latency tracker changes in content/ sadrul@chromium.org: Mostly looking ...
3 years, 8 months ago (2017-04-07 22:09:06 UTC) #17
tdresser
Could we split the functional changes into a separate patch?
3 years, 8 months ago (2017-04-10 14:39:48 UTC) #20
mfomitchev
On 2017/04/10 14:39:48, tdresser wrote: > Could we split the functional changes into a separate ...
3 years, 8 months ago (2017-04-10 14:48:53 UTC) #21
mfomitchev
Following an offline discussion - will move RWHLatencyTracker split into a separate patch. Stay tuned.
3 years, 8 months ago (2017-04-10 14:59:52 UTC) #22
mfomitchev
3 years, 8 months ago (2017-04-10 19:46:23 UTC) #23
https://codereview.chromium.org/2814483002/ and
https://codereview.chromium.org/2806163004/ are the two CLs.
Sadrul - I haven't added you as the reviewer, since most non-trivial changes are
covered by Tim, but please feel free to do a drive by if you feel like it.

Powered by Google App Engine
This is Rietveld 408576698