Title: [119882] trunk/Source/WebCore
Revision
119882
Author
[email protected]
Date
2012-06-08 17:56:05 -0700 (Fri, 08 Jun 2012)

Log Message

[Cairo] [TextureMapperGL] Nvidia card does not update WebGL texture when interacting with canvas
https://bugs.webkit.org/show_bug.cgi?id=87797

Patch by Martin Robinson <[email protected]> on 2012-06-08
Reviewed by Philippe Normand.

No new tests. WebGL is already covered by WebGL tests and this
bug is only present on certain hardware.

After resolving multisampling before drawing the texture via the
TextureMapper, first rebind the multisampling framebuffer. This ensures
that the texture isn't active in two framebuffers at a time.

* platform/graphics/cairo/GraphicsContext3DPrivate.cpp:
(WebCore::GraphicsContext3DPrivate::paintToTextureMapper): Rebind the multisampling
framebuffer.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (119881 => 119882)


--- trunk/Source/WebCore/ChangeLog	2012-06-09 00:46:02 UTC (rev 119881)
+++ trunk/Source/WebCore/ChangeLog	2012-06-09 00:56:05 UTC (rev 119882)
@@ -1,3 +1,21 @@
+2012-06-08  Martin Robinson  <[email protected]>
+
+        [Cairo] [TextureMapperGL] Nvidia card does not update WebGL texture when interacting with canvas
+        https://bugs.webkit.org/show_bug.cgi?id=87797
+
+        Reviewed by Philippe Normand.
+
+        No new tests. WebGL is already covered by WebGL tests and this
+        bug is only present on certain hardware.
+
+        After resolving multisampling before drawing the texture via the
+        TextureMapper, first rebind the multisampling framebuffer. This ensures
+        that the texture isn't active in two framebuffers at a time.
+
+        * platform/graphics/cairo/GraphicsContext3DPrivate.cpp:
+        (WebCore::GraphicsContext3DPrivate::paintToTextureMapper): Rebind the multisampling
+        framebuffer.
+
 2012-06-08  Alexey Proskuryakov  <[email protected]>
 
         <rdar://problem/11412294> Add appropriate iOS default font settings

Modified: trunk/Source/WebCore/platform/graphics/cairo/GraphicsContext3DPrivate.cpp (119881 => 119882)


--- trunk/Source/WebCore/platform/graphics/cairo/GraphicsContext3DPrivate.cpp	2012-06-09 00:46:02 UTC (rev 119881)
+++ trunk/Source/WebCore/platform/graphics/cairo/GraphicsContext3DPrivate.cpp	2012-06-09 00:56:05 UTC (rev 119882)
@@ -69,11 +69,11 @@
 
     if (m_context->m_attrs.antialias && m_context->m_boundFBO == m_context->m_multisampleFBO) {
         GLContext* previousActiveContext = GLContext::getCurrent();
-
         if (previousActiveContext != m_glContext)
             m_context->makeContextCurrent();
 
         m_context->resolveMultisamplingIfNecessary();
+        glBindFramebuffer(GraphicsContext3D::FRAMEBUFFER, m_context->m_boundFBO);
 
         if (previousActiveContext && previousActiveContext != m_glContext)
             previousActiveContext->makeContextCurrent();
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to