[Webkit-unassigned] [Bug 56917] New: GPU composited content cannot be isolated from other elements on the page
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Wed Mar 23 04:58:14 PDT 2011
https://bugs.webkit.org/show_bug.cgi?id=56917
Summary: GPU composited content cannot be isolated from other
elements on the page
Product: WebKit
Version: 528+ (Nightly build)
Platform: All
OS/Version: All
Status: UNCONFIRMED
Severity: Critical
Priority: P2
Component: Layout and Rendering
AssignedTo: webkit-unassigned at lists.webkit.org
ReportedBy: pbakaus at zynga.com
CC: simon.fraser at apple.com
Created an attachment (id=86604)
--> (https://bugs.webkit.org/attachment.cgi?id=86604&action=review)
Testcase to show perf issue and compositing
Hi everyone,
at Zynga, we produce scrolling viewports with thousands of <div>'s. A couple of them feature sprite animations, and we want to accelerate them in the GPU, therefore we're adding a translate3d rule to a child node of these. The basic setup is usually a page with lots of absolutely positioned elements.
The issue: If you GPU accelerate a single of the elements (or a child of it), all children with a higher z-index or implicit stack index become accelerated as well.
Why is this problematic? GPU accelerated elements eat more memory, and nested GPU compositing is slowing down the page tremendously. Open the added testcase in your iPhone and try panning the viewport, which won't be snappy. Now remove the transform from the CSS, and you'll see a huge difference. This is a single element we changed, causing a huge overall performance breakdown on the page, and it will not be apparent to the standard web developer.
There a a couple of implementation suggestions to effectively isolate content:
1) If the accelerated element is a child of another, check if the parent is overflow hidden, and then not accelerate anything on the same level than the parent (as nothing can really overlap anyway)
2) Add proximity to the check - if two elements are not close to each other, disable the "leaking" to other elements.
I'm looking forward to more suggestions and fixes :)
Thanks,
Paul
--
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
More information about the webkit-unassigned
mailing list