mirror of
https://github.com/servo/servo.git
synced 2025-07-24 15:50:21 +01:00
Auto merge of #16113 - glennw:update-wr-opaque-opt, r=mrobinson
Update WR (opaque rect optimization, stacking context culling). <!-- Reviewable:start --> This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/16113) <!-- Reviewable:end -->
This commit is contained in:
commit
3b79bc2582
8 changed files with 32 additions and 38 deletions
50
Cargo.lock
generated
50
Cargo.lock
generated
|
@ -292,7 +292,7 @@ dependencies = [
|
||||||
"num-traits 0.1.37 (registry+https://github.com/rust-lang/crates.io-index)",
|
"num-traits 0.1.37 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"offscreen_gl_context 0.8.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"offscreen_gl_context 0.8.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"servo_config 0.0.1",
|
"servo_config 0.0.1",
|
||||||
"webrender_traits 0.26.0 (git+https://github.com/servo/webrender)",
|
"webrender_traits 0.27.0 (git+https://github.com/servo/webrender)",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
@ -306,7 +306,7 @@ dependencies = [
|
||||||
"ipc-channel 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"ipc-channel 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde 0.9.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde 0.9.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde_derive 0.9.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde_derive 0.9.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"webrender_traits 0.26.0 (git+https://github.com/servo/webrender)",
|
"webrender_traits 0.27.0 (git+https://github.com/servo/webrender)",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
@ -427,8 +427,8 @@ dependencies = [
|
||||||
"servo_url 0.0.1",
|
"servo_url 0.0.1",
|
||||||
"style_traits 0.0.1",
|
"style_traits 0.0.1",
|
||||||
"time 0.1.36 (registry+https://github.com/rust-lang/crates.io-index)",
|
"time 0.1.36 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"webrender 0.25.0 (git+https://github.com/servo/webrender)",
|
"webrender 0.26.0 (git+https://github.com/servo/webrender)",
|
||||||
"webrender_traits 0.26.0 (git+https://github.com/servo/webrender)",
|
"webrender_traits 0.27.0 (git+https://github.com/servo/webrender)",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
@ -461,7 +461,7 @@ dependencies = [
|
||||||
"servo_remutex 0.0.1",
|
"servo_remutex 0.0.1",
|
||||||
"servo_url 0.0.1",
|
"servo_url 0.0.1",
|
||||||
"style_traits 0.0.1",
|
"style_traits 0.0.1",
|
||||||
"webrender_traits 0.26.0 (git+https://github.com/servo/webrender)",
|
"webrender_traits 0.27.0 (git+https://github.com/servo/webrender)",
|
||||||
"webvr_traits 0.0.1",
|
"webvr_traits 0.0.1",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -706,7 +706,7 @@ dependencies = [
|
||||||
"servo_geometry 0.0.1",
|
"servo_geometry 0.0.1",
|
||||||
"servo_url 0.0.1",
|
"servo_url 0.0.1",
|
||||||
"style_traits 0.0.1",
|
"style_traits 0.0.1",
|
||||||
"webrender_traits 0.26.0 (git+https://github.com/servo/webrender)",
|
"webrender_traits 0.27.0 (git+https://github.com/servo/webrender)",
|
||||||
"x11 2.12.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"x11 2.12.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -988,7 +988,7 @@ dependencies = [
|
||||||
"time 0.1.36 (registry+https://github.com/rust-lang/crates.io-index)",
|
"time 0.1.36 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"truetype 0.26.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"truetype 0.26.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"unicode-script 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"unicode-script 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"webrender_traits 0.26.0 (git+https://github.com/servo/webrender)",
|
"webrender_traits 0.27.0 (git+https://github.com/servo/webrender)",
|
||||||
"xi-unicode 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"xi-unicode 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -1067,7 +1067,7 @@ dependencies = [
|
||||||
"servo_url 0.0.1",
|
"servo_url 0.0.1",
|
||||||
"style_traits 0.0.1",
|
"style_traits 0.0.1",
|
||||||
"user32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"user32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"webrender_traits 0.26.0 (git+https://github.com/servo/webrender)",
|
"webrender_traits 0.27.0 (git+https://github.com/servo/webrender)",
|
||||||
"winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
"winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"x11 2.12.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"x11 2.12.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
@ -1378,7 +1378,7 @@ dependencies = [
|
||||||
"style_traits 0.0.1",
|
"style_traits 0.0.1",
|
||||||
"unicode-bidi 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
"unicode-bidi 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"unicode-script 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"unicode-script 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"webrender_traits 0.26.0 (git+https://github.com/servo/webrender)",
|
"webrender_traits 0.27.0 (git+https://github.com/servo/webrender)",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
@ -1418,7 +1418,7 @@ dependencies = [
|
||||||
"servo_geometry 0.0.1",
|
"servo_geometry 0.0.1",
|
||||||
"servo_url 0.0.1",
|
"servo_url 0.0.1",
|
||||||
"style 0.0.1",
|
"style 0.0.1",
|
||||||
"webrender_traits 0.26.0 (git+https://github.com/servo/webrender)",
|
"webrender_traits 0.27.0 (git+https://github.com/servo/webrender)",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
@ -1432,7 +1432,7 @@ dependencies = [
|
||||||
"profile_traits 0.0.1",
|
"profile_traits 0.0.1",
|
||||||
"script_traits 0.0.1",
|
"script_traits 0.0.1",
|
||||||
"servo_url 0.0.1",
|
"servo_url 0.0.1",
|
||||||
"webrender_traits 0.26.0 (git+https://github.com/servo/webrender)",
|
"webrender_traits 0.27.0 (git+https://github.com/servo/webrender)",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
@ -1517,8 +1517,8 @@ dependencies = [
|
||||||
"style 0.0.1",
|
"style 0.0.1",
|
||||||
"style_traits 0.0.1",
|
"style_traits 0.0.1",
|
||||||
"webdriver_server 0.0.1",
|
"webdriver_server 0.0.1",
|
||||||
"webrender 0.25.0 (git+https://github.com/servo/webrender)",
|
"webrender 0.26.0 (git+https://github.com/servo/webrender)",
|
||||||
"webrender_traits 0.26.0 (git+https://github.com/servo/webrender)",
|
"webrender_traits 0.27.0 (git+https://github.com/servo/webrender)",
|
||||||
"webvr 0.0.1",
|
"webvr 0.0.1",
|
||||||
"webvr_traits 0.0.1",
|
"webvr_traits 0.0.1",
|
||||||
]
|
]
|
||||||
|
@ -1667,7 +1667,7 @@ dependencies = [
|
||||||
"heapsize_derive 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"heapsize_derive 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde 0.9.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde 0.9.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde_derive 0.9.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde_derive 0.9.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"webrender_traits 0.26.0 (git+https://github.com/servo/webrender)",
|
"webrender_traits 0.27.0 (git+https://github.com/servo/webrender)",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
@ -1709,7 +1709,7 @@ dependencies = [
|
||||||
"unicase 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"unicase 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"url 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"url 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"uuid 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"uuid 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"webrender_traits 0.26.0 (git+https://github.com/servo/webrender)",
|
"webrender_traits 0.27.0 (git+https://github.com/servo/webrender)",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
@ -1767,7 +1767,7 @@ dependencies = [
|
||||||
"servo_url 0.0.1",
|
"servo_url 0.0.1",
|
||||||
"url 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"url 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"uuid 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"uuid 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"webrender_traits 0.26.0 (git+https://github.com/servo/webrender)",
|
"webrender_traits 0.27.0 (git+https://github.com/servo/webrender)",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
@ -2312,7 +2312,7 @@ dependencies = [
|
||||||
"tinyfiledialogs 2.5.9 (registry+https://github.com/rust-lang/crates.io-index)",
|
"tinyfiledialogs 2.5.9 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"url 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"url 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"uuid 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"uuid 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"webrender_traits 0.26.0 (git+https://github.com/servo/webrender)",
|
"webrender_traits 0.27.0 (git+https://github.com/servo/webrender)",
|
||||||
"webvr 0.0.1",
|
"webvr 0.0.1",
|
||||||
"webvr_traits 0.0.1",
|
"webvr_traits 0.0.1",
|
||||||
"xml5ever 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"xml5ever 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
@ -3186,8 +3186,8 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "webrender"
|
name = "webrender"
|
||||||
version = "0.25.0"
|
version = "0.26.0"
|
||||||
source = "git+https://github.com/servo/webrender#0794911f97cae92496fca992d7430da696fa24eb"
|
source = "git+https://github.com/servo/webrender#b2dd9f792d0cb3dfc591567c105755f56f35956d"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"app_units 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"app_units 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"bincode 1.0.0-alpha2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"bincode 1.0.0-alpha2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
@ -3209,13 +3209,13 @@ dependencies = [
|
||||||
"thread_profiler 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"thread_profiler 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"threadpool 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"threadpool 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"time 0.1.36 (registry+https://github.com/rust-lang/crates.io-index)",
|
"time 0.1.36 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"webrender_traits 0.26.0 (git+https://github.com/servo/webrender)",
|
"webrender_traits 0.27.0 (git+https://github.com/servo/webrender)",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "webrender_traits"
|
name = "webrender_traits"
|
||||||
version = "0.26.0"
|
version = "0.27.0"
|
||||||
source = "git+https://github.com/servo/webrender#0794911f97cae92496fca992d7430da696fa24eb"
|
source = "git+https://github.com/servo/webrender#b2dd9f792d0cb3dfc591567c105755f56f35956d"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"app_units 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"app_units 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"byteorder 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"byteorder 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
@ -3239,7 +3239,7 @@ dependencies = [
|
||||||
"msg 0.0.1",
|
"msg 0.0.1",
|
||||||
"script_traits 0.0.1",
|
"script_traits 0.0.1",
|
||||||
"servo_config 0.0.1",
|
"servo_config 0.0.1",
|
||||||
"webrender_traits 0.26.0 (git+https://github.com/servo/webrender)",
|
"webrender_traits 0.27.0 (git+https://github.com/servo/webrender)",
|
||||||
"webvr_traits 0.0.1",
|
"webvr_traits 0.0.1",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -3582,8 +3582,8 @@ dependencies = [
|
||||||
"checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"
|
"checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"
|
||||||
"checksum walkdir 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)" = "bb08f9e670fab86099470b97cd2b252d6527f0b3cc1401acdb595ffc9dd288ff"
|
"checksum walkdir 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)" = "bb08f9e670fab86099470b97cd2b252d6527f0b3cc1401acdb595ffc9dd288ff"
|
||||||
"checksum webdriver 0.20.0 (registry+https://github.com/rust-lang/crates.io-index)" = "cdc28802daddee94267a657ffeac2593a33881fb7a3a44fedd320b1319efcaf6"
|
"checksum webdriver 0.20.0 (registry+https://github.com/rust-lang/crates.io-index)" = "cdc28802daddee94267a657ffeac2593a33881fb7a3a44fedd320b1319efcaf6"
|
||||||
"checksum webrender 0.25.0 (git+https://github.com/servo/webrender)" = "<none>"
|
"checksum webrender 0.26.0 (git+https://github.com/servo/webrender)" = "<none>"
|
||||||
"checksum webrender_traits 0.26.0 (git+https://github.com/servo/webrender)" = "<none>"
|
"checksum webrender_traits 0.27.0 (git+https://github.com/servo/webrender)" = "<none>"
|
||||||
"checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
|
"checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
|
||||||
"checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"
|
"checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"
|
||||||
"checksum ws 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "04614a58714f3fd4a8b1da4bcae9f031c532d35988c3d39627619248113f8be8"
|
"checksum ws 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "04614a58714f3fd4a8b1da4bcae9f031c532d35988c3d39627619248113f8be8"
|
||||||
|
|
|
@ -567,7 +567,8 @@ impl<'a> CanvasPaintThread<'a> {
|
||||||
offset: 0,
|
offset: 0,
|
||||||
is_opaque: false,
|
is_opaque: false,
|
||||||
},
|
},
|
||||||
element.into());
|
element.into(),
|
||||||
|
None);
|
||||||
|
|
||||||
let data = CanvasImageData {
|
let data = CanvasImageData {
|
||||||
image_key: self.webrender_image_key,
|
image_key: self.webrender_image_key,
|
||||||
|
|
|
@ -261,7 +261,8 @@ impl WebGLPaintThread {
|
||||||
offset: 0,
|
offset: 0,
|
||||||
is_opaque: false,
|
is_opaque: false,
|
||||||
},
|
},
|
||||||
pixels.clone());
|
pixels.clone(),
|
||||||
|
None);
|
||||||
|
|
||||||
let image_data = CanvasImageData {
|
let image_data = CanvasImageData {
|
||||||
image_key: image_key,
|
image_key: image_key,
|
||||||
|
|
|
@ -404,10 +404,6 @@ impl WebRenderDisplayItemConverter for DisplayItem {
|
||||||
let stacking_context = &item.stacking_context;
|
let stacking_context = &item.stacking_context;
|
||||||
debug_assert!(stacking_context.context_type == StackingContextType::Real);
|
debug_assert!(stacking_context.context_type == StackingContextType::Real);
|
||||||
|
|
||||||
let clip = builder.new_clip_region(&stacking_context.overflow.to_rectf(),
|
|
||||||
vec![],
|
|
||||||
None);
|
|
||||||
|
|
||||||
let transform = stacking_context.transform.map(|transform| {
|
let transform = stacking_context.transform.map(|transform| {
|
||||||
LayoutTransform::from_untyped(&transform).into()
|
LayoutTransform::from_untyped(&transform).into()
|
||||||
});
|
});
|
||||||
|
@ -417,7 +413,6 @@ impl WebRenderDisplayItemConverter for DisplayItem {
|
||||||
|
|
||||||
builder.push_stacking_context(stacking_context.scroll_policy,
|
builder.push_stacking_context(stacking_context.scroll_policy,
|
||||||
stacking_context.bounds.to_rectf(),
|
stacking_context.bounds.to_rectf(),
|
||||||
clip,
|
|
||||||
stacking_context.z_index,
|
stacking_context.z_index,
|
||||||
transform,
|
transform,
|
||||||
perspective,
|
perspective,
|
||||||
|
|
|
@ -1,3 +0,0 @@
|
||||||
[calc-border-radius-1.htm]
|
|
||||||
type: reftest
|
|
||||||
expected: FAIL
|
|
|
@ -24037,7 +24037,7 @@
|
||||||
"reftest"
|
"reftest"
|
||||||
],
|
],
|
||||||
"css/viewport_rule_ref.html": [
|
"css/viewport_rule_ref.html": [
|
||||||
"00bb1ce6ccffc6b6bb0db1565985171ff49f1362",
|
"aa1693b5917599430c3520cc7aebdd275d4c6f19",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"css/visibility_hidden.html": [
|
"css/visibility_hidden.html": [
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
[transform-abspos-006.htm]
|
[border_black_ridge_b.html]
|
||||||
type: reftest
|
type: reftest
|
||||||
expected: FAIL
|
expected: FAIL
|
|
@ -5,7 +5,7 @@
|
||||||
#container {
|
#container {
|
||||||
background: blue;
|
background: blue;
|
||||||
height: 180px;
|
height: 180px;
|
||||||
width: 232px;
|
width: 240px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#box {
|
#box {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue