Title: [100190] trunk/Source/WebKit2
Revision
100190
Author
[email protected]
Date
2011-11-14 14:22:02 -0800 (Mon, 14 Nov 2011)

Log Message

Intermittent asserts in TextureMapperGL::bindSurface on MiniBrowser startup
https://bugs.webkit.org/show_bug.cgi?id=72299

Patch by Viatcheslav Ostapenko <[email protected]> on 2011-11-14
Reviewed by Noam Rosenthal.

Added check that clipping rect is valid.
Clear GL error that might remain from QT GL operations.
Added GL error assert for scissor test operations.

* UIProcess/API/qt/qquickwebpage.cpp:
(QQuickWebPagePrivate::paintToCurrentGLContext):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (100189 => 100190)


--- trunk/Source/WebKit2/ChangeLog	2011-11-14 22:19:24 UTC (rev 100189)
+++ trunk/Source/WebKit2/ChangeLog	2011-11-14 22:22:02 UTC (rev 100190)
@@ -1,3 +1,17 @@
+2011-11-14  Viatcheslav Ostapenko  <[email protected]>
+
+        Intermittent asserts in TextureMapperGL::bindSurface on MiniBrowser startup
+        https://bugs.webkit.org/show_bug.cgi?id=72299
+
+        Reviewed by Noam Rosenthal.
+
+        Added check that clipping rect is valid.
+        Clear GL error that might remain from QT GL operations.
+        Added GL error assert for scissor test operations.
+
+        * UIProcess/API/qt/qquickwebpage.cpp:
+        (QQuickWebPagePrivate::paintToCurrentGLContext):
+
 2011-11-14  Anders Carlsson  <[email protected]>
 
         Only send progress notifications for the main frame

Modified: trunk/Source/WebKit2/UIProcess/API/qt/qquickwebpage.cpp (100189 => 100190)


--- trunk/Source/WebKit2/UIProcess/API/qt/qquickwebpage.cpp	2011-11-14 22:19:24 UTC (rev 100189)
+++ trunk/Source/WebKit2/UIProcess/API/qt/qquickwebpage.cpp	2011-11-14 22:22:02 UTC (rev 100190)
@@ -210,16 +210,25 @@
     float opacity = computeEffectiveOpacity(q);
     QRectF clipRect = q->parentItem()->mapRectToScene(q->parentItem()->boundingRect());
 
+    if (!clipRect.isValid())
+        return;
+
+    // Make sure that no GL error code stays from previous QT operations.
+    glGetError();
+
     glEnable(GL_SCISSOR_TEST);
+    ASSERT(!glGetError());
     const int left = clipRect.left();
     const int width = clipRect.width();
     const int bottom = q->canvas()->height() - (clipRect.bottom() + 1);
     const int height = clipRect.height();
 
     glScissor(left, bottom, width, height);
+    ASSERT(!glGetError());
 
     pageProxy->renderToCurrentGLContext(transform, opacity);
     glDisable(GL_SCISSOR_TEST);
+    ASSERT(!glGetError());
 }
 
 void QQuickWebPagePrivate::_q_onAfterSceneRender()
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to