RESOLVED FIXED 196303
Non-separable blend modes in mix-blend-mode don't work on elements in compositing layers
https://bugs.webkit.org/show_bug.cgi?id=196303
Summary Non-separable blend modes in mix-blend-mode don't work on elements in composi...
Matt Perry
Reported 2019-03-27 10:05:53 PDT
If an element has both `mix-blend-mode` rule and has either: 1. Been promoted to a GPU layer, 2. intersects an element that has been promoted to a GPU layer 3. intersects an element that itself intersects an element that has been promoted to a GPU layer (possibly so on) The mix-blend-mode fails to take effect. Examples ================================= In the following examples the red box has been forced into GPU acceleration with `translateZ(0)` - `will-change: transform; transform: anything` also has the same effect. The blue and black boxes are not on a GPU layer. The black box has `mix-blend-mode: color` applied. Note: If any example fails to reproduce as per "Result", try opening the link in a separate, new tab (seriously). Sometimes these work as expected, even after refresh, and then don't when in a new tab. Example 1 --------- Blended element overlaps *only* non-accelerated element Visit https://0pl5r1jx3l.codesandbox.io/ Expected: Blend mode takes effect Result: Blend mode indeed takes effect With source https://codesandbox.io/s/0pl5r1jx3l Example 2 --------- Blended element overlaps both accelerated and non-accelerated elements Visit https://2xm9ormpkn.codesandbox.io/ Expected: Blend mode takes effect Result: Blend mode doesn't take effect With source https://codesandbox.io/s/2xm9ormpkn Example 3 --------- Blended element overlaps *only* non-accelerated element, but non-accelerated element overlaps accelerated element Visit https://0p56069jp.codesandbox.io/ Expected: Blend mode takes effect Result: Blend mode doesn't take effect With source https://codesandbox.io/s/0p56069jp
Attachments
Testcase (515 bytes, text/html)
2019-03-28 21:18 PDT, Simon Fraser (smfr)
no flags
Radar WebKit Bug Importer
Comment 1 2019-03-28 11:16:13 PDT
Simon Fraser (smfr)
Comment 2 2019-03-28 21:18:06 PDT
Holy React tests batman. Needs to transpile modules before it can show three divs?
Simon Fraser (smfr)
Comment 3 2019-03-28 21:18:18 PDT
Created attachment 366243 [details] Testcase
Simon Fraser (smfr)
Comment 4 2019-03-28 21:20:40 PDT
I think we just don't support the non-separable blend modes on GPU layers.
Simon Fraser (smfr)
Comment 5 2019-03-28 21:31:30 PDT
// FIXME: CA does't support non-separable blend modes on compositing filters.
Simon Fraser (smfr)
Comment 6 2024-09-23 16:19:22 PDT
EWS
Comment 7 2024-09-24 12:55:11 PDT
Committed 284170@main (4d83f317a465): <https://commits.webkit.org/284170@main> Reviewed commits have been landed. Closing PR #34129 and removing active labels.
EWS
Comment 8 2024-09-30 14:23:48 PDT
Committed 283286.157@safari-7620-branch (384f9e3d5bd2): <https://commits.webkit.org/283286.157@safari-7620-branch> Reviewed commits have been landed. Closing PR #1913 and removing active labels.
Note You need to log in before you can comment on or make changes to this bug.