[Webkit-unassigned] [Bug 37928] New: WebView can modify its backing store bitmap while CoreAnimation is using it, which can cause rendering artifacts

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Wed Apr 21 08:41:51 PDT 2010


https://bugs.webkit.org/show_bug.cgi?id=37928

           Summary: WebView can modify its backing store bitmap while
                    CoreAnimation is using it, which can cause rendering
                    artifacts
           Product: WebKit
           Version: 528+ (Nightly build)
          Platform: PC
        OS/Version: Windows XP
            Status: NEW
          Keywords: NeedsRadar, PlatformOnly
          Severity: Normal
          Priority: P2
         Component: Layout and Rendering
        AssignedTo: webkit-unassigned at lists.webkit.org
        ReportedBy: aroben at apple.com
                CC: darin at apple.com, sfalken at apple.com, cmarrin at apple.com,
                    aestes at apple.com


Right now, when using accelerated compositing, WebView renders in its normal
fashion (by drawing into its m_backingStoreBitmap), then we send the new bits
to CA by wrapping the bitmap in a CGImageRef and calling CACFLayerSetContents.
But WebView might modify the bits of m_backingStoreBitmap while CA is still
using that CGImageRef, which can result in rendering artifacts (e.g., partial
updates, depending on when the bits get copied from the CGImageRef to the GPU).

If we instead were to call CACFLayerSetNeedsDisplay whenever the WebView needs
to render, and then render into the CGContextRef that CA gives us in the
display callback for the root layer, I think we wouldn't be in danger of
modifying the bits while CA is using them. Basically we'd switch from rendering
into m_backingStoreBitmap to rendering into a CA-provided CGContextRef.

-- 
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