Skip to content

Commit

Permalink
Update WR (details below):
Browse files Browse the repository at this point in the history
* Add support for clip masks on text runs.
* Fix atomic ordering of items with multiple shadows.
* Update to bincode + ipc-channel with optimizations.
* Fix some plane splitting precision errors.
* Improve the anti-aliasing quality significantly.
* Add internal ClipChain support.
* Fix diacritic glyphs on Linux.
  • Loading branch information
gw3583 committed Oct 16, 2017
1 parent 086c482 commit 4469f39
Show file tree
Hide file tree
Showing 34 changed files with 87 additions and 77 deletions.
77 changes: 38 additions & 39 deletions Cargo.lock

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion components/bluetooth/Cargo.toml
Expand Up @@ -13,7 +13,7 @@ path = "lib.rs"
bitflags = "0.7"
bluetooth_traits = {path = "../bluetooth_traits"}
device = {git = "https://github.com/servo/devices", features = ["bluetooth-test"]}
ipc-channel = "0.8"
ipc-channel = "0.9"
servo_config = {path = "../config"}
servo_rand = {path = "../rand"}
uuid = {version = "0.5", features = ["v4"]}
Expand Down
2 changes: 1 addition & 1 deletion components/bluetooth_traits/Cargo.toml
Expand Up @@ -10,7 +10,7 @@ name = "bluetooth_traits"
path = "lib.rs"

