Bug 211883

Summary: [WinCairo][WK2] Use GraphicsLayerTextureMapper for Accelerated Compositing mode
Product: WebKit Reporter: Fujii Hironori <Hironori.Fujii>
Component: WebKit2Assignee: Fujii Hironori <Hironori.Fujii>
Status: RESOLVED FIXED    
Severity: Normal CC: annulen, cmarcelo, don.olmstead, ews-watchlist, gyuyoung.kim, luiz, noam, ross.kirsling, ryuan.choi, sergio, webkit-bug-importer, zeno
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
See Also: https://bugs.webkit.org/show_bug.cgi?id=186364
Attachments:
Description Flags
WIP patch
none
WIP patch
none
WIP patch
none
WIP patch
none
WIP patch
none
WIP patch
none
Patch don.olmstead: review+

Fujii Hironori
Reported 2020-05-13 23:17:22 PDT
[WinCairo][WK2] Use GraphicsLayerTextureMapper for Accelerated Compositing mode WinCairo WK1 is also using GraphicsLayerTextureMapper for AC mode. I experimented CoordinatedGraphicsLayer for WinCairo WK2. But, it has a problem (Bug 186364 Comment 45).
Attachments
WIP patch (24.41 KB, patch)
2020-05-13 23:18 PDT, Fujii Hironori
no flags
WIP patch (25.93 KB, patch)
2020-05-14 00:42 PDT, Fujii Hironori
no flags
WIP patch (23.18 KB, patch)
2020-05-14 14:28 PDT, Fujii Hironori
no flags
WIP patch (21.16 KB, patch)
2020-05-14 22:08 PDT, Fujii Hironori
no flags
WIP patch (21.65 KB, patch)
2020-05-18 22:20 PDT, Fujii Hironori
no flags
WIP patch (21.83 KB, patch)
2020-05-21 01:15 PDT, Fujii Hironori
no flags
Patch (29.32 KB, patch)
2020-05-24 14:07 PDT, Fujii Hironori
don.olmstead: review+
Fujii Hironori
Comment 1 2020-05-13 23:18:13 PDT
Created attachment 399337 [details] WIP patch
Fujii Hironori
Comment 2 2020-05-14 00:42:56 PDT
Created attachment 399339 [details] WIP patch
Fujii Hironori
Comment 3 2020-05-14 14:28:23 PDT
Created attachment 399409 [details] WIP patch
Fujii Hironori
Comment 4 2020-05-14 22:08:19 PDT
Created attachment 399455 [details] WIP patch
Fujii Hironori
Comment 5 2020-05-18 22:20:33 PDT
Created attachment 399710 [details] WIP patch
Fujii Hironori
Comment 6 2020-05-21 01:15:55 PDT
Created attachment 399942 [details] WIP patch
Fujii Hironori
Comment 7 2020-05-21 14:07:58 PDT
* createDisplayRefreshMonitor should be implemented * Use DisplayRefreshMonitor instead of Timer for layer flushing * WebKitTestRunner can't capture the window for pixel dump * Resizing the browser window cuases rendering gliches
Fujii Hironori
Comment 8 2020-05-24 14:07:26 PDT
Fujii Hironori
Comment 9 2020-05-26 13:31:24 PDT
Radar WebKit Bug Importer
Comment 10 2020-05-26 13:32:20 PDT
Fujii Hironori
Comment 11 2020-05-26 18:34:55 PDT
Oops, clang-cl can't compile. > [4732/5247] Building CXX object Source\WebKit\CMakeFiles\WebKit.dir\WebProcess\WebPage\CoordinatedGraphics\DrawingAreaCoordinatedGraphics.cpp.obj > FAILED: Source/WebKit/CMakeFiles/WebKit.dir/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp.obj > C:\PROGRA~1\LLVM\bin\clang-cl.exe /nologo -TP -DANGLE_ENABLE_D3D11 -DANGLE_ENABLE_D3D9 -DANGLE_ENABLE_ESSL -DANGLE_ENABLE_HLSL -DBUILDING_WEBKIT -DBUILDING_WITH_CMAKE=1 -DBUILDING_WebKit -DEGL_EGLEXT_PROTOTYPES -DEGL_EGL_PROTOTYPES=1 -DGL_API="" -DGL_APICALL="" -DGL_GLES_PROTOTYPES=1 -DGL_GLEXT_PROTOTYPES -DHAVE_CONFIG_H=1 -DNOCRYPT -DNOMINMAX -DSTATICALLY_LINKED_WITH_PAL -DSTATICALLY_LINKED_WITH_PAL=1 -DSTATICALLY_LINKED_WITH_WebCore -DUNICODE -DUSE_CAIRO=1 -DUSE_CURL=1 -DWINVER=0x601 -DWTF_PLATFORM_WIN_CAIRO=1 -DWebKit_EXPORTS -D_CRT_SECURE_NO_WARNINGS -D_HAS_EXCEPTIONS=0 -D_UNICODE -D_WIN32_WINNT=0x601 -D_WINDOWS -D_WINSOCKAPI_="" -IWebCore\PrivateHeaders -IWebKit\Headers -IWebKit\DerivedSources -IWebKit\DerivedSources\include -I..\..\Source\WebKit -I..\..\Source\WebKit\GPUProcess -I..\..\Source\WebKit\GPUProcess\graphics -I..\..\Source\WebKit\GPUProcess\media -I..\..\Source\WebKit\GPUProcess\webrtc -I..\..\Source\WebKit\NetworkProcess -I..\..\Source\WebKit\NetworkProcess\Classifier -I..\..\Source\WebKit\NetworkProcess\Cookies -I..\..\Source\WebKit\NetworkProcess\CustomProtocols -I..\..\Source\WebKit\NetworkProcess\Downloads -I..\..\Source\WebKit\NetworkProcess\FileAPI -I..\..\Source\WebKit\NetworkProcess\IndexedDB -I..\..\Source\WebKit\NetworkProcess\ServiceWorker -I..\..\Source\WebKit\NetworkProcess\WebStorage -I..\..\Source\WebKit\NetworkProcess\cache -I..\..\Source\WebKit\NetworkProcess\watchos -I..\..\Source\WebKit\NetworkProcess\webrtc -I..\..\Source\WebKit\Platform -I..\..\Source\WebKit\Platform\IPC -I..\..\Source\WebKit\PluginProcess -I..\..\Source\WebKit\Shared -I..\..\Source\WebKit\Shared\API -I..\..\Source\WebKit\Shared\API\c -I..\..\Source\WebKit\Shared\ApplePay -I..\..\Source\WebKit\Shared\Authentication -I..\..\Source\WebKit\Shared\CoreIPCSupport -I..\..\Source\WebKit\Shared\Databases -I..\..\Source\WebKit\Shared\Databases\IndexedDB -I..\..\Source\WebKit\Shared\FileAPI -I..\..\Source\WebKit\Shared\Gamepad -I..\..\Source\WebKit\Shared\Plugins -I..\..\Source\WebKit\Shared\Plugins\Netscape -I..\..\Source\WebKit\Shared\Plugins\Netscape\x11 -I..\..\Source\WebKit\Shared\RemoteLayerTree -I..\..\Source\WebKit\Shared\WebsiteData -I..\..\Source\WebKit\UIProcess -I..\..\Source\WebKit\UIProcess\API -I..\..\Source\WebKit\UIProcess\API\C -I..\..\Source\WebKit\UIProcess\API\cpp -I..\..\Source\WebKit\UIProcess\Authentication -I..\..\Source\WebKit\UIProcess\Automation -I..\..\Source\WebKit\UIProcess\Downloads -I..\..\Source\WebKit\UIProcess\Gamepad -I..\..\Source\WebKit\UIProcess\GPU -I..\..\Source\WebKit\UIProcess\Inspector -I..\..\Source\WebKit\UIProcess\Inspector\Agents -I..\..\Source\WebKit\UIProcess\Launcher -I..\..\Source\WebKit\UIProcess\Network -I..\..\Source\WebKit\UIProcess\Network\CustomProtocols -I..\..\Source\WebKit\UIProcess\Notifications -I..\..\Source\WebKit\UIProcess\Plugins -I..\..\Source\WebKit\UIProcess\RemoteLayerTree -I..\..\Source\WebKit\UIProcess\UserContent -I..\..\Source\WebKit\UIProcess\WebAuthentication -I..\..\Source\WebKit\UIProcess\WebAuthentication\Mock -I..\..\Source\WebKit\UIProcess\WebsiteData -I..\..\Source\WebKit\WebProcess -I..\..\Source\WebKit\WebProcess\ApplePay -I..\..\Source\WebKit\WebProcess\ApplicationCache -I..\..\Source\WebKit\WebProcess\Automation -I..\..\Source\WebKit\WebProcess\Cache -I..\..\Source\WebKit\WebProcess\Databases -I..\..\Source\WebKit\WebProcess\Databases\IndexedDB -I..\..\Source\WebKit\WebProcess\FileAPI -I..\..\Source\WebKit\WebProcess\FullScreen -I..\..\Source\WebKit\WebProcess\Gamepad -I..\..\Source\WebKit\WebProcess\Geolocation -I..\..\Source\WebKit\WebProcess\GPU -I..\..\Source\WebKit\WebProcess\GPU\graphics -I..\..\Source\WebKit\WebProcess\GPU\media -I..\..\Source\WebKit\WebProcess\GPU\webrtc -I..\..\Source\WebKit\WebProcess\IconDatabase -I..\..\Source\WebKit\WebProcess\InjectedBundle -I..\..\Source\WebKit\WebProcess\InjectedBundle\API -I..\..\Source\WebKit\WebProcess\InjectedBundle\API\c -I..\..\Source\WebKit\WebProcess\InjectedBundle\DOM -I..\..\Source\WebKit\WebProcess\Inspector -I..\..\Source\WebKit\WebProcess\Launching -I..\..\Source\WebKit\WebProcess\MediaCache -I..\..\Source\WebKit\WebProcess\MediaStream -I..\..\Source\WebKit\WebProcess\Network -I..\..\Source\WebKit\WebProcess\Network\webrtc -I..\..\Source\WebKit\WebProcess\Notifications -I..\..\Source\WebKit\WebProcess\OriginData -I..\..\Source\WebKit\WebProcess\Plugins -I..\..\Source\WebKit\WebProcess\Plugins\Netscape -I..\..\Source\WebKit\WebProcess\ResourceCache -I..\..\Source\WebKit\WebProcess\Storage -I..\..\Source\WebKit\WebProcess\UserContent -I..\..\Source\WebKit\WebProcess\WebCoreSupport -I..\..\Source\WebKit\WebProcess\WebPage -I..\..\Source\WebKit\WebProcess\WebPage\RemoteLayerTree -I..\..\Source\WebKit\WebProcess\WebStorage -I..\..\Source -I..\..\WebKitLibraries -I..\..\Source\WebKit\Platform\classifier -I..\..\Source\WebKit\Platform\generic -I..\..\Source\WebKit\PluginProcess\win -I..\..\Source\WebKit\Shared\API\c\win -I..\..\Source\WebKit\Shared\CoordinatedGraphics -I..\..\Source\WebKit\Shared\CoordinatedGraphics\threadedcompositor -I..\..\Source\WebKit\Shared\Plugins\win -I..\..\Source\WebKit\Shared\win -I..\..\Source\WebKit\UIProcess\API\C\cairo -I..\..\Source\WebKit\UIProcess\API\C\curl -I..\..\Source\WebKit\UIProcess\API\C\win -I..\..\Source\WebKit\UIProcess\API\cpp\win -I..\..\Source\WebKit\UIProcess\API\win -I..\..\Source\WebKit\UIProcess\CoordinatedGraphics -I..\..\Source\WebKit\UIProcess\Inspector\socket -I..\..\Source\WebKit\UIProcess\Inspector\win -I..\..\Source\WebKit\UIProcess\Plugins\win -I..\..\Source\WebKit\UIProcess\win -I..\..\Source\WebKit\WebProcess\InjectedBundle\API\win -I..\..\Source\WebKit\WebProcess\InjectedBundle\API\win\DOM -I..\..\Source\WebKit\WebProcess\Inspector\win -I..\..\Source\WebKit\WebProcess\WebCoreSupport\win -I..\..\Source\WebKit\WebProcess\WebPage\CoordinatedGraphics -I..\..\Source\WebKit\WebProcess\WebPage\win -I..\..\Source\WebKit\win -I..\..\Source\WebKit\NetworkProcess\curl -I..\..\Source\WebKit\WebProcess\WebCoreSupport\curl -I..\..\Source\WebKit\UIProcess\socket -I. -IDerivedSources\ForwardingHeaders -IJavaScriptCore\Headers -IJavaScriptCore\PrivateHeaders -IWTF\Headers -IPAL\Headers -I..\include\private -IANGLE\Headers -I..\..\WebKitLibraries\win\include -I..\..\WebKitLibraries\win\include\cairo /W4 -fdiagnostics-color=always -fcolor-diagnostics -Wno-noexcept-type -Wno-parentheses-equality -Qunused-arguments -Wwrite-strings -Wundef -Wpointer-arith -Wmissing-format-attribute -Wformat-security -Wcast-align -Wno-unknown-argument -Wno-nonportable-include-path -Wno-unknown-pragmas -Wno-macro-redefined -Wno-undef /DWIN32 /D_WINDOWS /GR- /EHsc- -fno-strict-aliasing /MD /O2 /Ob2 /DNDEBUG /wd4018 /wd4068 /wd4099 /wd4100 /wd4127 /wd4138 /wd4146 /wd4180 /wd4189 /wd4201 /wd4206 /wd4244 /wd4251 /wd4267 /wd4275 /wd4288 /wd4291 /wd4305 /wd4309 /wd4344 /wd4355 /wd4389 /wd4396 /wd4456 /wd4457 /wd4458 /wd4459 /wd4481 /wd4503 /wd4505 /wd4510 /wd4512 /wd4530 /wd4610 /wd4611 /wd4646 /wd4702 /wd4706 /wd4722 /wd4800 /wd4819 /wd4951 /wd4952 /wd4996 /wd6011 /wd6031 /wd6211 /wd6246 /wd6255 /wd6387 /wd4091 /Zi /GS /EHa- /EHc- /EHs- /fp:except- /analyze- /bigobj /utf-8 /validate-charset /Oy- -fmsc-version=1911 -Wno-unused-parameter -std:c++17 /showIncludes /FoSource\WebKit\CMakeFiles\WebKit.dir\WebProcess\WebPage\CoordinatedGraphics\DrawingAreaCoordinatedGraphics.cpp.obj /FdSource\WebKit\CMakeFiles\WebKit.dir\ -c ..\..\Source\WebKit\WebProcess\WebPage\CoordinatedGraphics\DrawingAreaCoordinatedGraphics.cpp > In file included from ..\..\Source\WebKit\WebProcess\WebPage\CoordinatedGraphics\DrawingAreaCoordinatedGraphics.cpp:28: > In file included from ..\..\Source\WebKit\config.h:42: > In file included from WTF\Headers\wtf/FastMalloc.h:26: > In file included from WTF\Headers\wtf/StdLibExtras.h:30: > C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.25.28610\include\memory(1757,27): error: invalid application of 'sizeof' to an incomplete type 'WebCore::TextureMapper' > static_assert(0 < sizeof(_Ty), "can't delete an incomplete type"); > ^~~~~~~~~~~ > C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.25.28610\include\memory(1873,13): note: in instantiation of member function 'std::default_delete<WebCore::TextureMapper>::operator()' requested here > _Mypair._Get_first()(_Mypair._Myval2); > ^ > ..\..\Source\WebKit\WebProcess\WebPage\CoordinatedGraphics/LayerTreeHostTextureMapper.h(54,7): note: in instantiation of member function 'std::unique_ptr<WebCore::TextureMapper, std::default_delete<WebCore::TextureMapper> >::~unique_ptr' requested here > class LayerTreeHost : public WebCore::GraphicsLayerClient { > ^ > C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.25.28610\include\memory(1873,13): note: in instantiation of member function 'std::default_delete<WebKit::LayerTreeHost>::operator()' requested here > _Mypair._Get_first()(_Mypair._Myval2); > ^ > ..\..\Source\WebKit\WebProcess\WebPage\CoordinatedGraphics\DrawingAreaCoordinatedGraphics.cpp(59,33): note: in instantiation of member function 'std::unique_ptr<WebKit::LayerTreeHost, std::default_delete<WebKit::LayerTreeHost> >::~unique_ptr' requested here > DrawingAreaCoordinatedGraphics::DrawingAreaCoordinatedGraphics(WebPage& webPage, const WebPageCreationParameters& parameters) > ^ > WebCore\PrivateHeaders\WebCore/TextureMapperFPSCounter.h(31,7): note: forward declaration of 'WebCore::TextureMapper' > class TextureMapper; > ^ > 1 error generated.
Fujii Hironori
Comment 12 2020-05-26 19:10:20 PDT
Note You need to log in before you can comment on or make changes to this bug.