From 26083b1dcaa7995b7f5e9ffe17388e0d5463ce6e Mon Sep 17 00:00:00 2001 From: Glenn Watson Date: Wed, 16 Aug 2017 09:18:43 +1000 Subject: [PATCH] Update WR (new texture cache allocator, shader deinit path). --- Cargo.lock | 84 ++++++++++++++-------------- components/compositing/compositor.rs | 5 +- components/servo/lib.rs | 4 ++ ports/servo/main.rs | 2 + 4 files changed, 52 insertions(+), 43 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 4455b98c203..2b758fe160a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -328,13 +328,13 @@ dependencies = [ "compositing 0.0.1", "cssparser 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.15.1 (registry+https://github.com/rust-lang/crates.io-index)", - "gleam 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", + "gleam 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "ipc-channel 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.3.8 (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.11.1 (registry+https://github.com/rust-lang/crates.io-index)", - "webrender 0.48.0 (git+https://github.com/servo/webrender)", - "webrender_api 0.48.0 (git+https://github.com/servo/webrender)", + "webrender 0.48.1 (git+https://github.com/servo/webrender)", + "webrender_api 0.48.1 (git+https://github.com/servo/webrender)", ] [[package]] @@ -350,7 +350,7 @@ dependencies = [ "offscreen_gl_context 0.11.1 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", "servo_config 0.0.1", - "webrender_api 0.48.0 (git+https://github.com/servo/webrender)", + "webrender_api 0.48.1 (git+https://github.com/servo/webrender)", ] [[package]] @@ -380,7 +380,7 @@ name = "cgl" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "gleam 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", + "gleam 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -488,7 +488,7 @@ version = "0.0.1" dependencies = [ "euclid 0.15.1 (registry+https://github.com/rust-lang/crates.io-index)", "gfx_traits 0.0.1", - "gleam 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", + "gleam 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "image 0.12.4 (registry+https://github.com/rust-lang/crates.io-index)", "ipc-channel 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", @@ -501,8 +501,8 @@ dependencies = [ "servo_url 0.0.1", "style_traits 0.0.1", "time 0.1.37 (registry+https://github.com/rust-lang/crates.io-index)", - "webrender 0.48.0 (git+https://github.com/servo/webrender)", - "webrender_api 0.48.0 (git+https://github.com/servo/webrender)", + "webrender 0.48.1 (git+https://github.com/servo/webrender)", + "webrender_api 0.48.1 (git+https://github.com/servo/webrender)", ] [[package]] @@ -538,7 +538,7 @@ dependencies = [ "servo_remutex 0.0.1", "servo_url 0.0.1", "style_traits 0.0.1", - "webrender_api 0.48.0 (git+https://github.com/servo/webrender)", + "webrender_api 0.48.1 (git+https://github.com/servo/webrender)", "webvr_traits 0.0.1", ] @@ -761,7 +761,7 @@ dependencies = [ "compositing 0.0.1", "devtools 0.0.1", "euclid 0.15.1 (registry+https://github.com/rust-lang/crates.io-index)", - "gleam 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", + "gleam 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "glutin_app 0.0.1", "libc 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)", "libservo 0.0.1", @@ -774,7 +774,7 @@ dependencies = [ "servo_geometry 0.0.1", "servo_url 0.0.1", "style_traits 0.0.1", - "webrender_api 0.48.0 (git+https://github.com/servo/webrender)", + "webrender_api 0.48.1 (git+https://github.com/servo/webrender)", "x11 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1088,7 +1088,7 @@ dependencies = [ "truetype 0.26.0 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-bidi 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-script 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "webrender_api 0.48.0 (git+https://github.com/servo/webrender)", + "webrender_api 0.48.1 (git+https://github.com/servo/webrender)", "xi-unicode 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "xml5ever 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1134,7 +1134,7 @@ dependencies = [ [[package]] name = "gleam" -version = "0.4.7" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "gl_generator 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1154,7 +1154,7 @@ dependencies = [ "compositing 0.0.1", "euclid 0.15.1 (registry+https://github.com/rust-lang/crates.io-index)", "gdi32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gleam 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", + "gleam 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "libservo 0.0.1", "log 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", "msg 0.0.1", @@ -1169,7 +1169,7 @@ dependencies = [ "servo_url 0.0.1", "style_traits 0.0.1", "user32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "webrender_api 0.48.0 (git+https://github.com/servo/webrender)", + "webrender_api 0.48.1 (git+https://github.com/servo/webrender)", "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", "x11 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1353,7 +1353,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cgl 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "core-foundation 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gleam 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", + "gleam 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "leaky-cow 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1485,7 +1485,7 @@ dependencies = [ "style_traits 0.0.1", "unicode-bidi 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-script 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "webrender_api 0.48.0 (git+https://github.com/servo/webrender)", + "webrender_api 0.48.1 (git+https://github.com/servo/webrender)", ] [[package]] @@ -1532,7 +1532,7 @@ dependencies = [ "servo_url 0.0.1", "style 0.0.1", "style_traits 0.0.1", - "webrender_api 0.48.0 (git+https://github.com/servo/webrender)", + "webrender_api 0.48.1 (git+https://github.com/servo/webrender)", ] [[package]] @@ -1547,7 +1547,7 @@ dependencies = [ "profile_traits 0.0.1", "script_traits 0.0.1", "servo_url 0.0.1", - "webrender_api 0.48.0 (git+https://github.com/servo/webrender)", + "webrender_api 0.48.1 (git+https://github.com/servo/webrender)", ] [[package]] @@ -1613,7 +1613,7 @@ dependencies = [ "euclid 0.15.1 (registry+https://github.com/rust-lang/crates.io-index)", "gaol 0.0.1 (git+https://github.com/servo/gaol)", "gfx 0.0.1", - "gleam 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", + "gleam 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "ipc-channel 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", "layout_thread 0.0.1", "log 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1631,8 +1631,8 @@ dependencies = [ "style 0.0.1", "style_traits 0.0.1", "webdriver_server 0.0.1", - "webrender 0.48.0 (git+https://github.com/servo/webrender)", - "webrender_api 0.48.0 (git+https://github.com/servo/webrender)", + "webrender 0.48.1 (git+https://github.com/servo/webrender)", + "webrender_api 0.48.1 (git+https://github.com/servo/webrender)", "webvr 0.0.1", "webvr_traits 0.0.1", ] @@ -1820,7 +1820,7 @@ dependencies = [ "heapsize 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize_derive 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", - "webrender_api 0.48.0 (git+https://github.com/servo/webrender)", + "webrender_api 0.48.1 (git+https://github.com/servo/webrender)", ] [[package]] @@ -1870,7 +1870,7 @@ dependencies = [ "unicase 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "url 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "uuid 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "webrender_api 0.48.0 (git+https://github.com/servo/webrender)", + "webrender_api 0.48.1 (git+https://github.com/servo/webrender)", ] [[package]] @@ -1927,7 +1927,7 @@ dependencies = [ "servo_url 0.0.1", "url 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "uuid 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "webrender_api 0.48.0 (git+https://github.com/servo/webrender)", + "webrender_api 0.48.1 (git+https://github.com/servo/webrender)", ] [[package]] @@ -2034,7 +2034,7 @@ dependencies = [ "euclid 0.15.1 (registry+https://github.com/rust-lang/crates.io-index)", "gdi32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "gl_generator 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", - "gleam 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", + "gleam 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", "libloading 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2478,7 +2478,7 @@ dependencies = [ "encoding 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.15.1 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", - "gleam 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", + "gleam 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "half 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize_derive 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2530,7 +2530,7 @@ dependencies = [ "url 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "utf-8 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "uuid 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "webrender_api 0.48.0 (git+https://github.com/servo/webrender)", + "webrender_api 0.48.1 (git+https://github.com/servo/webrender)", "webvr 0.0.1", "webvr_traits 0.0.1", "xml5ever 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2563,7 +2563,7 @@ dependencies = [ "servo_atoms 0.0.1", "servo_url 0.0.1", "style 0.0.1", - "webrender_api 0.48.0 (git+https://github.com/servo/webrender)", + "webrender_api 0.48.1 (git+https://github.com/servo/webrender)", ] [[package]] @@ -2607,7 +2607,7 @@ dependencies = [ "style_traits 0.0.1", "time 0.1.37 (registry+https://github.com/rust-lang/crates.io-index)", "url 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "webrender_api 0.48.0 (git+https://github.com/servo/webrender)", + "webrender_api 0.48.1 (git+https://github.com/servo/webrender)", "webvr_traits 0.0.1", ] @@ -2775,7 +2775,7 @@ dependencies = [ "cmake 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.15.1 (registry+https://github.com/rust-lang/crates.io-index)", "expat-sys 2.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "gleam 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", + "gleam 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "glx 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "io-surface 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3099,7 +3099,7 @@ dependencies = [ "selectors 0.19.0", "serde 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", "servo_atoms 0.0.1", - "webrender_api 0.48.0 (git+https://github.com/servo/webrender)", + "webrender_api 0.48.1 (git+https://github.com/servo/webrender)", ] [[package]] @@ -3479,8 +3479,8 @@ dependencies = [ [[package]] name = "webrender" -version = "0.48.0" -source = "git+https://github.com/servo/webrender#b13a3b8f776b2ef4d5672173c9a3aa77c7b87936" +version = "0.48.1" +source = "git+https://github.com/servo/webrender#48808d144c83bbcc06524cb32c945144b44b51a5" dependencies = [ "app_units 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", "bincode 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3494,7 +3494,7 @@ dependencies = [ "freetype 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "fxhash 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "gamma-lut 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "gleam 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", + "gleam 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", "num-traits 0.1.37 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3503,13 +3503,13 @@ dependencies = [ "rayon 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", "thread_profiler 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "time 0.1.37 (registry+https://github.com/rust-lang/crates.io-index)", - "webrender_api 0.48.0 (git+https://github.com/servo/webrender)", + "webrender_api 0.48.1 (git+https://github.com/servo/webrender)", ] [[package]] name = "webrender_api" -version = "0.48.0" -source = "git+https://github.com/servo/webrender#b13a3b8f776b2ef4d5672173c9a3aa77c7b87936" +version = "0.48.1" +source = "git+https://github.com/servo/webrender#48808d144c83bbcc06524cb32c945144b44b51a5" dependencies = [ "app_units 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", "bincode 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3519,7 +3519,7 @@ dependencies = [ "dwrote 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.15.1 (registry+https://github.com/rust-lang/crates.io-index)", "fxhash 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "gleam 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", + "gleam 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "ipc-channel 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", "offscreen_gl_context 0.11.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3743,7 +3743,7 @@ dependencies = [ "checksum getopts 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "d9047cfbd08a437050b363d35ef160452c5fe8ea5187ae0a624708c91581d685" "checksum gif 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8a80d6fe9e52f637df9afd4779449a7be17c39cc9c35b01589bb833f956ba596" "checksum gl_generator 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "0940975a4ca12b088d32b5d5134826c47d2e73de4b0b459b05244c01503eccbb" -"checksum gleam 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)" = "917ee404f414ed77756c12cb44fdcc7cd02f207bf91e1dc91a3ce7da794ec361" +"checksum gleam 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "bf887141f0c2a83eae026cbf3fba74f0a5cb0f01d20e5cdfcd8c4ad39295be1e" "checksum glob 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "8be18de09a56b60ed0edf84bc9df007e30040691af7acd1c41874faac5895bfb" "checksum glx 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b280007fa9c7442cfd1e0b1addb8d1a59240267110e8705f8f7e2c7bfb7e2f72" "checksum half 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "63d68db75012a85555434ee079e7e6337931f87a087ab2988becbadf64673a7f" @@ -3923,8 +3923,8 @@ dependencies = [ "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 webdriver 0.22.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d548aabf87411b1b4ba91fd07eacd8b238135c7131a452b8a9f6386209167e18" -"checksum webrender 0.48.0 (git+https://github.com/servo/webrender)" = "" -"checksum webrender_api 0.48.0 (git+https://github.com/servo/webrender)" = "" +"checksum webrender 0.48.1 (git+https://github.com/servo/webrender)" = "" +"checksum webrender_api 0.48.1 (git+https://github.com/servo/webrender)" = "" "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 ws 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "04614a58714f3fd4a8b1da4bcae9f031c532d35988c3d39627619248113f8be8" diff --git a/components/compositing/compositor.rs b/components/compositing/compositor.rs index 99273256d52..93654eb71b0 100644 --- a/components/compositing/compositor.rs +++ b/components/compositing/compositor.rs @@ -412,6 +412,10 @@ impl IOCompositor { compositor } + pub fn deinit(self) { + self.webrender.deinit(); + } + fn start_shutting_down(&mut self) { debug!("Compositor sending Exit message to Constellation"); if let Err(e) = self.constellation_chan.send(ConstellationMsg::Exit) { @@ -1616,7 +1620,6 @@ impl IOCompositor { } } - /// Why we performed a composite. This is used for debugging. #[derive(Copy, Clone, PartialEq, Debug)] pub enum CompositingReason { diff --git a/components/servo/lib.rs b/components/servo/lib.rs index 93e6d4cf454..af5b2ff0972 100644 --- a/components/servo/lib.rs +++ b/components/servo/lib.rs @@ -268,6 +268,10 @@ impl Servo where Window: WindowMethods + 'static { Box::new(logger) }).expect("Failed to set logger.") } + + pub fn deinit(self) { + self.compositor.deinit(); + } } fn create_compositor_channel(event_loop_waker: Box) diff --git a/ports/servo/main.rs b/ports/servo/main.rs index 2a2227486a6..2df41625f22 100644 --- a/ports/servo/main.rs +++ b/ports/servo/main.rs @@ -183,6 +183,8 @@ fn main() { unregister_glutin_resize_handler(&window); + servo_wrapper.servo.deinit(); + platform::deinit() }