Closed Bug 1097776 Opened 5 years ago Closed 5 years ago

Animation of CSS transform: rotateX() shakes as it crosses rotation of 0, when hw acceleration off

Categories

(Core :: Layout, defect)

36 Branch
x86_64
Windows 7
defect
Not set

Tracking

()

RESOLVED FIXED
mozilla36

People

(Reporter: vladan, Assigned: mstange)

References

Details

Attachments

(1 file, 4 obsolete files)

There's very visible shaking during the rotation animation that happens when hovering the mouse cursor over this page's sidebar:

http://christianheilmann.com/2014/11/05/taking-a-break/

This was already fixed in bug 1078262 for Firefox 34 and Firefox 35, but Nightly 36 has regressed
I tested with the latest Nightly, I have the same behaviour as FF34/35.
Vladan reproduced this on Windows.
I cannot reproduce this with a recent Nightly on Mac.
It doesn't reproduce on my Windows machiens if hardware acceleration is enabled. Try turning it off via layers.acceleration.disabled
I can reproduce this on Mac with hardware acceleration disabled.
This bug is also present in earlier versions of Firefox. Firefox 34 & 35 are affected too, I originally tested with hardware acceleration enabled
Summary: Bug 1078262 regressed in Nightly 36: animation of CSS transform: rotateX() shakes as it crosses rotation of 0 → Animation of CSS transform: rotateX() shakes as it crosses rotation of 0, when hw acceleration off
No longer depends on: 1078262
This looks to be another effect of fixed pixman precision; the precision loss happens in Matrix3DToPixman (resp. BasicLayerManager_Matrix3DToPixman). I've tested what happens if I change CompositorOGL::DrawQuad to put its aTransform parameter through pixman_transform_from_pixman_f_transform + pixman_f_transform_from_pixman_transform before using it, and doing so causes the same bug when OpenGL acceleration is enabled.

Jeff, any ideas?
Attached patch part 1 (obsolete) — Splinter Review
Attachment #8523179 - Flags: review?(jmuizelaar)
Attached patch part 2 (obsolete) — Splinter Review
Attachment #8523181 - Flags: review?(jmuizelaar)
Attached patch part 3 (obsolete) — Splinter Review
Attachment #8523182 - Flags: review?(jmuizelaar)
Attached patch part 2 (obsolete) — Splinter Review
removed stray period from comment
Attachment #8523181 - Attachment is obsolete: true
Attachment #8523181 - Flags: review?(jmuizelaar)
Attachment #8523183 - Flags: review?(jmuizelaar)
Attached patch use Skia insteadSplinter Review
This is much simpler and may even be faster.
Attachment #8523179 - Attachment is obsolete: true
Attachment #8523182 - Attachment is obsolete: true
Attachment #8523183 - Attachment is obsolete: true
Attachment #8523179 - Flags: review?(jmuizelaar)
Attachment #8523182 - Flags: review?(jmuizelaar)
Attachment #8523183 - Flags: review?(jmuizelaar)
Attachment #8524103 - Flags: review?(jmuizelaar)
Blocks: 742760
Comment on attachment 8524103 [details] [diff] [review]
use Skia instead

Review of attachment 8524103 [details] [diff] [review]:
-----------------------------------------------------------------

I like it.
Attachment #8524103 - Flags: review?(jmuizelaar) → review+
Relanded with zero-initialized DataSourceSurface and SkBitmapDevice leak fix:

https://hg.mozilla.org/integration/mozilla-inbound/rev/3cc235e310a5
https://hg.mozilla.org/integration/mozilla-inbound/rev/1e9ee3a05567
Flags: needinfo?(mstange)
https://hg.mozilla.org/mozilla-central/rev/3cc235e310a5
https://hg.mozilla.org/mozilla-central/rev/1e9ee3a05567
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla36
Depends on: 1105087
QA Whiteboard: [good first verify]
You need to log in before you can comment on or make changes to this bug.