Open trusktr opened 7 years ago
It wouldn't be too hard: you would simply not have to calculate world transforms in this case, only nest the elements and apply their local transforms (the HTML engine calculates the world transforms instead, when it traverses the DOM). You'd need to apply preserve-3d
to all of them.
I'm sure you know how it works. ;)
I am noticing a lot more stuttering. Still not sure as to why though. What's your reason for thinking it has to do with unnested DOM?
It's a pretty recent regression. Tested demo with Opera 46 and Opera 48 on the same box. Opera 46 was smooth, Opera 48 stuttered.
@dmvaldman I'm not sure it's a regression for non-nested DOM actually. Maybe it would be useful having both forms of renderer so that we can test it?
@culyun Nice catch. If you can post that at http://crbug.com, it will help Chrome authors determine which version of Blink caused it since you know the Opera versions.
@trusktr I've reported issue [upstream|https://bugs.chromium.org/p/chromium/issues/detail?id=770545]
NB. one big change that happened in Chrome 60 (I think) was the introduction of webasm. So it might be worth fishing around for other performance regressions.
For example, check out the old Famous periodic table: http://disrupt.famo.us/periodic402/
Look like Chrome hasn't been keeping their CSS3D (non-nested stuff) in good working order, as the demo flickers a lot for me in Chrome 60 in MacOS on a new MacBook Pro I just got in June.
Nested CSS3D seems to be doing better, but it still has problems too.
It might be worth making a nested renderer for Samsara to see which one works better.