From e2bc9566baad9cff57e5d2d2c8f8e2d43d2719d4 Mon Sep 17 00:00:00 2001 From: Anton-4 <17049058+Anton-4@users.noreply.github.com> Date: Wed, 19 May 2021 17:32:07 +0200 Subject: [PATCH] upgrade to wgpu 8.1, removed old editor benchmarks --- Cargo.lock | 243 ++++++++++------------ editor/Cargo.toml | 12 +- editor/benches/edit_benchmark.rs | 216 ------------------- editor/benches/file_benchmark.rs | 163 --------------- editor/benches/resources/10_lines.roc | 11 - editor/benches/results/file_read.txt | 26 --- editor/src/editor/main.rs | 4 +- editor/src/graphics/lowlevel/pipelines.rs | 14 +- editor/src/graphics/lowlevel/vertex.rs | 4 +- editor/src/graphics/shaders/shader.wgsl | 34 ++- 10 files changed, 143 insertions(+), 584 deletions(-) delete mode 100644 editor/benches/edit_benchmark.rs delete mode 100644 editor/benches/file_benchmark.rs delete mode 100644 editor/benches/resources/10_lines.roc delete mode 100644 editor/benches/results/file_read.txt diff --git a/Cargo.lock b/Cargo.lock index 55121233dd..7fdb4d4b50 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -121,11 +121,11 @@ checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" [[package]] name = "ash" -version = "0.31.0" +version = "0.32.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c69a8137596e84c22d57f3da1b5de1d4230b1742a710091c85f4d7ce50f00f38" +checksum = "06063a002a77d2734631db74e8f4ce7148b77fe522e6bca46f2ae7774fd48112" dependencies = [ - "libloading 0.6.7", + "libloading 0.7.0", ] [[package]] @@ -263,7 +263,7 @@ checksum = "8e215f8c2f9f79cb53c8335e687ffd07d5bfcb6fe5fc80723762d0be46e7cc54" dependencies = [ "proc-macro2 1.0.26", "quote 1.0.9", - "syn 1.0.65", + "syn 1.0.72", ] [[package]] @@ -371,7 +371,7 @@ dependencies = [ "proc-macro-error", "proc-macro2 1.0.26", "quote 1.0.9", - "syn 1.0.65", + "syn 1.0.72", ] [[package]] @@ -424,6 +424,16 @@ dependencies = [ "objc", ] +[[package]] +name = "codespan-reporting" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" +dependencies = [ + "termcolor", + "unicode-width", +] + [[package]] name = "colored" version = "2.0.0" @@ -758,17 +768,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e98e2ad1a782e33928b96fc3948e7c355e5af34ba4de7670fe8bac2a3b2006d" dependencies = [ "quote 1.0.9", - "syn 1.0.65", + "syn 1.0.72", ] [[package]] name = "d3d12" -version = "0.3.2" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0a60cceb22c7c53035f8980524fdc7f17cf49681a3c154e6757d30afbec6ec4" +checksum = "091ed1b25fe47c7ff129fc440c23650b6114f36aa00bc7212cc8041879294428" dependencies = [ "bitflags", - "libloading 0.6.7", + "libloading 0.7.0", "winapi 0.3.9", ] @@ -793,7 +803,7 @@ dependencies = [ "proc-macro2 1.0.26", "quote 1.0.9", "strsim", - "syn 1.0.65", + "syn 1.0.72", ] [[package]] @@ -804,7 +814,7 @@ checksum = "d9b5a2f4ac4969822c62224815d069952656cadc7084fdca9751e6d959189b72" dependencies = [ "darling_core", "quote 1.0.9", - "syn 1.0.65", + "syn 1.0.72", ] [[package]] @@ -815,7 +825,7 @@ checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" dependencies = [ "proc-macro2 1.0.26", "quote 1.0.9", - "syn 1.0.65", + "syn 1.0.72", ] [[package]] @@ -1071,7 +1081,7 @@ dependencies = [ "proc-macro-hack", "proc-macro2 1.0.26", "quote 1.0.9", - "syn 1.0.65", + "syn 1.0.72", ] [[package]] @@ -1148,9 +1158,9 @@ dependencies = [ [[package]] name = "gfx-auxil" -version = "0.8.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7b33ecf067f2117668d91c9b0f2e5f223ebd1ffec314caa2f3de27bb580186d" +checksum = "9ccf8711c9994dfa34337466bee3ae1462e172874c432ce4eb120ab2e98d39cf" dependencies = [ "fxhash", "gfx-hal", @@ -1159,15 +1169,15 @@ dependencies = [ [[package]] name = "gfx-backend-dx11" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f851d03c2e8f117e3702bf41201a4fafa447d5cb1276d5375870ae7573d069dd" +checksum = "6f839f27f8c8a6dc553ccca7f5b35a42009432bc25db9688bba7061cd394161f" dependencies = [ "arrayvec", "bitflags", "gfx-auxil", "gfx-hal", - "libloading 0.6.7", + "libloading 0.7.0", "log", "parking_lot", "range-alloc", @@ -1181,9 +1191,9 @@ dependencies = [ [[package]] name = "gfx-backend-dx12" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36dc6ba2b7647e2c2b27b8f74ff5ccdd53c703776588eee5b1de515fdcbd6bc9" +checksum = "3937738b0da5839bba4e33980d29f9a06dbce184d04a3a08c9a949e7953700e3" dependencies = [ "arrayvec", "bit-set", @@ -1197,14 +1207,15 @@ dependencies = [ "raw-window-handle", "smallvec", "spirv_cross", + "thunderdome", "winapi 0.3.9", ] [[package]] name = "gfx-backend-empty" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f07ef26a65954cfdd7b4c587f485100d1bb3b0bd6a51b02d817d6c87cca7a91" +checksum = "2ac55ada4bfcd35479b3421eea324d36d7da5f724e2f66ecb36d4efdb7041a5e" dependencies = [ "gfx-hal", "log", @@ -1213,32 +1224,31 @@ dependencies = [ [[package]] name = "gfx-backend-gl" -version = "0.7.1" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6717c50ab601efe4a669bfb44db615e3888695ac8263222aeaa702642b9fbc2" +checksum = "0caa03d6e0b7b4f202aea1f20c3f3288cfa06d92d24cea9d69c9a7627967244a" dependencies = [ "arrayvec", "bitflags", - "gfx-auxil", + "fxhash", "gfx-hal", "glow", "js-sys", "khronos-egl", - "libloading 0.6.7", + "libloading 0.7.0", "log", "naga", "parking_lot", "raw-window-handle", - "spirv_cross", "wasm-bindgen", "web-sys", ] [[package]] name = "gfx-backend-metal" -version = "0.7.0" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8dc54b456ece69ef49f8893269ebf24ac70969ed34ba2719c3f3abcc8fbff14e" +checksum = "340895ad544ba46433acb3bdabece0ef16f2dbedc030adbd7c9eaf2839fbed41" dependencies = [ "arrayvec", "bitflags", @@ -1246,24 +1256,24 @@ dependencies = [ "cocoa-foundation", "copyless", "foreign-types", - "gfx-auxil", + "fxhash", "gfx-hal", "log", "metal", "naga", "objc", "parking_lot", + "profiling", "range-alloc", "raw-window-handle", - "spirv_cross", "storage-map", ] [[package]] name = "gfx-backend-vulkan" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dabe88b1a5c91e0f969b441cc57e70364858066e4ba937deeb62065654ef9bd9" +checksum = "a353fc6fdb42ec646de49bbb74e4870e37a7e680caf33f3ac0615c30b1146d94" dependencies = [ "arrayvec", "ash", @@ -1282,9 +1292,9 @@ dependencies = [ [[package]] name = "gfx-hal" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1d9cc8d3b573dda62d0baca4f02e0209786e22c562caff001d77c389008781d" +checksum = "6d285bfd566f6b9134af908446ca350c0a1047495dfb9bbd826e701e8ee1d259" dependencies = [ "bitflags", "naga", @@ -1300,9 +1310,9 @@ checksum = "f6503fe142514ca4799d4c26297c4248239fe8838d827db6bd6065c6ed29a6ce" [[package]] name = "glow" -version = "0.7.2" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "072136d2c3783f3a92f131acb227bc806d3886278e2a4dc1e9990ec89ef9e70b" +checksum = "4b80b98efaa8a34fce11d60dd2ce2760d5d83c373cbcc73bb87c2a3a84a54108" dependencies = [ "js-sys", "slotmap", @@ -1351,13 +1361,12 @@ dependencies = [ [[package]] name = "gpu-alloc" -version = "0.3.0" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e7724b9aef57ea36d70faf54e0ee6265f86e41de16bed8333efdeab5b00e16b" +checksum = "bc76088804bb65a6f3b880bea9306fdaeffb25ebb453105fafa691282ee9fdba" dependencies = [ "bitflags", "gpu-alloc-types", - "tracing", ] [[package]] @@ -1378,7 +1387,6 @@ dependencies = [ "bitflags", "gpu-descriptor-types", "hashbrown 0.9.1", - "tracing", ] [[package]] @@ -1539,7 +1547,7 @@ dependencies = [ "proc-macro-hack", "proc-macro2 1.0.26", "quote 1.0.9", - "syn 1.0.65", + "syn 1.0.72", "unindent", ] @@ -1564,7 +1572,7 @@ source = "git+https://github.com/rtfeldman/inkwell?tag=llvm10-0.release4#9ae45f0 dependencies = [ "proc-macro2 1.0.26", "quote 1.0.9", - "syn 1.0.65", + "syn 1.0.72", ] [[package]] @@ -1638,9 +1646,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.46" +version = "0.3.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf3d7383929f7c9c7c2d0fa596f325832df98c3704f2c60553080f7127a58175" +checksum = "83bdfbace3a0e81a4253f73b49e960b053e396a11012cbd49b9b74d6a2b67062" dependencies = [ "wasm-bindgen", ] @@ -1657,12 +1665,12 @@ dependencies = [ [[package]] name = "khronos-egl" -version = "3.0.2" +version = "4.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b19cc4a81304db2a0ad69740e83cdc3a9364e3f9bd6d88a87288a4c2deec927b" +checksum = "8c2352bd1d0bceb871cb9d40f24360c8133c11d7486b68b5381c1dd1a32015e3" dependencies = [ "libc", - "libloading 0.6.7", + "libloading 0.7.0", ] [[package]] @@ -1802,9 +1810,9 @@ dependencies = [ [[package]] name = "metal" -version = "0.21.0" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4598d719460ade24c7d91f335daf055bf2a7eec030728ce751814c50cdd6a26c" +checksum = "1c12e48c737ee9a55e8bb2352bcde588f79ae308d3529ee888f7cc0f469b5777" dependencies = [ "bitflags", "block", @@ -1869,12 +1877,13 @@ dependencies = [ [[package]] name = "naga" -version = "0.3.2" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05089b2acdf0e6a962cdbf5e328402345a27f59fcde1a59fe97a73e8149d416f" +checksum = "f470a97eafcdd0dbea43d5e1a8ef3557aa31f49ba643d9430dbbf911c162b24c" dependencies = [ "bit-set", "bitflags", + "codespan-reporting", "fxhash", "log", "num-traits", @@ -1919,7 +1928,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2 1.0.26", "quote 1.0.9", - "syn 1.0.65", + "syn 1.0.72", ] [[package]] @@ -2030,7 +2039,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2 1.0.26", "quote 1.0.9", - "syn 1.0.65", + "syn 1.0.72", ] [[package]] @@ -2175,7 +2184,7 @@ checksum = "0b4b5f600e60dd3a147fb57b4547033d382d1979eb087af310e91cb45a63b1f4" dependencies = [ "proc-macro2 1.0.26", "quote 1.0.9", - "syn 1.0.65", + "syn 1.0.72", ] [[package]] @@ -2241,7 +2250,7 @@ dependencies = [ "pest_meta", "proc-macro2 1.0.26", "quote 1.0.9", - "syn 1.0.65", + "syn 1.0.72", ] [[package]] @@ -2401,7 +2410,7 @@ dependencies = [ "proc-macro-error-attr", "proc-macro2 1.0.26", "quote 1.0.9", - "syn 1.0.65", + "syn 1.0.72", "version_check", ] @@ -2413,7 +2422,7 @@ checksum = "8a5b4b77fdb63c1eca72173d68d24501c54ab1269409f6b672c85deb18af69de" dependencies = [ "proc-macro2 1.0.26", "quote 1.0.9", - "syn 1.0.65", + "syn 1.0.72", "syn-mid", "version_check", ] @@ -2448,6 +2457,12 @@ dependencies = [ "unicode-xid 0.2.1", ] +[[package]] +name = "profiling" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3a66d5e88679f2720126c11ee29da07a08f094eac52306b066edd7d393752d6" + [[package]] name = "pulldown-cmark" version = "0.8.0" @@ -2501,7 +2516,7 @@ checksum = "b22a693222d716a9587786f37ac3f6b4faedb5b80c23914e7303ff5a1d8016e9" dependencies = [ "proc-macro2 1.0.26", "quote 1.0.9", - "syn 1.0.65", + "syn 1.0.72", ] [[package]] @@ -3405,7 +3420,7 @@ version = "0.3.1" source = "git+https://github.com/rtfeldman/rustyline?tag=prompt-fix#a6b8a20d2bf5c3793d7367848be2f4afec2f0d99" dependencies = [ "quote 1.0.9", - "syn 1.0.65", + "syn 1.0.72", ] [[package]] @@ -3489,7 +3504,7 @@ checksum = "b093b7a2bb58203b5da3056c05b4ec1fed827dcfdb37347a8841695263b3d06d" dependencies = [ "proc-macro2 1.0.26", "quote 1.0.9", - "syn 1.0.65", + "syn 1.0.72", ] [[package]] @@ -3534,7 +3549,7 @@ checksum = "b2acd6defeddb41eb60bb468f8825d0cfd0c2a76bc03bfd235b6a1dc4f6a1ad5" dependencies = [ "proc-macro2 1.0.26", "quote 1.0.9", - "syn 1.0.65", + "syn 1.0.72", ] [[package]] @@ -3641,7 +3656,7 @@ checksum = "1508efa03c362e23817f96cde18abed596a25219a8b2c66e8db33c03543d315b" dependencies = [ "proc-macro2 1.0.26", "quote 1.0.9", - "syn 1.0.65", + "syn 1.0.72", ] [[package]] @@ -3708,9 +3723,9 @@ dependencies = [ [[package]] name = "syn" -version = "1.0.65" +version = "1.0.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3a1d708c221c5a612956ef9f75b37e454e88d1f7b899fbd3a18d4252012d663" +checksum = "a1e8cdbefb79a9a5a65e0db8b47b723ee907b7c7f8496c76a1770b5c310bab82" dependencies = [ "proc-macro2 1.0.26", "quote 1.0.9", @@ -3725,7 +3740,7 @@ checksum = "baa8e7560a164edb1621a55d18a0c59abf49d360f47aa7b821061dd7eea7fac9" dependencies = [ "proc-macro2 1.0.26", "quote 1.0.9", - "syn 1.0.65", + "syn 1.0.72", ] [[package]] @@ -3736,7 +3751,7 @@ checksum = "b834f2d66f734cb897113e34aaff2f1ab4719ca946f9a7358dba8f8064148701" dependencies = [ "proc-macro2 1.0.26", "quote 1.0.9", - "syn 1.0.65", + "syn 1.0.72", "unicode-xid 0.2.1", ] @@ -3832,7 +3847,7 @@ checksum = "7765189610d8241a44529806d6fd1f2e0a08734313a35d5b3a556f92b381f3c0" dependencies = [ "proc-macro2 1.0.26", "quote 1.0.9", - "syn 1.0.65", + "syn 1.0.72", ] [[package]] @@ -3848,9 +3863,9 @@ dependencies = [ [[package]] name = "thunderdome" -version = "0.3.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7572415bd688d401c52f6e36f4c8e805b9ae1622619303b9fa835d531db0acae" +checksum = "87b4947742c93ece24a0032141d9caa3d853752e694a57e35029dd2bd08673e0" [[package]] name = "tinytemplate" @@ -3885,38 +3900,6 @@ dependencies = [ "serde", ] -[[package]] -name = "tracing" -version = "0.1.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01ebdc2bb4498ab1ab5f5b73c5803825e60199229ccba0698170e3be0e7f959f" -dependencies = [ - "cfg-if 1.0.0", - "pin-project-lite 0.2.6", - "tracing-attributes", - "tracing-core", -] - -[[package]] -name = "tracing-attributes" -version = "0.1.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c42e6fa53307c8a17e4ccd4dc81cf5ec38db9209f59b222210375b54ee40d1e2" -dependencies = [ - "proc-macro2 1.0.26", - "quote 1.0.9", - "syn 1.0.65", -] - -[[package]] -name = "tracing-core" -version = "0.1.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f50de3927f93d202783f4513cda820ab47ef17f624b03c096e86ef00c67e6b5f" -dependencies = [ - "lazy_static", -] - [[package]] name = "ttf-parser" version = "0.6.2" @@ -4087,9 +4070,9 @@ checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6" [[package]] name = "wasm-bindgen" -version = "0.2.69" +version = "0.2.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cd364751395ca0f68cafb17666eee36b63077fb5ecd972bbcd74c90c4bf736e" +checksum = "d54ee1d4ed486f78874278e63e4069fc1ab9f6a18ca492076ffb90c5eb2997fd" dependencies = [ "cfg-if 1.0.0", "wasm-bindgen-macro", @@ -4097,24 +4080,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.69" +version = "0.2.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1114f89ab1f4106e5b55e688b828c0ab0ea593a1ea7c094b141b14cbaaec2d62" +checksum = "3b33f6a0694ccfea53d94db8b2ed1c3a8a4c86dd936b13b9f0a15ec4a451b900" dependencies = [ "bumpalo", "lazy_static", "log", "proc-macro2 1.0.26", "quote 1.0.9", - "syn 1.0.65", + "syn 1.0.72", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.19" +version = "0.4.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fe9756085a84584ee9457a002b7cdfe0bfff169f45d2591d8be1345a6780e35" +checksum = "5fba7978c679d53ce2d0ac80c8c175840feb849a161664365d1287b41f2e67f1" dependencies = [ "cfg-if 1.0.0", "js-sys", @@ -4124,9 +4107,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.69" +version = "0.2.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a6ac8995ead1f084a8dea1e65f194d0973800c7f571f6edd70adf06ecf77084" +checksum = "088169ca61430fe1e58b8096c24975251700e7b1f6fd91cc9d59b04fb9b18bd4" dependencies = [ "quote 1.0.9", "wasm-bindgen-macro-support", @@ -4134,22 +4117,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.69" +version = "0.2.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5a48c72f299d80557c7c62e37e7225369ecc0c963964059509fbafe917c7549" +checksum = "be2241542ff3d9f241f5e2cb6dd09b37efe786df8851c54957683a49f0987a97" dependencies = [ "proc-macro2 1.0.26", "quote 1.0.9", - "syn 1.0.65", + "syn 1.0.72", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.69" +version = "0.2.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e7811dd7f9398f14cc76efd356f98f03aa30419dea46aa810d71e819fc97158" +checksum = "d7cff876b8f18eed75a66cf49b65e7f967cb354a7aa16003fb55dbfd25b44b4f" [[package]] name = "wasmparser" @@ -4232,9 +4215,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.46" +version = "0.3.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "222b1ef9334f92a21d3fb53dc3fd80f30836959a90f9274a626d7e06315ba3c3" +checksum = "a905d57e488fec8861446d3393670fb50d27a262344013181c2cdf9fff5481be" dependencies = [ "js-sys", "wasm-bindgen", @@ -4242,18 +4225,17 @@ dependencies = [ [[package]] name = "wgpu" -version = "0.7.1" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79a0a0a63fac9492cfaf6e7e4bdf9729c128f1e94124b9e4cbc4004b8cb6d1d8" +checksum = "215fd50e66f794bd16683e7e0e0b9b53be265eb10fdf02276caf5de3e5743fcf" dependencies = [ "arrayvec", "js-sys", + "log", "naga", "parking_lot", "raw-window-handle", "smallvec", - "syn 1.0.65", - "tracing", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", @@ -4263,9 +4245,9 @@ dependencies = [ [[package]] name = "wgpu-core" -version = "0.7.1" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c89fa2cc5d72236461ac09c5be967012663e29cb62f1a972654cbf35e49dffa8" +checksum = "1d56c368fc0e6f3927c711d2b55a51ad4321218efc0239c4acf69e456ab70399" dependencies = [ "arrayvec", "bitflags", @@ -4281,29 +4263,30 @@ dependencies = [ "gfx-hal", "gpu-alloc", "gpu-descriptor", + "log", "naga", "parking_lot", + "profiling", "raw-window-handle", "smallvec", "thiserror", - "tracing", "wgpu-types", ] [[package]] name = "wgpu-types" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72fa9ba80626278fd87351555c363378d08122d7601e58319be3d6fa85a87747" +checksum = "aa248d90c8e6832269b8955bf800e8241f942c25e18a235b7752226804d21556" dependencies = [ "bitflags", ] [[package]] name = "wgpu_glyph" -version = "0.11.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "354c1f79e09923724a6006a6953c3946522b84f7a9ec202b7e8001f274fd4bd5" +checksum = "634570b440f4c24c2e6049ed01ec832c23d338dea3eca654d5760838017a1c8b" dependencies = [ "bytemuck", "glyph_brush", @@ -4497,6 +4480,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d498dbd1fd7beb83c86709ae1c33ca50942889473473d287d56ce4770a18edfb" dependencies = [ "proc-macro2 1.0.26", - "syn 1.0.65", + "syn 1.0.72", "synstructure", ] diff --git a/editor/Cargo.toml b/editor/Cargo.toml index f12a613e93..76a995d431 100644 --- a/editor/Cargo.toml +++ b/editor/Cargo.toml @@ -28,13 +28,13 @@ arraystring = "0.3.0" libc = "0.2" page_size = "0.4" winit = "0.24" -wgpu = "0.7" +wgpu = "0.8" glyph_brush = "0.7" log = "0.4" zerocopy = "0.3" env_logger = "0.8" futures = "0.3" -wgpu_glyph = "0.11" +wgpu_glyph = "0.12" cgmath = "0.18.0" snafu = { version = "0.6", features = ["backtraces"] } colored = "2" @@ -62,11 +62,3 @@ quickcheck = "1.0" quickcheck_macros = "1.0" criterion = "0.3" rand = "0.8.2" - -[[bench]] -name = "file_benchmark" -harness = false - -[[bench]] -name = "edit_benchmark" -harness = false diff --git a/editor/benches/edit_benchmark.rs b/editor/benches/edit_benchmark.rs deleted file mode 100644 index c7d0e6242e..0000000000 --- a/editor/benches/edit_benchmark.rs +++ /dev/null @@ -1,216 +0,0 @@ -use bumpalo::Bump; -use criterion::{criterion_group, criterion_main, Criterion}; -use rand::rngs::StdRng; -use rand::{Rng, SeedableRng}; -use roc_editor::mvc::app_model::AppModel; -use roc_editor::mvc::ed_model::{EdModel, Position, RawSelection}; -use roc_editor::mvc::update::handle_new_char; -use roc_editor::text_buffer; -use roc_editor::text_buffer::TextBuffer; -use ropey::Rope; -use std::cmp::min; -use std::path::Path; - -// duplicate inside mvc::update -fn mock_app_model( - text_buf: TextBuffer, - caret_pos: Position, - selection_opt: Option, -) -> AppModel { - AppModel { - ed_model_opt: Some(EdModel { - text_buf, - caret_pos, - selection_opt, - glyph_dim_rect_opt: None, - has_focus: true, - }), - } -} - -fn text_buffer_from_str(lines_str: &str) -> TextBuffer { - TextBuffer { - text_rope: Rope::from_str(lines_str), - path_str: "".to_owned(), - arena: Bump::new(), - } -} - -pub fn char_insert_bench(c: &mut Criterion) { - let text_buf = text_buffer_from_str(""); - - let caret_pos = Position { line: 0, column: 0 }; - - let selection_opt: Option = None; - let mut app_model = mock_app_model(text_buf, caret_pos, selection_opt); - c.bench_function("single char insert, small buffer", |b| { - b.iter(|| handle_new_char(&mut app_model, &'a')) - }); -} - -fn bench_resource_path(nr_lines: usize) -> String { - let resource_path_res = std::env::var("BENCH_RESOURCE_PATH"); - let resource_path_str = if let Ok(resource_path) = resource_path_res { - resource_path - } else { - "benches/resources/".to_owned() - }; - - format!("{}{}_lines.roc", resource_path_str, nr_lines) -} - -pub fn char_pop_bench(c: &mut Criterion) { - let nr_lines = 50000; - let mut text_buf = buf_from_dummy_file(nr_lines); - - let mut rand_gen_pos = StdRng::seed_from_u64(44); - - c.bench_function( - &format!("single char pop, {} lines", text_buf.nr_of_lines()), - |b| { - b.iter(|| { - let max_line_nr = text_buf.nr_of_lines(); - let rand_line_nr = rand_gen_pos.gen_range(0..max_line_nr); - let max_col = text_buf - .line_len(rand_line_nr) - .expect("Failed to retrieve line length."); - - let caret_pos = Position { - line: rand_line_nr, - column: rand_gen_pos.gen_range(0..max_col), - }; - - text_buf.pop_char(caret_pos); - }) - }, - ); -} - -fn get_all_lines_helper(nr_lines: usize, c: &mut Criterion) { - let text_buf = buf_from_dummy_file(nr_lines); - - let arena = Bump::new(); - - c.bench_function( - &format!("get all {:?} lines from textbuffer", nr_lines), - |b| b.iter(|| text_buf.all_lines(&arena)), - ); -} - -fn get_all_lines_bench(c: &mut Criterion) { - get_all_lines_helper(10000, c) -} - -fn get_line_len_helper(nr_lines: usize, c: &mut Criterion) { - let text_buf = buf_from_dummy_file(nr_lines); - - let mut rand_gen = StdRng::seed_from_u64(45); - - c.bench_function( - &format!("get random line len from {:?}-line textbuffer", nr_lines), - |b| b.iter(|| text_buf.line_len(rand_gen.gen_range(0..nr_lines)).unwrap()), - ); -} - -fn get_line_len_bench(c: &mut Criterion) { - get_line_len_helper(10000, c) -} - -fn get_line_helper(nr_lines: usize, c: &mut Criterion) { - let text_buf = buf_from_dummy_file(nr_lines); - - let mut rand_gen = StdRng::seed_from_u64(46); - - c.bench_function( - &format!("get random line from {:?}-line textbuffer", nr_lines), - |b| { - b.iter(|| { - let rand_indx = rand_gen.gen_range(0..nr_lines); - text_buf.line(rand_indx).unwrap() - }) - }, - ); -} - -fn get_line_bench(c: &mut Criterion) { - get_line_helper(10000, c) -} - -pub fn del_select_bench(c: &mut Criterion) { - let nr_lines = 25000000; - let mut text_buf = buf_from_dummy_file(nr_lines); - - let mut rand_gen = StdRng::seed_from_u64(47); - - c.bench_function( - &format!( - "delete rand selection, {}-line file", - text_buf.nr_of_lines() - ), - |b| { - b.iter(|| { - let rand_sel = gen_rand_selection(&mut rand_gen, &text_buf); - - text_buf.del_selection(rand_sel).unwrap(); - }) - }, - ); -} - -fn gen_rand_selection(rand_gen: &mut StdRng, text_buf: &TextBuffer) -> RawSelection { - let max_line_nr = text_buf.nr_of_lines(); - let rand_line_nr_a = rand_gen.gen_range(0..max_line_nr - 3); - let max_col_a = text_buf.line_len(rand_line_nr_a).expect(&format!( - "Failed to retrieve line length. For line {}, with {} lines in buffer", - rand_line_nr_a, - text_buf.nr_of_lines() - )); - let rand_col_a = if max_col_a > 0 { - rand_gen.gen_range(0..max_col_a) - } else { - 0 - }; - - let max_sel_end = min(rand_line_nr_a + 5, max_line_nr); - let rand_line_nr_b = rand_gen.gen_range((rand_line_nr_a + 1)..max_sel_end); - let max_col_b = text_buf.line_len(rand_line_nr_b).expect(&format!( - "Failed to retrieve line length. For line {}, with {} lines in buffer", - rand_line_nr_b, - text_buf.nr_of_lines() - )); - let rand_col_b = if max_col_b > 0 { - rand_gen.gen_range(0..max_col_b) - } else { - 0 - }; - - RawSelection { - start_pos: Position { - line: rand_line_nr_a, - column: rand_col_a, - }, - end_pos: Position { - line: rand_line_nr_b, - column: rand_col_b, - }, - } -} - -fn buf_from_dummy_file(nr_lines: usize) -> TextBuffer { - let path_str = bench_resource_path(nr_lines); - - text_buffer::from_path(Path::new(&path_str)).expect("Failed to read file at given path.") -} - -//TODO remove all random generation from inside measured execution block -//criterion_group!(benches, del_select_bench); -criterion_group!( - benches, - char_pop_bench, - char_insert_bench, - get_all_lines_bench, - get_line_len_bench, - get_line_bench, - del_select_bench -); -criterion_main!(benches); diff --git a/editor/benches/file_benchmark.rs b/editor/benches/file_benchmark.rs deleted file mode 100644 index 1cee4781ab..0000000000 --- a/editor/benches/file_benchmark.rs +++ /dev/null @@ -1,163 +0,0 @@ -use criterion::{black_box, criterion_group, criterion_main, Criterion}; -use rand::distributions::Alphanumeric; -use rand::rngs::StdRng; -use rand::{Rng, SeedableRng}; -use roc_editor::mvc::app_model::AppModel; -use roc_editor::mvc::ed_model::{EdModel, Position, RawSelection}; -use roc_editor::mvc::update::handle_new_char; -use roc_editor::text_buffer; -use roc_editor::text_buffer::TextBuffer; -use ropey::Rope; -use std::fs::File; -use std::io::Write; -use std::path::Path; - -// duplicate inside mvc::update -fn mock_app_model( - text_buf: TextBuffer, - caret_pos: Position, - selection_opt: Option, -) -> AppModel { - AppModel { - ed_model_opt: Some(EdModel { - text_buf, - caret_pos, - selection_opt, - glyph_dim_rect_opt: None, - has_focus: true, - }), - } -} - -fn text_buffer_from_str(lines_str: &str) -> TextBuffer { - TextBuffer { - text_rope: Rope::from_str(lines_str), - path_str: "".to_owned(), - arena: bumpalo::Bump::new(), - } -} - -pub fn char_insert_benchmark(c: &mut Criterion) { - let text_buf = text_buffer_from_str(""); - - let caret_pos = Position { line: 0, column: 0 }; - - let selection_opt: Option = None; - let mut app_model = mock_app_model(text_buf, caret_pos, selection_opt); - c.bench_function("single char insert, small buffer", |b| { - b.iter(|| handle_new_char(&mut app_model, &'a')) - }); -} - -static ROC_SOURCE_START: &str = "interface LongStrProvider - exposes [ longStr ] - imports [] - -longStr : Str -longStr = - \"\"\""; - -static ROC_SOURCE_END: &str = "\"\"\""; - -fn line_count(lines: &str) -> usize { - lines.matches("\n").count() -} - -pub fn gen_file(nr_lines: usize) { - let nr_of_str_lines = nr_lines - line_count(ROC_SOURCE_START); - let path_str = bench_resource_path(nr_lines); - let path = Path::new(&path_str); - let display = path.display(); - - // Open a file in write-only mode, returns `io::Result` - let mut file = match File::create(&path) { - Err(why) => panic!("couldn't create {}: {}", display, why), - Ok(file) => file, - }; - - file.write(ROC_SOURCE_START.as_bytes()) - .expect("Failed to write String to file."); - - let mut rand_gen_line = StdRng::seed_from_u64(42); - - for _ in 0..nr_of_str_lines { - let line_len = rand_gen_line.gen_range(1..90); - - let char_seed = rand_gen_line.gen_range(0..1000); - - let mut rand_string: String = StdRng::seed_from_u64(char_seed) - .sample_iter(&Alphanumeric) - .take(line_len) - .map(char::from) - .collect(); - rand_string.push('\n'); - - file.write(rand_string.as_bytes()) - .expect("Failed to write String to file."); - } - - file.write(ROC_SOURCE_END.as_bytes()) - .expect("Failed to write String to file."); -} - -fn bench_resource_path(nr_lines: usize) -> String { - let resource_path_res = std::env::var("BENCH_RESOURCE_PATH"); - let resource_path_str = if let Ok(resource_path) = resource_path_res { - resource_path - } else { - "benches/resources/".to_owned() - }; - - format!("{}{}_lines.roc", resource_path_str, nr_lines) -} - -fn file_read_bench_helper(nr_lines: usize, c: &mut Criterion) { - let path_str = bench_resource_path(nr_lines); - text_buffer::from_path(Path::new(&path_str)).expect("Failed to read file at given path."); - c.bench_function( - &format!("read {:?} line file into textbuffer", nr_lines), - |b| b.iter(|| text_buffer::from_path(black_box(Path::new(&path_str)))), - ); -} - -fn file_read_bench_10(c: &mut Criterion) { - // generate dummy files - /*let lines_vec = vec![100, 500, 1000, 10000, 50000, 100000, 25000000]; - - for nr_lines in lines_vec.iter(){ - gen_file(*nr_lines); - }*/ - - file_read_bench_helper(10, c) -} - -fn file_read_bench_100(c: &mut Criterion) { - file_read_bench_helper(100, c) -} -fn file_read_bench_500(c: &mut Criterion) { - file_read_bench_helper(500, c) -} -fn file_read_bench_1k(c: &mut Criterion) { - file_read_bench_helper(1000, c) -} -fn file_read_bench_10k(c: &mut Criterion) { - file_read_bench_helper(10000, c) -} -fn file_read_bench_100k(c: &mut Criterion) { - file_read_bench_helper(100000, c) -} -fn file_read_bench_25m(c: &mut Criterion) { - file_read_bench_helper(25000000, c) -} - -criterion_group!( - benches, - file_read_bench_10, - file_read_bench_100, - file_read_bench_500, - file_read_bench_1k, - file_read_bench_10k, - file_read_bench_100k, - file_read_bench_25m -); -criterion_main!(benches); diff --git a/editor/benches/resources/10_lines.roc b/editor/benches/resources/10_lines.roc deleted file mode 100644 index 8b322cd59c..0000000000 --- a/editor/benches/resources/10_lines.roc +++ /dev/null @@ -1,11 +0,0 @@ -interface LongStrProvider - exposes [ longStr ] - imports [] - -longStr : Str -longStr = - """7vntt4wlBKiVkNss19DZlOfmSAyIzO5Ph8eckYgnctYDersOFs3AWOPHcONxI58DoTEwGKNLGkhrxwCD -gWxYsX9hlEuQ0vI4twHMqgj8F -Ox4pVYIxku15v1KaWahgjkJ8EBXMWhe5m2519wpEtP -HtaqU0XzVu1ix3jGAZ66UugNKJrVP8RVQm -""" \ No newline at end of file diff --git a/editor/benches/results/file_read.txt b/editor/benches/results/file_read.txt deleted file mode 100644 index d7fa8777f6..0000000000 --- a/editor/benches/results/file_read.txt +++ /dev/null @@ -1,26 +0,0 @@ -System info: -- CPU: Intel i7 4770k -- SSD: Samsung 970 EVO PLUS M.2 1TB -- OS: Ubuntu 20.04 - -c.bench_function( - "read file into textbuffer", - |b| b.iter(|| text_buffer::from_path(black_box(Path::new(path_str)))) - ); - -10 lines, 285 B time: [3.2343 us] - -100 lines, 4.2 KiB time: [6.1810 us] - -500 lines, 22.2 KiB time: [15.689 us] - -1000 lines, 44.6 KiB time: [29.591 us] - -10000 lines, 448 KiB time: [376.22 us] - -50000 lines, 2.2 MiB time: [2.0329 ms] - -100000 lines, 4.4 MiB time: [4.4221 ms] - -25000000 lines, 1.1 GiB time: [1.1333 s] - diff --git a/editor/src/editor/main.rs b/editor/src/editor/main.rs index 5f5e50a1a4..352adc5818 100644 --- a/editor/src/editor/main.rs +++ b/editor/src/editor/main.rs @@ -396,8 +396,8 @@ fn begin_render_pass<'a>( let bg_color = to_wgpu_color(ed_theme.background); encoder.begin_render_pass(&wgpu::RenderPassDescriptor { - color_attachments: &[wgpu::RenderPassColorAttachmentDescriptor { - attachment: texture_view, + color_attachments: &[wgpu::RenderPassColorAttachment { + view: texture_view, resolve_target: None, ops: wgpu::Operations { load: wgpu::LoadOp::Clear(bg_color), diff --git a/editor/src/graphics/lowlevel/pipelines.rs b/editor/src/graphics/lowlevel/pipelines.rs index e3aefa6a62..79e3437f2e 100644 --- a/editor/src/graphics/lowlevel/pipelines.rs +++ b/editor/src/graphics/lowlevel/pipelines.rs @@ -53,12 +53,14 @@ pub fn create_render_pipeline( entry_point: "fs_main", targets: &[wgpu::ColorTargetState { format: color_format, - color_blend: wgpu::BlendState { - operation: wgpu::BlendOperation::Add, - src_factor: wgpu::BlendFactor::SrcAlpha, - dst_factor: wgpu::BlendFactor::OneMinusSrcAlpha, - }, - alpha_blend: wgpu::BlendState::REPLACE, + blend: Some(wgpu::BlendState { + color: wgpu::BlendComponent { + operation: wgpu::BlendOperation::Add, + src_factor: wgpu::BlendFactor::SrcAlpha, + dst_factor: wgpu::BlendFactor::OneMinusSrcAlpha, + }, + alpha: wgpu::BlendComponent::REPLACE, + }), write_mask: wgpu::ColorWrite::ALL, }], }), diff --git a/editor/src/graphics/lowlevel/vertex.rs b/editor/src/graphics/lowlevel/vertex.rs index f79a87e05d..64cf9fac1f 100644 --- a/editor/src/graphics/lowlevel/vertex.rs +++ b/editor/src/graphics/lowlevel/vertex.rs @@ -24,13 +24,13 @@ impl Vertex { wgpu::VertexAttribute { offset: 0, shader_location: 0, - format: wgpu::VertexFormat::Float2, + format: wgpu::VertexFormat::Float32x2, }, // color wgpu::VertexAttribute { offset: std::mem::size_of::<[f32; 2]>() as wgpu::BufferAddress, shader_location: 1, - format: wgpu::VertexFormat::Float4, + format: wgpu::VertexFormat::Float32x4, }, ], }; diff --git a/editor/src/graphics/shaders/shader.wgsl b/editor/src/graphics/shaders/shader.wgsl index 50c8ae70d9..645032ecbf 100644 --- a/editor/src/graphics/shaders/shader.wgsl +++ b/editor/src/graphics/shaders/shader.wgsl @@ -1,12 +1,8 @@ -[[location(0)]] -var in_position: vec2; -[[location(1)]] -var in_color: vec4; -[[location(0)]] -var out_color: vec4; -[[builtin(position)]] -var out_pos: vec4; +struct VertexOutput { + [[location(0)]] color: vec4; + [[builtin(position)]] position: vec4; +}; [[block]] struct Globals { @@ -17,17 +13,19 @@ struct Globals { var u_globals: Globals; [[stage(vertex)]] -fn vs_main() { - out_pos = u_globals.ortho * vec4(in_position, 0.0, 1.0); - out_color = in_color; +fn vs_main( + [[location(0)]] in_position: vec2, + [[location(1)]] in_color: vec4, +) -> VertexOutput { + var out: VertexOutput; + + out.position = u_globals.ortho * vec4(in_position, 0.0, 1.0); + out.color = in_color; + + return out; } -[[location(0)]] -var in_color: vec4; -[[location(0)]] -var out_color: vec4; - [[stage(fragment)]] -fn fs_main() { - out_color = in_color; +fn fs_main(in: VertexOutput) -> [[location(0)]] vec4 { + return in.color; } \ No newline at end of file