Skip to content

Commit 036270b

Browse files
committed
Bug 1905611 - apply clipping to PictureCompositeMode::SVGFEGraph r=gfx-reviewers,gw
Differential Revision: https://phabricator.services.mozilla.com/D216637 UltraBlame original commit: ebe6cedc1f12804df683c9f2eb5b68ed12e51a83
1 parent 7336a49 commit 036270b

File tree

12 files changed

+1172
-1181
lines changed

12 files changed

+1172
-1181
lines changed

gfx/wr/webrender/src/picture.rs

Lines changed: 353 additions & 221 deletions
Large diffs are not rendered by default.

gfx/wr/webrender/src/render_task.rs

Lines changed: 544 additions & 884 deletions
Large diffs are not rendered by default.

gfx/wr/webrender/src/scene_building.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,10 @@ use
131131
api
132132
:
133133
:
134+
{
134135
FilterOpGraphPictureBufferId
136+
SVGFE_GRAPH_MAX
137+
}
135138
;
136139
use
137140
api
@@ -14449,7 +14452,7 @@ BUFFER_LIMIT
1444914452
:
1445014453
usize
1445114454
=
14452-
256
14455+
SVGFE_GRAPH_MAX
1445314456
;
1445414457
const
1445514458
SVGFE_INFLATE

gfx/wr/webrender_api/src/display_item.rs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5148,6 +5148,14 @@ subregion
51485148
:
51495149
LayoutRect
51505150
}
5151+
pub
5152+
const
5153+
SVGFE_GRAPH_MAX
5154+
:
5155+
usize
5156+
=
5157+
256
5158+
;
51515159
#
51525160
[
51535161
repr

gfx/wr/wrench/reftests/filters/reftest.list

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,33 @@ ref
107107
yaml
108108
fuzzy
109109
(
110+
12
111+
10000
112+
)
113+
=
114+
=
115+
svgfe
116+
-
117+
dropshadow
118+
-
119+
offscreen
120+
-
121+
source
122+
.
123+
yaml
124+
svgfe
125+
-
126+
dropshadow
127+
-
128+
offscreen
129+
-
130+
source
131+
-
132+
ref
133+
.
134+
yaml
135+
fuzzy
136+
(
110137
2
111138
10000
112139
)
Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
-
2+
-
3+
-
4+
root
5+
:
6+
items
7+
:
8+
-
9+
type
10+
:
11+
stacking
12+
-
13+
context
14+
bounds
15+
:
16+
[
17+
-
18+
130
19+
-
20+
94
21+
510
22+
510
23+
]
24+
filters
25+
:
26+
drop
27+
-
28+
shadow
29+
(
30+
[
31+
40
32+
40
33+
]
34+
10
35+
red
36+
)
37+
items
38+
:
39+
-
40+
type
41+
:
42+
stacking
43+
-
44+
context
45+
bounds
46+
:
47+
[
48+
10
49+
10
50+
200
51+
200
52+
]
53+
items
54+
:
55+
-
56+
type
57+
:
58+
rect
59+
bounds
60+
:
61+
[
62+
10
63+
10
64+
100
65+
100
66+
]
67+
color
68+
:
69+
[
70+
127
71+
127
72+
127
73+
1
74+
]
75+
-
76+
type
77+
:
78+
rect
79+
bounds
80+
:
81+
[
82+
50
83+
30
84+
100
85+
60
86+
]
87+
color
88+
:
89+
[
90+
192
91+
192
92+
192
93+
1
94+
]
Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,126 @@
1+
-
2+
-
3+
-
4+
root
5+
:
6+
items
7+
:
8+
-
9+
type
10+
:
11+
stacking
12+
-
13+
context
14+
bounds
15+
:
16+
[
17+
-
18+
130
19+
-
20+
94
21+
510
22+
510
23+
]
24+
filters
25+
:
26+
-
27+
svgfe
28+
:
29+
SourceGraphic
30+
-
31+
svgfe
32+
:
33+
SourceAlpha
34+
-
35+
svgfe
36+
:
37+
dropshadow
38+
linear
39+
:
40+
false
41+
subregion
42+
:
43+
[
44+
-
45+
200
46+
-
47+
200
48+
510
49+
510
50+
]
51+
color
52+
:
53+
red
54+
dx
55+
:
56+
40
57+
dy
58+
:
59+
40
60+
std_deviation_x
61+
:
62+
10
63+
std_deviation_y
64+
:
65+
10
66+
in
67+
:
68+
0
69+
items
70+
:
71+
-
72+
type
73+
:
74+
stacking
75+
-
76+
context
77+
bounds
78+
:
79+
[
80+
10
81+
10
82+
200
83+
200
84+
]
85+
items
86+
:
87+
-
88+
type
89+
:
90+
rect
91+
bounds
92+
:
93+
[
94+
10
95+
10
96+
100
97+
100
98+
]
99+
color
100+
:
101+
[
102+
127
103+
127
104+
127
105+
1
106+
]
107+
-
108+
type
109+
:
110+
rect
111+
bounds
112+
:
113+
[
114+
50
115+
30
116+
100
117+
60
118+
]
119+
color
120+
:
121+
[
122+
192
123+
192
124+
192
125+
1
126+
]

layout/reftests/image-element/reftest.list

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -295,10 +295,10 @@ if
295295
gfxSVGFE
296296
0
297297
-
298-
201
298+
255
299299
0
300300
-
301-
1486
301+
1983
302302
)
303303
=
304304
=

layout/reftests/svg/filters/svg-filter-chains/reftest.list

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ if
112112
gfxSVGFE
113113
0
114114
-
115-
1
115+
9
116116
0
117117
-
118118
1000000
@@ -270,10 +270,10 @@ if
270270
gfxSVGFE
271271
0
272272
-
273-
0
273+
9
274274
0
275275
-
276-
0
276+
1000000
277277
)
278278
=
279279
=
@@ -344,10 +344,10 @@ if
344344
gfxSVGFE
345345
0
346346
-
347-
0
347+
9
348348
0
349349
-
350-
0
350+
1000000
351351
)
352352
=
353353
=
@@ -442,7 +442,7 @@ if
442442
gfxSVGFE
443443
0
444444
-
445-
1
445+
9
446446
0
447447
-
448448
1000000
@@ -524,10 +524,10 @@ if
524524
gfxSVGFE
525525
0
526526
-
527-
0
527+
9
528528
0
529529
-
530-
0
530+
1000000
531531
)
532532
=
533533
=

layout/svg/FilterInstance.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7746,7 +7746,10 @@ constexpr
77467746
size_t
77477747
maxFilters
77487748
=
7749-
256
7749+
wr
7750+
:
7751+
:
7752+
SVGFE_GRAPH_MAX
77507753
;
77517754
int16_t
77527755
bufferIdMapping

0 commit comments

Comments
 (0)