From 34a69834abda6b781fd783741285bee50fdd994e Mon Sep 17 00:00:00 2001 From: Glenn Watson Date: Wed, 4 Apr 2018 16:14:15 +1000 Subject: [PATCH 1/2] Apply device pixel snapping to axis-aligned clip masks. Fixes #2501. --- webrender/res/clip_shared.glsl | 22 +++++++++- webrender/res/prim_shared.glsl | 43 ++++++++++++++++---- wrench/reftests/border/degenerate-curve.png | Bin 21324 -> 20886 bytes wrench/reftests/boxshadow/inset-subpx.png | Bin 1362 -> 1276 bytes wrench/reftests/boxshadow/no-stretch.png | Bin 3567 -> 3976 bytes wrench/reftests/clip/reftest.list | 1 + wrench/reftests/clip/snapping-ref.yaml | 17 ++++++++ wrench/reftests/clip/snapping.yaml | 17 ++++++++ 8 files changed, 91 insertions(+), 9 deletions(-) create mode 100644 wrench/reftests/clip/snapping-ref.yaml create mode 100644 wrench/reftests/clip/snapping.yaml diff --git a/webrender/res/clip_shared.glsl b/webrender/res/clip_shared.glsl index 2443528b31..590ca68a8f 100644 --- a/webrender/res/clip_shared.glsl +++ b/webrender/res/clip_shared.glsl @@ -51,7 +51,25 @@ RectWithSize intersect_rect(RectWithSize a, RectWithSize b) { ClipVertexInfo write_clip_tile_vertex(RectWithSize local_clip_rect, ClipScrollNode scroll_node, ClipArea area) { - vec2 actual_pos = area.screen_origin + aPosition.xy * area.common_data.task_rect.size; + vec2 device_pos = area.screen_origin + aPosition.xy * area.common_data.task_rect.size; + vec2 actual_pos = device_pos; + + if (scroll_node.is_axis_aligned) { + vec4 snap_positions = compute_snap_positions( + scroll_node.transform, + local_clip_rect + ); + + vec2 snap_offsets = compute_snap_offset_impl( + device_pos, + scroll_node.transform, + local_clip_rect, + RectWithSize(snap_positions.xy, snap_positions.zw - snap_positions.xy), + snap_positions + ); + + actual_pos -= snap_offsets; + } vec4 node_pos; @@ -64,7 +82,7 @@ ClipVertexInfo write_clip_tile_vertex(RectWithSize local_clip_rect, } // compute the point position inside the scroll node, in CSS space - vec2 vertex_pos = actual_pos + + vec2 vertex_pos = device_pos + area.common_data.task_rect.p0 - area.screen_origin; diff --git a/webrender/res/prim_shared.glsl b/webrender/res/prim_shared.glsl index 356e15d15f..4dc6c1aed9 100644 --- a/webrender/res/prim_shared.glsl +++ b/webrender/res/prim_shared.glsl @@ -486,11 +486,8 @@ vec4 get_node_pos(vec2 pos, ClipScrollNode node) { return untransform(pos, n, a, node.inv_transform); } -// Compute a snapping offset in world space (adjusted to pixel ratio), -// given local position on the scroll_node and a snap rectangle. -vec2 compute_snap_offset(vec2 local_pos, - mat4 transform, - RectWithSize snap_rect) { +// Compute a snapping offset in world space (adjusted to pixel ratio) +vec4 compute_snap_positions(mat4 transform, RectWithSize snap_rect) { // Ensure that the snap rect is at *least* one device pixel in size. // TODO(gw): It's not clear to me that this is "correct". Specifically, // how should it interact with sub-pixel snap rects when there @@ -505,15 +502,47 @@ vec2 compute_snap_offset(vec2 local_pos, // Snap bounds in world coordinates, adjusted for pixel ratio. XY = top left, ZW = bottom right vec4 world_snap = uDevicePixelRatio * vec4(world_snap_p0.xy, world_snap_p1.xy) / vec4(world_snap_p0.ww, world_snap_p1.ww); + return world_snap; +} + +vec2 compute_snap_offset_impl( + vec2 reference_pos, + mat4 transform, + RectWithSize snap_rect, + RectWithSize reference_rect, + vec4 snap_positions) { + /// World offsets applied to the corners of the snap rectangle. - vec4 snap_offsets = floor(world_snap + 0.5) - world_snap; + vec4 snap_offsets = floor(snap_positions + 0.5) - snap_positions; /// Compute the position of this vertex inside the snap rectangle. - vec2 normalized_snap_pos = (local_pos - snap_rect.p0) / snap_rect.size; + vec2 normalized_snap_pos = (reference_pos - reference_rect.p0) / reference_rect.size; + /// Compute the actual world offset for this vertex needed to make it snap. return mix(snap_offsets.xy, snap_offsets.zw, normalized_snap_pos); } +// Compute a snapping offset in world space (adjusted to pixel ratio), +// given local position on the scroll_node and a snap rectangle. +vec2 compute_snap_offset(vec2 local_pos, + mat4 transform, + RectWithSize snap_rect) { + vec4 snap_positions = compute_snap_positions( + transform, + snap_rect + ); + + vec2 snap_offsets = compute_snap_offset_impl( + local_pos, + transform, + snap_rect, + snap_rect, + snap_positions + ); + + return snap_offsets; +} + struct VertexInfo { vec2 local_pos; vec2 screen_pos; diff --git a/wrench/reftests/border/degenerate-curve.png b/wrench/reftests/border/degenerate-curve.png index d4cf073f2a90c28924136528d34911da0e3150ca..bf045f602d4b61a951feb60f0b58174d0232f055 100644 GIT binary patch literal 20886 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 literal 21324 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 diff --git a/wrench/reftests/boxshadow/no-stretch.png b/wrench/reftests/boxshadow/no-stretch.png index 73b85f87891457430d9a2636c145de86b688daea..679811aa82357749df5f1b5fb94824da07925ac2 100644 GIT binary patch literal 3976 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 He`Nd{a^t2_ diff --git a/wrench/reftests/clip/reftest.list b/wrench/reftests/clip/reftest.list index c6be88f66a..942fc7c256 100644 --- a/wrench/reftests/clip/reftest.list +++ b/wrench/reftests/clip/reftest.list @@ -9,3 +9,4 @@ == fixed-position-clipping.yaml fixed-position-clipping-ref.yaml == segmentation-with-other-coordinate-system-clip.yaml segmentation-with-other-coordinate-system-clip-ref.yaml == stacking-context-clip.yaml stacking-context-clip-ref.yaml +== snapping.yaml snapping-ref.yaml diff --git a/wrench/reftests/clip/snapping-ref.yaml b/wrench/reftests/clip/snapping-ref.yaml new file mode 100644 index 0000000000..7be527df93 --- /dev/null +++ b/wrench/reftests/clip/snapping-ref.yaml @@ -0,0 +1,17 @@ +--- +root: + items: + - type: clip + bounds: [0, 0, 1000, 1000] + complex: + - rect: [50, 50, 100, 100] + radius: 16 + items: + - type: rect + bounds: 50 50 100 100 + color: red + + - type: rect + bounds: 200 50 100 100 + color: green + diff --git a/wrench/reftests/clip/snapping.yaml b/wrench/reftests/clip/snapping.yaml new file mode 100644 index 0000000000..d2ad449ea9 --- /dev/null +++ b/wrench/reftests/clip/snapping.yaml @@ -0,0 +1,17 @@ +--- +root: + items: + - type: clip + bounds: [0, 0, 1000, 1000] + complex: + - rect: [50.3, 50.3, 100, 100] + radius: 16 + items: + - type: rect + bounds: 50.3 50.3 100 100 + color: red + + - type: rect + bounds: 200.3 50.3 100 100 + color: green + From 076b4434f033295cd1aa9c24bb91b715de849e24 Mon Sep 17 00:00:00 2001 From: Glenn Watson Date: Thu, 5 Apr 2018 13:09:13 +1000 Subject: [PATCH 2/2] Add native support for Rectangle + ClipOut mode. Previously, all ClipOut items would result in a clip mask being generated. As we start to use ClipOut mode more often, it makes sense to handle this natively in the segment builder and avoid generating a clip-mask at all, where possible. Fixes #2595. Fixes #2501. --- webrender/src/batch.rs | 7 +- webrender/src/clip.rs | 33 ++++++---- webrender/src/hit_test.rs | 11 ++-- webrender/src/prim_store.rs | 77 +++++++++++++--------- wrench/reftests/transforms/prim-suite.png | Bin 51003 -> 51058 bytes 5 files changed, 80 insertions(+), 48 deletions(-) diff --git a/webrender/src/batch.rs b/webrender/src/batch.rs index 2a8f47ad6f..6a9ff9cdad 100644 --- a/webrender/src/batch.rs +++ b/webrender/src/batch.rs @@ -2,7 +2,7 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -use api::{AlphaType, DeviceIntRect, DeviceIntSize}; +use api::{AlphaType, ClipMode, DeviceIntRect, DeviceIntSize}; use api::{DeviceUintRect, DeviceUintPoint, DeviceUintSize, ExternalImageType, FilterOp, ImageRendering, LayerRect}; use api::{DeviceIntPoint, SubpixelDirection, YuvColorSpace, YuvFormat}; use api::{LayerToWorldTransform, WorldPixel}; @@ -1627,8 +1627,9 @@ impl ClipBatcher { ..instance }); } - ClipSource::Rectangle(..) => { - if work_item.coordinate_system_id != coordinate_system_id { + ClipSource::Rectangle(_, mode) => { + if work_item.coordinate_system_id != coordinate_system_id || + mode == ClipMode::ClipOut { self.rectangles.push(ClipMaskInstance { clip_data_address: gpu_address, ..instance diff --git a/webrender/src/clip.rs b/webrender/src/clip.rs index 67be7a49c9..b25695210d 100644 --- a/webrender/src/clip.rs +++ b/webrender/src/clip.rs @@ -81,7 +81,7 @@ impl ClipRegion { #[derive(Debug)] pub enum ClipSource { - Rectangle(LayerRect), + Rectangle(LayerRect, ClipMode), RoundedRectangle(LayerRect, BorderRadius, ClipMode), Image(ImageMask), /// TODO(gw): This currently only handles dashed style @@ -101,7 +101,7 @@ impl From for ClipSources { clips.push(ClipSource::Image(info)); } - clips.push(ClipSource::Rectangle(region.main)); + clips.push(ClipSource::Rectangle(region.main, ClipMode::Clip)); for complex in region.complex_clips { clips.push(ClipSource::new_rounded_rect( @@ -121,12 +121,16 @@ impl ClipSource { mut radii: BorderRadius, clip_mode: ClipMode ) -> ClipSource { - ensure_no_corner_overlap(&mut radii, &rect); - ClipSource::RoundedRectangle( - rect, - radii, - clip_mode, - ) + if radii.is_zero() { + ClipSource::Rectangle(rect, clip_mode) + } else { + ensure_no_corner_overlap(&mut radii, &rect); + ClipSource::RoundedRectangle( + rect, + radii, + clip_mode, + ) + } } pub fn new_line_decoration( @@ -306,7 +310,14 @@ impl ClipSources { } local_inner = None; } - ClipSource::Rectangle(rect) => { + ClipSource::Rectangle(rect, mode) => { + // Once we encounter a clip-out, we just assume the worst + // case clip mask size, for now. + if mode == ClipMode::ClipOut { + can_calculate_inner_rect = false; + break; + } + can_calculate_outer_rect = true; local_outer = local_outer.and_then(|r| r.intersection(&rect)); local_inner = local_inner.and_then(|r| r.intersection(&rect)); @@ -378,8 +389,8 @@ impl ClipSources { ]); request.push(info.prim_shadow_rect); } - ClipSource::Rectangle(rect) => { - let data = ClipData::uniform(rect, 0.0, ClipMode::Clip); + ClipSource::Rectangle(rect, mode) => { + let data = ClipData::uniform(rect, 0.0, mode); data.write(&mut request); } ClipSource::RoundedRectangle(ref rect, ref radius, mode) => { diff --git a/webrender/src/hit_test.rs b/webrender/src/hit_test.rs index a184aedc02..2fafd81e42 100644 --- a/webrender/src/hit_test.rs +++ b/webrender/src/hit_test.rs @@ -75,14 +75,17 @@ impl HitTestingItem { pub struct HitTestingRun(pub Vec, pub ScrollNodeAndClipChain); enum HitTestRegion { - Rectangle(LayerRect), + Rectangle(LayerRect, ClipMode), RoundedRectangle(LayerRect, BorderRadius, ClipMode), } impl HitTestRegion { pub fn contains(&self, point: &LayerPoint) -> bool { match *self { - HitTestRegion::Rectangle(ref rectangle) => rectangle.contains(point), + HitTestRegion::Rectangle(ref rectangle, ClipMode::Clip) => + rectangle.contains(point), + HitTestRegion::Rectangle(ref rectangle, ClipMode::ClipOut) => + !rectangle.contains(point), HitTestRegion::RoundedRectangle(rect, radii, ClipMode::Clip) => rounded_rectangle_contains_point(point, &rect, &radii), HitTestRegion::RoundedRectangle(rect, radii, ClipMode::ClipOut) => @@ -307,10 +310,10 @@ fn get_regions_for_clip_scroll_node( clips.iter().map(|source| { match source.0 { - ClipSource::Rectangle(ref rect) => HitTestRegion::Rectangle(*rect), + ClipSource::Rectangle(ref rect, mode) => HitTestRegion::Rectangle(*rect, mode), ClipSource::RoundedRectangle(ref rect, ref radii, ref mode) => HitTestRegion::RoundedRectangle(*rect, *radii, *mode), - ClipSource::Image(ref mask) => HitTestRegion::Rectangle(mask.rect), + ClipSource::Image(ref mask) => HitTestRegion::Rectangle(mask.rect, ClipMode::Clip), ClipSource::BorderCorner(_) | ClipSource::LineDecoration(_) | ClipSource::BoxShadow(_) => { diff --git a/webrender/src/prim_store.rs b/webrender/src/prim_store.rs index 669d30e32f..8e9ab61966 100644 --- a/webrender/src/prim_store.rs +++ b/webrender/src/prim_store.rs @@ -1544,12 +1544,21 @@ impl PrimitiveStore { if !brush.kind.supports_segments() { return; } - if metadata.local_rect.size.area() <= MIN_BRUSH_SPLIT_AREA { - return; - } } } + // If the brush is small, we generally want to skip building segments + // and just draw it as a single primitive with clip mask. However, + // if the clips are purely rectangles that have no per-fragment + // clip masks, we will segment anyway. This allows us to completely + // skip allocating a clip mask in these cases. + let is_large = metadata.local_rect.size.area() > MIN_BRUSH_SPLIT_AREA; + + // TODO(gw): We should probably detect and store this on each + // ClipSources instance, to avoid having to iterate + // the clip sources here. + let mut rect_clips_only = true; + let mut segment_builder = SegmentBuilder::new( metadata.local_rect, None, @@ -1574,12 +1583,16 @@ impl PrimitiveStore { for &(ref clip, _) in &local_clips.clips { let (local_clip_rect, radius, mode) = match *clip { ClipSource::RoundedRectangle(rect, radii, clip_mode) => { + rect_clips_only = false; + (rect, Some(radii), clip_mode) } - ClipSource::Rectangle(rect) => { - (rect, None, ClipMode::Clip) + ClipSource::Rectangle(rect, mode) => { + (rect, None, mode) } ClipSource::BoxShadow(ref info) => { + rect_clips_only = false; + // For inset box shadows, we can clip out any // pixels that are inside the shadow region // and are beyond the inner rect, as they can't @@ -1607,6 +1620,8 @@ impl PrimitiveStore { ClipSource::BorderCorner(..) | ClipSource::LineDecoration(..) | ClipSource::Image(..) => { + rect_clips_only = false; + // TODO(gw): We can easily extend the segment builder // to support these clip sources in the // future, but they are rarely used. @@ -1638,32 +1653,34 @@ impl PrimitiveStore { } } - match brush.segment_desc { - Some(ref mut segment_desc) => { - segment_desc.clip_mask_kind = clip_mask_kind; - } - None => { - // TODO(gw): We can probably make the allocation - // patterns of this and the segment - // builder significantly better, by - // retaining it across primitives. - let mut segments = Vec::new(); - - segment_builder.build(|segment| { - segments.push( - BrushSegment::new( - segment.rect.origin, - segment.rect.size, - segment.has_mask, - segment.edge_flags, - ), - ); - }); + if is_large || rect_clips_only { + match brush.segment_desc { + Some(ref mut segment_desc) => { + segment_desc.clip_mask_kind = clip_mask_kind; + } + None => { + // TODO(gw): We can probably make the allocation + // patterns of this and the segment + // builder significantly better, by + // retaining it across primitives. + let mut segments = Vec::new(); + + segment_builder.build(|segment| { + segments.push( + BrushSegment::new( + segment.rect.origin, + segment.rect.size, + segment.has_mask, + segment.edge_flags, + ), + ); + }); - brush.segment_desc = Some(BrushSegmentDescriptor { - segments, - clip_mask_kind, - }); + brush.segment_desc = Some(BrushSegmentDescriptor { + segments, + clip_mask_kind, + }); + } } } } diff --git a/wrench/reftests/transforms/prim-suite.png b/wrench/reftests/transforms/prim-suite.png index f2ad59478260bc2a79df0586b821ff96d76babdc..20f830728af7a0dc472551a82617e5032cdd073f 100644 GIT binary patch literal 51058 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