https://bugs.webkit.org/show_bug.cgi?id=77478
Patch by Jonathan Backer <backer@chromium.org> on 2012-02-08
Reviewed by James Robinson.
Source/WebCore:
* platform/graphics/chromium/LayerRendererChromium.cpp:
(WebCore::LayerRendererChromium::clearRenderSurface):
(WebCore::LayerRendererChromium::drawRenderPass):
* platform/graphics/chromium/LayerRendererChromium.h:
(LayerRendererChromium):
LayoutTests:
* platform/chromium-gpu-linux/fast/canvas/canvas-text-alignment-expected.png:
* platform/chromium-gpu-linux/media/video-zoom-expected.png:
* platform/chromium-linux/compositing/direct-image-compositing-expected.png:
* platform/chromium-linux/compositing/geometry/ancestor-overflow-change-expected.png:
* platform/chromium-linux/compositing/geometry/fixed-in-composited-expected.png:
* platform/chromium-linux/compositing/geometry/tall-page-composited-expected.png:
* platform/chromium-linux/compositing/masks/masked-ancestor-expected.png:
* platform/chromium-linux/compositing/masks/multiple-masks-expected.png:
* platform/chromium-linux/compositing/masks/simple-composited-mask-expected.png:
* platform/chromium-linux/compositing/scaling/tiled-layer-recursion-expected.png:
* platform/chromium-linux/platform/chromium/compositing/layout-width-change-expected.png:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@107120
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
+2012-02-08 Jonathan Backer <backer@chromium.org>
+
+ [chromium] Disable root layer clears on release builds.
+ https://bugs.webkit.org/show_bug.cgi?id=77478
+
+ Reviewed by James Robinson.
+
+ * platform/chromium-gpu-linux/fast/canvas/canvas-text-alignment-expected.png:
+ * platform/chromium-gpu-linux/media/video-zoom-expected.png:
+ * platform/chromium-linux/compositing/direct-image-compositing-expected.png:
+ * platform/chromium-linux/compositing/geometry/ancestor-overflow-change-expected.png:
+ * platform/chromium-linux/compositing/geometry/fixed-in-composited-expected.png:
+ * platform/chromium-linux/compositing/geometry/tall-page-composited-expected.png:
+ * platform/chromium-linux/compositing/masks/masked-ancestor-expected.png:
+ * platform/chromium-linux/compositing/masks/multiple-masks-expected.png:
+ * platform/chromium-linux/compositing/masks/simple-composited-mask-expected.png:
+ * platform/chromium-linux/compositing/scaling/tiled-layer-recursion-expected.png:
+ * platform/chromium-linux/platform/chromium/compositing/layout-width-change-expected.png:
+
2012-02-07 Andy Estes <aestes@apple.com>
REGRESSION (r102983): ClicktoFlash drawing of old style youtube embeds missing until resize
+2012-02-08 Jonathan Backer <backer@chromium.org>
+
+ [chromium] Disable root layer clears on release builds.
+ https://bugs.webkit.org/show_bug.cgi?id=77478
+
+ Reviewed by James Robinson.
+
+ * platform/graphics/chromium/LayerRendererChromium.cpp:
+ (WebCore::LayerRendererChromium::clearRenderSurface):
+ (WebCore::LayerRendererChromium::drawRenderPass):
+ * platform/graphics/chromium/LayerRendererChromium.h:
+ (LayerRendererChromium):
+
2012-02-08 Anders Carlsson <andersca@apple.com>
Add a content shadow layer to the render layer compositor
m_currentRenderSurface = 0;
}
-void LayerRendererChromium::clearSurfaceForDebug(CCRenderSurface* renderSurface, CCRenderSurface* rootRenderSurface, const FloatRect& surfaceDamageRect)
+void LayerRendererChromium::clearRenderSurface(CCRenderSurface* renderSurface, CCRenderSurface* rootRenderSurface, const FloatRect& surfaceDamageRect)
{
- // Non-root layers should clear their entire contents to transparent. The root layer
+ // Non-root layers should clear their entire contents to transparent. On DEBUG builds, the root layer
// is cleared to blue to easily see regions that were not drawn on the screen. If we
// are using partial swap / scissor optimization, then the surface should only
// clear the damaged region, so that we don't accidentally clear un-changed portions
else
GLC(m_context.get(), m_context->disable(GraphicsContext3D::SCISSOR_TEST));
- m_context->clear(GraphicsContext3D::COLOR_BUFFER_BIT);
+#if defined(NDEBUG)
+ if (renderSurface != rootRenderSurface)
+#endif
+ m_context->clear(GraphicsContext3D::COLOR_BUFFER_BIT);
+
GLC(m_context.get(), m_context->enable(GraphicsContext3D::SCISSOR_TEST));
}
if (!useRenderSurface(renderSurface))
return;
- // FIXME: eventually we should place this under a debug flag.
- clearSurfaceForDebug(renderSurface, m_defaultRenderSurface, renderPass->surfaceDamageRect());
+ clearRenderSurface(renderSurface, m_defaultRenderSurface, renderPass->surfaceDamageRect());
const CCQuadList& quadList = renderPass->quadList();
for (size_t i = 0; i < quadList.size(); ++i)
void setDrawViewportRect(const IntRect&, bool flipY);
bool useRenderSurface(CCRenderSurface*);
- void clearSurfaceForDebug(CCRenderSurface*, CCRenderSurface* rootRenderSurface, const FloatRect& surfaceDamageRect);
+ void clearRenderSurface(CCRenderSurface*, CCRenderSurface* rootRenderSurface, const FloatRect& surfaceDamageRect);
void releaseRenderSurfaceTextures();