RESOLVED FIXED 199513
[GTK][WPE] Enable support for CSS_COMPOSITING
https://bugs.webkit.org/show_bug.cgi?id=199513
Summary [GTK][WPE] Enable support for CSS_COMPOSITING
Carlos Alberto Lopez Perez
Reported 2019-07-05 05:45:37 PDT
Apple ports enabled it a lot of time ago: https://trac.webkit.org/r130460 Enabling this feature allow to support the CSS properties "mix-blend-mode" and "isolation" Examples: https://www.w3schools.com/cssref/tryit.asp?filename=trycss_mix-blend-mode https://developer.mozilla.org/en-US/docs/Web/CSS/isolation
Attachments
Patch (2.27 MB, patch)
2019-07-05 08:31 PDT, Carlos Alberto Lopez Perez
no flags
Patch (2.27 MB, patch)
2019-07-05 09:07 PDT, Carlos Alberto Lopez Perez
no flags
Patch (2.27 MB, patch)
2019-07-09 09:35 PDT, Carlos Alberto Lopez Perez
no flags
Carlos Alberto Lopez Perez
Comment 1 2019-07-05 08:31:08 PDT
Michael Catanzaro
Comment 2 2019-07-05 08:57:10 PDT
Comment on attachment 373496 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=373496&action=review Wow :( > Source/cmake/OptionsGTK.cmake:152 > +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CSS_COMPOSITING PRIVATE ON) r=me, but please enable this in WebKitFeatures.cmake instead since surely no port wants this off, right?
Konstantin Tokarev
Comment 3 2019-07-05 09:00:33 PDT
Given that no port-specific code is required, I think it should be on. Maybe it's even worth to remove this option entirely.
Carlos Alberto Lopez Perez
Comment 4 2019-07-05 09:02:25 PDT
(In reply to Michael Catanzaro from comment #2) > Comment on attachment 373496 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=373496&action=review > > Wow :( > > > Source/cmake/OptionsGTK.cmake:152 > > +WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CSS_COMPOSITING PRIVATE ON) > > r=me, but please enable this in WebKitFeatures.cmake instead since surely no > port wants this off, right? I'm not sure. Let's try that first on the EWS to test it doesn't break other ports.
Konstantin Tokarev
Comment 5 2019-07-05 09:05:08 PDT
Actually I'd like to get my words about platform-specific code back. According to my old research [1] it requires implementation of setBlendMode [1] https://github.com/qtwebkit/qtwebkit/issues/410
Carlos Alberto Lopez Perez
Comment 6 2019-07-05 09:07:58 PDT
Created attachment 373500 [details] Patch Enabling the feature globally. Testing EWS
Carlos Alberto Lopez Perez
Comment 7 2019-07-09 09:29:46 PDT
(In reply to Carlos Alberto Lopez Perez from comment #6) > Created attachment 373500 [details] > Patch > > Enabling the feature globally. Testing EWS The build breaks on AppleWin because it needs an implementation of PlatformCALayer::setBlendMode(). However, it passes on WinCairo. So, lets' try to enable this on all the ports but AppleWin. (In reply to Konstantin Tokarev from comment #5) > Actually I'd like to get my words about platform-specific code back. > According to my old research [1] it requires implementation of setBlendMode > > [1] https://github.com/qtwebkit/qtwebkit/issues/410 Not sure if that is needed anymore. The feature is working for me without doing that implementation.
Carlos Alberto Lopez Perez
Comment 8 2019-07-09 09:35:48 PDT
Created attachment 373723 [details] Patch Testing EWS
Konstantin Tokarev
Comment 9 2019-07-09 09:37:29 PDT
(In reply to Carlos Alberto Lopez Perez from comment #7) > Not sure if that is needed anymore. > The feature is working for me without doing that implementation. I'm not sure if it will work when subject transform is applied to element which makes its own layer
Carlos Alberto Lopez Perez
Comment 10 2019-07-09 09:42:44 PDT
(In reply to Konstantin Tokarev from comment #9) > (In reply to Carlos Alberto Lopez Perez from comment #7) > > Not sure if that is needed anymore. > > The feature is working for me without doing that implementation. > > I'm not sure if it will work when subject transform is applied to element > which makes its own layer Do you happen to have any test for that? I have ran all the 113 layout tests under css3/blending and 76 are passing (67.3% pass rate).
Konstantin Tokarev
Comment 11 2019-07-09 09:51:13 PDT
>Do you happen to have any test for that? I don't have such test, but it should be easy to make one: apply "transform: translateZ(0);" to element with mix-blend-mode/isolation/background-blend-mode or whatever property is being tested. It should make that element a separate TextureMapper layer.
Carlos Alberto Lopez Perez
Comment 12 2019-07-09 10:09:39 PDT
(In reply to Konstantin Tokarev from comment #11) > >Do you happen to have any test for that? > > I don't have such test, but it should be easy to make one: apply "transform: > translateZ(0);" to element with > mix-blend-mode/isolation/background-blend-mode or whatever property is being > tested. It should make that element a separate TextureMapper layer. Like this one https://svn.webkit.org/repository/webkit/trunk/LayoutTests/css3/blending/blend-mode-simple-composited.html right? Yes, it is one of the tests that are failing after enabling the feature. It is not doing the blending in that case. However, I think is worth enabling this feature now even if there are cases where it is still not working as it should.
Konstantin Tokarev
Comment 13 2019-07-09 10:13:24 PDT
(In reply to Carlos Alberto Lopez Perez from comment #12) > However, I think is worth enabling this feature now even if there are cases > where it is still not working as it should. If it does not introduce any visible artifacts anywhere, go ahead
Carlos Alberto Lopez Perez
Comment 14 2019-07-09 10:18:29 PDT
(In reply to Konstantin Tokarev from comment #13) > (In reply to Carlos Alberto Lopez Perez from comment #12) > > However, I think is worth enabling this feature now even if there are cases > > where it is still not working as it should. > > If it does not introduce any visible artifacts anywhere, go ahead No, it doesn't. I have tested several examples as well as checked all the css3/blending layout tests (with pixel tests enabled) and it either renders the blending correctly or is as bad as now (doesn't renders any blending). So its an improvement IMHO.
Michael Catanzaro
Comment 15 2019-07-09 13:23:09 PDT
Comment on attachment 373723 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=373723&action=review > Source/cmake/OptionsFTW.cmake:-144 Better to do > Source/cmake/OptionsWin.cmake:99 > + WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_CSS_COMPOSITING PUBLIC OFF) Yeah, this is nicer. This way we minimize the number of ports diverging from the WebKit default settings in WebKitFeatures.cmake.
Carlos Alberto Lopez Perez
Comment 16 2019-07-10 04:59:10 PDT
Note You need to log in before you can comment on or make changes to this bug.