If you think a bug might affect users in the 57 release, please set the correct tracking and status flags for Release Management.

Main thread transactions cause +- 0.5 rounding error for APZC scrollbar layers

RESOLVED WONTFIX

Status

()

Core
Graphics: Layers
RESOLVED WONTFIX
3 years ago
a year ago

People

(Reporter: BenWa, Assigned: BenWa)

Tracking

unspecified
All
Gonk (Firefox OS)
Points:
---

Firefox Tracking Flags

(tracking-b2g:backlog)

Details

Attachments

(1 attachment)

(Assignee)

Description

3 years ago
When looking in layers uniformity graph I can clearly see some layers moving -backwards- when interpolating a single fling on APZC.

I think what we've been attributing as skipped frames are actually us producing a frames but moving the layer backwards. This is only noticeable at if the velocity is small (about 1 pixel/frame or less) because otherwise the rounding error will be too small to make the layer move backwards.
(Assignee)

Comment 1

3 years ago
Created attachment 8443089 [details]
Screenshot 2014-06-19 18.27.25.png
Assignee: nobody → bgirard
Status: NEW → ASSIGNED
(Assignee)

Comment 2

3 years ago
This only occurs for the scrollbar layer as far as I can tell.
Summary: Main thread transactions cause +- 0.5 rounding error for APZC layers → Main thread transactions cause +- 0.5 rounding error for APZC scrollbar layers
(Assignee)

Comment 3

3 years ago
Profile with layers dump:
http://people.mozilla.org/~bgirard/cleopatra/#report=d116e194a4687dc3502bee16d181659060247a8c
(Assignee)

Comment 4

3 years ago
Alright, thanks to a big help from kats, we figured out the problem:

We have two sibling layers (1) content layer, (2) scroll bar layers. Say the content layer can scroll 100 pixels while the scrollport/scroll bar is only 10 pixels high. Layer position and transforms from the main thread are rounded. When the position of (1) increases by one pixel, the position of (2) doesn't increase. As a result of the update increasing (1) by one pixel the async transaction is reduced. The position of (2) is computed based on the async transform of (1).
blocking-b2g: --- → backlog
Blocks: 1073549
(Assignee)

Comment 5

3 years ago
Kats do you know if anyone notices this visually? I'm considering moving this to the backlog if no one is impacted by this visually. It's not trivial to fix and the useful of fixing this appears to be low.
Flags: needinfo?(bugmail.mozilla)
I haven't seen anybody complain about this. CC'ing mason as well in case he's noticed anything related to this.
Flags: needinfo?(bugmail.mozilla)
OS: Mac OS X → Gonk (Firefox OS)
Hardware: x86 → All
blocking-b2g: backlog → ---
tracking-b2g: --- → backlog
(Assignee)

Comment 7

a year ago
This is really noticeable in perf tools but it's not worth fixing given how complex the fix is to get the rounding right.
Status: ASSIGNED → RESOLVED
Last Resolved: a year ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.