Title: [211358] trunk/Source/WebCore
Revision
211358
Author
[email protected]
Date
2017-01-30 00:47:30 -0800 (Mon, 30 Jan 2017)

Log Message

[Threaded Compositor] Crash in GraphicsContext3D::deleteTexture when destroying TextureMapperPlatformLayerProxy
https://bugs.webkit.org/show_bug.cgi?id=167575

Reviewed by Žan Doberšek.

We should clear all the buffers on invalidate to ensure we don't have textures alive after CoordinatedGraphicsScene::purgeGLResources().

Fix crash in media/video-poster-background.html.

* platform/graphics/texmap/TextureMapperPlatformLayerProxy.cpp:
(WebCore::TextureMapperPlatformLayerProxy::invalidate): Clear current, pending and all used buffers.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (211357 => 211358)


--- trunk/Source/WebCore/ChangeLog	2017-01-30 05:55:34 UTC (rev 211357)
+++ trunk/Source/WebCore/ChangeLog	2017-01-30 08:47:30 UTC (rev 211358)
@@ -1,3 +1,17 @@
+2017-01-30  Carlos Garcia Campos  <[email protected]>
+
+        [Threaded Compositor] Crash in GraphicsContext3D::deleteTexture when destroying TextureMapperPlatformLayerProxy
+        https://bugs.webkit.org/show_bug.cgi?id=167575
+
+        Reviewed by Žan Doberšek.
+
+        We should clear all the buffers on invalidate to ensure we don't have textures alive after CoordinatedGraphicsScene::purgeGLResources().
+
+        Fix crash in media/video-poster-background.html.
+
+        * platform/graphics/texmap/TextureMapperPlatformLayerProxy.cpp:
+        (WebCore::TextureMapperPlatformLayerProxy::invalidate): Clear current, pending and all used buffers.
+
 2017-01-29  Carlos Garcia Campos  <[email protected]>
 
         [Threaded Compositor] Crash on WebCore::GLContext::version()

Modified: trunk/Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayerProxy.cpp (211357 => 211358)


--- trunk/Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayerProxy.cpp	2017-01-30 05:55:34 UTC (rev 211357)
+++ trunk/Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayerProxy.cpp	2017-01-30 08:47:30 UTC (rev 211358)
@@ -78,6 +78,11 @@
         m_compositor = nullptr;
         m_targetLayer = nullptr;
 
+        m_currentBuffer = nullptr;
+        m_pendingBuffer = nullptr;
+        m_releaseUnusedBuffersTimer.stop();
+        m_usedBuffers.clear();
+
         // Clear the timer and dispatch the update function manually now.
         m_compositorThreadUpdateTimer = nullptr;
         if (!m_compositorThreadUpdateFunction)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to