diff --git a/Cargo.lock b/Cargo.lock index d391a373aceb..cdb63337ca32 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -630,16 +630,6 @@ dependencies = [ "rustc-demangle", ] -[[package]] -name = "base64" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643" -dependencies = [ - "byteorder", - "safemem", -] - [[package]] name = "base64" version = "0.13.1" @@ -1198,9 +1188,9 @@ dependencies = [ [[package]] name = "core-foundation" -version = "0.9.3" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" dependencies = [ "core-foundation-sys", "libc", @@ -1208,9 +1198,9 @@ dependencies = [ [[package]] name = "core-foundation-sys" -version = "0.8.4" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" +checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" [[package]] name = "core-graphics" @@ -1227,9 +1217,9 @@ dependencies = [ [[package]] name = "core-graphics-types" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bb142d41022986c1d8ff29103a1411c8a3dfad3552f87a4f8dc50d61d4f4e33" +checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf" dependencies = [ "bitflags 1.3.2", "core-foundation", @@ -1564,7 +1554,7 @@ checksum = "68b0cf012f1230e43cd00ebb729c6bb58707ecfa8ad08b52ef3a4ccd2697fc30" [[package]] name = "ecolor" version = "0.27.2" -source = "git+https://github.com/emilk/egui.git?rev=ca36f3df6319cbba0e2ab4366d51d97caa9e85b6#ca36f3df6319cbba0e2ab4366d51d97caa9e85b6" +source = "git+https://github.com/emilk/egui.git?rev=814ad0783cf8b826a258e29ed4c50ae6daa2e890#814ad0783cf8b826a258e29ed4c50ae6daa2e890" dependencies = [ "bytemuck", "emath", @@ -1574,7 +1564,7 @@ dependencies = [ [[package]] name = "eframe" version = "0.27.2" -source = "git+https://github.com/emilk/egui.git?rev=ca36f3df6319cbba0e2ab4366d51d97caa9e85b6#ca36f3df6319cbba0e2ab4366d51d97caa9e85b6" +source = "git+https://github.com/emilk/egui.git?rev=814ad0783cf8b826a258e29ed4c50ae6daa2e890#814ad0783cf8b826a258e29ed4c50ae6daa2e890" dependencies = [ "ahash", "bytemuck", @@ -1610,7 +1600,7 @@ dependencies = [ [[package]] name = "egui" version = "0.27.2" -source = "git+https://github.com/emilk/egui.git?rev=ca36f3df6319cbba0e2ab4366d51d97caa9e85b6#ca36f3df6319cbba0e2ab4366d51d97caa9e85b6" +source = "git+https://github.com/emilk/egui.git?rev=814ad0783cf8b826a258e29ed4c50ae6daa2e890#814ad0783cf8b826a258e29ed4c50ae6daa2e890" dependencies = [ "accesskit", "ahash", @@ -1627,7 +1617,7 @@ dependencies = [ [[package]] name = "egui-wgpu" version = "0.27.2" -source = "git+https://github.com/emilk/egui.git?rev=ca36f3df6319cbba0e2ab4366d51d97caa9e85b6#ca36f3df6319cbba0e2ab4366d51d97caa9e85b6" +source = "git+https://github.com/emilk/egui.git?rev=814ad0783cf8b826a258e29ed4c50ae6daa2e890#814ad0783cf8b826a258e29ed4c50ae6daa2e890" dependencies = [ "ahash", "bytemuck", @@ -1646,7 +1636,7 @@ dependencies = [ [[package]] name = "egui-winit" version = "0.27.2" -source = "git+https://github.com/emilk/egui.git?rev=ca36f3df6319cbba0e2ab4366d51d97caa9e85b6#ca36f3df6319cbba0e2ab4366d51d97caa9e85b6" +source = "git+https://github.com/emilk/egui.git?rev=814ad0783cf8b826a258e29ed4c50ae6daa2e890#814ad0783cf8b826a258e29ed4c50ae6daa2e890" dependencies = [ "accesskit_winit", "ahash", @@ -1686,7 +1676,7 @@ dependencies = [ [[package]] name = "egui_extras" version = "0.27.2" -source = "git+https://github.com/emilk/egui.git?rev=ca36f3df6319cbba0e2ab4366d51d97caa9e85b6#ca36f3df6319cbba0e2ab4366d51d97caa9e85b6" +source = "git+https://github.com/emilk/egui.git?rev=814ad0783cf8b826a258e29ed4c50ae6daa2e890#814ad0783cf8b826a258e29ed4c50ae6daa2e890" dependencies = [ "ahash", "egui", @@ -1702,7 +1692,7 @@ dependencies = [ [[package]] name = "egui_glow" version = "0.27.2" -source = "git+https://github.com/emilk/egui.git?rev=ca36f3df6319cbba0e2ab4366d51d97caa9e85b6#ca36f3df6319cbba0e2ab4366d51d97caa9e85b6" +source = "git+https://github.com/emilk/egui.git?rev=814ad0783cf8b826a258e29ed4c50ae6daa2e890#814ad0783cf8b826a258e29ed4c50ae6daa2e890" dependencies = [ "ahash", "bytemuck", @@ -1720,7 +1710,7 @@ dependencies = [ [[package]] name = "egui_plot" version = "0.27.2" -source = "git+https://github.com/emilk/egui.git?rev=ca36f3df6319cbba0e2ab4366d51d97caa9e85b6#ca36f3df6319cbba0e2ab4366d51d97caa9e85b6" +source = "git+https://github.com/emilk/egui.git?rev=814ad0783cf8b826a258e29ed4c50ae6daa2e890#814ad0783cf8b826a258e29ed4c50ae6daa2e890" dependencies = [ "ahash", "egui", @@ -1763,7 +1753,7 @@ checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" [[package]] name = "emath" version = "0.27.2" -source = "git+https://github.com/emilk/egui.git?rev=ca36f3df6319cbba0e2ab4366d51d97caa9e85b6#ca36f3df6319cbba0e2ab4366d51d97caa9e85b6" +source = "git+https://github.com/emilk/egui.git?rev=814ad0783cf8b826a258e29ed4c50ae6daa2e890#814ad0783cf8b826a258e29ed4c50ae6daa2e890" dependencies = [ "bytemuck", "serde", @@ -1864,7 +1854,7 @@ dependencies = [ [[package]] name = "epaint" version = "0.27.2" -source = "git+https://github.com/emilk/egui.git?rev=ca36f3df6319cbba0e2ab4366d51d97caa9e85b6#ca36f3df6319cbba0e2ab4366d51d97caa9e85b6" +source = "git+https://github.com/emilk/egui.git?rev=814ad0783cf8b826a258e29ed4c50ae6daa2e890#814ad0783cf8b826a258e29ed4c50ae6daa2e890" dependencies = [ "ab_glyph", "ahash", @@ -2377,9 +2367,9 @@ dependencies = [ [[package]] name = "gpu-descriptor" -version = "0.2.4" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc11df1ace8e7e564511f53af41f3e42ddc95b56fd07b3f4445d2a6048bc682c" +checksum = "9c08c1f623a8d0b722b8b99f821eb0ba672a1618f0d3b16ddbee1cedd2dd8557" dependencies = [ "bitflags 2.5.0", "gpu-descriptor-types", @@ -2388,11 +2378,11 @@ dependencies = [ [[package]] name = "gpu-descriptor-types" -version = "0.1.1" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "363e3677e55ad168fef68cf9de3a4a310b53124c5e784c53a1d70e92d23f2126" +checksum = "fdf242682df893b86f33a73828fb09ca4b2d3bb6cc95249707fc684d27484b91" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.5.0", ] [[package]] @@ -2775,9 +2765,9 @@ checksum = "bc0000e42512c92e31c2252315bda326620a4e034105e900c98ec492fa077b3e" [[package]] name = "js-sys" -version = "0.3.67" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a1d36f1235bc969acba30b7f5990b864423a6068a10f7c90ae8f0112e3a59d1" +checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" dependencies = [ "wasm-bindgen", ] @@ -3039,9 +3029,9 @@ dependencies = [ [[package]] name = "metal" -version = "0.27.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c43f73953f8cbe511f021b58f18c3ce1c3d1ae13fe953293e13345bf83217f25" +checksum = "5637e166ea14be6063a3f8ba5ccb9a4159df7d8f6d61c02fc3d480b1f90dcfcb" dependencies = [ "bitflags 2.5.0", "block", @@ -3137,10 +3127,11 @@ checksum = "defc4c55412d89136f966bbb339008b474350e5e6e78d2714439c386b3137a03" [[package]] name = "naga" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8878eb410fc90853da3908aebfe61d73d26d4437ef850b70050461f939509899" +checksum = "e536ae46fcab0876853bd4a632ede5df4b1c2527a58f6c5a4150fe86be858231" dependencies = [ + "arrayvec", "bit-set", "bitflags 2.5.0", "codespan-reporting", @@ -3361,7 +3352,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" dependencies = [ "malloc_buf", - "objc_exception", ] [[package]] @@ -3516,15 +3506,6 @@ dependencies = [ "objc2-metal", ] -[[package]] -name = "objc_exception" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad970fb455818ad6cba4c122ad012fae53ae8b4795f86378bce65e4f6bab2ca4" -dependencies = [ - "cc", -] - [[package]] name = "objc_id" version = "0.1.1" @@ -5457,9 +5438,9 @@ checksum = "436b050e76ed2903236f032a59761c1eb99e1b0aead2c257922771dab1fc8c78" [[package]] name = "renderdoc-sys" -version = "1.0.0" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "216080ab382b992234dda86873c18d4c48358f5cfcb70fd693d7f6f2131b628b" +checksum = "19b30a45b0cd0bcca8037f3d0dc3421eaf95327a17cad11964fb8179b4fc4832" [[package]] name = "rerun" @@ -5958,12 +5939,6 @@ version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041" -[[package]] -name = "safemem" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072" - [[package]] name = "same-file" version = "1.0.6" @@ -6466,18 +6441,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.56" +version = "1.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad" +checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.56" +version = "1.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471" +checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533" dependencies = [ "proc-macro2", "quote", @@ -6921,9 +6896,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.90" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1223296a201415c7fad14792dbefaace9bd52b62d33453ade1c5b5f07555406" +checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -6931,9 +6906,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.90" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcdc935b63408d58a32f8cc9738a0bffd8f05cc7c002086c6ef20b7312ad9dcd" +checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" dependencies = [ "bumpalo", "log", @@ -6946,12 +6921,12 @@ dependencies = [ [[package]] name = "wasm-bindgen-cli-support" -version = "0.2.90" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a875870b7b39024cbca8f61a0e1fc8edfe7ac02b484e5a9bcea64374050a850e" +checksum = "ca821da8c1ae6c87c5e94493939a206daa8587caff227c6032e0061a3d80817f" dependencies = [ "anyhow", - "base64 0.9.3", + "base64 0.21.7", "log", "rustc-demangle", "serde_json", @@ -6968,9 +6943,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-externref-xform" -version = "0.2.90" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04c5d468dc79cfd824d181c386f34c2e7ea521ea5855ddd95af8f4cf3fa676f4" +checksum = "102582726b35a30d53157fbf8de3d0f0fed4c40c0c7951d69a034e9ef01da725" dependencies = [ "anyhow", "walrus", @@ -6978,9 +6953,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.40" +version = "0.4.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bde2032aeb86bdfaecc8b261eef3cba735cc426c1f3a3416d1e0791be95fc461" +checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" dependencies = [ "cfg-if", "js-sys", @@ -6990,9 +6965,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.90" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e4c238561b2d428924c49815533a8b9121c664599558a5d9ec51f8a1740a999" +checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -7000,9 +6975,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.90" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bae1abb6806dc1ad9e560ed242107c0f6c84335f1749dd4e8ddb012ebd5e25a7" +checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", @@ -7013,9 +6988,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-multi-value-xform" -version = "0.2.90" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65f10c037dad45759d53b598d4737acdced90a0945023c8c6cd8d67b4b3e4eaf" +checksum = "3498e4799f43523d780ceff498f04d882a8dbc9719c28020034822e5952f32a4" dependencies = [ "anyhow", "walrus", @@ -7023,15 +6998,15 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.90" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d91413b1c31d7539ba5ef2451af3f0b833a005eb27a631cec32bc0635a8602b" +checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" [[package]] name = "wasm-bindgen-threads-xform" -version = "0.2.90" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16ddf1a4beb1bceb2b73c2325581901ca2cd92af628f24389a678854dcd65b24" +checksum = "2d5add359b7f7d09a55299a9d29be54414264f2b8cf84f8c8fda5be9269b5dd9" dependencies = [ "anyhow", "walrus", @@ -7040,9 +7015,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-wasm-conventions" -version = "0.2.90" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93f13ed8ccdac31eadcfd4c9b2ec7bd43e77454b14acb1f43189f2875a9b0391" +checksum = "8c04e3607b810e76768260db3a5f2e8beb477cb089ef8726da85c8eb9bd3b575" dependencies = [ "anyhow", "walrus", @@ -7050,9 +7025,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-wasm-interpreter" -version = "0.2.90" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4282a271772a3063d4057c1144e118254f207fbbc1381b8d50b23c25585d893" +checksum = "9ea966593c8243a33eb4d643254eb97a69de04e89462f46cf6b4f506aae89b3a" dependencies = [ "anyhow", "log", @@ -7199,9 +7174,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.67" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58cd2333b6e0be7a39605f0e255892fd7418a682d8da8fe042fe25128794d2ed" +checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" dependencies = [ "js-sys", "wasm-bindgen", @@ -7259,13 +7234,14 @@ checksum = "9193164d4de03a926d909d3bc7c30543cecb35400c02114792c2cae20d5e2dbb" [[package]] name = "wgpu" -version = "0.19.4" +version = "0.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbd7311dbd2abcfebaabf1841a2824ed7c8be443a0f29166e5d3c6a53a762c01" +checksum = "90e37c7b9921b75dfd26dd973fdcbce36f13dfa6e2dc82aece584e0ed48c355c" dependencies = [ "arrayvec", "cfg-if", "cfg_aliases 0.1.1", + "document-features", "js-sys", "log", "naga", @@ -7284,15 +7260,16 @@ dependencies = [ [[package]] name = "wgpu-core" -version = "0.19.4" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28b94525fc99ba9e5c9a9e24764f2bc29bad0911a7446c12f446a8277369bf3a" +checksum = "d59e0d5fc509601c69e4e1fa06c1eb3c4c9f12956a5e30c79b61ef1c1be7daf0" dependencies = [ "arrayvec", "bit-vec", "bitflags 2.5.0", "cfg_aliases 0.1.1", "codespan-reporting", + "document-features", "indexmap 2.1.0", "log", "naga", @@ -7310,9 +7287,9 @@ dependencies = [ [[package]] name = "wgpu-hal" -version = "0.19.3" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f972c280505ab52ffe17e94a7413d9d54b58af0114ab226b9fc4999a47082e" +checksum = "6aa24c3889f885a3fb9133b454c8418bfcfaadcfe4ed3be96ac80e76703b863b" dependencies = [ "android_system_properties", "arrayvec", @@ -7352,9 +7329,9 @@ dependencies = [ [[package]] name = "wgpu-types" -version = "0.19.2" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b671ff9fb03f78b46ff176494ee1ebe7d603393f42664be55b64dc8d53969805" +checksum = "1353d9a46bff7f955a680577f34c69122628cc2076e1d6f3a9be6ef00ae793ef" dependencies = [ "bitflags 2.5.0", "js-sys", diff --git a/Cargo.toml b/Cargo.toml index 3aee2472d4bc..0e6cd19dbabb 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -244,7 +244,7 @@ webbrowser = "1.0" winit = { version = "0.29.9", default-features = false } # TODO(andreas): Try to get rid of `fragile-send-sync-non-atomic-wasm`. This requires re_renderer being aware of single-thread restriction on resources. # See also https://gpuweb.github.io/gpuweb/explainer/#multithreading-transfer (unsolved part of the Spec as of writing!) -wgpu = { version = "0.19.4", default-features = false, features = [ +wgpu = { version = "0.20.1", default-features = false, features = [ # Backends (see https://docs.rs/wgpu/latest/wgpu/#feature-flags) "webgl", "metal", @@ -258,7 +258,7 @@ wgpu = { version = "0.19.4", default-features = false, features = [ # Other: "fragile-send-sync-non-atomic-wasm", ] } -wgpu-core = "0.19.4" +wgpu-core = "0.21.0" xshell = "0.2" zip = { version = "0.6", default-features = false } @@ -454,13 +454,13 @@ missing_errors_doc = "allow" # As a last resport, patch with a commit to our own repository. # ALWAYS document what PR the commit hash is part of, or when it was merged into the upstream trunk. -ecolor = { git = "https://github.com/emilk/egui.git", rev = "ca36f3df6319cbba0e2ab4366d51d97caa9e85b6" } # egui master 2024-06-10 -eframe = { git = "https://github.com/emilk/egui.git", rev = "ca36f3df6319cbba0e2ab4366d51d97caa9e85b6" } # egui master 2024-06-10 -egui = { git = "https://github.com/emilk/egui.git", rev = "ca36f3df6319cbba0e2ab4366d51d97caa9e85b6" } # egui master 2024-06-10 -egui_extras = { git = "https://github.com/emilk/egui.git", rev = "ca36f3df6319cbba0e2ab4366d51d97caa9e85b6" } # egui master 2024-06-10 -egui_plot = { git = "https://github.com/emilk/egui.git", rev = "ca36f3df6319cbba0e2ab4366d51d97caa9e85b6" } # egui master 2024-06-10 -egui-wgpu = { git = "https://github.com/emilk/egui.git", rev = "ca36f3df6319cbba0e2ab4366d51d97caa9e85b6" } # egui master 2024-06-10 -emath = { git = "https://github.com/emilk/egui.git", rev = "ca36f3df6319cbba0e2ab4366d51d97caa9e85b6" } # egui master 2024-06-10 +ecolor = { git = "https://github.com/emilk/egui.git", rev = "814ad0783cf8b826a258e29ed4c50ae6daa2e890" } # egui master 2024-06-13 +eframe = { git = "https://github.com/emilk/egui.git", rev = "814ad0783cf8b826a258e29ed4c50ae6daa2e890" } # egui master 2024-06-13 +egui = { git = "https://github.com/emilk/egui.git", rev = "814ad0783cf8b826a258e29ed4c50ae6daa2e890" } # egui master 2024-06-13 +egui_extras = { git = "https://github.com/emilk/egui.git", rev = "814ad0783cf8b826a258e29ed4c50ae6daa2e890" } # egui master 2024-06-13 +egui_plot = { git = "https://github.com/emilk/egui.git", rev = "814ad0783cf8b826a258e29ed4c50ae6daa2e890" } # egui master 2024-06-13 +egui-wgpu = { git = "https://github.com/emilk/egui.git", rev = "814ad0783cf8b826a258e29ed4c50ae6daa2e890" } # egui master 2024-06-13 +emath = { git = "https://github.com/emilk/egui.git", rev = "814ad0783cf8b826a258e29ed4c50ae6daa2e890" } # egui master 2024-06-13 # Useful while developing: # ecolor = { path = "../../egui/crates/ecolor" } diff --git a/crates/re_renderer/src/error_handling/error_tracker.rs b/crates/re_renderer/src/error_handling/error_tracker.rs index c0dc8db2f9a3..30c5474bf8cb 100644 --- a/crates/re_renderer/src/error_handling/error_tracker.rs +++ b/crates/re_renderer/src/error_handling/error_tracker.rs @@ -3,14 +3,14 @@ use parking_lot::Mutex; use crate::config::WgpuBackendType; -use super::handle_async_error; +use super::{handle_async_error, wgpu_core_error::WgpuCoreWrappedContextError}; -#[cfg(not(webgpu))] -use super::wgpu_core_error::WrappedContextError; - -#[cfg(webgpu)] -#[derive(Hash, PartialEq, Eq, Debug)] -pub struct WrappedContextError(pub String); +#[derive(Debug, Hash, PartialEq, Eq)] +pub enum ContextError { + WgpuCoreError(WgpuCoreWrappedContextError), + #[cfg(web)] + WebGpuError(String), +} pub struct ErrorEntry { /// Frame index for frame on which this error was last logged. @@ -32,7 +32,7 @@ pub struct ErrorEntry { /// TODO(#4507): Users should be able to create their own scopes feeding into separate trackers. #[derive(Default)] pub struct ErrorTracker { - pub errors: Mutex>, + pub errors: Mutex>, } impl ErrorTracker { @@ -102,11 +102,17 @@ impl ErrorTracker { /// Since errors are reported on the `device timeline`, not the `content timeline`, /// this may not be the currently active frame index! pub fn handle_error(&self, error: wgpu::Error, frame_index: u64) { + let is_internal_error = matches!(error, wgpu::Error::Internal { .. }); + match error { wgpu::Error::OutOfMemory { source: _ } => { re_log::error!("A wgpu operation caused out-of-memory: {error}"); } - wgpu::Error::Validation { + wgpu::Error::Internal { + source: _source, + description, + } + | wgpu::Error::Validation { source: _source, description, } => { @@ -115,39 +121,41 @@ impl ErrorTracker { description: description.clone(), }; - cfg_if::cfg_if! { - if #[cfg(webgpu)] { - if self.errors.lock().insert( - WrappedContextError(description.clone()), - entry - ).is_none() { - re_log::error!( - "WGPU error in frame {}: {}", frame_index, description - ); - } - } else { - match _source.downcast::() { - Ok(ctx_err) => { - if ctx_err - .cause - .downcast_ref::() - .is_some() - { - // Actual command encoder errors never carry any meaningful - // information: ignore them. - return; - } - - let ctx_err = WrappedContextError(ctx_err); - if self.errors.lock().insert(ctx_err, entry).is_none() { - re_log::error!( - "WGPU error in frame {}: {}", frame_index, description - ); - } - } - Err(err) => re_log::error!("Wgpu operation failed: {err}"), + let should_log = match _source.downcast::() { + Ok(ctx_err) => { + if ctx_err + .cause + .downcast_ref::() + .is_some() + { + // Actual command encoder errors never carry any meaningful + // information: ignore them. + return; } + + let ctx_err = + ContextError::WgpuCoreError(WgpuCoreWrappedContextError(ctx_err)); + self.errors.lock().insert(ctx_err, entry).is_none() + } + + #[cfg(not(web))] + Err(_) => true, + + // We might be running with WebGPU on the web and therefore don't have a wgpu_core type. + #[cfg(web)] + Err(_) => { + let ctx_err = ContextError::WebGpuError(description.clone()); + self.errors.lock().insert(ctx_err, entry).is_none() } + }; + + if should_log { + let base_description = if is_internal_error { + "Internal wgpu error" + } else { + "Wgpu validation error" + }; + re_log::error!("{base_description} {frame_index}: {description}"); } } } diff --git a/crates/re_renderer/src/error_handling/wgpu_core_error.rs b/crates/re_renderer/src/error_handling/wgpu_core_error.rs index e06530da346f..f65e0c17fb21 100644 --- a/crates/re_renderer/src/error_handling/wgpu_core_error.rs +++ b/crates/re_renderer/src/error_handling/wgpu_core_error.rs @@ -160,9 +160,9 @@ impl DedupableError for wgpu_core::pipeline::CreateShaderModuleError { /// /// Used for deduplication purposes. #[derive(Debug)] -pub struct WrappedContextError(pub Box); +pub struct WgpuCoreWrappedContextError(pub Box); -impl std::hash::Hash for WrappedContextError { +impl std::hash::Hash for WgpuCoreWrappedContextError { fn hash(&self, state: &mut H) { // If we haven't set a debug label ourselves, the label is typically not stable across frames, // Since wgc fills in the generation counter. @@ -185,7 +185,7 @@ impl std::hash::Hash for WrappedContextError { } } -impl PartialEq for WrappedContextError { +impl PartialEq for WgpuCoreWrappedContextError { fn eq(&self, rhs: &Self) -> bool { let mut is_eq = self.0.label.eq(&rhs.0.label) && self.0.label_key.eq(rhs.0.label_key) @@ -205,4 +205,4 @@ impl PartialEq for WrappedContextError { } } -impl Eq for WrappedContextError {} +impl Eq for WgpuCoreWrappedContextError {} diff --git a/crates/re_renderer/src/wgpu_resources/render_pipeline_pool.rs b/crates/re_renderer/src/wgpu_resources/render_pipeline_pool.rs index 457118d87e26..29259630dba0 100644 --- a/crates/re_renderer/src/wgpu_resources/render_pipeline_pool.rs +++ b/crates/re_renderer/src/wgpu_resources/render_pipeline_pool.rs @@ -151,11 +151,13 @@ impl RenderPipelineDesc { module: vertex_shader_module, entry_point: &self.vertex_entrypoint, buffers: &buffers, + compilation_options: wgpu::PipelineCompilationOptions::default(), }, fragment: wgpu::FragmentState { module: fragment_shader_module, entry_point: &self.fragment_entrypoint, targets: &self.render_targets, + compilation_options: wgpu::PipelineCompilationOptions::default(), } .into(), primitive: self.primitive,