[Webkit-unassigned] [Bug 91537] Textures drawn during occlusion are incorrectly re-used when unoccluded.
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Wed Jul 18 13:41:57 PDT 2012
https://bugs.webkit.org/show_bug.cgi?id=91537
--- Comment #4 from Adrienne Walker <enne at google.com> 2012-07-18 13:41:56 PST ---
(From update of attachment 153010)
View in context: https://bugs.webkit.org/attachment.cgi?id=153010&action=review
> Source/WebCore/ChangeLog:3
> + Textures drawn during occlusion are incorrectly re-used when unoccluded.
[chromium]
> Source/WebCore/platform/graphics/chromium/LayerRendererChromium.cpp:148
> + : CCScopedTexture(allocator),
> + m_isComplete(false)
style nit: Comma vertically aligned with colon.
> Source/WebCore/platform/graphics/chromium/cc/CCOcclusionTracker.cpp:445
> + if (hasOcclusionFromOutsideTargetSurface)
> + *hasOcclusionFromOutsideTargetSurface = (unoccludedInScreen != unoccludedInTarget);
I think you should be checking the occlusion on m_stack[lastIndex - 1].occlusionInScreen, which is the external occlusion for this surface prior to considering anything in the surface. Any layers that draw into this target surface will update m_stack.last().occlusionInScreen as they go (if the transform to the screen is known), which muddles internal and external occlusion.
> Source/WebCore/platform/graphics/chromium/cc/CCQuadCuller.cpp:56
> + , m_forSurface(forSurface)
I feel like this just shifts complexity around, but doesn't result in any net simplification. On the other hand, CCQuadCuller is so tied to the occlusion iteration that I can't come up with any example for when you'd ever want to call append and appendSurface on the same quad culler. Eh.
--
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