New issue
Advanced search Search tips

Issue 811961 link

Starred by 5 users

Issue metadata

Status: Fixed
Owner:
Closed: Jun 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug

Blocked on:
issue 850561



Sign in to add a comment

Update timeToFirstPaint and timeToFirstContentfulPaint to use presentation timestamps

Project Member Reported by fsam...@chromium.org, Feb 13 2018

Issue description

timeToFirstPaint and timeToFirstContentfulPaint use a "SwapPromise" to measure paint time. This only measures time from navigation to submitting a CompositorFrame. It does not measure time to present the frame to the display. This means we cannot do meaningful comparisons of the original metric before and after Viz.

I would suggest we use Peng's presentation callback to implement a timeToFirstPresentation and timeToFirstContentfulPresentation as a better high level metric for changes in Viz.
 

Comment 1 by fsamuel@google.com, Feb 13 2018

Cc: tdres...@chromium.org
The presentation callback tells us how long it takes for a given frame to be presented on the display.
We'll effectively modify the metrics in place (though for UMA we generally append a "2").

This is a needed improvement.
Components: -Blink>Compositing

Comment 4 by sadrul@chromium.org, Mar 10 2018

Owner: briander...@chromium.org

Comment 5 by sadrul@chromium.org, Apr 27 2018

Owner: sadrul@chromium.org
Status: Started (was: Available)
Summary: Update timeToFirstPaint and timeToFirstContentfulPaint to use presentation timestamps (was: Implement timeToFirstPresentation and timeToFirstContentfulPresentation)
Making it clear that we'll update these in place.
Project Member

Comment 7 by bugdroid1@chromium.org, May 15 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e77d1b160b8ac4f3764bb5a961986ce3da3f4658

commit e77d1b160b8ac4f3764bb5a961986ce3da3f4658
Author: Sadrul Habib Chowdhury <sadrul@chromium.org>
Date: Tue May 15 00:03:49 2018

cc: Fix propagation of presentation-time request.

Make sure the request for presentation-time gets propagated correcly
from the pending-tree to the active-tree, so that if presentation-time
is requested on LayerTreeHost, it reaches all the way through to the
CompositorFrame.

