Closed Bug 1076271 Opened 11 years ago Closed 3 years ago

Bad jank in bespoke.js presentation

Categories

(Core :: Graphics, defect)

x86
macOS
defect

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: gal, Unassigned)

References

()

Details

When transitioning between pages in the presentation below there is some weird jank and distortion towards the end of the animation when things settle down. Additional observations: Enabling paint flashing shows that we paint the final state a few times, which probably causes the jank itself. Enabling OMTA removes the jank and distortion (one of the final frames we render seems to have a wrong transform, this disappears with OMTA). When rendering with OMTA I am seeing a weird subpixel aliasing effect. Basically we seem to render the last few frames with a different sub-pixel alignment than the last one. The space between and width of characters changes with the very last frame subtly. This looks like a loot of fun bugs to look at here.
The repaint on the very last frame is expected, that's when we transition from an active layer to an inactive one and often causes minor visual differences. All the crazy jumps before that are hard to explain though :)
Matt, why don't we just send a message to the compositor to composite the active layer on top of the background layer and then update the layer tree to dispose of the now inactive layer buffer. Why are we repainting?
A bunch of reasons, the biggest is probably that we don't have code for that at the moment. If the active layer wasn't rendered at exactly the final resolution then we get a quality increase by repainting it directly into the background. If the active layer required component alpha, then the text quality is still lower than what we can do with a repaint, since we don't have gamma correction for component alpha shaders. I guess these both fall into the generic 'quality' bucket.
For the case where we know the final transform (which we should here, since it's using animations), and there's no component alpha then we should probably do the flattening in the compositor like you suggest.
Milan, we should schedule work on this. Clearly some bugs here in addition to the improvements.
The difference between OMTA and MTA - bug 980770 tracks turning OMTA on by default, but I also had conversations with David on "some things are not consistent between MTA and OMTA, we should clean that up" - is there a bug for that? Matt, do we have a bug for the feature described in comments 2 and 4?
Flags: needinfo?(matt.woodrow)
Flags: needinfo?(dbaron)
Turning on OMTA seems to hide some bug in the MTA code. We should definitely debug that.
(In reply to Milan Sreckovic [:milan] from comment #6) > The difference between OMTA and MTA - bug 980770 tracks turning OMTA on by > default, but I also had conversations with David on "some things are not > consistent between MTA and OMTA, we should clean that up" - is there a bug > for that? The known issues are dependencies of bug 980770.
Flags: needinfo?(dbaron)
Do we understand the cause for the jank/distortion in this test case?
Having both -moz-transform and transform isn't causing a problem?
Shouldn't. One should win. The other should be ignored.
(In reply to Andreas Gal :gal from comment #9) > Do we understand the cause for the jank/distortion in this test case? Not yet, no. I had a look at this yesterday and didn't make any progress. The interpolation and rendering code should be identical with/without OMTA, it's just the code driving the timer that changes. All the interpolation percentages that we use without OMTA seem fine though.
Flags: needinfo?(matt.woodrow)
Severity: normal → S3

This performs great now. Sadly, this demo still has other problems.

Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → WORKSFORME
See Also: → 1817546

Things are janky with sw-wr: https://share.firefox.dev/3IyBoL7

(In reply to Mayank Bansal from comment #14)

Things are janky with sw-wr: https://share.firefox.dev/3IyBoL7

This bug is old and full of outdated analysis, I think new bugs should be filed for sw-wr.

You need to log in before you can comment on or make changes to this bug.