Force release-mode in wasm-pack and add optimizations

This commit is contained in:
Maximilian Ammann 2021-12-10 09:57:51 +01:00
parent db3f9820af
commit 8f49a0e59d
3 changed files with 23 additions and 169 deletions

159
Cargo.lock generated
View File

@ -62,18 +62,6 @@ version = "0.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6" checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6"
[[package]]
name = "as-slice"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "45403b49e3954a4b8428a0ac21a4b7afadccf92bfd96273f1a58cd4812496ae0"
dependencies = [
"generic-array 0.12.4",
"generic-array 0.13.3",
"generic-array 0.14.4",
"stable_deref_trait",
]
[[package]] [[package]]
name = "ash" name = "ash"
version = "0.33.3+1.2.191" version = "0.33.3+1.2.191"
@ -399,7 +387,7 @@ dependencies = [
"clap", "clap",
"criterion-plot", "criterion-plot",
"csv", "csv",
"itertools 0.10.1", "itertools",
"lazy_static", "lazy_static",
"num-traits", "num-traits",
"oorandom", "oorandom",
@ -421,7 +409,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d00996de9f2f7559f7f4dc286073197f83e92256a59ed395f9aac01fe717da57" checksum = "d00996de9f2f7559f7f4dc286073197f83e92256a59ed395f9aac01fe717da57"
dependencies = [ dependencies = [
"cast", "cast",
"itertools 0.10.1", "itertools",
] ]
[[package]] [[package]]
@ -795,68 +783,6 @@ dependencies = [
"byteorder", "byteorder",
] ]
[[package]]
name = "generic-array"
version = "0.12.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ffdf9f34f1447443d37393cc6c2b8313aebddcd96906caf34e54c68d8e57d7bd"
dependencies = [
"typenum",
]
[[package]]
name = "generic-array"
version = "0.13.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f797e67af32588215eaaab8327027ee8e71b9dd0b2b26996aedf20c030fce309"
dependencies = [
"typenum",
]
[[package]]
name = "generic-array"
version = "0.14.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "501466ecc8a30d1d3b7fc9229b122b2ce8ed6e9d9223f1138d4babb253e51817"
dependencies = [
"typenum",
"version_check",
]
[[package]]
name = "geo"
version = "0.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "02bf7fb342abefefb0abbb8d033f37233e6f857a1a970805d15f96560834d699"
dependencies = [
"geo-types",
"geographiclib-rs",
"log",
"num-traits",
"robust",
"rstar",
]
[[package]]
name = "geo-types"
version = "0.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d8bd2e95dd9f5c8ff74159ed9205ad7fd239a9569173a550863976421b45d2bb"
dependencies = [
"approx",
"num-traits",
"rstar",
]
[[package]]
name = "geographiclib-rs"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b78e20d5d868fa2c4182a8170cb4df261e781a605810e3c1500269c1907da461"
dependencies = [
"lazy_static",
]
[[package]] [[package]]
name = "getrandom" name = "getrandom"
version = "0.2.3" version = "0.2.3"
@ -925,15 +851,6 @@ version = "1.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7" checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7"
[[package]]
name = "hash32"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d4041af86e63ac4298ce40e5cca669066e75b6f1aa3390fe2561ffa5e1d9f4cc"
dependencies = [
"byteorder",
]
[[package]] [[package]]
name = "hashbrown" name = "hashbrown"
version = "0.11.2" version = "0.11.2"
@ -943,18 +860,6 @@ dependencies = [
"ahash", "ahash",
] ]
[[package]]
name = "heapless"
version = "0.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "634bd4d29cbf24424d0a4bfcbf80c6960129dc24424752a7d1d1390607023422"
dependencies = [
"as-slice",
"generic-array 0.14.4",
"hash32",
"stable_deref_trait",
]
[[package]] [[package]]
name = "hermit-abi" name = "hermit-abi"
version = "0.1.19" version = "0.1.19"
@ -964,16 +869,6 @@ dependencies = [
"libc", "libc",
] ]
[[package]]
name = "hexdump"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e40283dadb02f3af778878be1d717b17b4e4ab92e1d935ab03a730b0542905f2"
dependencies = [
"arrayvec 0.5.2",
"itertools 0.4.19",
]
[[package]] [[package]]
name = "hexf-parse" name = "hexf-parse"
version = "0.2.1" version = "0.2.1"
@ -1021,12 +916,6 @@ dependencies = [
"web-sys", "web-sys",
] ]
[[package]]
name = "itertools"
version = "0.4.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c4a9b56eb56058f43dc66e58f40a214b2ccbc9f3df51861b63d51dec7b65bc3f"
[[package]] [[package]]
name = "itertools" name = "itertools"
version = "0.10.1" version = "0.10.1"
@ -1209,17 +1098,12 @@ dependencies = [
"criterion", "criterion",
"env_logger", "env_logger",
"futures", "futures",
"geo",
"geo-types",
"hexdump",
"instant", "instant",
"js-sys", "js-sys",
"log", "log",
"lyon", "lyon",
"lyon_path", "lyon_path",
"pollster", "pollster",
"serde",
"serde_json",
"style-spec", "style-spec",
"test-env-log", "test-env-log",
"vector-tile", "vector-tile",
@ -1522,12 +1406,6 @@ dependencies = [
"winapi", "winapi",
] ]
[[package]]
name = "pdqselect"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4ec91767ecc0a0bbe558ce8c9da33c068066c57ecc8bb8477ef8c1ad3ef77c27"
[[package]] [[package]]
name = "percent-encoding" name = "percent-encoding"
version = "2.1.0" version = "2.1.0"
@ -1752,24 +1630,6 @@ version = "0.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f1382d1f0a252c4bf97dc20d979a2fdd05b024acd7c2ed0f7595d7817666a157" checksum = "f1382d1f0a252c4bf97dc20d979a2fdd05b024acd7c2ed0f7595d7817666a157"
[[package]]
name = "robust"
version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e5864e7ef1a6b7bcf1d6ca3f655e65e724ed3b52546a0d0a663c991522f552ea"
[[package]]
name = "rstar"
version = "0.8.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3a45c0e8804d37e4d97e55c6f258bc9ad9c5ee7b07437009dd152d764949a27c"
dependencies = [
"heapless",
"num-traits",
"pdqselect",
"smallvec",
]
[[package]] [[package]]
name = "rustc_version" name = "rustc_version"
version = "0.2.3" version = "0.2.3"
@ -1851,9 +1711,6 @@ name = "serde"
version = "1.0.130" version = "1.0.130"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f12d06de37cf59146fbdecab66aa99f9fe4f78722e3607577a5375d66bd0c913" checksum = "f12d06de37cf59146fbdecab66aa99f9fe4f78722e3607577a5375d66bd0c913"
dependencies = [
"serde_derive",
]
[[package]] [[package]]
name = "serde_cbor" name = "serde_cbor"
@ -1958,12 +1815,6 @@ dependencies = [
"num-traits", "num-traits",
] ]
[[package]]
name = "stable_deref_trait"
version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
[[package]] [[package]]
name = "stdweb" name = "stdweb"
version = "0.4.20" version = "0.4.20"
@ -2130,12 +1981,6 @@ version = "0.6.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3e5d7cd7ab3e47dda6e56542f4bbf3824c15234958c6e1bd6aaa347e93499fdc" checksum = "3e5d7cd7ab3e47dda6e56542f4bbf3824c15234958c6e1bd6aaa347e93499fdc"
[[package]]
name = "typenum"
version = "1.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b63708a265f51345575b27fe43f9500ad611579e764c79edbc2037b1121959ec"
[[package]] [[package]]
name = "unicode-width" name = "unicode-width"
version = "0.1.9" version = "0.1.9"

