Title: [232931] trunk/Source
- Revision
- 232931
- Author
- [email protected]
- Date
- 2018-06-18 08:40:33 -0700 (Mon, 18 Jun 2018)
Log Message
[Threaded paintingEngine] Fix rendering glitches
https://bugs.webkit.org/show_bug.cgi?id=186764
Patch by Karl Leplat <[email protected]> on 2018-06-18
Reviewed by Žan Doberšek.
Source/WebCore:
* platform/graphics/nicosia/NicosiaPaintingEngineBasic.cpp:
(Nicosia::PaintingEngineBasic::paint):
To keep backwards compatibility with no multi-threaded,
we call Nicosia::Buffer functions beginPainting() and completePainting().
Source/WebKit:
* Shared/CoordinatedGraphics/CoordinatedBackingStore.cpp:
(WebKit::CoordinatedBackingStoreTile::swapBuffers):
We call Nicosia::Buffer function waitUntilPaintingComplete()
in order to synchronize of using Nicosia:buffer between MainThread
and ThreadedCompositor.
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (232930 => 232931)
--- trunk/Source/WebCore/ChangeLog 2018-06-18 14:00:02 UTC (rev 232930)
+++ trunk/Source/WebCore/ChangeLog 2018-06-18 15:40:33 UTC (rev 232931)
@@ -1,3 +1,16 @@
+2018-06-18 Karl Leplat <[email protected]>
+
+ [Threaded paintingEngine] Fix rendering glitches
+ https://bugs.webkit.org/show_bug.cgi?id=186764
+
+ Reviewed by Žan Doberšek.
+
+ * platform/graphics/nicosia/NicosiaPaintingEngineBasic.cpp:
+ (Nicosia::PaintingEngineBasic::paint):
+ To keep backwards compatibility with no multi-threaded,
+ we call Nicosia::Buffer functions beginPainting() and completePainting().
+
+
2018-06-18 Tomas Popela <[email protected]>
Properly check the sscanf return valua
Modified: trunk/Source/WebCore/platform/graphics/nicosia/NicosiaPaintingEngineBasic.cpp (232930 => 232931)
--- trunk/Source/WebCore/platform/graphics/nicosia/NicosiaPaintingEngineBasic.cpp 2018-06-18 14:00:02 UTC (rev 232930)
+++ trunk/Source/WebCore/platform/graphics/nicosia/NicosiaPaintingEngineBasic.cpp 2018-06-18 15:40:33 UTC (rev 232931)
@@ -43,6 +43,8 @@
bool PaintingEngineBasic::paint(GraphicsLayer& layer, Ref<Buffer>&& buffer, const IntRect& sourceRect, const IntRect& mappedSourceRect, const IntRect& targetRect, float contentsScale)
{
+ buffer->beginPainting();
+
bool supportsAlpha = buffer->supportsAlpha();
PaintingContext::paint(buffer,
[&layer, sourceRect, mappedSourceRect, targetRect, contentsScale, supportsAlpha]
@@ -65,6 +67,9 @@
context.restore();
});
+
+ buffer->completePainting();
+
return true;
}
Modified: trunk/Source/WebKit/ChangeLog (232930 => 232931)
--- trunk/Source/WebKit/ChangeLog 2018-06-18 14:00:02 UTC (rev 232930)
+++ trunk/Source/WebKit/ChangeLog 2018-06-18 15:40:33 UTC (rev 232931)
@@ -1,3 +1,17 @@
+2018-06-18 Karl Leplat <[email protected]>
+
+ [Threaded paintingEngine] Fix rendering glitches
+ https://bugs.webkit.org/show_bug.cgi?id=186764
+
+ Reviewed by Žan Doberšek.
+
+ * Shared/CoordinatedGraphics/CoordinatedBackingStore.cpp:
+ (WebKit::CoordinatedBackingStoreTile::swapBuffers):
+ We call Nicosia::Buffer function waitUntilPaintingComplete()
+ in order to synchronize of using Nicosia:buffer between MainThread
+ and ThreadedCompositor.
+
+
2018-06-17 Chris Dumez <[email protected]>
Crash under SuspendedPageProxy::~SuspendedPageProxy()
Modified: trunk/Source/WebKit/Shared/CoordinatedGraphics/CoordinatedBackingStore.cpp (232930 => 232931)
--- trunk/Source/WebKit/Shared/CoordinatedGraphics/CoordinatedBackingStore.cpp 2018-06-18 14:00:02 UTC (rev 232930)
+++ trunk/Source/WebKit/Shared/CoordinatedGraphics/CoordinatedBackingStore.cpp 2018-06-18 15:40:33 UTC (rev 232931)
@@ -47,6 +47,7 @@
} else if (m_buffer->supportsAlpha() == m_texture->isOpaque())
m_texture->reset(m_tileRect.size(), m_buffer->supportsAlpha());
+ m_buffer->waitUntilPaintingComplete();
m_texture->updateContents(m_buffer->data(), m_sourceRect, m_bufferOffset, m_buffer->stride());
m_buffer = nullptr;
}
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes