Title: [174865] trunk/Source/WebKit/win
- Revision
- 174865
- Author
- [email protected]
- Date
- 2014-10-18 14:48:33 -0700 (Sat, 18 Oct 2014)
Log Message
[WinCairo] Repaint issues with accelerated compositing.
https://bugs.webkit.org/show_bug.cgi?id=137850
Patch by [email protected] <[email protected]> on 2014-10-18
Reviewed by Brent Fulgham.
There is sometimes missing content in accelerated compositing mode.
This is caused by not invalidating the non composited layer,
and not rendering when a flush did not complete.
* WebCoreSupport/AcceleratedCompositingContext.cpp:
(AcceleratedCompositingContext::flushAndRenderLayers): Also render when flush did not complete.
(AcceleratedCompositingContext::setNeedsDisplayInRect): Deleted.
* WebCoreSupport/AcceleratedCompositingContext.h: Ditto.
* WebView.cpp:
(WebView::addToDirtyRegion): Invalidate non composited layer.
(WebView::flushPendingGraphicsLayerChanges): Flush layers.
Modified Paths
Diff
Modified: trunk/Source/WebKit/win/ChangeLog (174864 => 174865)
--- trunk/Source/WebKit/win/ChangeLog 2014-10-18 19:04:31 UTC (rev 174864)
+++ trunk/Source/WebKit/win/ChangeLog 2014-10-18 21:48:33 UTC (rev 174865)
@@ -1,3 +1,22 @@
+2014-10-18 [email protected] <[email protected]>
+
+ [WinCairo] Repaint issues with accelerated compositing.
+ https://bugs.webkit.org/show_bug.cgi?id=137850
+
+ Reviewed by Brent Fulgham.
+
+ There is sometimes missing content in accelerated compositing mode.
+ This is caused by not invalidating the non composited layer,
+ and not rendering when a flush did not complete.
+
+ * WebCoreSupport/AcceleratedCompositingContext.cpp:
+ (AcceleratedCompositingContext::flushAndRenderLayers): Also render when flush did not complete.
+ (AcceleratedCompositingContext::setNeedsDisplayInRect): Deleted.
+ * WebCoreSupport/AcceleratedCompositingContext.h: Ditto.
+ * WebView.cpp:
+ (WebView::addToDirtyRegion): Invalidate non composited layer.
+ (WebView::flushPendingGraphicsLayerChanges): Flush layers.
+
2014-10-17 Chris Dumez <[email protected]>
Use is<>() / downcast<>() for RenderBox
Modified: trunk/Source/WebKit/win/WebCoreSupport/AcceleratedCompositingContext.cpp (174864 => 174865)
--- trunk/Source/WebKit/win/WebCoreSupport/AcceleratedCompositingContext.cpp 2014-10-18 19:04:31 UTC (rev 174864)
+++ trunk/Source/WebKit/win/WebCoreSupport/AcceleratedCompositingContext.cpp 2014-10-18 21:48:33 UTC (rev 174865)
@@ -216,18 +216,6 @@
scheduleLayerFlush();
}
-void AcceleratedCompositingContext::setNeedsDisplayInRect(const IntRect& rect)
-{
- if (!m_rootLayer)
- return;
- if (rect.isEmpty()) {
- m_rootLayer->setNeedsDisplay();
- return;
- }
- m_rootLayer->setNeedsDisplayInRect(rect);
- scheduleLayerFlush();
-}
-
void AcceleratedCompositingContext::resizeRootLayer(const IntSize& newSize)
{
if (!enabled())
@@ -302,8 +290,7 @@
if (m_context && !m_context->makeContextCurrent())
return;
- if (!flushPendingLayerChanges())
- return;
+ flushPendingLayerChanges();
compositeLayersToContext();
}
Modified: trunk/Source/WebKit/win/WebCoreSupport/AcceleratedCompositingContext.h (174864 => 174865)
--- trunk/Source/WebKit/win/WebCoreSupport/AcceleratedCompositingContext.h 2014-10-18 19:04:31 UTC (rev 174864)
+++ trunk/Source/WebKit/win/WebCoreSupport/AcceleratedCompositingContext.h 2014-10-18 21:48:33 UTC (rev 174865)
@@ -48,7 +48,6 @@
void setRootCompositingLayer(WebCore::GraphicsLayer*);
void setNonCompositedContentsNeedDisplay(const WebCore::IntRect&);
- void setNeedsDisplayInRect(const WebCore::IntRect&);
void scheduleLayerFlush();
void resizeRootLayer(const WebCore::IntSize&);
bool enabled();
Modified: trunk/Source/WebKit/win/WebView.cpp (174864 => 174865)
--- trunk/Source/WebKit/win/WebView.cpp 2014-10-18 19:04:31 UTC (rev 174864)
+++ trunk/Source/WebKit/win/WebView.cpp 2014-10-18 21:48:33 UTC (rev 174865)
@@ -868,7 +868,7 @@
#if USE(CA)
m_backingLayer->setNeedsDisplayInRect(dirtyRect);
#elif USE(TEXTURE_MAPPER_GL)
- m_acceleratedCompositingContext->setNeedsDisplayInRect(dirtyRect);
+ m_acceleratedCompositingContext->setNonCompositedContentsNeedDisplay(dirtyRect);
#endif
return;
}
@@ -6792,10 +6792,9 @@
FrameView* view = coreFrame->view();
if (!view)
return;
-#if USE(CA)
- if (!m_backingLayer)
+
+ if (!isAcceleratedCompositing())
return;
-#endif
view->updateLayoutAndStyleIfNeededRecursive();
@@ -6803,9 +6802,12 @@
// Updating layout might have taken us out of compositing mode.
if (m_backingLayer)
m_backingLayer->flushCompositingStateForThisLayerOnly();
-#endif
view->flushCompositingStateIncludingSubframes();
+#elif USE(TEXTURE_MAPPER_GL)
+ if (isAcceleratedCompositing())
+ m_acceleratedCompositingContext->flushPendingLayerChanges();
+#endif
}
class EnumTextMatches : public IEnumTextMatches
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes