Open Bug 1690147 Opened 4 years ago Updated 4 years ago

Final screenshot is not captured because there is no follow-up composite; should have a wait timeout for screenshot capturing

Categories

(Core :: Gecko Profiler, defect, P2)

Unspecified
Android
defect

Tracking

()

People

(Reporter: dholbert, Unassigned)

Details

Attachments

(1 file)

STR:

  1. Visit about:debugging with a USB-connected Android phone, and click through to the Android profiling UI. (click the phone name and then "Profile Performance")
  2. Start profiling. (with the "Start Recording" button)
  3. On the phone, visit https://draw.cafe/svgtest2.html (a graphical benchmark); and when it gets to its final rendering (just a page of timestamps), wait 5-10 seconds before clicking "Capture Profile".
  4. Look at the screenshots track at the end of your captured profile.

ACTUAL RESULTS:
The screenshots for the final 5-10 seconds of the profile don't match reality. It looks like we don't correctly screenshot the final rendering (the list of timestamps), and instead we repeat the prior screenshot (or some earlier screenshot) as if that were the final rendering.

EXPECTED RESULTS:
The screenshots at the end of the profile should show the actual final rendering of the testcase.

I noticed this when profiling https://bugzilla.mozilla.org/show_bug.cgi?id=1686590 . I'm using latest Firefox Nightly on Android (a Pixel 4a phone) and on Ubuntu Linux 20.10.

Here's a profile that I captured using the STR:
https://share.firefox.dev/2YBo1Ck

Here's the screenshot from the screenshots track at the end of that profile.

The black scribbly rectangle isn't supposed to be there -- that's visible at earlier points in the benchmark (i.e. I think this is a screenshot from earlier in the profile), but it's not visible on the actual phone at the end of the profile, so it's weird that we're showing it continuously in my profile as if it were the final rendered state.

Summary: Screenshots track doesn't capture final rendering → Screenshots track doesn't capture final rendering; instead, it shows repeated screenshots of some earlier rendering, as if that were the final state
OS: Unspecified → Android

Hmm, this could be because we're querying screenshots in a delayed manner; on every frame, we get the screenshot of the previous frame. So that means we don't get the last screenshot if there is no composite after it.

We could add a timeout and grab screenshots even if there is no follow-up composite.

Thanks! (In case it's useful: I tried with webrender disabled, and this happens in that configuration too: https://share.firefox.dev/3aoeLH1 )

Summary: Screenshots track doesn't capture final rendering; instead, it shows repeated screenshots of some earlier rendering, as if that were the final state → Final screenshot is not captured because there is no follow-up composite; should have a wait timeout for screenshot capturing
Severity: -- → S3
Priority: -- → P2
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: