Firefox transform3D CSS appears broken when there are large amount of elements with transform3D present on the page.

NEW
Unassigned

Status

()

Core
Layout
4 years ago
5 months ago

People

(Reporter: Silent Imp, Unassigned)

Tracking

(Depends on: 1 bug)

26 Branch
x86
All
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(4 attachments)

(Reporter)

Description

4 years ago
Created attachment 789287 [details]
bug.zip

User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.95 Safari/537.36

Steps to reproduce:

Create large amount of elements with 3D Transformation applied.


Actual results:

Wrong visibility calculation. Elements cover each other in wrong order.



Expected results:

Right visibility calculation.
(Reporter)

Comment 1

4 years ago
problem is common for all FF versions

Updated

4 years ago
Component: Untriaged → Layout
OS: Mac OS X → All
Product: Firefox → Core

Updated

4 years ago
Status: UNCONFIRMED → NEW
Ever confirmed: true

Updated

4 years ago
Depends on: 689498
(Reporter)

Comment 2

4 years ago
Created attachment 790166 [details]
this is screenshot of expected behaviour
(Reporter)

Comment 3

4 years ago
Created attachment 790172 [details]
this is screenshot of behaviour in Gecko on a small amount of elements
(Reporter)

Comment 4

4 years ago
Created attachment 790174 [details]
this is screenshot of behaviour in Gecko on a big amount of elements
Flags: needinfo?(roc)
I assume this is just the lack of plane splitting. Currently we have some heuristics for z-ordering 3D transformed elements that don't always work. I.e., bug 689498.
Flags: needinfo?(roc)
In addition to the plane splitting being required for correct rendering in many cases, there is currently a hard-coded limit to the number of layers that will be sorted:

https://dxr.mozilla.org/mozilla-central/source/gfx/layers/LayerSorter.cpp?from=LayerSorter.cpp&case=true#236

This is currently set to 100.  When the layer sorting is fixed, this limit will be bumped up to a more reasonable ceiling that is less likely to be hit.
You need to log in before you can comment on or make changes to this bug.