[dependencies]
ipc-channel = "0.8"
ipc-channel = "0.9"
regex = "0.2"
serde = "1.0"
servo_config = {path = "../config"}
2 changes: 1 addition & 1 deletion components/canvas/Cargo.toml
Expand Up @@ -17,7 +17,7 @@ cssparser = "0.22.0"
euclid = "0.15"
fnv = "1.0"
gleam = "0.4"
ipc-channel = "0.8"
ipc-channel = "0.9"
log = "0.3.5"
num-traits = "0.1.32"
offscreen_gl_context = { version = "0.11", features = ["serde", "osmesa"] }
Expand Down
2 changes: 1 addition & 1 deletion components/canvas_traits/Cargo.toml
Expand Up @@ -14,7 +14,7 @@ cssparser = "0.22.0"
euclid = "0.15"
heapsize = "0.4"
heapsize_derive = "0.1"
ipc-channel = "0.8"
ipc-channel = "0.9"
lazy_static = "0.2"
nonzero = {path = "../nonzero"}
offscreen_gl_context = { version = "0.11", features = ["serde"] }
Expand Down
2 changes: 1 addition & 1 deletion components/compositing/Cargo.toml
Expand Up @@ -14,7 +14,7 @@ euclid = "0.15"
gfx_traits = {path = "../gfx_traits"}
gleam = "0.4"
image = "0.16"
ipc-channel = "0.8"
ipc-channel = "0.9"
log = "0.3.5"
msg = {path = "../msg"}
net_traits = {path = "../net_traits"}
Expand Down
2 changes: 1 addition & 1 deletion components/constellation/Cargo.toml
Expand Up @@ -22,7 +22,7 @@ euclid = "0.15"
gfx = {path = "../gfx"}
gfx_traits = {path = "../gfx_traits"}
hyper = "0.10"
ipc-channel = "0.8"
ipc-channel = "0.9"
itertools = "0.5"
layout_traits = {path = "../layout_traits"}
log = "0.3.5"
Expand Down
2 changes: 1 addition & 1 deletion components/devtools/Cargo.toml
Expand Up @@ -13,7 +13,7 @@ path = "lib.rs"
devtools_traits = {path = "../devtools_traits"}
hyper = "0.10"
hyper_serde = "0.7"
ipc-channel = "0.8"
ipc-channel = "0.9"
log = "0.3.5"
msg = {path = "../msg"}
serde = "1.0"
Expand Down
2 changes: 1 addition & 1 deletion components/devtools_traits/Cargo.toml
Expand Up @@ -15,7 +15,7 @@ heapsize = "0.4"
heapsize_derive = "0.1"
hyper = "0.10"
hyper_serde = "0.7"
ipc-channel = "0.8"
ipc-channel = "0.9"
msg = {path = "../msg"}
serde = "1.0"
servo_url = {path = "../url"}
Expand Down
2 changes: 1 addition & 1 deletion components/gfx/Cargo.toml
Expand Up @@ -23,7 +23,7 @@ gfx_traits = {path = "../gfx_traits"}
harfbuzz-sys = "0.1"
heapsize = "0.4"
heapsize_derive = "0.1"
ipc-channel = "0.8"
ipc-channel = "0.9"
lazy_static = "0.2"
libc = "0.2"
log = "0.3.5"
Expand Down
8 changes: 4 additions & 4 deletions components/gfx/display_list/mod.rs
Expand Up @@ -606,7 +606,7 @@ pub enum DisplayItem {
Line(Box<LineDisplayItem>),
BoxShadow(Box<BoxShadowDisplayItem>),
PushTextShadow(Box<PushTextShadowDisplayItem>),
PopTextShadow(Box<PopTextShadowDisplayItem>),
PopAllTextShadows(Box<PopAllTextShadowsDisplayItem>),
Iframe(Box<IframeDisplayItem>),
PushStackingContext(Box<PushStackingContextItem>),
PopStackingContext(Box<PopStackingContextItem>),
Expand Down Expand Up @@ -1190,7 +1190,7 @@ pub struct PushTextShadowDisplayItem {

/// Defines a text shadow that affects all items until the next PopTextShadow.
#[derive(Clone, Deserialize, HeapSizeOf, Serialize)]
pub struct PopTextShadowDisplayItem {
pub struct PopAllTextShadowsDisplayItem {
/// Fields common to all display items.
pub base: BaseDisplayItem,
}
Expand Down Expand Up @@ -1248,7 +1248,7 @@ impl DisplayItem {
DisplayItem::Line(ref line) => &line.base,
DisplayItem::BoxShadow(ref box_shadow) => &box_shadow.base,
DisplayItem::PushTextShadow(ref push_text_shadow) => &push_text_shadow.base,
DisplayItem::PopTextShadow(ref pop_text_shadow) => &pop_text_shadow.base,
DisplayItem::PopAllTextShadows(ref pop_text_shadow) => &pop_text_shadow.base,
DisplayItem::Iframe(ref iframe) => &iframe.base,
DisplayItem::PushStackingContext(ref stacking_context) => &stacking_context.base,
DisplayItem::PopStackingContext(ref item) => &item.base,
Expand Down Expand Up @@ -1373,7 +1373,7 @@ impl fmt::Debug for DisplayItem {
DisplayItem::Line(_) => "Line".to_owned(),
DisplayItem::BoxShadow(_) => "BoxShadow".to_owned(),
DisplayItem::PushTextShadow(_) => "PushTextShadow".to_owned(),
DisplayItem::PopTextShadow(_) => "PopTextShadow".to_owned(),
DisplayItem::PopAllTextShadows(_) => "PopTextShadow".to_owned(),
DisplayItem::Iframe(_) => "Iframe".to_owned(),
DisplayItem::PushStackingContext(_) |
DisplayItem::PopStackingContext(_) |
Expand Down
2 changes: 1 addition & 1 deletion components/layout/Cargo.toml
Expand Up @@ -20,7 +20,7 @@ gfx = {path = "../gfx"}
gfx_traits = {path = "../gfx_traits"}
heapsize = "0.4"
html5ever = "0.20.0"
ipc-channel = "0.8"
ipc-channel = "0.9"
libc = "0.2"
log = "0.3.5"
msg = {path = "../msg"}
Expand Down
8 changes: 4 additions & 4 deletions components/layout/display_list_builder.rs
Expand Up @@ -28,7 +28,7 @@ use gfx::display_list::{BorderRadii, BoxShadowClipMode, BoxShadowDisplayItem, Cl
use gfx::display_list::{ClipScrollNodeType, ClippingRegion, DisplayItem, DisplayItemMetadata};
use gfx::display_list::{DisplayList, DisplayListSection, GradientDisplayItem, IframeDisplayItem};
use gfx::display_list::{ImageBorder, ImageDisplayItem, LineDisplayItem, NormalBorder, OpaqueNode};
use gfx::display_list::{PopTextShadowDisplayItem, PushTextShadowDisplayItem};
use gfx::display_list::{PopAllTextShadowsDisplayItem, PushTextShadowDisplayItem};
use gfx::display_list::{RadialGradientDisplayItem, SolidColorDisplayItem, StackingContext};
use gfx::display_list::{StackingContextType, TextDisplayItem, TextOrientation, WebRenderImageInfo};
use gfx_traits::{combine_id_with_fragment_type, FragmentType, StackingContextId};
Expand Down Expand Up @@ -2340,9 +2340,9 @@ impl FragmentDisplayListBuilding for Fragment {
);
}

// Pair all the PushTextShadows
for _ in text_shadows {
state.add_display_item(DisplayItem::PopTextShadow(Box::new(PopTextShadowDisplayItem {
// Pop all the PushTextShadows
if !text_shadows.is_empty() {
state.add_display_item(DisplayItem::PopAllTextShadows(Box::new(PopAllTextShadowsDisplayItem {
base: base.clone(),
})));
}
Expand Down
4 changes: 2 additions & 2 deletions components/layout/webrender_helpers.rs
Expand Up @@ -465,8 +465,8 @@ impl WebRenderDisplayItemConverter for DisplayItem {
color: item.color,
});
}
DisplayItem::PopTextShadow(_) => {
builder.pop_shadow();
DisplayItem::PopAllTextShadows(_) => {
builder.pop_all_shadows();
}
DisplayItem::Iframe(ref item) => {
let rect = item.base.bounds;
Expand Down
2 changes: 1 addition & 1 deletion components/layout_thread/Cargo.toml
Expand Up @@ -21,7 +21,7 @@ gfx = {path = "../gfx"}
gfx_traits = {path = "../gfx_traits"}
heapsize = "0.4"
html5ever = "0.20.0"
ipc-channel = "0.8"
ipc-channel = "0.9"
layout = {path = "../layout"}
layout_traits = {path = "../layout_traits"}
lazy_static = "0.2"
Expand Down
2 changes: 1 addition & 1 deletion components/layout_traits/Cargo.toml
Expand Up @@ -11,7 +11,7 @@ path = "lib.rs"

[dependencies]
gfx = {path = "../gfx"}
ipc-channel = "0.8"
ipc-channel = "0.9"
metrics = {path = "../metrics"}
msg = {path = "../msg"}
net_traits = {path = "../net_traits"}
Expand Down
2 changes: 1 addition & 1 deletion components/metrics/Cargo.toml
Expand Up @@ -12,7 +12,7 @@ path = "lib.rs"
[dependencies]
gfx = {path = "../gfx"}
gfx_traits = {path = "../gfx_traits"}
ipc-channel = "0.8"
ipc-channel = "0.9"
log = "0.3.5"
msg = {path = "../msg"}
profile_traits = {path = "../profile_traits"}
Expand Down
2 changes: 1 addition & 1 deletion components/net/Cargo.toml
Expand Up @@ -19,7 +19,7 @@ hyper = "0.10"
hyper_serde = "0.7"
hyper-openssl = "0.2.2"
immeta = "0.3.1"
ipc-channel = "0.8"
ipc-channel = "0.9"
lazy_static = "0.2"
log = "0.3.5"
matches = "0.1"
Expand Down
2 changes: 1 addition & 1 deletion components/net_traits/Cargo.toml
Expand Up @@ -16,7 +16,7 @@ heapsize_derive = "0.1"
hyper = "0.10"
hyper_serde = "0.7"
image = "0.16"
ipc-channel = "0.8"
ipc-channel = "0.9"
lazy_static = "0.2"
log = "0.3.5"
msg = {path = "../msg"}
Expand Down
2 changes: 1 addition & 1 deletion components/profile/Cargo.toml
Expand Up @@ -15,7 +15,7 @@ unstable = []
[dependencies]
profile_traits = {path = "../profile_traits"}
influent = "0.4"
ipc-channel = "0.8"
ipc-channel = "0.9"
heartbeats-simple = "0.4"
log = "0.3.5"
serde = "1.0"
Expand Down
2 changes: 1 addition & 1 deletion components/profile_traits/Cargo.toml
Expand Up @@ -15,7 +15,7 @@ energy-profiling = ["energymon", "energy-monitor"]
[dependencies]
energy-monitor = {version = "0.2.0", optional = true}
energymon = {git = "https://github.com/energymon/energymon-rust.git", optional = true}
ipc-channel = "0.8"
ipc-channel = "0.9"
log = "0.3.5"
serde = "1.0"
servo_config = {path = "../config"}
Expand Down
2 changes: 1 addition & 1 deletion components/script/Cargo.toml
Expand Up @@ -49,7 +49,7 @@ html5ever = {version = "0.20", features = ["heap_size"]}
hyper = "0.10"
hyper_serde = "0.7"
image = "0.16"
ipc-channel = "0.8"
ipc-channel = "0.9"
js = {git = "https://github.com/servo/rust-mozjs", features = ["promises"]}
jstraceable_derive = {path = "../jstraceable_derive"}
lazy_static = "0.2"
Expand Down
2 changes: 1 addition & 1 deletion components/script_layout_interface/Cargo.toml
Expand Up @@ -19,7 +19,7 @@ gfx_traits = {path = "../gfx_traits"}
heapsize = "0.4"
heapsize_derive = "0.1"
html5ever = "0.20.0"
ipc-channel = "0.8"
ipc-channel = "0.9"
libc = "0.2"
log = "0.3.5"
metrics = {path = "../metrics"}
Expand Down
2 changes: 1 addition & 1 deletion components/script_traits/Cargo.toml
Expand Up @@ -20,7 +20,7 @@ heapsize = "0.4"
heapsize_derive = "0.1"
hyper = "0.10"
hyper_serde = "0.7"
ipc-channel = "0.8"
ipc-channel = "0.9"
libc = "0.2"
msg = {path = "../msg"}
net_traits = {path = "../net_traits"}
Expand Down
2 changes: 1 addition & 1 deletion components/servo/Cargo.toml
Expand Up @@ -39,7 +39,7 @@ env_logger = "0.4"
euclid = "0.15"
gfx = {path = "../gfx"}
gleam = "0.4"
ipc-channel = "0.8"
ipc-channel = "0.9"
layout_thread = {path = "../layout_thread"}
log = "0.3"
msg = {path = "../msg"}
Expand Down
2 changes: 1 addition & 1 deletion components/webdriver_server/Cargo.toml
Expand Up @@ -15,7 +15,7 @@ cookie = "0.6"
euclid = "0.15"
hyper = "0.10"
image = "0.16"
ipc-channel = "0.8"
ipc-channel = "0.9"
log = "0.3.5"
msg = {path = "../msg"}
net_traits = {path = "../net_traits"}
Expand Down
2 changes: 1 addition & 1 deletion components/webvr/Cargo.toml
Expand Up @@ -16,7 +16,7 @@ oculusvr = ['rust-webvr/oculusvr']
[dependencies]
canvas_traits = {path = "../canvas_traits"}
euclid = "0.15"
ipc-channel = "0.8"
ipc-channel = "0.9"
log = "0.3"
msg = {path = "../msg"}
rust-webvr = {version = "0.9", features = ["openvr"]}
Expand Down
2 changes: 1 addition & 1 deletion components/webvr_traits/Cargo.toml
Expand Up @@ -10,7 +10,7 @@ name = "webvr_traits"
path = "lib.rs"

[dependencies]
ipc-channel = "0.8"
ipc-channel = "0.9"
msg = {path = "../msg"}
rust-webvr-api = {version = "0.9", features = ["serde-serialization"]}
serde = "1.0"
2 changes: 1 addition & 1 deletion tests/unit/gfx/Cargo.toml
Expand Up @@ -12,5 +12,5 @@ doctest = false
[dependencies]
cssparser = "0.22.0"
gfx = {path = "../../../components/gfx"}
ipc-channel = "0.8"
ipc-channel = "0.9"
style = {path = "../../../components/style"}
2 changes: 1 addition & 1 deletion tests/unit/metrics/Cargo.toml
Expand Up @@ -13,7 +13,7 @@ doctest = false
euclid = "0.15"
gfx = {path = "../../../components/gfx"}
gfx_traits = {path = "../../../components/gfx_traits"}
ipc-channel = "0.8"
ipc-channel = "0.9"
metrics = {path = "../../../components/metrics"}
msg = {path = "../../../components/msg"}
net_traits = {path = "../../../components/net_traits"}
Expand Down
2 changes: 1 addition & 1 deletion tests/unit/net/Cargo.toml
Expand Up @@ -16,7 +16,7 @@ flate2 = "0.2.0"
hyper = "0.10"
hyper-openssl = "0.2"
hyper_serde = "0.7"
ipc-channel = "0.8"
ipc-channel = "0.9"
msg = {path = "../../../components/msg"}
net = {path = "../../../components/net"}
net_traits = {path = "../../../components/net_traits"}
Expand Down
2 changes: 1 addition & 1 deletion tests/unit/profile/Cargo.toml
Expand Up @@ -10,6 +10,6 @@ path = "lib.rs"
doctest = false

[dependencies]
ipc-channel = "0.8"
ipc-channel = "0.9"
profile = {path = "../../../components/profile"}
profile_traits = {path = "../../../components/profile_traits"}
@@ -0,0 +1,6 @@
[mix-blend-mode-intermediate-element-overflow-hidden-and-border-radius.htm]
type: reftest
expected:
if os == "linux": FAIL
bug: https://github.com/servo/webrender/issues/1776

@@ -0,0 +1,5 @@
[transform-3d-rotateY-stair-below-001.htm]
type: reftest
expected: FAIL
bug: https://github.com/servo/webrender/issues/1776

0 comments on commit 4469f39

Please sign in to comment.