Bug 169916

Summary: [GTK] Lots of css3/blending tests fail. Enable support for CSS_COMPOSITING
Product: WebKit Reporter: Carlos Alberto Lopez Perez <clopez>
Component: WebKitGTKAssignee: Nobody <webkit-unassigned>
Status: NEW ---    
Severity: Normal CC: bugs-noreply, lmoura, magomez
Priority: P2    
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
See Also: https://bugs.webkit.org/show_bug.cgi?id=68469
https://bugs.webkit.org/show_bug.cgi?id=99026
https://bugs.webkit.org/show_bug.cgi?id=199513

Description Carlos Alberto Lopez Perez 2017-03-21 07:18:59 PDT
Lot of CSS3 blending tests fail. The failure is obvious if you compare the pixel test images generated on WebKitGTK+ vs Mac port.

Possible cause: we are not enabling CSS_COMPOSITING.

Mac port enabled it a lot of time ago: https://trac.webkit.org/r130460

Most of the css3/blending tests are currently skipped due to bug 71849. I'm going to un-skip them and assign the css3/blending failures to this test.
Comment 1 Carlos Alberto Lopez Perez 2017-03-21 09:01:22 PDT
Some of the css3/blending test however seems to pass. I have rebaselined a bunch of them in https://trac.webkit.org/r214223 because the produced image looked similar enough to me to infer that the test was passing.

You can check that diffs by running this script and using the arrow keys and closing the window to check the next diff: http://sprunge.us/GTHK
Comment 2 Carlos Alberto Lopez Perez 2019-07-10 05:03:46 PDT
The feature has been enabled in r247297.

Most of the tests pass now, but there are still failures, like those related with blending on composited layers.
For more details check bug 199513 where it was enabled the feature
Comment 3 Miguel Gomez 2019-07-11 07:38:52 PDT
After r247297 we have this status:

new passes
css3/blending/svg-blend-multiply-alpha.html
css3/blending/svg-blend-normal.html
css3/blending/svg-blend-plus-darker.html
css3/blending/svg-blend-plus-lighter.html
css3/blending/svg-isolation-isolated-group.html

