[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc

eric at webkit.org eric at webkit.org
Wed Dec 22 11:50:32 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit c966df30c38d20a4038de9cebfbaf55d71c1cad9
Author: eric at webkit.org <eric at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Mon Aug 9 17:39:47 2010 +0000

    2010-08-09  Vangelis Kokkevis  <vangelis at chromium.org>
    
            Reviewed by Dimitri Glazkov.
    
            Skip the slow software rendering path of GraphicsContext3D if accelerated
            compositing is active. This fixes an issue with WebGL and the compositor
            in which the software rendering of WebGL would cause the current GL context
            to change while the compositor was processing layers. Tested by running
            several WebGL samples both with the compositor enabled and disabled.
            https://bugs.webkit.org/show_bug.cgi?id=43644
    
            * src/GraphicsContext3D.cpp:
            (WebCore::GraphicsContext3DInternal::GraphicsContext3DInternal):
            (WebCore::GraphicsContext3DInternal::initialize):
            (WebCore::GraphicsContext3DInternal::beginPaint):
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@64990 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebKit/chromium/ChangeLog b/WebKit/chromium/ChangeLog
index 62c29bd..c42e63b 100644
--- a/WebKit/chromium/ChangeLog
+++ b/WebKit/chromium/ChangeLog
@@ -1,3 +1,19 @@
+2010-08-09  Vangelis Kokkevis  <vangelis at chromium.org>
+
+        Reviewed by Dimitri Glazkov.
+
+        Skip the slow software rendering path of GraphicsContext3D if accelerated
+        compositing is active. This fixes an issue with WebGL and the compositor
+        in which the software rendering of WebGL would cause the current GL context
+        to change while the compositor was processing layers. Tested by running
+        several WebGL samples both with the compositor enabled and disabled.
+        https://bugs.webkit.org/show_bug.cgi?id=43644
+
+        * src/GraphicsContext3D.cpp:
+        (WebCore::GraphicsContext3DInternal::GraphicsContext3DInternal):
+        (WebCore::GraphicsContext3DInternal::initialize):
+        (WebCore::GraphicsContext3DInternal::beginPaint):
+
 2010-08-06  James Hawkins  <jhawkins at chromium.org>
 
         Reviewed by Dimitri Glazkov.
diff --git a/WebKit/chromium/src/GraphicsContext3D.cpp b/WebKit/chromium/src/GraphicsContext3D.cpp
index a02872d..5b5afef 100644
--- a/WebKit/chromium/src/GraphicsContext3D.cpp
+++ b/WebKit/chromium/src/GraphicsContext3D.cpp
@@ -303,6 +303,7 @@ public:
 
 private:
     OwnPtr<WebKit::WebGraphicsContext3D> m_impl;
+    WebKit::WebViewImpl* m_webViewImpl;
 #if USE(ACCELERATED_COMPOSITING)
     RefPtr<CanvasLayerChromium> m_compositingLayer;
 #endif
@@ -321,9 +322,10 @@ private:
 };
 
 GraphicsContext3DInternal::GraphicsContext3DInternal()
+    : m_webViewImpl(0)
 #if PLATFORM(SKIA)
 #elif PLATFORM(CG)
-    : m_renderOutput(0)
+    , m_renderOutput(0)
 #else
 #error Must port to your platform
 #endif
@@ -354,11 +356,11 @@ bool GraphicsContext3DInternal::initialize(GraphicsContext3D::Attributes attrs,
     Chrome* chrome = static_cast<Chrome*>(hostWindow);
     WebKit::ChromeClientImpl* chromeClientImpl = static_cast<WebKit::ChromeClientImpl*>(chrome->client());
 
-    WebKit::WebViewImpl* webView = chromeClientImpl->webView();
+    m_webViewImpl = chromeClientImpl->webView();
 
-    if (!webView)
+    if (!m_webViewImpl)
         return false;
-    if (!webContext->initialize(webAttributes, webView)) {
+    if (!webContext->initialize(webAttributes, m_webViewImpl)) {
         delete webContext;
         return false;
     }
@@ -452,6 +454,10 @@ void GraphicsContext3DInternal::paintRenderingResultsToCanvas(CanvasRenderingCon
 
 void GraphicsContext3DInternal::beginPaint(CanvasRenderingContext* context)
 {
+    // If the gpu compositor is on then skip the readback and software rendering path.
+    if (m_webViewImpl->isAcceleratedCompositingActive())
+        return;
+
     paintRenderingResultsToCanvas(context);
 }
 

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list