CACFLayerTreeHost should use the new WKCACFView API for rendering. This will reduce memory usage (bug 31855) and move rendering onto a non-main thread (bug 39496).
<rdar://problem/8925496>
Created attachment 80351 [details] Split CACFLayerTreeHost into base and derived classes
Created attachment 80359 [details] Move LegacyCACFLayerTreeHost into its own files
Comment on attachment 80351 [details] Split CACFLayerTreeHost into base and derived classes View in context: https://bugs.webkit.org/attachment.cgi?id=80351&action=review > Source/WebCore/platform/graphics/ca/win/CACFLayerTreeHost.cpp:213 > + bool m_mightBeAbleToCreateDeviceLater; > + COMPtr<IDirect3DDevice9> m_d3dDevice; > + WKCACFContext* m_context; > + Timer<LegacyCACFLayerTreeHost> m_renderTimer; > + bool m_mustResetLostDeviceBeforeRendering; Can you sort these to optimize padding? > Source/WebCore/platform/graphics/ca/win/CACFLayerTreeHost.h:98 > CACFLayerTreeHostClient* m_client; > - bool m_mightBeAbleToCreateDeviceLater; > - COMPtr<IDirect3DDevice9> m_d3dDevice; > RefPtr<PlatformCALayer> m_rootLayer; > RefPtr<PlatformCALayer> m_rootChildLayer; > - WKCACFContext* m_context; > HWND m_window; > - Timer<CACFLayerTreeHost> m_renderTimer; > - bool m_mustResetLostDeviceBeforeRendering; > bool m_shouldFlushPendingGraphicsLayerChanges; > bool m_isFlushingLayerChanges; > HashSet<RefPtr<PlatformCALayer> > m_pendingAnimatedLayers; Ditto.
Comment on attachment 80359 [details] Move LegacyCACFLayerTreeHost into its own files View in context: https://bugs.webkit.org/attachment.cgi?id=80359&action=review > Source/WebCore/platform/graphics/ca/win/LegacyCACFLayerTreeHost.h:70 > + bool m_mightBeAbleToCreateDeviceLater; > + COMPtr<IDirect3DDevice9> m_d3dDevice; > + WKCACFContext* m_context; > + Timer<LegacyCACFLayerTreeHost> m_renderTimer; > + bool m_mustResetLostDeviceBeforeRendering; Put bools next to eachother.
Created attachment 80366 [details] Add WKCACFViewLayerTreeHost
Fixed in r76853, r76856, and r76858.
These changes broke ~36 animations, compositing, and transitions tests on the Windows 7 Release bots: https://bugs.webkit.org/show_bug.cgi?id=53302