Item not visible if it has both a clip path and a mask applied
Categories
(Core :: Graphics: WebRender, defect, P3)
Tracking
()
Tracking | Status | |
---|---|---|
firefox99 | --- | verified |
People
(Reporter: nical, Assigned: jrmuizel)
References
Details
Attachments
(5 files)
I don't know if this scenario can occur outside of the blob grouping context. When an active item (could be an image, or some other type of content like a blob group) has a clip path it renders properly, if it has a mask it render propery, but if it has both, it does not appear on screen.
In the attached test case, the first row has images which are active if the pref gfx.webrender.svg-images is enabled, and the second row has solid rects which are made active by wrapping them into will-change:opacity containers.
From left to right we have both a clip path and mask applied, only a clip mask and finally only a mask.
Currently, the left-most case (clip path + mask) isn't shown (unless the pref is off in the image case).
Reporter | ||
Comment 1•2 years ago
|
||
The interesting part of the WebRender display list:
PushReferenceFrame(()),// [19]
PushStackingContext((
origin: (0, 0),
spatial_id: (4, (1, 2)),
prim_flags: (
bits: 1,
),
stacking_context: (
transform_style: Flat,
mix_blend_mode: Normal,
clip_id: Some(Clip(0, (1, 2))),
raster_space: Screen,
flags: (
bits: 0,
),
),
)),// [20]
ImageMaskClip((
id: Clip(4, (1, 2)),
parent_space_and_clip: (
spatial_id: (4, (1, 2)),
clip_id: Clip(0, (1, 2)),
),
image_mask: (
image: ((3), 10),
rect: (
min: (-79, -23),
max: (20, 70),
),
repeat: false,
),
fill_rule: Nonzero,
)),// [21]
PushStackingContext((
origin: (0, 0),
spatial_id: (4, (1, 2)),
prim_flags: (
bits: 1,
),
stacking_context: (
transform_style: Flat,
mix_blend_mode: Normal,
clip_id: Some(Clip(4, (1, 2))),
raster_space: Screen,
flags: (
bits: 0,
),
),
)),// [22]
Image((
common: (
clip_rect: (
min: (-78.916664, -22.35),
max: (20, 70),
),
clip_id: Clip(0, (1, 2)),
spatial_id: (4, (1, 2)),
flags: (
bits: 1,
),
),
bounds: (
min: (-78.916664, -22.35),
max: (21.083336, 77.65),
),
image_key: ((3), 3),
image_rendering: Auto,
alpha_type: PremultipliedAlpha,
color: (
r: 1,
g: 1,
b: 1,
a: 1,
),
)),// [23]
PopStackingContext,// [24]
ImageMaskClip((
id: Clip(5, (1, 2)),
parent_space_and_clip: (
spatial_id: (4, (1, 2)),
clip_id: Clip(0, (1, 2)),
),
image_mask: (
image: ((3), 11),
rect: (
min: (60, -30),
max: (160, 70),
),
repeat: false,
),
fill_rule: Nonzero,
)),// [25]
PushStackingContext((
origin: (0, 0),
spatial_id: (4, (1, 2)),
prim_flags: (
bits: 1,
),
stacking_context: (
transform_style: Flat,
mix_blend_mode: Normal,
clip_id: Some(Clip(5, (1, 2))),
raster_space: Screen,
flags: (
bits: 0,
),
),
)),// [26]
Image((
common: (
clip_rect: (
min: (60, -30),
max: (160, 70),
),
clip_id: Clip(0, (1, 2)),
spatial_id: (4, (1, 2)),
flags: (
bits: 1,
),
),
bounds: (
min: (60, -30),
max: (160, 70),
),
image_key: ((3), 3),
image_rendering: Auto,
alpha_type: PremultipliedAlpha,
color: (
r: 1,
g: 1,
b: 1,
a: 1,
),
)),// [27]
PopStackingContext,// [28]
ImageMaskClip((
id: Clip(6, (1, 2)),
parent_space_and_clip: (
spatial_id: (4, (1, 2)),
clip_id: Clip(0, (1, 2)),
),
image_mask: (
image: ((3), 12),
rect: (
min: (180, -30),
max: (280, 70),
),
repeat: false,
),
fill_rule: Nonzero,
)),// [29]
PushStackingContext((
origin: (0, 0),
spatial_id: (4, (1, 2)),
prim_flags: (
bits: 1,
),
stacking_context: (
transform_style: Flat,
mix_blend_mode: Normal,
clip_id: Some(Clip(6, (1, 2))),
raster_space: Screen,
flags: (
bits: 0,
),
),
)),// [30]
Image((
common: (
clip_rect: (
min: (180, -30),
max: (280, 70),
),
clip_id: Clip(0, (1, 2)),
spatial_id: (4, (1, 2)),
flags: (
bits: 1,
),
),
bounds: (
min: (180, -30),
max: (280, 70),
),
image_key: ((3), 3),
image_rendering: Auto,
alpha_type: PremultipliedAlpha,
color: (
r: 1,
g: 1,
b: 1,
a: 1,
),
)),// [31]
PopStackingContext,// [32]
ImageMaskClip((
id: Clip(7, (1, 2)),
parent_space_and_clip: (
spatial_id: (4, (1, 2)),
clip_id: Clip(0, (1, 2)),
),
image_mask: (
image: ((3), 6),
rect: (
min: (-80, 100),
max: (20, 200),
),
repeat: false,
),
fill_rule: Nonzero,
)),// [33]
PushStackingContext((
origin: (0, 0),
spatial_id: (4, (1, 2)),
prim_flags: (
bits: 1,
),
stacking_context: (
transform_style: Flat,
mix_blend_mode: Normal,
clip_id: Some(Clip(7, (1, 2))),
raster_space: Screen,
flags: (
bits: 0,
),
),
)),// [34]
PushStackingContext((
origin: (0, 0),
spatial_id: (4, (1, 2)),
prim_flags: (
bits: 1,
),
stacking_context: (
transform_style: Flat,
mix_blend_mode: Normal,
clip_id: Some(Clip(0, (1, 2))),
raster_space: Screen,
flags: (
bits: 0,
),
),
)),// [35]
HitTest((
common: (
clip_rect: (
min: (-80, 100),
max: (20, 200),
),
clip_id: Clip(0, (1, 2)),
spatial_id: (4, (1, 2)),
flags: (
bits: 1,
),
),
tag: (2, 3),
)),// [36]
Image((
common: (
clip_rect: (
min: (-80, 100),
max: (20, 200),
),
clip_id: Clip(0, (1, 2)),
spatial_id: (4, (1, 2)),
flags: (
bits: 1,
),
),
bounds: (
min: (-80, 100),
max: (20, 200),
),
image_key: ((3), 7),
image_rendering: Auto,
alpha_type: PremultipliedAlpha,
color: (
r: 1,
g: 1,
b: 1,
a: 1,
),
)),// [37]
PopStackingContext,// [38]
PopStackingContext,// [39]
PushStackingContext((
origin: (0, 0),
spatial_id: (4, (1, 2)),
prim_flags: (
bits: 1,
),
stacking_context: (
transform_style: Flat,
mix_blend_mode: Normal,
clip_id: Some(Clip(0, (1, 2))),
raster_space: Screen,
flags: (
bits: 0,
),
),
)),// [40]
HitTest((
common: (
clip_rect: (
min: (60, 100),
max: (160, 200),
),
clip_id: Clip(0, (1, 2)),
spatial_id: (4, (1, 2)),
flags: (
bits: 1,
),
),
tag: (2, 3),
)),// [41]
Image((
common: (
clip_rect: (
min: (60, 100),
max: (160, 200),
),
clip_id: Clip(0, (1, 2)),
spatial_id: (4, (1, 2)),
flags: (
bits: 1,
),
),
bounds: (
min: (60, 100),
max: (160, 200),
),
image_key: ((3), 8),
image_rendering: Auto,
alpha_type: PremultipliedAlpha,
color: (
r: 1,
g: 1,
b: 1,
a: 1,
),
)),// [42]
PopStackingContext,// [43]
PushStackingContext((
origin: (0, 0),
spatial_id: (4, (1, 2)),
prim_flags: (
bits: 1,
),
stacking_context: (
transform_style: Flat,
mix_blend_mode: Normal,
clip_id: Some(Clip(0, (1, 2))),
raster_space: Screen,
flags: (
bits: 0,
),
),
)),// [44]
HitTest((
common: (
clip_rect: (
min: (180, 100),
max: (280, 200),
),
clip_id: Clip(0, (1, 2)),
spatial_id: (4, (1, 2)),
flags: (
bits: 1,
),
),
tag: (2, 3),
)),// [45]
Image((
common: (
clip_rect: (
min: (180, 100),
max: (280, 200),
),
clip_id: Clip(0, (1, 2)),
spatial_id: (4, (1, 2)),
flags: (
bits: 1,
),
),
bounds: (
min: (180, 100),
max: (280, 200),
),
image_key: ((3), 9),
image_rendering: Auto,
alpha_type: PremultipliedAlpha,
color: (
r: 1,
g: 1,
b: 1,
a: 1,
),
)),// [46]
PopStackingContext,// [47]
PopStackingContext,// [48]
PopReferenceFrame,// [49]
Reporter | ||
Updated•2 years ago
|
Reporter | ||
Comment 2•2 years ago
•
|
||
Blob logging:
attempting to enter the grouping code
actually entering the grouping code
DoGroupingForDisplayList
Inherrited scale 1.000000 1.000000
LayerBounds: 0 0 824 1086
VisibleRect: 0 0 824 1086
Inherrited scale 1.000000 1.000000
Property change. Deleting blob
App unit change 0 -> 60
Scale 0.000000 0.000000 -> 1.000000 1.000000
items: 0
----------
* 0x7f942e8c2378 CompositorHitTestInfo
* 0x7f942e8c2418 DisplaySVGGeometry
* 0x7f942e8c3cd0 nsDisplayTransform
* 0x7f942e8c2730 nsDisplayContainer
* 0x7f942e8c25f8 Mask
* 0x7f942e8c24b8 CompositorHitTestInfo
* 0x7f942e8c2558 DisplaySVGGeometry
* 0x7f942e8c2aa0 nsDisplayContainer
* 0x7f942e8c2968 Mask
* 0x7f942e8c27e0 CompositorHitTestInfo
* 0x7f942e8c28c8 DisplaySVGGeometry
* 0x7f942e8c2e10 nsDisplayContainer
* 0x7f942e8c2cd8 Mask
* 0x7f942e8c2b50 CompositorHitTestInfo
* 0x7f942e8c2c38 DisplaySVGGeometry
* 0x7f942e8c32f0 nsDisplayContainer
* 0x7f942e8c31b8 Mask
* 0x7f942e8c3048 Opacity
* 0x7f942e8c2ec0 CompositorHitTestInfo
* 0x7f942e8c2fa8 DisplaySVGGeometry
* 0x7f942e8c3788 nsDisplayContainer
* 0x7f942e8c3650 Mask
* 0x7f942e8c34e0 Opacity
* 0x7f942e8c33a0 CompositorHitTestInfo
* 0x7f942e8c3440 DisplaySVGGeometry
* 0x7f942e8c3c20 nsDisplayContainer
* 0x7f942e8c3ae8 Mask
* 0x7f942e8c3978 Opacity
* 0x7f942e8c3838 CompositorHitTestInfo
* 0x7f942e8c38d8 DisplaySVGGeometry
----------
Allocating blob data
clippedImageRect 0 0 824 1086
imageSize: 824 1086
pre mInvalidRect: CompositorHitTestInfo 0x7f942e875c78-25 - inv: 0 0 0 0
CGC CompositorHitTestInfo 0 0 0 0
0 0, 1.000000 1.000000
mRect 0 0 0 0
post mInvalidRect: 0 0 0 0
Including CompositorHitTestInfo of 1
Allocating blob data
clippedImageRect 0 0 824 1086
imageSize: 824 1086
pre mInvalidRect: DisplaySVGGeometry 0x7f942e875c78-58 - inv: 0 0 0 0
CGC DisplaySVGGeometry 0 0 49440 65160
0 0, 1.000000 1.000000
mRect 0 0 824 1086
post mInvalidRect: 0 0 0 0
Including DisplaySVGGeometry of 2
active: 0
Item nsDisplayTransform is active
app unit change following: 0 60
Inner group size change
items: 0
Begin EndGroup
mDisplayItems
: 0x7f942e875c78-25
: 0x7f942e875c78-58
mInvalidRect: 0 0 0 0
Trying CompositorHitTestInfo 0x7f942e875c78-25 0 0 0 0
Trying DisplaySVGGeometry 0x7f942e875c78-58 0 0 824 1086
paint check invalid 824 1086 - 824 1086
painting DisplaySVGGeometry 0x7f942e875c78-58
1 Finish
No previous key making new one 1
PushImage: 0.000000 0.000000 824.000000 1086.000000
End EndGroup
actually entering the grouping code
DoGroupingForDisplayList
Inherrited scale 1.000000 1.000000
LayerBounds: -80 -30 360 230
VisibleRect: -80 -30 360 230
Inherrited scale 1.000000 1.000000
Property change. Deleting blob
App unit change 0 -> 60
Scale 0.000000 0.000000 -> 1.000000 1.000000
items: 0
----------
* 0x7f942e8c2730 nsDisplayContainer
* 0x7f942e8c25f8 Mask
* 0x7f942e8c24b8 CompositorHitTestInfo
* 0x7f942e8c2558 DisplaySVGGeometry
* 0x7f942e8c2aa0 nsDisplayContainer
* 0x7f942e8c2968 Mask
* 0x7f942e8c27e0 CompositorHitTestInfo
* 0x7f942e8c28c8 DisplaySVGGeometry
* 0x7f942e8c2e10 nsDisplayContainer
* 0x7f942e8c2cd8 Mask
* 0x7f942e8c2b50 CompositorHitTestInfo
* 0x7f942e8c2c38 DisplaySVGGeometry
* 0x7f942e8c32f0 nsDisplayContainer
* 0x7f942e8c31b8 Mask
* 0x7f942e8c3048 Opacity
* 0x7f942e8c2ec0 CompositorHitTestInfo
* 0x7f942e8c2fa8 DisplaySVGGeometry
* 0x7f942e8c3788 nsDisplayContainer
* 0x7f942e8c3650 Mask
* 0x7f942e8c34e0 Opacity
* 0x7f942e8c33a0 CompositorHitTestInfo
* 0x7f942e8c3440 DisplaySVGGeometry
* 0x7f942e8c3c20 nsDisplayContainer
* 0x7f942e8c3ae8 Mask
* 0x7f942e8c3978 Opacity
* 0x7f942e8c3838 CompositorHitTestInfo
* 0x7f942e8c38d8 DisplaySVGGeometry
----------
Item nsDisplayContainer is active
app unit change following: 0 60
Inner group size change
items: 0
Begin EndGroup
actually entering the grouping code
DoGroupingForDisplayList
Inherrited scale 1.000000 1.000000
LayerBounds: -79 -23 99 93
VisibleRect: -79 -23 99 93
Inherrited scale 1.000000 1.000000
Property change. Deleting blob
App unit change 0 -> 60
Scale 0.000000 0.000000 -> 1.000000 1.000000
items: 0
----------
* 0x7f942e8c25f8 Mask
* 0x7f942e8c24b8 CompositorHitTestInfo
* 0x7f942e8c2558 DisplaySVGGeometry
----------
Item Mask is active
app unit change following: 0 60
Inner group size change
items: 0
Begin EndGroup
actually entering the grouping code
DoGroupingForDisplayList
Inherrited scale 1.000000 1.000000
LayerBounds: -79 -23 99 93
VisibleRect: -79 -23 99 93
Inherrited scale 1.000000 1.000000
Property change. Deleting blob
App unit change 0 -> 60
Scale 0.000000 0.000000 -> 1.000000 1.000000
items: 0
----------
* 0x7f942e8c24b8 CompositorHitTestInfo
* 0x7f942e8c2558 DisplaySVGGeometry
----------
Allocating blob data
clippedImageRect -79 -23 99 93
imageSize: 99 93
pre mInvalidRect: CompositorHitTestInfo 0x7f942e8760d8-25 - inv: 0 0 0 0
CGC CompositorHitTestInfo 0 0 0 0
-79 -23, 1.000000 1.000000
mRect 0 0 0 0
post mInvalidRect: 0 0 0 0
Including CompositorHitTestInfo of 1
Item DisplaySVGGeometry is active
app unit change following: 0 60
Inner group size change
items: 0
Begin EndGroup
Begin EndGroup
Begin EndGroup
Item nsDisplayContainer is active
app unit change following: 0 60
Inner group size change
items: 0
Begin EndGroup
actually entering the grouping code
DoGroupingForDisplayList
Inherrited scale 1.000000 1.000000
LayerBounds: 60 -30 100 100
VisibleRect: 60 -30 100 100
Inherrited scale 1.000000 1.000000
Property change. Deleting blob
App unit change 0 -> 60
Scale 0.000000 0.000000 -> 1.000000 1.000000
items: 0
----------
* 0x7f942e8c2968 Mask
* 0x7f942e8c27e0 CompositorHitTestInfo
* 0x7f942e8c28c8 DisplaySVGGeometry
----------
Item Mask is active
app unit change following: 0 60
Inner group size change
items: 0
Begin EndGroup
actually entering the grouping code
DoGroupingForDisplayList
Inherrited scale 1.000000 1.000000
LayerBounds: 60 -30 100 100
VisibleRect: 60 -30 100 100
Inherrited scale 1.000000 1.000000
Property change. Deleting blob
App unit change 0 -> 60
Scale 0.000000 0.000000 -> 1.000000 1.000000
items: 0
----------
* 0x7f942e8c27e0 CompositorHitTestInfo
* 0x7f942e8c28c8 DisplaySVGGeometry
----------
Allocating blob data
clippedImageRect 60 -30 100 100
imageSize: 100 100
pre mInvalidRect: CompositorHitTestInfo 0x7f942e876350-25 - inv: 0 0 0 0
CGC CompositorHitTestInfo 3000 0 0 0
60 -30, 1.000000 1.000000
mRect 60 0 0 0
post mInvalidRect: 0 0 0 0
Including CompositorHitTestInfo of 1
Item DisplaySVGGeometry is active
app unit change following: 0 60
Inner group size change
items: 0
Begin EndGroup
Begin EndGroup
Begin EndGroup
Item nsDisplayContainer is active
app unit change following: 0 60
Inner group size change
items: 0
Begin EndGroup
actually entering the grouping code
DoGroupingForDisplayList
Inherrited scale 1.000000 1.000000
LayerBounds: 180 -30 100 100
VisibleRect: 180 -30 100 100
Inherrited scale 1.000000 1.000000
Property change. Deleting blob
App unit change 0 -> 60
Scale 0.000000 0.000000 -> 1.000000 1.000000
items: 0
----------
* 0x7f942e8c2cd8 Mask
* 0x7f942e8c2b50 CompositorHitTestInfo
* 0x7f942e8c2c38 DisplaySVGGeometry
----------
Item Mask is active
app unit change following: 0 60
Inner group size change
items: 0
Begin EndGroup
actually entering the grouping code
DoGroupingForDisplayList
Inherrited scale 1.000000 1.000000
LayerBounds: 180 -30 100 100
VisibleRect: 180 -30 100 100
Inherrited scale 1.000000 1.000000
Property change. Deleting blob
App unit change 0 -> 60
Scale 0.000000 0.000000 -> 1.000000 1.000000
items: 0
----------
* 0x7f942e8c2b50 CompositorHitTestInfo
* 0x7f942e8c2c38 DisplaySVGGeometry
----------
Allocating blob data
clippedImageRect 180 -30 100 100
imageSize: 100 100
pre mInvalidRect: CompositorHitTestInfo 0x7f942e876548-25 - inv: 0 0 0 0
CGC CompositorHitTestInfo 10800 0 0 0
180 -30, 1.000000 1.000000
mRect 180 0 0 0
post mInvalidRect: 0 0 0 0
Including CompositorHitTestInfo of 1
Item DisplaySVGGeometry is active
app unit change following: 0 60
Inner group size change
items: 0
Begin EndGroup
Begin EndGroup
Begin EndGroup
active: 1
Item nsDisplayContainer is active
app unit change following: 0 60
Inner group size change
items: 0
Begin EndGroup
actually entering the grouping code
DoGroupingForDisplayList
Inherrited scale 1.000000 1.000000
LayerBounds: -80 100 100 100
VisibleRect: -80 100 100 100
Inherrited scale 1.000000 1.000000
Property change. Deleting blob
App unit change 0 -> 60
Scale 0.000000 0.000000 -> 1.000000 1.000000
items: 0
----------
* 0x7f942e8c31b8 Mask
* 0x7f942e8c3048 Opacity
* 0x7f942e8c2ec0 CompositorHitTestInfo
* 0x7f942e8c2fa8 DisplaySVGGeometry
----------
active: 1
Item Mask is active
app unit change following: 0 60
Inner group size change
items: 0
Begin EndGroup
actually entering the grouping code
DoGroupingForDisplayList
Inherrited scale 1.000000 1.000000
LayerBounds: -80 100 100 100
VisibleRect: -80 100 100 100
Inherrited scale 1.000000 1.000000
Property change. Deleting blob
App unit change 0 -> 60
Scale 0.000000 0.000000 -> 1.000000 1.000000
items: 0
----------
* 0x7f942e8c3048 Opacity
* 0x7f942e8c2ec0 CompositorHitTestInfo
* 0x7f942e8c2fa8 DisplaySVGGeometry
----------
active: 1
Item Opacity is active
app unit change following: 0 60
Inner group size change
items: 0
Begin EndGroup
actually entering the grouping code
DoGroupingForDisplayList
Inherrited scale 1.000000 1.000000
LayerBounds: -80 100 100 100
VisibleRect: -80 100 100 100
Inherrited scale 1.000000 1.000000
Property change. Deleting blob
App unit change 0 -> 60
Scale 0.000000 0.000000 -> 1.000000 1.000000
items: 0
----------
* 0x7f942e8c2ec0 CompositorHitTestInfo
* 0x7f942e8c2fa8 DisplaySVGGeometry
----------
Allocating blob data
clippedImageRect -80 100 100 100
imageSize: 100 100
pre mInvalidRect: CompositorHitTestInfo 0x7f942e876a78-25 - inv: 0 0 0 0
CGC CompositorHitTestInfo 0 6000 0 0
-80 100, 1.000000 1.000000
mRect 0 100 0 0
post mInvalidRect: 0 0 0 0
Including CompositorHitTestInfo of 1
Allocating blob data
clippedImageRect -80 100 100 100
imageSize: 100 100
pre mInvalidRect: DisplaySVGGeometry 0x7f942e876a78-58 - inv: 0 0 0 0
CGC DisplaySVGGeometry -4800 6000 6000 6000
-80 100, 1.000000 1.000000
mRect -80 100 100 100
post mInvalidRect: 0 0 0 0
Including DisplaySVGGeometry of 2
Begin EndGroup
mDisplayItems
: 0x7f942e876a78-25
: 0x7f942e876a78-58
mInvalidRect: 0 0 0 0
Trying CompositorHitTestInfo 0x7f942e876a78-25 0 100 0 100
Trying DisplaySVGGeometry 0x7f942e876a78-58 -80 100 20 200
paint check invalid 20 200 - 100 100
painting DisplaySVGGeometry 0x7f942e876a78-58
1 Finish
No previous key making new one 6
PushImage: -80.000000 100.000000 20.000000 200.000000
End EndGroup
Begin EndGroup
Begin EndGroup
active: 1
Item nsDisplayContainer is active
app unit change following: 0 60
Inner group size change
items: 0
Begin EndGroup
actually entering the grouping code
DoGroupingForDisplayList
Inherrited scale 1.000000 1.000000
LayerBounds: 60 100 100 100
VisibleRect: 60 100 100 100
Inherrited scale 1.000000 1.000000
Property change. Deleting blob
App unit change 0 -> 60
Scale 0.000000 0.000000 -> 1.000000 1.000000
items: 0
----------
* 0x7f942e8c3650 Mask
* 0x7f942e8c34e0 Opacity
* 0x7f942e8c33a0 CompositorHitTestInfo
* 0x7f942e8c3440 DisplaySVGGeometry
----------
active: 1
Item Mask is active
app unit change following: 0 60
Inner group size change
items: 0
Begin EndGroup
actually entering the grouping code
DoGroupingForDisplayList
Inherrited scale 1.000000 1.000000
LayerBounds: 60 100 100 100
VisibleRect: 60 100 100 100
Inherrited scale 1.000000 1.000000
Property change. Deleting blob
App unit change 0 -> 60
Scale 0.000000 0.000000 -> 1.000000 1.000000
items: 0
----------
* 0x7f942e8c34e0 Opacity
* 0x7f942e8c33a0 CompositorHitTestInfo
* 0x7f942e8c3440 DisplaySVGGeometry
----------
active: 1
Item Opacity is active
app unit change following: 0 60
Inner group size change
items: 0
Begin EndGroup
actually entering the grouping code
DoGroupingForDisplayList
Inherrited scale 1.000000 1.000000
LayerBounds: 60 100 100 100
VisibleRect: 60 100 100 100
Inherrited scale 1.000000 1.000000
Property change. Deleting blob
App unit change 0 -> 60
Scale 0.000000 0.000000 -> 1.000000 1.000000
items: 0
----------
* 0x7f942e8c33a0 CompositorHitTestInfo
* 0x7f942e8c3440 DisplaySVGGeometry
----------
Allocating blob data
clippedImageRect 60 100 100 100
imageSize: 100 100
pre mInvalidRect: CompositorHitTestInfo 0x7f942e876e30-25 - inv: 0 0 0 0
CGC CompositorHitTestInfo 3000 5400 0 0
60 100, 1.000000 1.000000
mRect 60 100 0 0
post mInvalidRect: 0 0 0 0
Including CompositorHitTestInfo of 1
Allocating blob data
clippedImageRect 60 100 100 100
imageSize: 100 100
pre mInvalidRect: DisplaySVGGeometry 0x7f942e876e30-58 - inv: 0 0 0 0
CGC DisplaySVGGeometry 3600 6000 6000 6000
60 100, 1.000000 1.000000
mRect 60 100 100 100
post mInvalidRect: 0 0 0 0
Including DisplaySVGGeometry of 2
Begin EndGroup
mDisplayItems
: 0x7f942e876e30-25
: 0x7f942e876e30-58
mInvalidRect: 0 0 0 0
Trying CompositorHitTestInfo 0x7f942e876e30-25 60 100 60 100
Trying DisplaySVGGeometry 0x7f942e876e30-58 60 100 160 200
paint check invalid 160 200 - 100 100
painting DisplaySVGGeometry 0x7f942e876e30-58
1 Finish
No previous key making new one 8
PushImage: 60.000000 100.000000 160.000000 200.000000
End EndGroup
Begin EndGroup
Begin EndGroup
active: 1
Item nsDisplayContainer is active
app unit change following: 0 60
Inner group size change
items: 0
Begin EndGroup
actually entering the grouping code
DoGroupingForDisplayList
Inherrited scale 1.000000 1.000000
LayerBounds: 180 100 100 100
VisibleRect: 180 100 100 100
Inherrited scale 1.000000 1.000000
Property change. Deleting blob
App unit change 0 -> 60
Scale 0.000000 0.000000 -> 1.000000 1.000000
items: 0
----------
* 0x7f942e8c3ae8 Mask
* 0x7f942e8c3978 Opacity
* 0x7f942e8c3838 CompositorHitTestInfo
* 0x7f942e8c38d8 DisplaySVGGeometry
----------
active: 1
Item Mask is active
app unit change following: 0 60
Inner group size change
items: 0
Begin EndGroup
actually entering the grouping code
DoGroupingForDisplayList
Inherrited scale 1.000000 1.000000
LayerBounds: 180 100 100 100
VisibleRect: 180 100 100 100
Inherrited scale 1.000000 1.000000
Property change. Deleting blob
App unit change 0 -> 60
Scale 0.000000 0.000000 -> 1.000000 1.000000
items: 0
----------
* 0x7f942e8c3978 Opacity
* 0x7f942e8c3838 CompositorHitTestInfo
* 0x7f942e8c38d8 DisplaySVGGeometry
----------
active: 1
Item Opacity is active
app unit change following: 0 60
Inner group size change
items: 0
Begin EndGroup
actually entering the grouping code
DoGroupingForDisplayList
Inherrited scale 1.000000 1.000000
LayerBounds: 180 100 100 100
VisibleRect: 180 100 100 100
Inherrited scale 1.000000 1.000000
Property change. Deleting blob
App unit change 0 -> 60
Scale 0.000000 0.000000 -> 1.000000 1.000000
items: 0
----------
* 0x7f942e8c3838 CompositorHitTestInfo
* 0x7f942e8c38d8 DisplaySVGGeometry
----------
Allocating blob data
clippedImageRect 180 100 100 100
imageSize: 100 100
pre mInvalidRect: CompositorHitTestInfo 0x7f942e8a5200-25 - inv: 0 0 0 0
CGC CompositorHitTestInfo 10800 6000 0 0
180 100, 1.000000 1.000000
mRect 180 100 0 0
post mInvalidRect: 0 0 0 0
Including CompositorHitTestInfo of 1
Allocating blob data
clippedImageRect 180 100 100 100
imageSize: 100 100
pre mInvalidRect: DisplaySVGGeometry 0x7f942e8a5200-58 - inv: 0 0 0 0
CGC DisplaySVGGeometry 10800 6000 6000 6000
180 100, 1.000000 1.000000
mRect 180 100 100 100
post mInvalidRect: 0 0 0 0
Including DisplaySVGGeometry of 2
Begin EndGroup
mDisplayItems
: 0x7f942e8a5200-25
: 0x7f942e8a5200-58
mInvalidRect: 0 0 0 0
Trying CompositorHitTestInfo 0x7f942e8a5200-25 180 100 180 100
Trying DisplaySVGGeometry 0x7f942e8a5200-58 180 100 280 200
paint check invalid 280 200 - 100 100
painting DisplaySVGGeometry 0x7f942e8a5200-58
1 Finish
No previous key making new one 10
PushImage: 180.000000 100.000000 280.000000 200.000000
End EndGroup
Begin EndGroup
Begin EndGroup
Begin EndGroup
Begin EndGroup
Reporter | ||
Comment 3•2 years ago
|
||
Displaylist dump
Reporter | ||
Comment 4•2 years ago
|
||
The primitive chasing log for the missing masked rect:
Chasing PrimitiveDebugId(380) by local rect
added to stacking context at 1
preparing PrimitiveDebugId(380)
Image { data_handle: Handle { index: 17, epoch: Epoch(11), _marker: PhantomData }, image_instance_index: Index(13, PhantomData), is_compositor_surface: false }
building clip chain instance with local rect Box2D((-80.0, 100.0), (20.0, 200.0))
effective clip chain from ClipNodeRange { first: 5, count: 0 } (applied)
picture rect Box2D((-80.0, 100.0), (20.0, 200.0)) @SpatialNodeIndex(9)
visible with Box2D((-80.0, 100.0), (20.0, 200.0))
Seems to indicate that the prim is not accidentally culled out.
Reporter | ||
Comment 5•2 years ago
•
|
||
Some blob replay logging:
-- begin blob replay: bounds 0 0 100 100 region 0 0 100 100
[0x7f54060bf190] DrawTarget Creation (Type: Unknown, Size: 100x100)
[0x7f54060bf190] SetTransform [ 1 0 ; 0 1 ; 0 0 ]
[0x7f54060bf190] SetTransform [ 1 0 ; 0 1 ; 80 -100 ]
[0x7f54060bf190] SetTransform [ 1 0 ; 0 1 ; 80 -100 ]
[0x7f54060bf190] SetTransform [ 1 0 ; 0 1 ; 80 -100 ]
[0x7f54060bf200] CreateSimilarDrawTarget (Size: 100x100)
[0x7f54060bf190] SetTransform [ 1 0 ; 0 1 ; 80 -100 ]
[0x7f54060bf200] SetTransform [ 1 0 ; 0 1 ; 0 0 ]
[0x7f54060bf200] SetTransform [ 1 0 ; 0 1 ; 0 0 ]
[0x7f54060bf270] CreateClippedDrawTarget ()
[0x7f54060bf270] SetTransform [ 1 0 ; 0 1 ; 0 0 ]
[0x7f54060bf270] SetTransform [ 1 0 ; 0 1 ; 0 0 ]
[0x7f54060bf270] SetTransform [ 1 0 ; 0 1 ; 0 0 ]
[0x7f54060bf270] SetTransform [ 1 0 ; 0 1 ; 0 0 ]
[0x7f54060bf270] FillRect (-80, 100 - 100 x 100) DeviceColor: (1, 1, 1, 1)
--replay FillRect -80.000000 100.000000 100.000000 100.000000
[0x7f54060bf270] SetTransform [ 1 0 ; 0 1 ; 0 0 ]
[0x7f54060bf270] SetTransform [ 1 0 ; 0 1 ; 0 0 ]
[0x7f54060bf270] FillRect (-60, 120 - 40 x 40) DeviceColor: (0, 0, 0, 1)
--replay FillRect -60.000000 120.000000 40.000000 40.000000
[0x7f54060bf270] SetTransform [ 1 0 ; 0 1 ; 0 0 ]
[0x7f5405a94a80] Into Luminance Source (DT: 0x7f54060bf270)
[0x7f54060bf270] DrawTarget Destruction
[0x7f54060bf200] SetTransform [ 1 0 ; 0 1 ; 0 0 ]
[0x7f54060bf200] MaskSurface (0x7f5405a94a80) Offset: (0x0) Pattern: DeviceColor: (0, 0, 0, 1)
[0x7f54060bf200] SetTransform [ 1 0 ; 0 1 ; 0 0 ]
[0x7f5405a94a80] SourceSurface Destroyed
[0x7f54060bf190] SetTransform [ 1 0 ; 0 1 ; 80 -100 ]
[0x7f54060bf190] SetTransform [ 1 0 ; 0 1 ; 80 -100 ]
[0x7f5405a94a80] Snapshot Created (DT: 0x7f54060bf200)
[0x7f54060bf190] SetTransform [ 1 0 ; 0 1 ; 80 -100 ]
[0x7f54060bf270] Path created (OpCount: 5)
[0x7f54060bf190] Fill (0x7f54060bf270) DeviceColor: (1, 1, 1, 1)
--replay Fill
[0x7f54060bf270] Path Destroyed
[0x7f54060bf190] SetTransform [ 1 0 ; 0 1 ; 80 -100 ]
[0x7f54060bf190] SetTransform [ 1 0 ; 0 1 ; 160 -200 ]
[0x7f54060bf190] MaskSurface (0x7f5405a94a80) Offset: (0x0) Pattern: DeviceColor: (0, 0, 0, 1)
[0x7f54060bf190] SetTransform [ 1 0 ; 0 1 ; 80 -100 ]
[0x7f5405a94a80] SourceSurface Destroyed
[0x7f54060bf190] SetTransform [ 1 0 ; 0 1 ; 80 -100 ]
[0x7f54060bf200] DrawTarget Destruction
-- end blob replay
Assignee | ||
Comment 6•2 years ago
|
||
Updated•2 years ago
|
Updated•2 years ago
|
Comment 7•2 years ago
|
||
There's a r+ patch which didn't land and no activity in this bug for 2 weeks.
:jrmuizel, could you have a look please?
If you still have some work to do, you can add an action "Plan Changes" in Phabricator.
For more information, please visit auto_nag documentation.
Assignee | ||
Comment 8•2 years ago
|
||
Previously, if ctx->GetDrawTarget() != maskTarget we end up adjusting the
matrix on ctx and not on the maskTarget.
Also, now that we're doing the correct adjustment of the maskTarget transform
we can remove code to set maskTarget's transform to identity.
Assignee | ||
Updated•2 years ago
|
Reporter | ||
Updated•2 years ago
|
Pushed by jmuizelaar@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/eeabb68029e1 Adjust transform on maskTarget instead of ctx. r=nical
Comment 10•2 years ago
|
||
bugherder |
Updated•2 years ago
|
Comment 11•2 years ago
|
||
I reproduced the issue on Win10 using a build without the fix 98.0a1 (20220127213627), and verified it on builds with the fix 99.0b8 and 100.0a1 (20220327213550) but both versions differ from Chrome (see screenshot attached).
Can you please let me know if this is the intended behavior? Thank you.
Comment 12•2 years ago
|
||
Assignee | ||
Comment 13•2 years ago
|
||
Yeah, the difference with Chrome is fine. It's just a difference around handling of images that failed to load.
Comment 14•2 years ago
|
||
Mark issue as verified based on precious comment.
Description
•