diff --git a/Cargo.lock b/Cargo.lock index 6e5df0ff0f..e28edb2bc5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -59,7 +59,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ef6978589202a00cd7e118380c448a08b6ed394c3a8df3a430d0898e3a42d046" dependencies = [ "android-properties", - "bitflags 2.6.0", + "bitflags 2.9.1", "cc", "cesu8", "jni", @@ -156,9 +156,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.95" +version = "1.0.98" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34ac096ce696dc2fcabef30516bb13c0a68a11d30131d3df6f04711467681b04" +checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487" [[package]] name = "ar" @@ -257,9 +257,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.6.0" +version = "2.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" +checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967" dependencies = [ "serde", ] @@ -287,9 +287,9 @@ checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" [[package]] name = "bytemuck" -version = "1.21.0" +version = "1.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef657dfab802224e671f5818e9a4935f9b1957ed18e58292690cc39e7a4092a3" +checksum = "5c76a5792e44e4abe34d3abf15636779261d45a7450612059293d1d2cfc63422" dependencies = [ "bytemuck_derive", ] @@ -323,7 +323,7 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b99da2f8558ca23c71f4fd15dc57c906239752dd27ff3c00a1d56b685b7cbfec" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.1", "log", "polling", "rustix", @@ -398,12 +398,6 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" -[[package]] -name = "cfg_aliases" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" - [[package]] name = "cfg_aliases" version = "0.2.1" @@ -482,10 +476,11 @@ dependencies = [ [[package]] name = "codespan-reporting" -version = "0.11.1" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" +checksum = "fe6d2e5af09e8c8ad56c969f2157a3d4238cebc7c55f0a517728c38f7b200f81" dependencies = [ + "serde", "termcolor", "unicode-width", ] @@ -663,6 +658,12 @@ version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" +[[package]] +name = "crunchy" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43da5946c66ffcc7745f48db692ffbb10a83bfe0afd96235c5c2a4fb23994929" + [[package]] name = "cty" version = "0.2.2" @@ -707,13 +708,13 @@ checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8" name = "difftest" version = "0.9.0" dependencies = [ + "anyhow", "bytemuck", "futures", "serde", "serde_json", "spirv-builder", "tempfile", - "thiserror 1.0.69", "wgpu", ] @@ -771,9 +772,9 @@ dependencies = [ [[package]] name = "document-features" -version = "0.2.10" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb6969eaabd2421f8a2775cfd2471a2b634372b4a25d41e3bd647b79912850a0" +checksum = "95249b50c6c185bee49034bcb378a49dc2b5dff0be90ff6616d31d64febab05d" dependencies = [ "litrs", ] @@ -924,9 +925,9 @@ dependencies = [ [[package]] name = "fixedbitset" -version = "0.4.2" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" +checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" [[package]] name = "flate2" @@ -1133,9 +1134,9 @@ dependencies = [ [[package]] name = "glow" -version = "0.14.2" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d51fa363f025f5c111e03f13eda21162faeacb6911fe8caa0c0349f9cf0c4483" +checksum = "c5e5ea60d70410161c8bf5da3fdfeaa1c72ed2c15f8bbb9d19fe3a4fad085f08" dependencies = [ "js-sys", "slotmap", @@ -1158,7 +1159,7 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fbcd2dba93594b227a1f57ee09b8b9da8892c34d55aa332e034a228d0fe6a171" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.1", "gpu-alloc-types", ] @@ -1168,7 +1169,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "98ff03b468aa837d70984d55f5d3f846f6ec31fe34bbb97c4f85219caeee1ca4" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.1", ] [[package]] @@ -1189,7 +1190,7 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dcf29e94d6d243368b7a56caa16bc213e4f9f8ed38c4d9557069527b5d5281ca" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.1", "gpu-descriptor-types", "hashbrown 0.15.2", ] @@ -1200,7 +1201,18 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdf242682df893b86f33a73828fb09ca4b2d3bb6cc95249707fc684d27484b91" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.1", +] + +[[package]] +name = "half" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "459196ed295495a68f7d7fe1d84f6c4b7ff0e21fe3017b2f283c6fac3ad803c9" +dependencies = [ + "cfg-if", + "crunchy", + "num-traits", ] [[package]] @@ -1219,6 +1231,8 @@ version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" dependencies = [ + "allocator-api2", + "equivalent", "foldhash", ] @@ -1254,9 +1268,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "indexmap" -version = "2.7.0" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f" +checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e" dependencies = [ "equivalent", "hashbrown 0.15.2", @@ -1433,7 +1447,7 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.1", "libc", "redox_syscall 0.5.8", ] @@ -1516,11 +1530,11 @@ dependencies = [ [[package]] name = "metal" -version = "0.29.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ecfd3296f8c56b7c1f6fbac3c71cefa9d78ce009850c45000015f206dc7fa21" +checksum = "f569fb946490b5743ad69813cb19629130ce9374034abe31614a36402d18f99e" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.1", "block", "core-graphics-types", "foreign-types", @@ -1602,24 +1616,28 @@ dependencies = [ [[package]] name = "naga" -version = "23.1.0" +version = "25.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "364f94bc34f61332abebe8cad6f6cd82a5b65cff22c828d05d0968911462ca4f" +checksum = "2b977c445f26e49757f9aca3631c3b8b836942cb278d69a92e7b80d3b24da632" dependencies = [ "arrayvec", "bit-set", - "bitflags 2.6.0", - "cfg_aliases 0.1.1", + "bitflags 2.9.1", + "cfg_aliases", "codespan-reporting", + "half", + "hashbrown 0.15.2", "hexf-parse", "indexmap", "log", + "num-traits", + "once_cell", "petgraph", "rustc-hash", "spirv", - "termcolor", - "thiserror 1.0.69", - "unicode-xid", + "strum", + "thiserror 2.0.12", + "unicode-ident", ] [[package]] @@ -1628,7 +1646,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.1", "jni-sys", "log", "ndk-sys 0.6.0+11769913", @@ -1680,7 +1698,7 @@ version = "7.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c533b4c39709f9ba5005d8002048266593c1cfaf3c5f0739d5b8ab0c6c504009" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.1", "filetime", "fsevent-sys", "inotify", @@ -1799,7 +1817,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e4e89ad9e3d7d297152b17d39ed92cd50ca8063a89a9fa569046d41568891eff" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.1", "block2", "libc", "objc2", @@ -1815,7 +1833,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "74dd3b56391c7a0596a295029734d3c1c5e7e510a4cb30245f8221ccea96b009" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.1", "block2", "objc2", "objc2-core-location", @@ -1839,7 +1857,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "617fbf49e071c178c0b24c080767db52958f716d9eabdf0890523aeae54773ef" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.1", "block2", "objc2", "objc2-foundation", @@ -1881,7 +1899,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.1", "block2", "dispatch", "libc", @@ -1906,7 +1924,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.1", "block2", "objc2", "objc2-foundation", @@ -1918,7 +1936,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.1", "block2", "objc2", "objc2-foundation", @@ -1941,7 +1959,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b8bb46798b20cd6b91cbd113524c490f1686f4c4e8f49502431415f3512e2b6f" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.1", "block2", "objc2", "objc2-cloud-kit", @@ -1973,7 +1991,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "76cfcbf642358e8689af64cee815d139339f3ed8ad05103ed5eaf73db8d84cb3" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.1", "block2", "objc2", "objc2-core-location", @@ -1997,9 +2015,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.20.2" +version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" [[package]] name = "orbclient" @@ -2013,6 +2031,15 @@ dependencies = [ "sdl2-sys", ] +[[package]] +name = "ordered-float" +version = "4.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7bb71e1b3fa6ca1c61f383464aaf2bb0e2f8e772a1f01d486832464de363b951" +dependencies = [ + "num-traits", +] + [[package]] name = "overload" version = "0.1.1" @@ -2065,12 +2092,14 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "petgraph" -version = "0.6.5" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" +checksum = "54acf3a685220b533e437e264e4d932cfbdc4cc7ec0cd232ed73c08d03b8a7ca" dependencies = [ "fixedbitset", + "hashbrown 0.15.2", "indexmap", + "serde", ] [[package]] @@ -2139,6 +2168,12 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "portable-atomic" +version = "1.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483" + [[package]] name = "powerfmt" version = "0.2.0" @@ -2292,7 +2327,7 @@ version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "03a862b389f93e68874fbf580b9de08dd02facb9a788ebadaf4a3fd33cf58834" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.1", ] [[package]] @@ -2457,7 +2492,7 @@ version = "0.38.42" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f93dc38ecbab2eb790ff964bb77fa94faf256fd3e73285fd7ba0903b76bedb85" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.1", "errno", "itoa", "libc", @@ -2676,7 +2711,7 @@ version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3457dea1f0eb631b4034d61d4d8c32074caa6cd1ab2d59f2327bd8461e2c0016" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.1", "calloop", "calloop-wayland-source", "cursor-icon", @@ -2731,7 +2766,7 @@ version = "0.3.0+sdk-1.3.268.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eda41003dc44290527a59b13432d4a0379379fa074b70174882adfbdfd917844" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.1", "serde", ] @@ -3182,12 +3217,6 @@ version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" -[[package]] -name = "unicode-xid" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" - [[package]] name = "utf8parse" version = "0.2.2" @@ -3301,7 +3330,7 @@ version = "0.222.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4adf50fde1b1a49c1add6a80d47aea500c88db70551805853aa8b88f3ea27ab5" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.1", ] [[package]] @@ -3340,7 +3369,7 @@ version = "0.31.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b66249d3fc69f76fd74c82cc319300faa554e9d865dab1f7cd66cc20db10b280" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.1", "rustix", "wayland-backend", "wayland-scanner 0.31.5", @@ -3364,7 +3393,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "625c5029dbd43d25e6aa9615e88b829a5cad13b2819c4ae129fdbb7c31ab4c7e" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.1", "cursor-icon", "wayland-backend", ] @@ -3409,7 +3438,7 @@ version = "0.32.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7cd0ade57c4e6e9a8952741325c30bf82f4246885dca8bf561898b86d0c1f58e" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.1", "wayland-backend", "wayland-client 0.31.7", "wayland-scanner 0.31.5", @@ -3421,7 +3450,7 @@ version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b31cab548ee68c7eb155517f2212049dc151f7cd7910c2b66abfd31c3ee12bd" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.1", "wayland-backend", "wayland-client 0.31.7", "wayland-protocols 0.32.5", @@ -3434,7 +3463,7 @@ version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "782e12f6cd923c3c316130d56205ebab53f55d6666b7faddfad36cecaeeb4022" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.1", "wayland-backend", "wayland-client 0.31.7", "wayland-protocols 0.32.5", @@ -3508,17 +3537,20 @@ dependencies = [ [[package]] name = "wgpu" -version = "23.0.1" +version = "25.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80f70000db37c469ea9d67defdc13024ddf9a5f1b89cb2941b812ad7cde1735a" +checksum = "ec8fb398f119472be4d80bc3647339f56eb63b2a331f6a3d16e25d8144197dd9" dependencies = [ "arrayvec", - "cfg_aliases 0.1.1", + "bitflags 2.9.1", + "cfg_aliases", "document-features", + "hashbrown 0.15.2", "js-sys", "log", "naga", "parking_lot", + "portable-atomic", "profiling", "raw-window-handle 0.6.2", "smallvec", @@ -3533,50 +3565,85 @@ dependencies = [ [[package]] name = "wgpu-core" -version = "23.0.1" +version = "25.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d63c3c478de8e7e01786479919c8769f62a22eec16788d8c2ac77ce2c132778a" +checksum = "f7b882196f8368511d613c6aeec80655160db6646aebddf8328879a88d54e500" dependencies = [ "arrayvec", + "bit-set", "bit-vec", - "bitflags 2.6.0", + "bitflags 2.9.1", "bytemuck", - "cfg_aliases 0.1.1", + "cfg_aliases", "document-features", + "hashbrown 0.15.2", "indexmap", "log", "naga", "once_cell", "parking_lot", + "portable-atomic", "profiling", "raw-window-handle 0.6.2", "rustc-hash", "smallvec", - "thiserror 1.0.69", + "thiserror 2.0.12", + "wgpu-core-deps-apple", + "wgpu-core-deps-emscripten", + "wgpu-core-deps-windows-linux-android", "wgpu-hal", "wgpu-types", ] +[[package]] +name = "wgpu-core-deps-apple" +version = "25.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfd488b3239b6b7b185c3b045c39ca6bf8af34467a4c5de4e0b1a564135d093d" +dependencies = [ + "wgpu-hal", +] + +[[package]] +name = "wgpu-core-deps-emscripten" +version = "25.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f09ad7aceb3818e52539acc679f049d3475775586f3f4e311c30165cf2c00445" +dependencies = [ + "wgpu-hal", +] + +[[package]] +name = "wgpu-core-deps-windows-linux-android" +version = "25.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cba5fb5f7f9c98baa7c889d444f63ace25574833df56f5b817985f641af58e46" +dependencies = [ + "wgpu-hal", +] + [[package]] name = "wgpu-hal" -version = "23.0.1" +version = "25.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89364b8a0b211adc7b16aeaf1bd5ad4a919c1154b44c9ce27838213ba05fd821" +checksum = "f968767fe4d3d33747bbd1473ccd55bf0f6451f55d733b5597e67b5deab4ad17" dependencies = [ "android_system_properties", "arrayvec", "ash", "bit-set", - "bitflags 2.6.0", + "bitflags 2.9.1", "block", "bytemuck", - "cfg_aliases 0.1.1", + "cfg-if", + "cfg_aliases", "core-graphics-types", "glow", "glutin_wgl_sys", "gpu-alloc", "gpu-allocator", "gpu-descriptor", + "hashbrown 0.15.2", "js-sys", "khronos-egl", "libc", @@ -3586,15 +3653,15 @@ dependencies = [ "naga", "ndk-sys 0.5.0+25.2.9519653", "objc", - "once_cell", + "ordered-float", "parking_lot", + "portable-atomic", "profiling", "range-alloc", "raw-window-handle 0.6.2", "renderdoc-sys", - "rustc-hash", "smallvec", - "thiserror 1.0.69", + "thiserror 2.0.12", "wasm-bindgen", "web-sys", "wgpu-types", @@ -3604,12 +3671,15 @@ dependencies = [ [[package]] name = "wgpu-types" -version = "23.0.0" +version = "25.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "610f6ff27778148c31093f3b03abc4840f9636d58d597ca2f5977433acfe0068" +checksum = "2aa49460c2a8ee8edba3fca54325540d904dd85b2e086ada762767e17d06e8bc" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.1", + "bytemuck", "js-sys", + "log", + "thiserror 2.0.12", "web-sys", ] @@ -3931,11 +4001,11 @@ dependencies = [ "ahash", "android-activity", "atomic-waker", - "bitflags 2.6.0", + "bitflags 2.9.1", "block2", "bytemuck", "calloop", - "cfg_aliases 0.2.1", + "cfg_aliases", "concurrent-queue", "core-foundation", "core-graphics", @@ -4028,7 +4098,7 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d039de8032a9a8856a6be89cea3e5d12fdd82306ab7c94d74e6deab2460651c5" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.1", "dlib", "log", "once_cell", diff --git a/deny.toml b/deny.toml index 4d99a3c874..5ec1a30bb1 100644 --- a/deny.toml +++ b/deny.toml @@ -33,10 +33,6 @@ skip = [ { name = "raw-window-handle", version = "=0.5.2" }, { name = "raw-window-handle", version = "=0.6.2" }, - # HACK(eddyb) the newer version hasn't propagated through the ecosystem yet. - { name = "cfg_aliases", version = "=0.1.1" }, - { name = "cfg_aliases", version = "=0.2.1" }, - # HACK(eddyb) the newer version hasn't propagated through the ecosystem yet. { name = "hashbrown", version = "=0.14.5" }, { name = "hashbrown", version = "=0.15.2" }, diff --git a/examples/runners/wgpu/Cargo.toml b/examples/runners/wgpu/Cargo.toml index b28d1d0d98..3c5226e0e2 100644 --- a/examples/runners/wgpu/Cargo.toml +++ b/examples/runners/wgpu/Cargo.toml @@ -21,7 +21,7 @@ cfg-if = "1.0.0" shared = { path = "../../shaders/shared" } futures = { version = "0.3", default-features = false, features = ["std", "executor"] } # Vulkan SDK or MoltenVK needs to be installed for `vulkan-portability` to work on macOS -wgpu = { version = "23", features = ["spirv", "vulkan-portability"] } +wgpu = { version = "25.0.2", features = ["spirv", "vulkan-portability"] } winit = { version = "0.30.0", features = ["android-native-activity", "rwh_05"] } clap = { version = "4", features = ["derive"] } strum = { version = "0.26.0", default-features = false, features = ["std", "derive"] } diff --git a/examples/runners/wgpu/src/compute.rs b/examples/runners/wgpu/src/compute.rs index 00589fb675..6d97aaf7d0 100644 --- a/examples/runners/wgpu/src/compute.rs +++ b/examples/runners/wgpu/src/compute.rs @@ -12,10 +12,9 @@ pub fn start(options: &Options) { } async fn start_internal(options: &Options, compiled_shader_modules: CompiledShaderModules) { - let backends = wgpu::util::backend_bits_from_env().unwrap_or(wgpu::Backends::PRIMARY); - let instance = wgpu::Instance::new(wgpu::InstanceDescriptor { + let backends = wgpu::Backends::from_env().unwrap_or(wgpu::Backends::PRIMARY); + let instance = wgpu::Instance::new(&wgpu::InstanceDescriptor { backends, - dx12_shader_compiler: wgpu::util::dx12_shader_compiler_from_env().unwrap_or_default(), ..Default::default() }); let adapter = wgpu::util::initialize_adapter_from_env_or_default(&instance, None) @@ -43,15 +42,13 @@ async fn start_internal(options: &Options, compiled_shader_modules: CompiledShad } let (device, queue) = adapter - .request_device( - &wgpu::DeviceDescriptor { - label: None, - required_features, - required_limits: wgpu::Limits::default(), - memory_hints: wgpu::MemoryHints::Performance, - }, - None, - ) + .request_device(&wgpu::DeviceDescriptor { + label: None, + required_features, + required_limits: wgpu::Limits::default(), + memory_hints: wgpu::MemoryHints::Performance, + trace: Default::default(), + }) .await .expect("Failed to create device"); drop(instance); @@ -67,7 +64,11 @@ async fn start_internal(options: &Options, compiled_shader_modules: CompiledShad // FIXME(eddyb) automate this decision by default. let module = compiled_shader_modules.spv_module_for_entry_point(entry_point); let module = if options.force_spirv_passthru { - unsafe { device.create_shader_module_spirv(&module) } + unsafe { + device.create_shader_module_passthrough(wgpu::ShaderModuleDescriptorPassthrough::SpirV( + module, + )) + } } else { let wgpu::ShaderModuleDescriptorSpirV { label, source } = module; device.create_shader_module(wgpu::ShaderModuleDescriptor { @@ -225,7 +226,7 @@ async fn start_internal(options: &Options, compiled_shader_modules: CompiledShad buffer_slice.map_async(wgpu::MapMode::Read, |r| r.unwrap()); // NOTE(eddyb) `poll` should return only after the above callbacks fire // (see also https://github.com/gfx-rs/wgpu/pull/2698 for more details). - device.poll(wgpu::Maintain::Wait); + device.poll(wgpu::PollType::Wait).unwrap(); if timestamping { if let (Some(timestamp_readback_buffer), Some(timestamp_period)) = diff --git a/examples/runners/wgpu/src/graphics.rs b/examples/runners/wgpu/src/graphics.rs index 04a02bb1d3..ba2f316cee 100644 --- a/examples/runners/wgpu/src/graphics.rs +++ b/examples/runners/wgpu/src/graphics.rs @@ -1,4 +1,5 @@ use crate::{CompiledShaderModules, Options, maybe_watch}; +use wgpu::ShaderModuleDescriptorPassthrough; use shared::ShaderConstants; use winit::{ @@ -39,11 +40,10 @@ async fn run( window: Window, compiled_shader_modules: CompiledShaderModules, ) { - let backends = wgpu::util::backend_bits_from_env() - .unwrap_or(wgpu::Backends::VULKAN | wgpu::Backends::METAL); - let instance = wgpu::Instance::new(wgpu::InstanceDescriptor { + let backends = + wgpu::Backends::from_env().unwrap_or(wgpu::Backends::VULKAN | wgpu::Backends::METAL); + let instance = wgpu::Instance::new(&wgpu::InstanceDescriptor { backends, - dx12_shader_compiler: wgpu::util::dx12_shader_compiler_from_env().unwrap_or_default(), ..Default::default() }); @@ -83,15 +83,13 @@ async fn run( // Create the logical device and command queue let (device, queue) = adapter - .request_device( - &wgpu::DeviceDescriptor { - label: None, - required_features, - required_limits, - memory_hints: wgpu::MemoryHints::Performance, - }, - None, - ) + .request_device(&wgpu::DeviceDescriptor { + label: None, + required_features, + required_limits, + memory_hints: wgpu::MemoryHints::Performance, + trace: Default::default(), + }) .await .expect("Failed to create device"); @@ -373,7 +371,11 @@ fn create_pipeline( // FIXME(eddyb) automate this decision by default. let create_module = |module| { if options.force_spirv_passthru { - unsafe { device.create_shader_module_spirv(&module) } + unsafe { + device.create_shader_module_passthrough(ShaderModuleDescriptorPassthrough::SpirV( + module, + )) + } } else { let wgpu::ShaderModuleDescriptorSpirV { label, source } = module; device.create_shader_module(wgpu::ShaderModuleDescriptor { diff --git a/examples/runners/wgpu/src/lib.rs b/examples/runners/wgpu/src/lib.rs index 0b8e608f76..34daf8d6f6 100644 --- a/examples/runners/wgpu/src/lib.rs +++ b/examples/runners/wgpu/src/lib.rs @@ -216,8 +216,12 @@ fn maybe_watch( RustGPUShader::Compute => wgpu::include_spirv_raw!(env!("compute_shader.spv")), RustGPUShader::Mouse => wgpu::include_spirv_raw!(env!("mouse_shader.spv")), }; + let spirv = match module { + wgpu::ShaderModuleDescriptorPassthrough::SpirV(spirv) => spirv, + _ => panic!("not spirv"), + }; CompiledShaderModules { - named_spv_modules: vec![(None, module)], + named_spv_modules: vec![(None, spirv)], } } } diff --git a/tests/difftests/lib/Cargo.toml b/tests/difftests/lib/Cargo.toml index 25bb14b3de..afd3e21a49 100644 --- a/tests/difftests/lib/Cargo.toml +++ b/tests/difftests/lib/Cargo.toml @@ -19,11 +19,11 @@ use-compiled-tools = [ spirv-builder.workspace = true serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" -wgpu = { version = "23", features = ["spirv", "vulkan-portability"] } +wgpu = { version = "25.0.2", features = ["spirv", "vulkan-portability"] } tempfile = "3.5" futures = "0.3.31" bytemuck = "1.21.0" -thiserror = "1.0" +anyhow = "1.0.98" [lints] workspace = true diff --git a/tests/difftests/lib/src/config.rs b/tests/difftests/lib/src/config.rs index 28c6ebb6b3..ed717502f8 100644 --- a/tests/difftests/lib/src/config.rs +++ b/tests/difftests/lib/src/config.rs @@ -1,14 +1,5 @@ use serde::Deserialize; use std::{fs, path::Path}; -use thiserror::Error; - -#[derive(Error, Debug)] -pub enum ConfigError { - #[error("I/O error: {0}")] - Io(#[from] std::io::Error), - #[error("JSON error: {0}")] - Json(#[from] serde_json::Error), -} #[derive(Debug, Deserialize)] pub struct Config { @@ -16,7 +7,7 @@ pub struct Config { } impl Config { - pub fn from_path>(path: P) -> Result { + pub fn from_path>(path: P) -> anyhow::Result { let content = fs::read_to_string(path)?; let config = serde_json::from_str(&content)?; Ok(config) diff --git a/tests/difftests/lib/src/scaffold/compute/wgpu.rs b/tests/difftests/lib/src/scaffold/compute/wgpu.rs index 1125fd4f39..08c32f0937 100644 --- a/tests/difftests/lib/src/scaffold/compute/wgpu.rs +++ b/tests/difftests/lib/src/scaffold/compute/wgpu.rs @@ -1,6 +1,7 @@ use crate::config::Config; +use anyhow::Context; use bytemuck::Pod; -use futures::{channel::oneshot::Canceled, executor::block_on}; +use futures::executor::block_on; use spirv_builder::{ModuleResult, SpirvBuilder}; use std::{ borrow::Cow, @@ -9,29 +10,14 @@ use std::{ io::Write, path::PathBuf, }; -use thiserror::Error; -use wgpu::{BufferAsyncError, PipelineCompilationOptions, util::DeviceExt}; - -#[derive(Error, Debug)] -pub enum ComputeError { - #[error("Failed to find a suitable GPU adapter")] - AdapterNotFound, - #[error("Failed to create device: {0}")] - DeviceCreationFailed(String), - #[error("Failed to load shader: {0}")] - ShaderLoadFailed(String), - #[error("Mapping compute output future canceled: {0}")] - MappingCanceled(Canceled), - #[error("Mapping compute output failed: {0}")] - MappingFailed(BufferAsyncError), -} +use wgpu::{PipelineCompilationOptions, util::DeviceExt}; /// Trait that creates a shader module and provides its entry point. pub trait ComputeShader { fn create_module( &self, device: &wgpu::Device, - ) -> Result<(wgpu::ShaderModule, Option), ComputeError>; + ) -> anyhow::Result<(wgpu::ShaderModule, Option)>; } /// A compute shader written in Rust compiled with spirv-builder. @@ -49,40 +35,33 @@ impl ComputeShader for RustComputeShader { fn create_module( &self, device: &wgpu::Device, - ) -> Result<(wgpu::ShaderModule, Option), ComputeError> { + ) -> anyhow::Result<(wgpu::ShaderModule, Option)> { let builder = SpirvBuilder::new(&self.path, "spirv-unknown-vulkan1.1") .print_metadata(spirv_builder::MetadataPrintout::None) .release(true) .multimodule(false) .shader_panic_strategy(spirv_builder::ShaderPanicStrategy::SilentExit) .preserve_bindings(true); - let artifact = builder - .build() - .map_err(|e| ComputeError::ShaderLoadFailed(e.to_string()))?; + let artifact = builder.build().context("SpirvBuilder::build() failed")?; if artifact.entry_points.len() != 1 { - return Err(ComputeError::ShaderLoadFailed(format!( + anyhow::bail!( "Expected exactly one entry point, found {}", artifact.entry_points.len() - ))); + ); } let entry_point = artifact.entry_points.into_iter().next().unwrap(); let shader_bytes = match artifact.module { - ModuleResult::SingleModule(path) => { - fs::read(&path).map_err(|e| ComputeError::ShaderLoadFailed(e.to_string()))? - } + ModuleResult::SingleModule(path) => fs::read(&path) + .with_context(|| format!("reading spv file '{}' failed", path.display()))?, ModuleResult::MultiModule(_modules) => { - return Err(ComputeError::ShaderLoadFailed( - "Multiple modules produced".to_string(), - )); + anyhow::bail!("MultiModule modules produced"); } }; if shader_bytes.len() % 4 != 0 { - return Err(ComputeError::ShaderLoadFailed( - "SPIR-V binary length is not a multiple of 4".to_string(), - )); + anyhow::bail!("SPIR-V binary length is not a multiple of 4"); } let shader_words: Vec = bytemuck::cast_slice(&shader_bytes).to_vec(); let module = device.create_shader_module(wgpu::ShaderModuleDescriptor { @@ -112,9 +91,9 @@ impl ComputeShader for WgslComputeShader { fn create_module( &self, device: &wgpu::Device, - ) -> Result<(wgpu::ShaderModule, Option), ComputeError> { + ) -> anyhow::Result<(wgpu::ShaderModule, Option)> { let shader_source = fs::read_to_string(&self.path) - .map_err(|e| ComputeError::ShaderLoadFailed(e.to_string()))?; + .with_context(|| format!("reading wgsl source file '{}'", &self.path.display()))?; let module = device.create_shader_module(wgpu::ShaderModuleDescriptor { label: Some("Compute Shader"), source: wgpu::ShaderSource::Wgsl(Cow::Owned(shader_source)), @@ -142,16 +121,15 @@ where } } - fn init() -> Result<(wgpu::Device, wgpu::Queue), ComputeError> { + fn init() -> anyhow::Result<(wgpu::Device, wgpu::Queue)> { block_on(async { - let instance = wgpu::Instance::new(wgpu::InstanceDescriptor { + let instance = wgpu::Instance::new(&wgpu::InstanceDescriptor { #[cfg(target_os = "linux")] backends: wgpu::Backends::VULKAN, #[cfg(not(target_os = "linux"))] backends: wgpu::Backends::PRIMARY, - dx12_shader_compiler: Default::default(), flags: Default::default(), - gles_minor_version: Default::default(), + backend_options: Default::default(), }); let adapter = instance .request_adapter(&wgpu::RequestAdapterOptions { @@ -160,27 +138,25 @@ where force_fallback_adapter: false, }) .await - .ok_or(ComputeError::AdapterNotFound)?; + .context("Failed to find a suitable GPU adapter")?; let (device, queue) = adapter - .request_device( - &wgpu::DeviceDescriptor { - label: Some("wgpu Device"), - #[cfg(target_os = "linux")] - required_features: wgpu::Features::SPIRV_SHADER_PASSTHROUGH, - #[cfg(not(target_os = "linux"))] - required_features: wgpu::Features::empty(), - required_limits: wgpu::Limits::default(), - memory_hints: Default::default(), - }, - None, - ) + .request_device(&wgpu::DeviceDescriptor { + label: Some("wgpu Device"), + #[cfg(target_os = "linux")] + required_features: wgpu::Features::SPIRV_SHADER_PASSTHROUGH, + #[cfg(not(target_os = "linux"))] + required_features: wgpu::Features::empty(), + required_limits: wgpu::Limits::default(), + memory_hints: Default::default(), + trace: Default::default(), + }) .await - .map_err(|e| ComputeError::DeviceCreationFailed(e.to_string()))?; + .context("Failed to create device")?; Ok((device, queue)) }) } - fn run_internal(self, input: Option) -> Result, ComputeError> + fn run_internal(self, input: Option) -> anyhow::Result> where I: Sized + Pod, { @@ -276,22 +252,22 @@ where buffer_slice.map_async(wgpu::MapMode::Read, move |res| { let _ = sender.send(res); }); - device.poll(wgpu::Maintain::Wait); + device.poll(wgpu::PollType::Wait)?; block_on(receiver) - .map_err(ComputeError::MappingCanceled)? - .map_err(ComputeError::MappingFailed)?; + .context("mapping canceled")? + .context("mapping failed")?; let data = buffer_slice.get_mapped_range().to_vec(); staging_buffer.unmap(); Ok(data) } /// Runs the compute shader with no input. - pub fn run(self) -> Result, ComputeError> { + pub fn run(self) -> anyhow::Result> { self.run_internal::<()>(None) } /// Runs the compute shader with provided input. - pub fn run_with_input(self, input: I) -> Result, ComputeError> + pub fn run_with_input(self, input: I) -> anyhow::Result> where I: Sized + Pod, { @@ -299,21 +275,21 @@ where } /// Runs the compute shader with no input and writes the output to a file. - pub fn run_test(self, config: &Config) -> Result<(), ComputeError> { + pub fn run_test(self, config: &Config) -> anyhow::Result<()> { let output = self.run()?; - let mut f = File::create(&config.output_path).unwrap(); - f.write_all(&output).unwrap(); + let mut f = File::create(&config.output_path)?; + f.write_all(&output)?; Ok(()) } /// Runs the compute shader with provided input and writes the output to a file. - pub fn run_test_with_input(self, config: &Config, input: I) -> Result<(), ComputeError> + pub fn run_test_with_input(self, config: &Config, input: I) -> anyhow::Result<()> where I: Sized + Pod, { let output = self.run_with_input(input)?; - let mut f = File::create(&config.output_path).unwrap(); - f.write_all(&output).unwrap(); + let mut f = File::create(&config.output_path)?; + f.write_all(&output)?; Ok(()) } } diff --git a/tests/difftests/tests/Cargo.lock b/tests/difftests/tests/Cargo.lock index 686e22f50d..7ad114e41e 100644 --- a/tests/difftests/tests/Cargo.lock +++ b/tests/difftests/tests/Cargo.lock @@ -2,6 +2,12 @@ # It is not intended for manual editing. version = 4 +[[package]] +name = "allocator-api2" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" + [[package]] name = "android_system_properties" version = "0.1.5" @@ -11,6 +17,12 @@ dependencies = [ "libc", ] +[[package]] +name = "anyhow" +version = "1.0.98" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487" + [[package]] name = "arrayvec" version = "0.7.6" @@ -79,6 +91,20 @@ name = "bytemuck" version = "1.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6b1fc10dbac614ebc03540c9dbd60e83887fda27794998c6528f1782047d540" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ecc273b49b3205b83d648f0690daa588925572cc5063745bfe547fe7ec8e1a1" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] [[package]] name = "camino" @@ -120,16 +146,17 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "cfg_aliases" -version = "0.1.1" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" [[package]] name = "codespan-reporting" -version = "0.11.1" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" +checksum = "fe6d2e5af09e8c8ad56c969f2157a3d4238cebc7c55f0a517728c38f7b200f81" dependencies = [ + "serde", "termcolor", "unicode-width", ] @@ -161,17 +188,23 @@ dependencies = [ "libc", ] +[[package]] +name = "crunchy" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43da5946c66ffcc7745f48db692ffbb10a83bfe0afd96235c5c2a4fb23994929" + [[package]] name = "difftest" version = "0.9.0" dependencies = [ + "anyhow", "bytemuck", "futures", "serde", "serde_json", "spirv-builder", "tempfile", - "thiserror 1.0.69", "wgpu", ] @@ -208,9 +241,9 @@ checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" [[package]] name = "fixedbitset" -version = "0.4.2" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" +checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" [[package]] name = "foldhash" @@ -368,9 +401,9 @@ dependencies = [ [[package]] name = "glow" -version = "0.14.2" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d51fa363f025f5c111e03f13eda21162faeacb6911fe8caa0c0349f9cf0c4483" +checksum = "c5e5ea60d70410161c8bf5da3fdfeaa1c72ed2c15f8bbb9d19fe3a4fad085f08" dependencies = [ "js-sys", "slotmap", @@ -438,15 +471,34 @@ dependencies = [ "bitflags 2.9.0", ] +[[package]] +name = "half" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "459196ed295495a68f7d7fe1d84f6c4b7ff0e21fe3017b2f283c6fac3ad803c9" +dependencies = [ + "cfg-if", + "crunchy", + "num-traits", +] + [[package]] name = "hashbrown" version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" dependencies = [ + "allocator-api2", + "equivalent", "foldhash", ] +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + [[package]] name = "hexf-parse" version = "0.2.1" @@ -569,9 +621,9 @@ checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] name = "metal" -version = "0.29.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ecfd3296f8c56b7c1f6fbac3c71cefa9d78ce009850c45000015f206dc7fa21" +checksum = "f569fb946490b5743ad69813cb19629130ce9374034abe31614a36402d18f99e" dependencies = [ "bitflags 2.9.0", "block", @@ -584,24 +636,28 @@ dependencies = [ [[package]] name = "naga" -version = "23.1.0" +version = "25.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "364f94bc34f61332abebe8cad6f6cd82a5b65cff22c828d05d0968911462ca4f" +checksum = "2b977c445f26e49757f9aca3631c3b8b836942cb278d69a92e7b80d3b24da632" dependencies = [ "arrayvec", "bit-set", "bitflags 2.9.0", "cfg_aliases", "codespan-reporting", + "half", + "hashbrown", "hexf-parse", "indexmap", "log", + "num-traits", + "once_cell", "petgraph", "rustc-hash", "spirv", - "termcolor", - "thiserror 1.0.69", - "unicode-xid", + "strum", + "thiserror 2.0.12", + "unicode-ident", ] [[package]] @@ -634,9 +690,18 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.21.1" +version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d75b0bedcc4fe52caa0e03d9f1151a323e4aa5e2d78ba3580400cd3c9e2bc4bc" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" + +[[package]] +name = "ordered-float" +version = "4.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7bb71e1b3fa6ca1c61f383464aaf2bb0e2f8e772a1f01d486832464de363b951" +dependencies = [ + "num-traits", +] [[package]] name = "parking_lot" @@ -669,12 +734,14 @@ checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" [[package]] name = "petgraph" -version = "0.6.5" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" +checksum = "54acf3a685220b533e437e264e4d932cfbdc4cc7ec0cd232ed73c08d03b8a7ca" dependencies = [ "fixedbitset", + "hashbrown", "indexmap", + "serde", ] [[package]] @@ -695,6 +762,12 @@ version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" +[[package]] +name = "portable-atomic" +version = "1.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483" + [[package]] name = "presser" version = "0.3.1" @@ -951,6 +1024,28 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" +[[package]] +name = "strum" +version = "0.26.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" +dependencies = [ + "strum_macros", +] + +[[package]] +name = "strum_macros" +version = "0.26.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "rustversion", + "syn", +] + [[package]] name = "syn" version = "2.0.100" @@ -1036,12 +1131,6 @@ version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" -[[package]] -name = "unicode-xid" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" - [[package]] name = "version_check" version = "0.9.5" @@ -1140,17 +1229,20 @@ dependencies = [ [[package]] name = "wgpu" -version = "23.0.1" +version = "25.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80f70000db37c469ea9d67defdc13024ddf9a5f1b89cb2941b812ad7cde1735a" +checksum = "ec8fb398f119472be4d80bc3647339f56eb63b2a331f6a3d16e25d8144197dd9" dependencies = [ "arrayvec", + "bitflags 2.9.0", "cfg_aliases", "document-features", + "hashbrown", "js-sys", "log", "naga", "parking_lot", + "portable-atomic", "profiling", "raw-window-handle", "smallvec", @@ -1165,35 +1257,68 @@ dependencies = [ [[package]] name = "wgpu-core" -version = "23.0.1" +version = "25.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d63c3c478de8e7e01786479919c8769f62a22eec16788d8c2ac77ce2c132778a" +checksum = "f7b882196f8368511d613c6aeec80655160db6646aebddf8328879a88d54e500" dependencies = [ "arrayvec", + "bit-set", "bit-vec", "bitflags 2.9.0", "bytemuck", "cfg_aliases", "document-features", + "hashbrown", "indexmap", "log", "naga", "once_cell", "parking_lot", + "portable-atomic", "profiling", "raw-window-handle", "rustc-hash", "smallvec", - "thiserror 1.0.69", + "thiserror 2.0.12", + "wgpu-core-deps-apple", + "wgpu-core-deps-emscripten", + "wgpu-core-deps-windows-linux-android", "wgpu-hal", "wgpu-types", ] +[[package]] +name = "wgpu-core-deps-apple" +version = "25.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfd488b3239b6b7b185c3b045c39ca6bf8af34467a4c5de4e0b1a564135d093d" +dependencies = [ + "wgpu-hal", +] + +[[package]] +name = "wgpu-core-deps-emscripten" +version = "25.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f09ad7aceb3818e52539acc679f049d3475775586f3f4e311c30165cf2c00445" +dependencies = [ + "wgpu-hal", +] + +[[package]] +name = "wgpu-core-deps-windows-linux-android" +version = "25.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cba5fb5f7f9c98baa7c889d444f63ace25574833df56f5b817985f641af58e46" +dependencies = [ + "wgpu-hal", +] + [[package]] name = "wgpu-hal" -version = "23.0.1" +version = "25.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89364b8a0b211adc7b16aeaf1bd5ad4a919c1154b44c9ce27838213ba05fd821" +checksum = "f968767fe4d3d33747bbd1473ccd55bf0f6451f55d733b5597e67b5deab4ad17" dependencies = [ "android_system_properties", "arrayvec", @@ -1202,6 +1327,7 @@ dependencies = [ "bitflags 2.9.0", "block", "bytemuck", + "cfg-if", "cfg_aliases", "core-graphics-types", "glow", @@ -1209,6 +1335,7 @@ dependencies = [ "gpu-alloc", "gpu-allocator", "gpu-descriptor", + "hashbrown", "js-sys", "khronos-egl", "libc", @@ -1218,15 +1345,15 @@ dependencies = [ "naga", "ndk-sys", "objc", - "once_cell", + "ordered-float", "parking_lot", + "portable-atomic", "profiling", "range-alloc", "raw-window-handle", "renderdoc-sys", - "rustc-hash", "smallvec", - "thiserror 1.0.69", + "thiserror 2.0.12", "wasm-bindgen", "web-sys", "wgpu-types", @@ -1236,12 +1363,15 @@ dependencies = [ [[package]] name = "wgpu-types" -version = "23.0.0" +version = "25.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "610f6ff27778148c31093f3b03abc4840f9636d58d597ca2f5977433acfe0068" +checksum = "2aa49460c2a8ee8edba3fca54325540d904dd85b2e086ada762767e17d06e8bc" dependencies = [ "bitflags 2.9.0", + "bytemuck", "js-sys", + "log", + "thiserror 2.0.12", "web-sys", ]