Make graphics timeline checkerboard aware

NEW
Unassigned

Status

P3
normal
3 years ago
18 days ago

People

(Reporter: akratel, Unassigned)

Tracking

Firefox Tracking Flags

(Not tracked)

Details

User Story

As a developer I'd like to be able to find out when the graphics engine is rendering checkerboards because some part of my code is blocking graphics.
(Reporter)

Description

3 years ago
Platform team implemented a jank-eliminator via painting checkerboard patterns where the page can't keep up rather than holding up the page. This means they have internal metrics that tell them when this is happening. We should be able to provide developers with data for when this is happening. This might also be a way for us to find additional jank. 

See 944938, 1013364 for APZ, scrolling stuff is still in the works for this, not in place yet.

This bug is a place holder to see what we can do on perf tools with detecting when checkerboard patterns appear.
(Reporter)

Updated

3 years ago
User Story: (updated)
Kats, Benwa, is there something we need to do here, and if not, let's share what we have with the dev tools.
Flags: needinfo?(bugmail.mozilla)
Flags: needinfo?(bgirard)
I think we should be telling web authors to instead focus on getting their transaction as close to 60 FPS as they can which would imply no checkerboarding. Checkerboarding is a function of how much pre-redering we want to do and may change from build to build.

Having web authors aim for 60 FPS is a better and simpler target. I don't think it's a great idea to expose both when we really want them to not hold the event loop for too long. The page will be janky if they don't hit this metric and if they do they wont get checkerboarding.
Flags: needinfo?(bgirard)
I forgot to add, if web developers *really* want they can take a peak at 'apz.minimap.enabled;true'. But this is really meant for platform, we shouldn't be exposing this from devtools directly.
I mostly agree with BenWa but it might also be handy to show on profiles (either the devtools graphics timeline or just the profiler add-on) when we do checkerboard, just like how we show when we jank. That way somebody could profile a page, and quickly find the piece of the profile that led to the checkerboarding. It might not necessarily be JS code, it might just be slow painting operations in Gecko.
Flags: needinfo?(bugmail.mozilla)
Are checkering operations blocking the main thread? Are they always nested in a paint marker?
Checkerboarding is usually caused by slow operations on the main thread. They don't have to be nested in a paint; it could just be something long-running that prevents the paint from happening quickly enough.
Triaging. Filter on ADRENOCORTICOTROPIC (yes).
Priority: -- → P3

Updated

4 months ago
Product: Firefox → DevTools
You need to log in before you can comment on or make changes to this bug.