new failures (all of them pass on my system, so it must be a problem with the bot)
css3/blending/blend-mode-accelerated-with-multiple-stacking-contexts.html [ Failure ]
css3/blending/blend-mode-ancestor-clipping-layer.html [ Failure ]
css3/blending/blend-mode-background.html [ Failure ]
css3/blending/blend-mode-blended-element-overlapping-composited-sibling-should-have-compositing-layer.html [ Failure ]
css3/blending/blend-mode-isolation-accelerated-overflow-hidden.html [ Failure ]
css3/blending/blend-mode-isolation-flags-append-non-stacking-context-blending.html [ Failure ]
css3/blending/blend-mode-isolation-flags-append-stacking-context-blending.html [ Failure ]
css3/blending/blend-mode-isolation-flags-turn-off-blending-no-isolation.html [ Failure ]
css3/blending/blend-mode-isolation-flags-turn-off-blending.html [ Failure ]
css3/blending/blend-mode-isolation-flags-turn-off-stacking-context.html [ Failure ]
css3/blending/blend-mode-isolation-flags-turn-on-blending.html [ Failure ]
css3/blending/blend-mode-isolation-flags-turn-on-stacking-context.html [ Failure ]
css3/blending/blend-mode-overflow.html [ Failure ]
css3/blending/blend-mode-parent-of-composited-blended-has-layer.html [ Failure ]
css3/blending/blend-mode-property-parsing.html [ Failure ]
css3/blending/blend-mode-property.html [ Failure ]
css3/blending/blend-mode-simple.html [ Failure ]
css3/blending/blend-mode-transform-style.html [ Failure ]
css3/blending/blend-mode-with-composited-descendant-should-have-layer.html [ Failure ]
css3/blending/isolation-parsing.html [ Failure ]
css3/blending/repaint/blend-mode-isolate-stacking-context.html [ Failure ]
css3/blending/repaint/blend-mode-turn-off-isolation-no-effect.html [ Failure ]
css3/blending/repaint/blend-mode-turn-off-isolation.html [ Failure ]
css3/blending/svg-blend-layer-blend.html [ Failure ]
css3/blending/svg-blend-layer-clip-path.html [ Failure ]
css3/blending/svg-blend-layer-filter.html [ Failure ]
css3/blending/svg-blend-layer-mask.html [ Failure ]
css3/blending/svg-blend-layer-opacity.html [ Failure ]
css3/blending/blend-mode-body-child-background-color.html [ ImageOnlyFailure ]
css3/blending/blend-mode-body-child-isolate-html-background-color.html [ ImageOnlyFailure ]
css3/blending/blend-mode-body-child.html [ ImageOnlyFailure ]
css3/blending/blend-mode-body-element.html [ ImageOnlyFailure ]
css3/blending/blend-mode-html-element-screen.html [ ImageOnlyFailure ]
Comment 4 Miguel Gomez 2019-07-11 07:49:25 PDT
(In reply to Miguel Gomez from comment #3)
> After r247297 we have this status:

and more failures:

imported/blink/css3/blending/mix-blend-mode-background-size.html [ ImageOnlyFailure ]
imported/blink/css3/blending/mix-blend-mode-multiply.html [ ImageOnlyFailure ]
imported/blink/css3/blending/mix-blend-mode-with-opacity-change-js.html [ ImageOnlyFailure ]
imported/blink/css3/blending/mix-blend-mode-with-squashing-layer.html [ ImageOnlyFailure ]
imported/blink/css3/blending/svg-blend-overlapping-elements.html [ ImageOnlyFailure ]
imported/blink/css3/blending/svg-isolation-foreign-no-isolation.html [ ImageOnlyFailure ]
imported/blink/css3/blending/svg-isolation-nested-svg-no-isolation.html [ ImageOnlyFailure ]

from these, only this one is not passing in my system
imported/blink/css3/blending/mix-blend-mode-with-squashing-layer.html [ ImageOnlyFailure ]
Comment 5 Miguel Gomez 2019-07-11 07:57:43 PDT
and more failures (all of them passing on my system)

inspector/layers/layers-blending-compositing-reasons.html [ Failure ]
legacy-animation-engine/transitions/blendmode-transitions.html [ Failure ]
transitions/blendmode-transitions.html [ Failure ]
Comment 6 Carlos Alberto Lopez Perez 2019-07-11 08:06:33 PDT
I will check what's going on the bot. Please don't mark them as failing still.
Comment 7 Carlos Alberto Lopez Perez 2019-07-11 17:06:41 PDT
(In reply to Carlos Alberto Lopez Perez from comment #6)
> I will check what's going on the bot. Please don't mark them as failing
> still.

The test bot was not fully upgraded to Debian 10. I upgraded it. Now results are a bit better.

But even after that there are some css3/blending tests failing on the bot that pass on my dev machine (running Debian 10 as well).

I think it may be related to some configuration of something that I have, which happens to be different that on the bot. Because I can reproduce what happens on the bot by simply running the tests with an empty home like in:

HOME=$(mktemp -d) Tools/Scripts/run-webkit-tests --gtk css3/blending imported/blink/css3/blending

This happens when I do that:

Regressions: Unexpected text-only failures (5)
  css3/blending/svg-blend-layer-blend.html [ Failure ]
  css3/blending/svg-blend-layer-clip-path.html [ Failure ]
  css3/blending/svg-blend-layer-filter.html [ Failure ]
  css3/blending/svg-blend-layer-mask.html [ Failure ]
  css3/blending/svg-blend-layer-opacity.html [ Failure ]

Regressions: Unexpected image-only failures (1)
  imported/blink/css3/blending/mix-blend-mode-with-squashing-layer.html [ ImageOnlyFailure ]


Which doesn't happen if I use my $HOME. The thing is that the test passing in both cases (if you actually look at what the test does and the result), but since the layers are places in different places (more margin on the left in one case) it sets it as failing.

I will rebase this tests and look forward to propose a patch for run-webkit-tests so it runs with an empty home by default always.
Comment 8 Carlos Alberto Lopez Perez 2019-07-11 17:10:36 PDT
(In reply to Carlos Alberto Lopez Perez from comment #7)
> Regressions: Unexpected image-only failures (1)
>   imported/blink/css3/blending/mix-blend-mode-with-squashing-layer.html [
> ImageOnlyFailure ]
> 

This one is failing in both cases.
Comment 9 Carlos Alberto Lopez Perez 2019-07-11 17:51:10 PDT
(In reply to Carlos Alberto Lopez Perez from comment #7)
> I will rebase this tests

Done in r247376

> and look forward to propose a patch for
> run-webkit-tests so it runs with an empty home by default always.

See bug 199738
Comment 10 Lauro Moura 2021-02-26 11:31:59 PST
The following tests had the same baseline as mac/ios and are also passing on WPE. Moved them to glib platform and updated the expectation to be shared between both ports in r273569.

   css3/blending/svg-blend-color-burn.html
   css3/blending/svg-blend-color-dodge.html
   css3/blending/svg-blend-darken.html
   css3/blending/svg-blend-difference.html
   css3/blending/svg-blend-exclusion.html
   css3/blending/svg-blend-lighten.html
   css3/blending/svg-blend-multiply.html
   css3/blending/svg-blend-overlay.html
   css3/blending/svg-blend-screen.html
   css3/blending/svg-blend-soft-light.html