BUG= 811961 

Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I4745a1b49ed5e404610c6f491e7f98d541b178be
Reviewed-on: https://chromium-review.googlesource.com/1056360
Reviewed-by: Antoine Labour <piman@chromium.org>
Commit-Queue: Sadrul Chowdhury <sadrul@chromium.org>
Cr-Commit-Position: refs/heads/master@{#558539}
[modify] https://crrev.com/e77d1b160b8ac4f3764bb5a961986ce3da3f4658/cc/trees/layer_tree_host_unittest.cc
[modify] https://crrev.com/e77d1b160b8ac4f3764bb5a961986ce3da3f4658/cc/trees/layer_tree_impl.cc

Project Member

Comment 8 by bugdroid1@chromium.org, May 15 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5a0c41f5f60be32ed2ca723060bc088af531c89b

commit 5a0c41f5f60be32ed2ca723060bc088af531c89b
Author: Sadrul Habib Chowdhury <sadrul@chromium.org>
Date: Tue May 15 00:50:43 2018

ozone-headless: Fix presentation callbacks.

The presentation callbacks needs to happen after swap-buffer is
complete, not in the middle of it. So, run the presentation-callback
in the next cycle in ozone-headless. Also add some debug-validation
that the presentation callback does not run before swap-buffer ends.

BUG= 811961 

Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: I97197c9cb383b0b7cac0be9d6a3085f20180cd91
Reviewed-on: https://chromium-review.googlesource.com/1055927
Reviewed-by: Peng Huang <penghuang@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Commit-Queue: Sadrul Chowdhury <sadrul@chromium.org>
Cr-Commit-Position: refs/heads/master@{#558557}
[modify] https://crrev.com/5a0c41f5f60be32ed2ca723060bc088af531c89b/gpu/ipc/service/pass_through_image_transport_surface.cc
[modify] https://crrev.com/5a0c41f5f60be32ed2ca723060bc088af531c89b/gpu/ipc/service/pass_through_image_transport_surface.h
[modify] https://crrev.com/5a0c41f5f60be32ed2ca723060bc088af531c89b/ui/ozone/platform/headless/gl_surface_osmesa_png.cc

Project Member

Comment 9 by bugdroid1@chromium.org, May 15 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8316a2e9d1193956966bc9c61bcda265160da7db

commit 8316a2e9d1193956966bc9c61bcda265160da7db
Author: Sadrul Habib Chowdhury <sadrul@chromium.org>
Date: Tue May 15 02:07:08 2018

paint time: Change the callback to take base::TimeTicks as input.

Instead of converting base::TimeTicks into double, and then converting
it back to a base::TimeTicks, just send the base::TimeTicks directly to
the paint-time reporting callbacks.

BUG= 811961 

Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: Ia10d897acafcf382406ba5e48f2cf46f7669c20a
Reviewed-on: https://chromium-review.googlesource.com/1056469
Reviewed-by: Chris Harrelson <chrishtr@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Commit-Queue: Sadrul Chowdhury <sadrul@chromium.org>
Cr-Commit-Position: refs/heads/master@{#558584}
[modify] https://crrev.com/8316a2e9d1193956966bc9c61bcda265160da7db/content/renderer/gpu/render_widget_compositor.cc
[modify] https://crrev.com/8316a2e9d1193956966bc9c61bcda265160da7db/content/renderer/gpu/render_widget_compositor.h
[modify] https://crrev.com/8316a2e9d1193956966bc9c61bcda265160da7db/third_party/blink/public/platform/web_layer_tree_view.h
[modify] https://crrev.com/8316a2e9d1193956966bc9c61bcda265160da7db/third_party/blink/renderer/core/paint/first_meaningful_paint_detector.cc
[modify] https://crrev.com/8316a2e9d1193956966bc9c61bcda265160da7db/third_party/blink/renderer/core/paint/first_meaningful_paint_detector.h
[modify] https://crrev.com/8316a2e9d1193956966bc9c61bcda265160da7db/third_party/blink/renderer/core/paint/first_meaningful_paint_detector_test.cc
[modify] https://crrev.com/8316a2e9d1193956966bc9c61bcda265160da7db/third_party/blink/renderer/core/paint/paint_timing.cc
[modify] https://crrev.com/8316a2e9d1193956966bc9c61bcda265160da7db/third_party/blink/renderer/core/paint/paint_timing.h

 Issue 807674  has been merged into this issue.
Project Member

Comment 11 by bugdroid1@chromium.org, May 16 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f8ccad1ea0039d982ca121ab24ee13a89ebee68d

commit f8ccad1ea0039d982ca121ab24ee13a89ebee68d
Author: Sadrul Habib Chowdhury <sadrul@chromium.org>
Date: Wed May 16 16:56:23 2018

mac: Fix presentation-callbacks.

ImageTransportSurfaceOverlayMac needs to notify its delegate when the
presentation-callback is run, because the delegate (implemented by
GLES2CommandBufferStub in regular chrome) is what ultimately sends the
IPC for presentation-callback back to the gpu/viz-host.

BUG= 811961 ,  776877 

Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: Ic0538eae3dbe2bfbd92f1ffdc1a4d5bdf4b248a0
Reviewed-on: https://chromium-review.googlesource.com/1060741
Reviewed-by: Antoine Labour <piman@chromium.org>
Commit-Queue: Sadrul Chowdhury <sadrul@chromium.org>
Cr-Commit-Position: refs/heads/master@{#559143}
[modify] https://crrev.com/f8ccad1ea0039d982ca121ab24ee13a89ebee68d/gpu/ipc/service/image_transport_surface_overlay_mac.h
[modify] https://crrev.com/f8ccad1ea0039d982ca121ab24ee13a89ebee68d/gpu/ipc/service/image_transport_surface_overlay_mac.mm

Comment 12 by maxlg@chromium.org, May 17 2018

Looks like Issue 747484 duplicates with this?
Not quite.

We have the:
- Renderer timestamps
- Swap timestamps
- Presentation timestamps

This bug is about using presentation timestamps. We may want to report the delta between swap and presentation time, if possible, to get a sense of how much this is changing the results.

We don't need the renderer timestamps though.
That bug is about removing the renderer timestamps.


Project Member

Comment 14 by bugdroid1@chromium.org, May 18 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a338d55cb0c32f314398c555e7378113eff9e6ce

commit a338d55cb0c32f314398c555e7378113eff9e6ce
Author: Sadrul Habib Chowdhury <sadrul@chromium.org>
Date: Fri May 18 19:22:32 2018

paint time: Deprecate PaintTiming.SwapTimeDelta.

With the swap-timestamp coming from the gpu process (through
presentation callback), it is no longer comparable to the local paint
time (due to various issues like virtual-times in the renderer, or
timestamps across processes on Windows not being guaranteed to be
monotonically non-decreasing). So stop collecting the metric, and mark
the metric as deprecated.

BUG= 811961 

Change-Id: I1d42f548fc53d702301d0dd7af5905afcc4c2182
Reviewed-on: https://chromium-review.googlesource.com/1063323
Reviewed-by: Timothy Dresser <tdresser@chromium.org>
Reviewed-by: Chris Harrelson <chrishtr@chromium.org>
Reviewed-by: Robert Kaplow <rkaplow@chromium.org>
Commit-Queue: Sadrul Chowdhury <sadrul@chromium.org>
Cr-Commit-Position: refs/heads/master@{#559989}
[modify] https://crrev.com/a338d55cb0c32f314398c555e7378113eff9e6ce/third_party/blink/renderer/core/paint/paint_timing.cc
[modify] https://crrev.com/a338d55cb0c32f314398c555e7378113eff9e6ce/third_party/blink/renderer/core/paint/paint_timing.h
[modify] https://crrev.com/a338d55cb0c32f314398c555e7378113eff9e6ce/tools/metrics/histograms/histograms.xml

Project Member

Comment 15 by bugdroid1@chromium.org, May 19 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f74aa5cb80e4c3f6c2e040b56962aa37fd6cc0f6

commit f74aa5cb80e4c3f6c2e040b56962aa37fd6cc0f6
Author: Sadrul Habib Chowdhury <sadrul@chromium.org>
Date: Sat May 19 01:08:03 2018

gpu: Rewire how presentation-callback is run.

Make the plumbing for presentation-callbacks similar to swap-completion
callbacks: GLES2Implementation (instead of CommandBufferProxyImpl) is
now responsible for running the presentation callbacks. This first step
makes it easier to enforce that the presentation-callback in the display
compositor is run only if a particular frame did request a presentation
feedback (in a follow up CL).

BUG= 811961 ,  776877 

Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: Ifd78c75c136689ab80f1e8f75b339dbf2b5a5f31
Reviewed-on: https://chromium-review.googlesource.com/1065493
Reviewed-by: Antoine Labour <piman@chromium.org>
Reviewed-by: Peng Huang <penghuang@chromium.org>
Commit-Queue: Sadrul Chowdhury <sadrul@chromium.org>
Cr-Commit-Position: refs/heads/master@{#560128}
[modify] https://crrev.com/f74aa5cb80e4c3f6c2e040b56962aa37fd6cc0f6/components/viz/service/display_embedder/gl_output_surface.cc
[modify] https://crrev.com/f74aa5cb80e4c3f6c2e040b56962aa37fd6cc0f6/components/viz/service/display_embedder/viz_process_context_provider.cc
[modify] https://crrev.com/f74aa5cb80e4c3f6c2e040b56962aa37fd6cc0f6/components/viz/service/display_embedder/viz_process_context_provider.h
[modify] https://crrev.com/f74aa5cb80e4c3f6c2e040b56962aa37fd6cc0f6/components/viz/test/test_context_support.cc
[modify] https://crrev.com/f74aa5cb80e4c3f6c2e040b56962aa37fd6cc0f6/components/viz/test/test_context_support.h
[modify] https://crrev.com/f74aa5cb80e4c3f6c2e040b56962aa37fd6cc0f6/content/browser/compositor/gpu_browser_compositor_output_surface.cc
[modify] https://crrev.com/f74aa5cb80e4c3f6c2e040b56962aa37fd6cc0f6/content/browser/renderer_host/compositor_impl_android.cc
[modify] https://crrev.com/f74aa5cb80e4c3f6c2e040b56962aa37fd6cc0f6/content/renderer/pepper/pepper_video_encoder_host.h
[modify] https://crrev.com/f74aa5cb80e4c3f6c2e040b56962aa37fd6cc0f6/content/renderer/pepper/ppb_graphics_3d_impl.h
[modify] https://crrev.com/f74aa5cb80e4c3f6c2e040b56962aa37fd6cc0f6/gpu/command_buffer/client/context_support.h
[modify] https://crrev.com/f74aa5cb80e4c3f6c2e040b56962aa37fd6cc0f6/gpu/command_buffer/client/gles2_implementation.cc
[modify] https://crrev.com/f74aa5cb80e4c3f6c2e040b56962aa37fd6cc0f6/gpu/command_buffer/client/gles2_implementation.h
[modify] https://crrev.com/f74aa5cb80e4c3f6c2e040b56962aa37fd6cc0f6/gpu/command_buffer/client/gpu_control_client.h
[modify] https://crrev.com/f74aa5cb80e4c3f6c2e040b56962aa37fd6cc0f6/gpu/command_buffer/client/raster_implementation.cc
[modify] https://crrev.com/f74aa5cb80e4c3f6c2e040b56962aa37fd6cc0f6/gpu/command_buffer/client/raster_implementation.h
[modify] https://crrev.com/f74aa5cb80e4c3f6c2e040b56962aa37fd6cc0f6/gpu/command_buffer/client/raster_implementation_gles_unittest.cc
[modify] https://crrev.com/f74aa5cb80e4c3f6c2e040b56962aa37fd6cc0f6/gpu/ipc/client/command_buffer_proxy_impl.cc
[modify] https://crrev.com/f74aa5cb80e4c3f6c2e040b56962aa37fd6cc0f6/gpu/ipc/client/command_buffer_proxy_impl.h
[modify] https://crrev.com/f74aa5cb80e4c3f6c2e040b56962aa37fd6cc0f6/gpu/ipc/gl_in_process_context.cc
[modify] https://crrev.com/f74aa5cb80e4c3f6c2e040b56962aa37fd6cc0f6/gpu/ipc/gl_in_process_context.h
[modify] https://crrev.com/f74aa5cb80e4c3f6c2e040b56962aa37fd6cc0f6/gpu/ipc/in_process_command_buffer.cc
[modify] https://crrev.com/f74aa5cb80e4c3f6c2e040b56962aa37fd6cc0f6/gpu/ipc/in_process_command_buffer.h
[modify] https://crrev.com/f74aa5cb80e4c3f6c2e040b56962aa37fd6cc0f6/ui/compositor/test/in_process_context_factory.cc

Project Member

Comment 16 by bugdroid1@chromium.org, May 19 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3a04fb6aa3ce1d7d467fd721bf3f4d30b455f96a

commit 3a04fb6aa3ce1d7d467fd721bf3f4d30b455f96a
Author: Sadrul Habib Chowdhury <sadrul@chromium.org>
Date: Sat May 19 01:11:41 2018

viz: Change how presentation-callbacks are run.

Notable changes:
. Update the various viz::OutputSurface implementations to notify the
  client about presentation only if it requested presentation feedback.
. In viz::Display, we do not always receive a SwapBuffersAck between
  two consecutive DrawAndSwap()s. As a result, if we associate the
  presentation callbacks after receiving SwapBuffersAck, then it is
  possible for the presentation-callbacks to get attached to the wrong
  swaps. This change fixes that, so that the callbacks are run after
  each receipt of PresentationFeedback.

BUG= 811961 ,  776877 

Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I7fe723b6a66ab4085488573e30c999130f5d7666
Reviewed-on: https://chromium-review.googlesource.com/1064552
Reviewed-by: Peng Huang <penghuang@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Commit-Queue: Sadrul Chowdhury <sadrul@chromium.org>
Cr-Commit-Position: refs/heads/master@{#560130}
[modify] https://crrev.com/3a04fb6aa3ce1d7d467fd721bf3f4d30b455f96a/cc/test/pixel_test_output_surface.cc
[modify] https://crrev.com/3a04fb6aa3ce1d7d467fd721bf3f4d30b455f96a/cc/test/pixel_test_output_surface.h
[modify] https://crrev.com/3a04fb6aa3ce1d7d467fd721bf3f4d30b455f96a/components/viz/service/display/display.cc
[modify] https://crrev.com/3a04fb6aa3ce1d7d467fd721bf3f4d30b455f96a/components/viz/service/display/display.h
[modify] https://crrev.com/3a04fb6aa3ce1d7d467fd721bf3f4d30b455f96a/components/viz/service/display_embedder/software_output_surface.cc
[modify] https://crrev.com/3a04fb6aa3ce1d7d467fd721bf3f4d30b455f96a/components/viz/service/display_embedder/software_output_surface.h
[modify] https://crrev.com/3a04fb6aa3ce1d7d467fd721bf3f4d30b455f96a/components/viz/test/fake_output_surface.cc
[modify] https://crrev.com/3a04fb6aa3ce1d7d467fd721bf3f4d30b455f96a/components/viz/test/fake_output_surface.h
[modify] https://crrev.com/3a04fb6aa3ce1d7d467fd721bf3f4d30b455f96a/content/browser/compositor/offscreen_browser_compositor_output_surface.cc
[modify] https://crrev.com/3a04fb6aa3ce1d7d467fd721bf3f4d30b455f96a/content/browser/compositor/offscreen_browser_compositor_output_surface.h
[modify] https://crrev.com/3a04fb6aa3ce1d7d467fd721bf3f4d30b455f96a/content/browser/compositor/software_browser_compositor_output_surface.cc
[modify] https://crrev.com/3a04fb6aa3ce1d7d467fd721bf3f4d30b455f96a/content/browser/compositor/software_browser_compositor_output_surface.h
[modify] https://crrev.com/3a04fb6aa3ce1d7d467fd721bf3f4d30b455f96a/ui/compositor/test/in_process_context_factory.cc

Project Member

Comment 17 by bugdroid1@chromium.org, May 19 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4191b7e7b9289dca30154ce1f7c1cb2270933095

commit 4191b7e7b9289dca30154ce1f7c1cb2270933095
Author: Sadrul Habib Chowdhury <sadrul@chromium.org>
Date: Sat May 19 03:14:07 2018

gpu/viz: Remove plumbing swap_id to client code.

The client code no longer needs to care about the swap-ids for
swap-buffer-ack or presentation callbacks. So remove the associated
plumbing.

TBR=boliu@chromium.org for trivial change in android_webview/

Bug:  811961 ,  776877 
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I7e6431d1a39229e5f139ab0e9c98ab0b734d223e
Reviewed-on: https://chromium-review.googlesource.com/1065465
Commit-Queue: Sadrul Chowdhury <sadrul@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#560151}
[modify] https://crrev.com/4191b7e7b9289dca30154ce1f7c1cb2270933095/android_webview/browser/surfaces_instance.cc
[modify] https://crrev.com/4191b7e7b9289dca30154ce1f7c1cb2270933095/android_webview/browser/surfaces_instance.h
[modify] https://crrev.com/4191b7e7b9289dca30154ce1f7c1cb2270933095/cc/test/fake_output_surface_client.cc
[modify] https://crrev.com/4191b7e7b9289dca30154ce1f7c1cb2270933095/cc/test/fake_output_surface_client.h
[modify] https://crrev.com/4191b7e7b9289dca30154ce1f7c1cb2270933095/cc/test/pixel_test_output_surface.cc
[modify] https://crrev.com/4191b7e7b9289dca30154ce1f7c1cb2270933095/cc/test/pixel_test_output_surface.h
[modify] https://crrev.com/4191b7e7b9289dca30154ce1f7c1cb2270933095/components/viz/service/display/display.cc
[modify] https://crrev.com/4191b7e7b9289dca30154ce1f7c1cb2270933095/components/viz/service/display/display.h
[modify] https://crrev.com/4191b7e7b9289dca30154ce1f7c1cb2270933095/components/viz/service/display/output_surface_client.h
[modify] https://crrev.com/4191b7e7b9289dca30154ce1f7c1cb2270933095/components/viz/service/display_embedder/gl_output_surface.cc
[modify] https://crrev.com/4191b7e7b9289dca30154ce1f7c1cb2270933095/components/viz/service/display_embedder/gl_output_surface.h
[modify] https://crrev.com/4191b7e7b9289dca30154ce1f7c1cb2270933095/components/viz/service/display_embedder/gl_output_surface_buffer_queue.cc
[modify] https://crrev.com/4191b7e7b9289dca30154ce1f7c1cb2270933095/components/viz/service/display_embedder/gl_output_surface_buffer_queue.h
[modify] https://crrev.com/4191b7e7b9289dca30154ce1f7c1cb2270933095/components/viz/service/display_embedder/skia_output_surface_impl.cc
[modify] https://crrev.com/4191b7e7b9289dca30154ce1f7c1cb2270933095/components/viz/service/display_embedder/skia_output_surface_impl.h
[modify] https://crrev.com/4191b7e7b9289dca30154ce1f7c1cb2270933095/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc
[modify] https://crrev.com/4191b7e7b9289dca30154ce1f7c1cb2270933095/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.h
[modify] https://crrev.com/4191b7e7b9289dca30154ce1f7c1cb2270933095/components/viz/service/display_embedder/software_output_surface.cc
[modify] https://crrev.com/4191b7e7b9289dca30154ce1f7c1cb2270933095/components/viz/service/display_embedder/software_output_surface.h
[modify] https://crrev.com/4191b7e7b9289dca30154ce1f7c1cb2270933095/components/viz/test/fake_output_surface.cc
[modify] https://crrev.com/4191b7e7b9289dca30154ce1f7c1cb2270933095/components/viz/test/fake_output_surface.h
[modify] https://crrev.com/4191b7e7b9289dca30154ce1f7c1cb2270933095/content/browser/compositor/gpu_browser_compositor_output_surface.cc
[modify] https://crrev.com/4191b7e7b9289dca30154ce1f7c1cb2270933095/content/browser/compositor/gpu_browser_compositor_output_surface.h
[modify] https://crrev.com/4191b7e7b9289dca30154ce1f7c1cb2270933095/content/browser/compositor/offscreen_browser_compositor_output_surface.cc
[modify] https://crrev.com/4191b7e7b9289dca30154ce1f7c1cb2270933095/content/browser/compositor/offscreen_browser_compositor_output_surface.h
[modify] https://crrev.com/4191b7e7b9289dca30154ce1f7c1cb2270933095/content/browser/compositor/software_browser_compositor_output_surface.cc
[modify] https://crrev.com/4191b7e7b9289dca30154ce1f7c1cb2270933095/content/browser/compositor/software_browser_compositor_output_surface.h
[modify] https://crrev.com/4191b7e7b9289dca30154ce1f7c1cb2270933095/content/browser/compositor/vulkan_browser_compositor_output_surface.cc
[modify] https://crrev.com/4191b7e7b9289dca30154ce1f7c1cb2270933095/content/browser/compositor/vulkan_browser_compositor_output_surface.h
[modify] https://crrev.com/4191b7e7b9289dca30154ce1f7c1cb2270933095/content/browser/renderer_host/compositor_impl_android.cc
[modify] https://crrev.com/4191b7e7b9289dca30154ce1f7c1cb2270933095/gpu/command_buffer/client/context_support.h
[modify] https://crrev.com/4191b7e7b9289dca30154ce1f7c1cb2270933095/gpu/command_buffer/client/gles2_implementation.cc
[modify] https://crrev.com/4191b7e7b9289dca30154ce1f7c1cb2270933095/ui/compositor/test/in_process_context_factory.cc

Project Member

Comment 18 by bugdroid1@chromium.org, May 25 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4c1309c08f182ef95294d6c45f7e0d89503d218a

commit 4c1309c08f182ef95294d6c45f7e0d89503d218a
Author: Sadrul Habib Chowdhury <sadrul@chromium.org>
Date: Fri May 25 20:25:22 2018

viz: Use a single frame-token where needed.

Instead of having a 'frame token' for communicating with the embedder,
and a separate 'presentation token' for getting presentation token, use
a single 'frame token', with explicit 'send_frame_token_to_embedder' and
'request_presentation_feedback' flags.

BUG= 811961 
TBR=reveman@ for trivial changes in fast_ink and exo

Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I40765f62d27908f3f999487333113bbb096ae7cc
Reviewed-on: https://chromium-review.googlesource.com/1072702
Commit-Queue: Sadrul Chowdhury <sadrul@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Reviewed-by: Fady Samuel <fsamuel@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Jonathan Ross <jonross@chromium.org>
Cr-Commit-Position: refs/heads/master@{#561994}
[modify] https://crrev.com/4c1309c08f182ef95294d6c45f7e0d89503d218a/ash/components/fast_ink/fast_ink_view.cc
[modify] https://crrev.com/4c1309c08f182ef95294d6c45f7e0d89503d218a/cc/trees/layer_tree_host_impl.cc
[modify] https://crrev.com/4c1309c08f182ef95294d6c45f7e0d89503d218a/cc/trees/layer_tree_host_impl.h
[modify] https://crrev.com/4c1309c08f182ef95294d6c45f7e0d89503d218a/cc/trees/layer_tree_host_impl_unittest.cc
[modify] https://crrev.com/4c1309c08f182ef95294d6c45f7e0d89503d218a/cc/trees/layer_tree_host_unittest.cc
[modify] https://crrev.com/4c1309c08f182ef95294d6c45f7e0d89503d218a/cc/trees/render_frame_metadata_observer.h
[modify] https://crrev.com/4c1309c08f182ef95294d6c45f7e0d89503d218a/components/exo/surface_tree_host.cc
[modify] https://crrev.com/4c1309c08f182ef95294d6c45f7e0d89503d218a/components/viz/common/quads/compositor_frame_metadata.h
[modify] https://crrev.com/4c1309c08f182ef95294d6c45f7e0d89503d218a/components/viz/host/host_frame_sink_manager_unittest.cc
[modify] https://crrev.com/4c1309c08f182ef95294d6c45f7e0d89503d218a/components/viz/service/display/display_unittest.cc
[modify] https://crrev.com/4c1309c08f182ef95294d6c45f7e0d89503d218a/components/viz/service/frame_sinks/compositor_frame_sink_support.cc
[modify] https://crrev.com/4c1309c08f182ef95294d6c45f7e0d89503d218a/components/viz/service/surfaces/surface_unittest.cc
[modify] https://crrev.com/4c1309c08f182ef95294d6c45f7e0d89503d218a/components/viz/test/compositor_frame_helpers.cc
[modify] https://crrev.com/4c1309c08f182ef95294d6c45f7e0d89503d218a/components/viz/test/compositor_frame_helpers.h
[modify] https://crrev.com/4c1309c08f182ef95294d6c45f7e0d89503d218a/content/browser/renderer_host/render_widget_host_unittest.cc
[modify] https://crrev.com/4c1309c08f182ef95294d6c45f7e0d89503d218a/content/renderer/gpu/queue_message_swap_promise.cc
[modify] https://crrev.com/4c1309c08f182ef95294d6c45f7e0d89503d218a/content/renderer/render_frame_metadata_observer_impl.cc
[modify] https://crrev.com/4c1309c08f182ef95294d6c45f7e0d89503d218a/content/renderer/render_frame_metadata_observer_impl.h
[modify] https://crrev.com/4c1309c08f182ef95294d6c45f7e0d89503d218a/content/test/test_render_view_host.cc
[modify] https://crrev.com/4c1309c08f182ef95294d6c45f7e0d89503d218a/services/viz/public/cpp/compositing/compositor_frame_metadata_struct_traits.cc
[modify] https://crrev.com/4c1309c08f182ef95294d6c45f7e0d89503d218a/services/viz/public/cpp/compositing/compositor_frame_metadata_struct_traits.h
[modify] https://crrev.com/4c1309c08f182ef95294d6c45f7e0d89503d218a/services/viz/public/interfaces/compositing/compositor_frame_metadata.mojom

Project Member

Comment 19 by bugdroid1@chromium.org, May 25 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2485621e872043124778a035676742b8b00a71c0

commit 2485621e872043124778a035676742b8b00a71c0
Author: Sadrul Habib Chowdhury <sadrul@chromium.org>
Date: Fri May 25 21:38:43 2018

cc: FrameTokenAllocator no longer needed.

Remove FrameTokenAllocator since it is no longer needed or used.

BUG= 811961 

Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I760a1dcaf220dd13d8b4ac448de911ec46acf593
Reviewed-on: https://chromium-review.googlesource.com/1073081
Reviewed-by: Avi Drissman <avi@chromium.org>
Reviewed-by: Fady Samuel <fsamuel@chromium.org>
Reviewed-by: Jonathan Ross <jonross@chromium.org>
Commit-Queue: Sadrul Chowdhury <sadrul@chromium.org>
Cr-Commit-Position: refs/heads/master@{#562020}
[modify] https://crrev.com/2485621e872043124778a035676742b8b00a71c0/cc/BUILD.gn
[delete] https://crrev.com/4a160f0705332ca10dd0baa009e9880c437f9ca4/cc/trees/frame_token_allocator.cc
[delete] https://crrev.com/4a160f0705332ca10dd0baa009e9880c437f9ca4/cc/trees/frame_token_allocator.h
[modify] https://crrev.com/2485621e872043124778a035676742b8b00a71c0/cc/trees/latency_info_swap_promise.cc
[modify] https://crrev.com/2485621e872043124778a035676742b8b00a71c0/cc/trees/latency_info_swap_promise.h
[modify] https://crrev.com/2485621e872043124778a035676742b8b00a71c0/cc/trees/layer_tree_host_impl.cc
[modify] https://crrev.com/2485621e872043124778a035676742b8b00a71c0/cc/trees/layer_tree_host_impl.h
[modify] https://crrev.com/2485621e872043124778a035676742b8b00a71c0/cc/trees/layer_tree_host_impl_unittest.cc
[modify] https://crrev.com/2485621e872043124778a035676742b8b00a71c0/cc/trees/layer_tree_host_unittest.cc
[modify] https://crrev.com/2485621e872043124778a035676742b8b00a71c0/cc/trees/layer_tree_impl.cc
[modify] https://crrev.com/2485621e872043124778a035676742b8b00a71c0/cc/trees/layer_tree_impl.h
[modify] https://crrev.com/2485621e872043124778a035676742b8b00a71c0/cc/trees/layer_tree_impl_unittest.cc
[modify] https://crrev.com/2485621e872043124778a035676742b8b00a71c0/cc/trees/render_frame_metadata_observer.h
[modify] https://crrev.com/2485621e872043124778a035676742b8b00a71c0/cc/trees/swap_promise.h
[modify] https://crrev.com/2485621e872043124778a035676742b8b00a71c0/cc/trees/swap_promise_manager_unittest.cc
[modify] https://crrev.com/2485621e872043124778a035676742b8b00a71c0/content/renderer/gpu/queue_message_swap_promise.cc
[modify] https://crrev.com/2485621e872043124778a035676742b8b00a71c0/content/renderer/gpu/queue_message_swap_promise.h
[modify] https://crrev.com/2485621e872043124778a035676742b8b00a71c0/content/renderer/gpu/queue_message_swap_promise_unittest.cc
[modify] https://crrev.com/2485621e872043124778a035676742b8b00a71c0/content/renderer/gpu/render_widget_compositor.cc
[modify] https://crrev.com/2485621e872043124778a035676742b8b00a71c0/content/renderer/render_frame_metadata_observer_impl.cc
[modify] https://crrev.com/2485621e872043124778a035676742b8b00a71c0/content/renderer/render_frame_metadata_observer_impl.h
[modify] https://crrev.com/2485621e872043124778a035676742b8b00a71c0/content/renderer/render_view_impl.cc
[modify] https://crrev.com/2485621e872043124778a035676742b8b00a71c0/content/test/layouttest_support.cc

Project Member

Comment 20 by bugdroid1@chromium.org, Jun 2 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3d4df2e836b83ab1fdf4e678edf558eb3f05bbc1

commit 3d4df2e836b83ab1fdf4e678edf558eb3f05bbc1
Author: Sadrul Habib Chowdhury <sadrul@chromium.org>
Date: Sat Jun 02 05:18:00 2018

cc: Use frame-number in the compositor for presentation-callbacks.

Use the frame-number from compositor thread, instead of main-thread, to
register the presentation-time callbacks. This makes it unnecessary to
maintain the mapping between the frame-numbers in compositor-thread and
main-thread.

BUG= 811961 

Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I59bf8619cdab008c4597c083dd71c17f3ba9ca3b
Reviewed-on: https://chromium-review.googlesource.com/1076384
Commit-Queue: Sadrul Chowdhury <sadrul@chromium.org>
Reviewed-by: Brian Anderson <brianderson@chromium.org>
Cr-Commit-Position: refs/heads/master@{#563931}
[modify] https://crrev.com/3d4df2e836b83ab1fdf4e678edf558eb3f05bbc1/cc/test/fake_layer_tree_host_impl_client.h
[modify] https://crrev.com/3d4df2e836b83ab1fdf4e678edf558eb3f05bbc1/cc/trees/layer_tree_host.cc
[modify] https://crrev.com/3d4df2e836b83ab1fdf4e678edf558eb3f05bbc1/cc/trees/layer_tree_host.h
[modify] https://crrev.com/3d4df2e836b83ab1fdf4e678edf558eb3f05bbc1/cc/trees/layer_tree_host_impl.cc
[modify] https://crrev.com/3d4df2e836b83ab1fdf4e678edf558eb3f05bbc1/cc/trees/layer_tree_host_impl.h
[modify] https://crrev.com/3d4df2e836b83ab1fdf4e678edf558eb3f05bbc1/cc/trees/layer_tree_host_impl_unittest.cc
[modify] https://crrev.com/3d4df2e836b83ab1fdf4e678edf558eb3f05bbc1/cc/trees/layer_tree_host_unittest_animation.cc
[modify] https://crrev.com/3d4df2e836b83ab1fdf4e678edf558eb3f05bbc1/cc/trees/layer_tree_impl.cc
[modify] https://crrev.com/3d4df2e836b83ab1fdf4e678edf558eb3f05bbc1/cc/trees/layer_tree_impl.h
[modify] https://crrev.com/3d4df2e836b83ab1fdf4e678edf558eb3f05bbc1/cc/trees/proxy_impl.cc
[modify] https://crrev.com/3d4df2e836b83ab1fdf4e678edf558eb3f05bbc1/cc/trees/proxy_impl.h
[modify] https://crrev.com/3d4df2e836b83ab1fdf4e678edf558eb3f05bbc1/cc/trees/proxy_main.cc
[modify] https://crrev.com/3d4df2e836b83ab1fdf4e678edf558eb3f05bbc1/cc/trees/proxy_main.h
[modify] https://crrev.com/3d4df2e836b83ab1fdf4e678edf558eb3f05bbc1/cc/trees/single_thread_proxy.cc
[modify] https://crrev.com/3d4df2e836b83ab1fdf4e678edf558eb3f05bbc1/cc/trees/single_thread_proxy.h
[modify] https://crrev.com/3d4df2e836b83ab1fdf4e678edf558eb3f05bbc1/components/viz/test/fake_output_surface.cc

Project Member

Comment 21 by bugdroid1@chromium.org, Jun 5 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/abae9cc8599530acea672e7abcb8591b327278ac

commit abae9cc8599530acea672e7abcb8591b327278ac
Author: Sadrul Habib Chowdhury <sadrul@chromium.org>
Date: Tue Jun 05 00:05:28 2018

cc: Allow presentation-feedback request during swap.

Allow requesting presentation-feedback during swap time, so that a
SwapPromise can make the request for the presentation time. This is
useful for cases for paint-timing, where the client may want to execute
some code after presentation, but it also wants to execute the code if
swap did not happen.

BUG= 811961 
TBR=haraken@ for trivial changes in content/renderer/gpu and blink.

Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I03a9d72b8d022926db94f143ff9ec774618bdfd4
Reviewed-on: https://chromium-review.googlesource.com/1076324
Commit-Queue: Sadrul Chowdhury <sadrul@chromium.org>
Reviewed-by: Brian Anderson <brianderson@chromium.org>
Cr-Commit-Position: refs/heads/master@{#564304}
[modify] https://crrev.com/abae9cc8599530acea672e7abcb8591b327278ac/cc/test/layer_tree_test.cc
[modify] https://crrev.com/abae9cc8599530acea672e7abcb8591b327278ac/cc/test/pixel_test_output_surface.cc
[modify] https://crrev.com/abae9cc8599530acea672e7abcb8591b327278ac/cc/test/stub_layer_tree_host_client.h
[modify] https://crrev.com/abae9cc8599530acea672e7abcb8591b327278ac/cc/test/test_hooks.h
[modify] https://crrev.com/abae9cc8599530acea672e7abcb8591b327278ac/cc/trees/layer_tree_host.cc
[modify] https://crrev.com/abae9cc8599530acea672e7abcb8591b327278ac/cc/trees/layer_tree_host_client.h
[modify] https://crrev.com/abae9cc8599530acea672e7abcb8591b327278ac/cc/trees/layer_tree_host_unittest.cc
[modify] https://crrev.com/abae9cc8599530acea672e7abcb8591b327278ac/cc/trees/swap_promise.h
[modify] https://crrev.com/abae9cc8599530acea672e7abcb8591b327278ac/components/viz/test/fake_output_surface.cc
[modify] https://crrev.com/abae9cc8599530acea672e7abcb8591b327278ac/content/browser/renderer_host/compositor_impl_android.h
[modify] https://crrev.com/abae9cc8599530acea672e7abcb8591b327278ac/content/renderer/gpu/render_widget_compositor.h
[modify] https://crrev.com/abae9cc8599530acea672e7abcb8591b327278ac/third_party/blink/renderer/platform/testing/web_layer_tree_view_impl_for_testing.h
[modify] https://crrev.com/abae9cc8599530acea672e7abcb8591b327278ac/ui/compositor/compositor.h

Blockedon: 850561
Project Member

Comment 23 by bugdroid1@chromium.org, Jun 12 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8a7d03cd902f4db2ba87bedaff3553b67aba5369

commit 8a7d03cd902f4db2ba87bedaff3553b67aba5369
Author: Sadrul Habib Chowdhury <sadrul@chromium.org>
Date: Tue Jun 12 16:41:47 2018

presentation feedback: Add a flag for failure.

Instead of having a separate API for notifying the client of failure
to present a frame, use the common DidPresentCompositorFrame() api,
but with a flag noting that the frame-presentation failed. The users
of the presentation feedback typically do [want to] run the
presentation-callbacks even on failure (e.g. exo already does this,
and it is desirable to do this for paint-timings too (see discussions
in crrev.com/c/1050693).

BUG= 811961 
TBR=boliu@ for android_webview/
TBR=reveman@ for ash/components/fast_ink and components/exo
TBR=vollick@ for third_party/blink/renderer/platform/graphics


Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel;master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I5bb63e27936e3727079e6cc8c829ead7b6808efb
Reviewed-on: https://chromium-review.googlesource.com/1096397
Commit-Queue: Sadrul Chowdhury <sadrul@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Cr-Commit-Position: refs/heads/master@{#566457}
[modify] https://crrev.com/8a7d03cd902f4db2ba87bedaff3553b67aba5369/android_webview/browser/hardware_renderer.cc
[modify] https://crrev.com/8a7d03cd902f4db2ba87bedaff3553b67aba5369/android_webview/browser/hardware_renderer.h
[modify] https://crrev.com/8a7d03cd902f4db2ba87bedaff3553b67aba5369/android_webview/browser/surfaces_instance.cc
[modify] https://crrev.com/8a7d03cd902f4db2ba87bedaff3553b67aba5369/android_webview/browser/surfaces_instance.h
[modify] https://crrev.com/8a7d03cd902f4db2ba87bedaff3553b67aba5369/ash/components/fast_ink/fast_ink_view.cc
[modify] https://crrev.com/8a7d03cd902f4db2ba87bedaff3553b67aba5369/cc/mojo_embedder/async_layer_tree_frame_sink.cc
[modify] https://crrev.com/8a7d03cd902f4db2ba87bedaff3553b67aba5369/cc/mojo_embedder/async_layer_tree_frame_sink.h
[modify] https://crrev.com/8a7d03cd902f4db2ba87bedaff3553b67aba5369/cc/test/fake_layer_tree_frame_sink_client.h
[modify] https://crrev.com/8a7d03cd902f4db2ba87bedaff3553b67aba5369/cc/trees/layer_tree_frame_sink_client.h
[modify] https://crrev.com/8a7d03cd902f4db2ba87bedaff3553b67aba5369/cc/trees/layer_tree_host_impl.cc
[modify] https://crrev.com/8a7d03cd902f4db2ba87bedaff3553b67aba5369/cc/trees/layer_tree_host_impl.h
[modify] https://crrev.com/8a7d03cd902f4db2ba87bedaff3553b67aba5369/components/exo/layer_tree_frame_sink_holder.cc
[modify] https://crrev.com/8a7d03cd902f4db2ba87bedaff3553b67aba5369/components/exo/layer_tree_frame_sink_holder.h
[modify] https://crrev.com/8a7d03cd902f4db2ba87bedaff3553b67aba5369/components/exo/surface_tree_host.cc
[modify] https://crrev.com/8a7d03cd902f4db2ba87bedaff3553b67aba5369/components/exo/surface_tree_host.h
[modify] https://crrev.com/8a7d03cd902f4db2ba87bedaff3553b67aba5369/components/viz/service/display/display.cc
[modify] https://crrev.com/8a7d03cd902f4db2ba87bedaff3553b67aba5369/components/viz/service/display/display_unittest.cc
[modify] https://crrev.com/8a7d03cd902f4db2ba87bedaff3553b67aba5369/components/viz/service/frame_sinks/compositor_frame_sink_support.cc
[modify] https://crrev.com/8a7d03cd902f4db2ba87bedaff3553b67aba5369/components/viz/service/frame_sinks/direct_layer_tree_frame_sink.cc
[modify] https://crrev.com/8a7d03cd902f4db2ba87bedaff3553b67aba5369/components/viz/service/frame_sinks/direct_layer_tree_frame_sink.h
[modify] https://crrev.com/8a7d03cd902f4db2ba87bedaff3553b67aba5369/components/viz/service/surfaces/surface.cc
[modify] https://crrev.com/8a7d03cd902f4db2ba87bedaff3553b67aba5369/components/viz/service/surfaces/surface_unittest.cc
[modify] https://crrev.com/8a7d03cd902f4db2ba87bedaff3553b67aba5369/components/viz/test/fake_compositor_frame_sink_client.cc
[modify] https://crrev.com/8a7d03cd902f4db2ba87bedaff3553b67aba5369/components/viz/test/fake_compositor_frame_sink_client.h
[modify] https://crrev.com/8a7d03cd902f4db2ba87bedaff3553b67aba5369/components/viz/test/mock_compositor_frame_sink_client.h
[modify] https://crrev.com/8a7d03cd902f4db2ba87bedaff3553b67aba5369/components/viz/test/test_layer_tree_frame_sink.cc
[modify] https://crrev.com/8a7d03cd902f4db2ba87bedaff3553b67aba5369/components/viz/test/test_layer_tree_frame_sink.h
[modify] https://crrev.com/8a7d03cd902f4db2ba87bedaff3553b67aba5369/content/browser/renderer_host/delegated_frame_host.cc
[modify] https://crrev.com/8a7d03cd902f4db2ba87bedaff3553b67aba5369/content/browser/renderer_host/delegated_frame_host.h
[modify] https://crrev.com/8a7d03cd902f4db2ba87bedaff3553b67aba5369/content/browser/renderer_host/render_widget_host_view_android.cc
[modify] https://crrev.com/8a7d03cd902f4db2ba87bedaff3553b67aba5369/content/browser/renderer_host/render_widget_host_view_android.h
[modify] https://crrev.com/8a7d03cd902f4db2ba87bedaff3553b67aba5369/content/browser/renderer_host/render_widget_host_view_child_frame.cc
[modify] https://crrev.com/8a7d03cd902f4db2ba87bedaff3553b67aba5369/content/browser/renderer_host/render_widget_host_view_child_frame.h
[modify] https://crrev.com/8a7d03cd902f4db2ba87bedaff3553b67aba5369/content/renderer/android/synchronous_layer_tree_frame_sink.cc
[modify] https://crrev.com/8a7d03cd902f4db2ba87bedaff3553b67aba5369/content/renderer/android/synchronous_layer_tree_frame_sink.h
[modify] https://crrev.com/8a7d03cd902f4db2ba87bedaff3553b67aba5369/content/test/fake_renderer_compositor_frame_sink.h
[modify] https://crrev.com/8a7d03cd902f4db2ba87bedaff3553b67aba5369/services/ui/ws/frame_generator.cc
[modify] https://crrev.com/8a7d03cd902f4db2ba87bedaff3553b67aba5369/services/ui/ws/frame_generator.h
[modify] https://crrev.com/8a7d03cd902f4db2ba87bedaff3553b67aba5369/services/viz/public/interfaces/compositing/compositor_frame_sink.mojom
[modify] https://crrev.com/8a7d03cd902f4db2ba87bedaff3553b67aba5369/third_party/blink/renderer/platform/graphics/begin_frame_provider.h
[modify] https://crrev.com/8a7d03cd902f4db2ba87bedaff3553b67aba5369/third_party/blink/renderer/platform/graphics/canvas_resource_dispatcher.cc
[modify] https://crrev.com/8a7d03cd902f4db2ba87bedaff3553b67aba5369/third_party/blink/renderer/platform/graphics/canvas_resource_dispatcher.h
[modify] https://crrev.com/8a7d03cd902f4db2ba87bedaff3553b67aba5369/third_party/blink/renderer/platform/graphics/video_frame_submitter.cc
[modify] https://crrev.com/8a7d03cd902f4db2ba87bedaff3553b67aba5369/third_party/blink/renderer/platform/graphics/video_frame_submitter.h
[modify] https://crrev.com/8a7d03cd902f4db2ba87bedaff3553b67aba5369/ui/android/delegated_frame_host_android.cc
[modify] https://crrev.com/8a7d03cd902f4db2ba87bedaff3553b67aba5369/ui/android/delegated_frame_host_android.h
[modify] https://crrev.com/8a7d03cd902f4db2ba87bedaff3553b67aba5369/ui/android/delegated_frame_host_android_unittest.cc
[modify] https://crrev.com/8a7d03cd902f4db2ba87bedaff3553b67aba5369/ui/aura/local/layer_tree_frame_sink_local.cc
[modify] https://crrev.com/8a7d03cd902f4db2ba87bedaff3553b67aba5369/ui/aura/local/layer_tree_frame_sink_local.h
[modify] https://crrev.com/8a7d03cd902f4db2ba87bedaff3553b67aba5369/ui/gfx/presentation_feedback.h
[modify] https://crrev.com/8a7d03cd902f4db2ba87bedaff3553b67aba5369/ui/gl/gl_surface_presentation_helper.cc
[modify] https://crrev.com/8a7d03cd902f4db2ba87bedaff3553b67aba5369/ui/gl/gl_surface_wgl.cc
[modify] https://crrev.com/8a7d03cd902f4db2ba87bedaff3553b67aba5369/ui/ozone/platform/drm/gpu/crtc_controller.cc
[modify] https://crrev.com/8a7d03cd902f4db2ba87bedaff3553b67aba5369/ui/ozone/platform/drm/gpu/drm_window.cc
[modify] https://crrev.com/8a7d03cd902f4db2ba87bedaff3553b67aba5369/ui/ozone/platform/drm/gpu/drm_window_unittest.cc
[modify] https://crrev.com/8a7d03cd902f4db2ba87bedaff3553b67aba5369/ui/ozone/platform/drm/gpu/gbm_surface.cc
[modify] https://crrev.com/8a7d03cd902f4db2ba87bedaff3553b67aba5369/ui/ozone/platform/drm/gpu/gbm_surfaceless.cc
[modify] https://crrev.com/8a7d03cd902f4db2ba87bedaff3553b67aba5369/ui/ozone/platform/drm/gpu/hardware_display_plane_manager_legacy.cc

Project Member

Comment 24 by bugdroid1@chromium.org, Jun 13 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/bf746c55adf49d2f22cc308185a16d12c4e15b04

commit bf746c55adf49d2f22cc308185a16d12c4e15b04
Author: Sadrul Habib Chowdhury <sadrul@chromium.org>
Date: Wed Jun 13 04:53:43 2018

paint timing: Use presentation-time instead of swap-time.

The presentation-time from gpu gives a more correct view of what the
user experiences, rather than the swap-time in the renderer process.
So switch to using the presentation-time to measure the various
paint-time metrics.

The various paint-time metrics in telemetry tests (loading benchmark)
will go up after this change, but it is expected, and it is not a
regression. Results on various platforms with this change:

Win 7: https://pinpoint-dot-chromeperf.appspot.com/job/14d09714240000
Win 10: https://pinpoint-dot-chromeperf.appspot.com/job/149921e4240000
Mac low-end: https://pinpoint-dot-chromeperf.appspot.com/job/12eeeba5240000
Android one: https://pinpoint-dot-chromeperf.appspot.com/job/16ab13e9240000
Android N5x: https://pinpoint-dot-chromeperf.appspot.com/job/12d45da5240000

BUG= 811961 

Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel;master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I70a86eb85e84670942fe3fe6341926b5bc6255b9
Reviewed-on: https://chromium-review.googlesource.com/1050693
Commit-Queue: Sadrul Chowdhury <sadrul@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Reviewed-by: Timothy Dresser <tdresser@chromium.org>
Reviewed-by: Brian Anderson <brianderson@chromium.org>
Cr-Commit-Position: refs/heads/master@{#566724}
[modify] https://crrev.com/bf746c55adf49d2f22cc308185a16d12c4e15b04/cc/trees/layer_tree_host_impl.cc
[modify] https://crrev.com/bf746c55adf49d2f22cc308185a16d12c4e15b04/components/viz/common/quads/compositor_frame_metadata.h
[modify] https://crrev.com/bf746c55adf49d2f22cc308185a16d12c4e15b04/content/renderer/gpu/render_widget_compositor.cc
[modify] https://crrev.com/bf746c55adf49d2f22cc308185a16d12c4e15b04/content/renderer/gpu/render_widget_compositor.h

Project Member

Comment 25 by bugdroid1@chromium.org, Jun 13 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/eba7d72014cb5b5f468e586b78b66b5068c42ce3

commit eba7d72014cb5b5f468e586b78b66b5068c42ce3
Author: Findit <findit-for-me@appspot.gserviceaccount.com>
Date: Wed Jun 13 07:14:13 2018

Revert "paint timing: Use presentation-time instead of swap-time."

This reverts commit bf746c55adf49d2f22cc308185a16d12c4e15b04.

Reason for revert:

Findit (https://goo.gl/kROfz5) identified CL at revision 566724 as the
culprit for failures in the build cycles as shown on:
https://findit-for-me.appspot.com/waterfall/culprit?key=ag9zfmZpbmRpdC1mb3ItbWVyRAsSDVdmU3VzcGVjdGVkQ0wiMWNocm9taXVtL2JmNzQ2YzU1YWRmNDlkMmYyMmNjMzA4MTg1YTE2ZDEyYzRlMTViMDQM

Sample Failed Build: https://ci.chromium.org/buildbot/chromium.linux/Linux%20Tests%20%28dbg%29%281%29/72596

Sample Failed Step: not_site_per_process_browser_tests

Original change's description:
> paint timing: Use presentation-time instead of swap-time.
> 
> The presentation-time from gpu gives a more correct view of what the
> user experiences, rather than the swap-time in the renderer process.
> So switch to using the presentation-time to measure the various
> paint-time metrics.
> 
> The various paint-time metrics in telemetry tests (loading benchmark)
> will go up after this change, but it is expected, and it is not a
> regression. Results on various platforms with this change:
> 
> Win 7: https://pinpoint-dot-chromeperf.appspot.com/job/14d09714240000
> Win 10: https://pinpoint-dot-chromeperf.appspot.com/job/149921e4240000
> Mac low-end: https://pinpoint-dot-chromeperf.appspot.com/job/12eeeba5240000
> Android one: https://pinpoint-dot-chromeperf.appspot.com/job/16ab13e9240000
> Android N5x: https://pinpoint-dot-chromeperf.appspot.com/job/12d45da5240000
> 
> BUG= 811961 
> 
> Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel;master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
> Change-Id: I70a86eb85e84670942fe3fe6341926b5bc6255b9
> Reviewed-on: https://chromium-review.googlesource.com/1050693
> Commit-Queue: Sadrul Chowdhury <sadrul@chromium.org>
> Reviewed-by: Antoine Labour <piman@chromium.org>
> Reviewed-by: Timothy Dresser <tdresser@chromium.org>
> Reviewed-by: Brian Anderson <brianderson@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#566724}

No-Presubmit: true
No-Tree-Checks: true
No-Try: true
BUG= 811961 
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel;master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Change-Id: Ia66f54dd90c3010d1103c7ddc657e2765f67a1e3
Reviewed-on: https://chromium-review.googlesource.com/1098775
Cr-Commit-Position: refs/heads/master@{#566743}
[modify] https://crrev.com/eba7d72014cb5b5f468e586b78b66b5068c42ce3/cc/trees/layer_tree_host_impl.cc
[modify] https://crrev.com/eba7d72014cb5b5f468e586b78b66b5068c42ce3/components/viz/common/quads/compositor_frame_metadata.h
[modify] https://crrev.com/eba7d72014cb5b5f468e586b78b66b5068c42ce3/content/renderer/gpu/render_widget_compositor.cc
[modify] https://crrev.com/eba7d72014cb5b5f468e586b78b66b5068c42ce3/content/renderer/gpu/render_widget_compositor.h

Project Member

Comment 26 by bugdroid1@chromium.org, Jun 13 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/992979a662b28e7b9a62419f87b1839557611efc

commit 992979a662b28e7b9a62419f87b1839557611efc
Author: Sadrul Habib Chowdhury <sadrul@chromium.org>
Date: Wed Jun 13 19:16:01 2018

Reland "paint timing: Use presentation-time instead of swap-time."

Reland of crrev.com/566724. Original commit message:

The presentation-time from gpu gives a more correct view of what the
user experiences, rather than the swap-time in the renderer process.
So switch to using the presentation-time to measure the various
paint-time metrics.

The various paint-time metrics in telemetry tests (loading benchmark)
will go up after this change, but it is expected, and it is not a
regression. Results on various platforms with this change:

Win 7: https://pinpoint-dot-chromeperf.appspot.com/job/14d09714240000
Win 10: https://pinpoint-dot-chromeperf.appspot.com/job/149921e4240000
Mac low-end: https://pinpoint-dot-chromeperf.appspot.com/job/12eeeba5240000
Android one: https://pinpoint-dot-chromeperf.appspot.com/job/16ab13e9240000
Android N5x: https://pinpoint-dot-chromeperf.appspot.com/job/12d45da5240000

BUG= 811961 

Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I7742fa669ab583dbfda8be2259c553385b7fef10
Reviewed-on: https://chromium-review.googlesource.com/1099187
Reviewed-by: Antoine Labour <piman@chromium.org>
Commit-Queue: Sadrul Chowdhury <sadrul@chromium.org>
Cr-Commit-Position: refs/heads/master@{#566942}
[modify] https://crrev.com/992979a662b28e7b9a62419f87b1839557611efc/cc/trees/layer_tree_host_impl.cc
[modify] https://crrev.com/992979a662b28e7b9a62419f87b1839557611efc/components/viz/common/quads/compositor_frame_metadata.h
[modify] https://crrev.com/992979a662b28e7b9a62419f87b1839557611efc/content/renderer/gpu/render_widget_compositor.cc
[modify] https://crrev.com/992979a662b28e7b9a62419f87b1839557611efc/content/renderer/gpu/render_widget_compositor.h

The reland is causing me to get DCHECK failures (see attachment) in some VR browsing instrumentation tests, even if all the test does it load a page. However, the tests on the bot seem fine with your change https://ci.chromium.org/p/chromium/builders/luci.chromium.ci/Nougat%20Phone%20Tester/6608.

Perhaps this issue is related to OS/device type? The bot is using a Pixel 1 XL with N, while I'm using a Pixel 2 XL with O locally.
first_paint_crash.txt
62.5 KB View Download
Getting the same renderer crash when just visiting chrome://flags outside of any tests.
I see. The 'swap time' in renderer and the paint-time now are not easily comparable, since the timestamps are coming from different processes. I removed one such comparison from paint_timing.cc earlier (see https://chromium-review.googlesource.com/c/chromium/src/+/1063323). Looks like this is another places that needs to be updated.
Yea, FirstMeaningfulPaintDetector sends the timestamps back to paint-timing, which does the right thing. So just removing that DCHECK should be OK. I will put up a CL for that tonight. In the meantime, if you are blocked, you can try making that change locally to unblock for now.
Any status update on removing that DCHECK?  It is causing nearly every page to crash on my local Android testing.
Whoops, sorry. I lost track of this. I have put up https://chromium-review.googlesource.com/c/chromium/src/+/1102083 for review just now.
Project Member

Comment 33 by bugdroid1@chromium.org, Jun 15 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9f716548e6d770ae23d0da90107fc8db2f19d96f

commit 9f716548e6d770ae23d0da90107fc8db2f19d96f
Author: Sadrul Habib Chowdhury <sadrul@chromium.org>
Date: Fri Jun 15 17:38:23 2018

paint-time: Remove a DCHECK for timestamp comparison.

The swap timestamp comes from the gpu process, and so it can not be
easily compared to the paint timestamp, which comes from the renderer
process. So remove the DCHECK that expects an ordering between the
two. A similar check was removed earlier in crrev.com/c/1063323

BUG= 811961 

Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: Ia80306f78ec82e875ec6ebe7709cf4b445a40768
Reviewed-on: https://chromium-review.googlesource.com/1102083
Commit-Queue: Ted Choc <tedchoc@chromium.org>
Reviewed-by: Chris Harrelson <chrishtr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#567716}
[modify] https://crrev.com/9f716548e6d770ae23d0da90107fc8db2f19d96f/third_party/blink/renderer/core/paint/first_meaningful_paint_detector.cc

Status: Fixed (was: Started)
I am going to claim this is now fixed.

Sign in to add a comment