SVG mix-blend-mode doesn't work when combined with clip-path

NEW
Unassigned

Status

()

Core
SVG
P3
normal
4 years ago
4 months ago

People

(Reporter: Peter Lai, Unassigned)

Tracking

(Blocks: 1 bug)

34 Branch
x86
Mac OS X
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

MozReview Requests

()

Submitter Diff Changes Open Issues Last Updated
Loading...
Error loading review requests:

Attachments

(3 attachments)

(Reporter)

Description

4 years ago
Created attachment 8460520 [details]
blend-mode-bug.svg

User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36

Steps to reproduce:

Open the attached file to view the repro.


Actual results:

When mix-blend-mode is used in conjunction with clip-path, the resulting colors are incorrect.


Expected results:

mix-blend-mode should correctly be applied regardless of whether clip paths are used. (NOTE: the mix-blend-mode experimental flag must be enabled).

Updated

4 years ago
Component: Untriaged → SVG
Product: Firefox → Core
Confirmed in 34.0a1 (2014-07-24), Win 7 x64
Status: UNCONFIRMED → NEW
Ever confirmed: true

Updated

2 years ago
Assignee: nobody → cku
See Also: → bug 1279409

Updated

2 years ago
See Also: bug 1279409

Comment 2

2 years ago
The first patch in bug 1279409 can "partially" fix the bug here. There are still another cause.

Comment 3

2 years ago
The painting result(the content of texture) is correct now. But the composition result of "#top_right" one is not right yet. I would suggest find a developer who is familiar with compositor to do further analysis. Deassign from myself.
Assignee: cku → nobody

Comment 4

2 years ago
Created attachment 8800148 [details]
Screenshot from 2016-10-12 16-29-12.png

Comment 5

2 years ago
After study, it's not compositor problem. I printed the layer tree in content and the blend mode of the layer was none.
So I traced back to ProcessDisplayItems. I found that for the wrong case, we create a temp BasicLayerManager and the layer created by nsDisplayBlendMode is contained in this BasicLayerManager. The PaintInactiveLayer result of the temp BasicLayerManager doesn't have the blend effect. The blend operation may be removed in bug 1279409.

Comment 6

2 years ago
Rendering result is not correct when nsDisplayMask contains a nsDisplayBlendMode child.
Why is the blend mode inside the mask? nsIFrame::BuildDisplayListForStackingContext should be creating the blend mode outside the mask.

Updated

2 years ago
Assignee: nobody → cku

Updated

2 years ago
Blocks: 1262352
Status: NEW → ASSIGNED
Priority: -- → P3
Comment hidden (mozreview-request)

Updated

4 months ago
Assignee: cku → nobody
Status: ASSIGNED → NEW
You need to log in before you can comment on or make changes to this bug.