Backed out changeset dec00fcb9bea (bug 1695804) for causing wrench bustages. CLOSED TREE

This commit is contained in:
Cosmin Sabou 2021-03-02 23:08:48 +02:00
Родитель cc2f1a41ed
Коммит 065d53dec9
4 изменённых файлов: 8 добавлений и 59 удалений

Просмотреть файл

@ -6027,29 +6027,19 @@ impl PicturePrimitive {
let parent_device_pixel_scale = state.current_surface().device_pixel_scale;
let surface_spatial_node_index = self.spatial_node_index;
// Filters must be applied before transforms, to do this, we can mark this picture as establishing a raster root.
let has_svg_filter = if let PictureCompositeMode::SvgFilter(..) = composite_mode {
true
} else {
false
};
let surface_to_parent_transform = frame_context.spatial_tree
.get_relative_transform(surface_spatial_node_index, parent_raster_node_index);
// Check if there is perspective or if an SVG filter is applied, and thus whether a new
// rasterization root should be established.
let establishes_raster_root = match composite_mode {
PictureCompositeMode::TileCache { .. } => {
// Picture caches are special cased - they never need to establish a raster root. In future,
// we will probably remove TileCache as a specific composite mode.
false
}
PictureCompositeMode::SvgFilter(..) => {
// Filters must be applied before transforms, to do this, we can mark this picture as establishing a raster root.
true
}
PictureCompositeMode::MixBlend(..) |
PictureCompositeMode::Filter(..) |
PictureCompositeMode::ComponentTransferFilter(..) |
PictureCompositeMode::Blit(..) => {
// TODO(gw): As follow ups, individually move each of these composite modes to create raster roots.
surface_to_parent_transform.is_perspective()
}
};
let establishes_raster_root = has_svg_filter || surface_to_parent_transform.is_perspective();
let (raster_spatial_node_index, device_pixel_scale) = if establishes_raster_root {
// If a raster root is established, this surface should be scaled based on the scale factors of the surface raster to parent raster transform.

Просмотреть файл

@ -3,4 +3,3 @@
# TODO: Fix rasterizer inaccuracies so this is the same regardless of tile size!
!* prim-suite.yaml
== mix-blend-clip.yaml mix-blend-clip-ref.yaml
platform(linux) == tile-cache-raster-root.yaml tile-cache-raster-root.png

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 11 KiB

Просмотреть файл

@ -1,40 +0,0 @@
# Based on a reduced case from blend-clipped.yaml, ensure that if tile caches don't create
# raster roots (which messes with the special case handling and positioning of them).
---
root:
items:
-
type: "stacking-context"
items:
-
bounds: [0, 111, 1887, 1971]
type: iframe
id: [1, 3]
id: [1, 1]
pipelines:
-
id: [1, 3]
items:
-
type: "scroll-frame"
id: 2
bounds: [0, 0, 1887, 1971]
-
"clip-and-scroll": 2
type: "stacking-context"
items:
-
bounds: [0, -186, 1887, 239]
"clip-and-scroll": 2
type: clip
id: 4
-
bounds: [-660.45, -186, 0, 0]
"clip-and-scroll": 4
type: "stacking-context"
transform: [1, 0, 0, 0, -0.57735026, 1, 0, 0, 0, 0, 1, 0, 68.849, 0, 0, 1]
items:
-
bounds: [0, 0, 1887, 239]
type: rect
color: blue