View File

@ -12,12 +12,18 @@ crate-type = ["cdylib", "rlib"]
#[package.metadata.wasm-pack.profile.release] #[package.metadata.wasm-pack.profile.release]
#wasm-opt = false #wasm-opt = false
[profile.release]
lto = true
codegen-units = 1
opt-level = 's'
panic = "abort"
[features] [features]
web-webgl = ["wgpu/webgl"] web-webgl = ["wgpu/webgl"]
[target.'cfg(target_arch = "wasm32")'.dependencies] [target.'cfg(target_arch = "wasm32")'.dependencies]
console_error_panic_hook = "0.1" console_error_panic_hook = "0.1"
winit = { version = "0.25", features = ["web-sys"] } winit = { version = "0.25", default-features = true, features = ["web-sys"] }
web-sys = { version = "0.3", features = ["Worker", "WorkerOptions", "WorkerType", "MessageEvent"] } web-sys = { version = "0.3", features = ["Worker", "WorkerOptions", "WorkerType", "MessageEvent"] }
js-sys = "0.3" js-sys = "0.3"
wasm-bindgen = "0.2" wasm-bindgen = "0.2"
@ -25,39 +31,42 @@ wasm-bindgen-futures = "0.4"
console_log = { version = "0.2", features = ["color"] } console_log = { version = "0.2", features = ["color"] }
instant = { version = "0.1", features = ["stdweb"] } instant = { version = "0.1", features = ["stdweb"] }
[dependencies] [target.'cfg(target_arch = "x86_64")'.dependencies]
# Futures # Futures
futures = "0.3.5" futures = "0.3.5"
pollster = "0.2" pollster = "0.2"
env_logger = "0.9"
winit = { version = "0.25", default-features = true, features = ["x11", "wayland"] }
[dependencies]
# Vector riles # Vector riles
vector-tile = { path = "libs/vector_tile" } vector-tile = { path = "libs/vector_tile" }
style-spec = { path = "libs/style_spec" } style-spec = { path = "libs/style_spec" }
geo = "0.18.0" #geo = "0.18.0"
geo-types = "0.7" #geo-types = "0.7"
# proj = "0.24" FIXME: Incompatible with wasm # proj = "0.24" FIXME: Incompatible with wasm
# mbutiles = "0.1.1" FIXME: Incompatible with wasm # mbutiles = "0.1.1" FIXME: Incompatible with wasm
cgmath = "0.18" cgmath = "0.18"
# Rendering # Rendering
winit = { version = "0.25" } wgpu = { version = "0.11" }
wgpu = "0.11" lyon = { version = "0.17", features = ["extra"] } # extra for rust logo
lyon = { version = "0.17", features = ["extra"] }
lyon_path = "0.17" lyon_path = "0.17"
# https://docs.rs/euclid/0.22.6/euclid/index.html # https://docs.rs/euclid/0.22.6/euclid/index.html
# Logging # Logging
log = "0.4" log = "0.4"
env_logger = "0.9"
# Utils # Utils
hexdump = "0.1" #hexdump = "0.1"
bytemuck = "1.2.0" bytemuck = "1.2.0"
bytemuck_derive = "1.0" bytemuck_derive = "1.0"
# Serialization # Serialization
serde = { version = "1.0", features = ["derive"] } #serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0" #serde_json = "1.0"
[dev-dependencies] [dev-dependencies]
criterion = "0.3" criterion = "0.3"

View File

@ -74,7 +74,7 @@ module.exports = {
// //
// the mode `development` makes `wasm-pack` build in `debug` mode. // the mode `development` makes `wasm-pack` build in `debug` mode.
// the mode `production` makes `wasm-pack` build in `release` mode. // the mode `production` makes `wasm-pack` build in `release` mode.
// forceMode: "development", forceMode: "production",
// Controls plugin output verbosity, either 'info' or 'error'. // Controls plugin output verbosity, either 'info' or 'error'.
// Defaults to 'info'. // Defaults to 'info'.