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)
Tracking
()
People
(Reporter: dholbert, Unassigned)
Details
Attachments
(1 file)
STR:
- 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") - Start profiling. (with the "Start Recording" button)
- 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".
- 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.
Reporter | ||
Comment 1•4 years ago
|
||
Here's a profile that I captured using the STR:
https://share.firefox.dev/2YBo1Ck
Reporter | ||
Comment 2•4 years ago
•
|
||
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.
Reporter | ||
Updated•4 years ago
|
Reporter | ||
Updated•4 years ago
|
Comment 3•4 years ago
|
||
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.
Reporter | ||
Comment 4•4 years ago
|
||
Thanks! (In case it's useful: I tried with webrender disabled, and this happens in that configuration too: https://share.firefox.dev/3aoeLH1 )
Updated•4 years ago
|
Description
•