diff --git a/Cargo.lock b/Cargo.lock index 61a6aed..8371f29 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -31,7 +31,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" dependencies = [ "cfg-if", - "getrandom", + "getrandom 0.3.4", "once_cell", "version_check", "zerocopy", @@ -62,7 +62,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0f2a1bb052857d5dd49572219344a7332b31b76405648eabac5bc68978251bcd" dependencies = [ "android-properties", - "bitflags 2.11.1", + "bitflags 2.13.1", "cc", "jni", "libc", @@ -71,7 +71,7 @@ dependencies = [ "ndk-context", "ndk-sys", "num_enum", - "thiserror 2.0.18", + "thiserror 2.0.20", ] [[package]] @@ -132,9 +132,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.102" +version = "1.0.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" +checksum = "330a5ed07fa54e4702c9d6c4174f74427fc0ef6e214bbd677ae50a5099946470" [[package]] name = "arbitrary" @@ -170,7 +170,7 @@ checksum = "0ae92a5119aa49cdbcf6b9f893fe4e1d98b04ccbf82ee0584ad948a44a734dea" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.119", ] [[package]] @@ -181,9 +181,9 @@ checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" [[package]] name = "arrayvec" -version = "0.7.6" +version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" +checksum = "d3fb67a6e08acf24fdeccbac2cb6ac4305825bd1f117462e0e6f2f193345ad56" [[package]] name = "as-raw-xcb-connection" @@ -209,6 +209,17 @@ dependencies = [ "libloading", ] +[[package]] +name = "assert_type_match" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f548ad2c4031f2902e3edc1f29c29e835829437de49562d8eb5dc5584d3a1043" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + [[package]] name = "atomic-waker" version = "1.1.2" @@ -217,9 +228,9 @@ checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" [[package]] name = "autocfg" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" +checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53" [[package]] name = "av-scenechange" @@ -236,7 +247,7 @@ dependencies = [ "num-traits", "pastey", "rayon", - "thiserror 2.0.18", + "thiserror 2.0.20", "v_frame", "y4m", ] @@ -257,13 +268,98 @@ dependencies = [ [[package]] name = "avif-serialize" -version = "0.8.8" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "375082f007bd67184fb9c0374614b29f9aaa604ec301635f72338bb65386a53d" +checksum = "e7178fe5f7d460b13895ebb9dcb28a3a6216d2df2574a0806cb51b555d297f38" dependencies = [ "arrayvec", ] +[[package]] +name = "bevy_macro_utils" +version = "0.20.0-dev" +source = "git+https://github.com/bevyengine/bevy.git?rev=0f38358f573a7dc6ea961076f6151be662142010#0f38358f573a7dc6ea961076f6151be662142010" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.5", + "toml_edit", +] + +[[package]] +name = "bevy_platform" +version = "0.20.0-dev" +source = "git+https://github.com/bevyengine/bevy.git?rev=0f38358f573a7dc6ea961076f6151be662142010#0f38358f573a7dc6ea961076f6151be662142010" +dependencies = [ + "critical-section", + "foldhash 0.2.0", + "futures-channel", + "hashbrown", + "js-sys", + "portable-atomic", + "portable-atomic-util", + "serde", + "spin", + "wasm-bindgen", + "wasm-bindgen-futures", + "windows-sys 0.61.2", +] + +[[package]] +name = "bevy_ptr" +version = "0.20.0-dev" +source = "git+https://github.com/bevyengine/bevy.git?rev=0f38358f573a7dc6ea961076f6151be662142010#0f38358f573a7dc6ea961076f6151be662142010" + +[[package]] +name = "bevy_reflect" +version = "0.20.0-dev" +source = "git+https://github.com/bevyengine/bevy.git?rev=0f38358f573a7dc6ea961076f6151be662142010#0f38358f573a7dc6ea961076f6151be662142010" +dependencies = [ + "assert_type_match", + "bevy_platform", + "bevy_ptr", + "bevy_reflect_derive", + "bevy_utils", + "derive_more", + "disqualified", + "downcast-rs 2.0.2", + "erased-serde", + "foldhash 0.2.0", + "glam", + "indexmap", + "inventory", + "serde", + "smallvec", + "smol_str", + "thiserror 2.0.20", + "uuid", + "variadics_please", + "wgpu-types", +] + +[[package]] +name = "bevy_reflect_derive" +version = "0.20.0-dev" +source = "git+https://github.com/bevyengine/bevy.git?rev=0f38358f573a7dc6ea961076f6151be662142010#0f38358f573a7dc6ea961076f6151be662142010" +dependencies = [ + "bevy_macro_utils", + "indexmap", + "proc-macro2", + "quote", + "syn 3.0.5", + "uuid", +] + +[[package]] +name = "bevy_utils" +version = "0.20.0-dev" +source = "git+https://github.com/bevyengine/bevy.git?rev=0f38358f573a7dc6ea961076f6151be662142010#0f38358f573a7dc6ea961076f6151be662142010" +dependencies = [ + "bevy_platform", + "disqualified", + "indexmap", +] + [[package]] name = "bit_field" version = "0.10.3" @@ -278,9 +374,12 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.11.1" +version = "2.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4512299f36f043ab09a583e57bceb5a5aab7a73db1805848e8fef3c9e8c78b3" +checksum = "b588b76d00fde79687d7646a9b5bdf3cc0f655e0bbd080335a95d7e96f3587da" +dependencies = [ + "serde_core", +] [[package]] name = "bitstream-io" @@ -302,34 +401,34 @@ dependencies = [ [[package]] name = "built" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4ad8f11f288f48ca24471bbd51ac257aaeaaa07adae295591266b792902ae64" +checksum = "5c0e531d93d39c34eef561e929e8a7f86d77a5af08aac4f6d6e39976c51858e9" [[package]] name = "bumpalo" -version = "3.20.2" +version = "3.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb" +checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649" [[package]] name = "bytemuck" -version = "1.25.0" +version = "1.25.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +checksum = "95832e849adfb21180ccb6826a99da14e5d266ae5c2e668e1602cf234f153797" dependencies = [ "bytemuck_derive", ] [[package]] name = "bytemuck_derive" -version = "1.10.2" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9abbd1bc6865053c427f7198e6af43bfdedc55ab791faed4fbd361d789575ff" +checksum = "fc0e56a716f1e132ff6bf4bdac1c944a3fcdc1cae65f70a4a2a1ac3b401d2d1f" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 3.0.5", ] [[package]] @@ -340,9 +439,9 @@ checksum = "8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495" [[package]] name = "bytes" -version = "1.11.1" +version = "1.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" +checksum = "fc652a48c352aef3ea3aed32080501cf3ef6ed5da78602a020c991775b0aff04" [[package]] name = "calloop" @@ -350,7 +449,7 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b99da2f8558ca23c71f4fd15dc57c906239752dd27ff3c00a1d56b685b7cbfec" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.1", "log", "polling", "rustix 0.38.44", @@ -364,7 +463,7 @@ version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4dbf9978365bac10f54d1d4b04f7ce4427e51f71d61f2fe15e3fed5166474df7" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.1", "polling", "rustix 1.1.4", "slab", @@ -397,9 +496,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.60" +version = "1.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43c5703da9466b66a946814e1adf53ea2c90f10063b86290cc9eb67ce3478a20" +checksum = "005ec2760ca554fae18df7a11195552ec576cd665632a881bc011d5bb2fd4d80" dependencies = [ "find-msvc-tools", "jobserver", @@ -415,15 +514,26 @@ checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" [[package]] name = "cfg_aliases" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" +checksum = "f079e83a288787bcd14a6aea84cee5c87a67c5a3e660c30f557a3d24761b3527" + +[[package]] +name = "chacha20" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65c35e4b699c7e15ccbe7ee35c005e4fc0a278d22238a2857e6ce2dadeda1b06" +dependencies = [ + "cfg-if", + "cpufeatures", + "rand_core 0.10.1", +] [[package]] name = "clap" -version = "4.6.1" +version = "4.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ddb117e43bbf7dacf0a4190fef4d345b9bad68dfc649cb349e7d17d28428e51" +checksum = "473c7e07f409a8d772161724aa8db6a765a2532a70f9667eeb7b49d3d02fbdca" dependencies = [ "clap_builder", "clap_derive", @@ -431,9 +541,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.6.0" +version = "4.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "714a53001bf66416adb0e2ef5ac857140e7dc3a0c48fb28b2f10762fc4b5069f" +checksum = "7b48fea5a88e9ae728a2dcbedbfc0e730f7d60da42e1cb049a83c9fb8b789889" dependencies = [ "anstream", "anstyle", @@ -443,14 +553,14 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.6.1" +version = "4.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2ce8604710f6733aa641a2b3731eaa1e8b3d9973d5e3565da11800813f997a9" +checksum = "d012d2b9d65aca7f18f4d9878a045bc17899bba951561ba5ec3c2ba1eed9a061" dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn", + "syn 3.0.5", ] [[package]] @@ -491,9 +601,9 @@ checksum = "1d07550c9036bf2ae0c684c4297d503f838287c83c53686d05370d0e139ae570" [[package]] name = "combine" -version = "4.6.7" +version = "4.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" +checksum = "cfc320937d09e6de266b31b9afb480f197d7a861be86be7cb2ea7e5d1bfffc5e" dependencies = [ "bytes", "memchr", @@ -518,16 +628,6 @@ dependencies = [ "libc", ] -[[package]] -name = "core-foundation" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" -dependencies = [ - "core-foundation-sys", - "libc", -] - [[package]] name = "core-foundation-sys" version = "0.8.7" @@ -541,7 +641,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c07782be35f9e1140080c6b96f0d44b739e2278479f64e02fdab4e32dfd8b081" dependencies = [ "bitflags 1.3.2", - "core-foundation 0.9.4", + "core-foundation", "core-graphics-types", "foreign-types", "libc", @@ -554,24 +654,39 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf" dependencies = [ "bitflags 1.3.2", - "core-foundation 0.9.4", + "core-foundation", + "libc", +] + +[[package]] +name = "cpufeatures" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ca28b0ae3115b884660db4118d803791fd6756b6e88f39c0f3f7859060d7566" +dependencies = [ "libc", ] [[package]] name = "crc32fast" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" +checksum = "8498c871161e1742aaa9d52551b2d6ebdd4c3d45a3be423e3728f33b955be550" dependencies = [ "cfg-if", ] [[package]] -name = "crossbeam-deque" -version = "0.8.6" +name = "critical-section" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" +checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b" + +[[package]] +name = "crossbeam-deque" +version = "0.8.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "622f3fc73690be383c7214310406f28a90e6edeadc3cea882f9d71e495b9711a" dependencies = [ "crossbeam-epoch", "crossbeam-utils", @@ -579,27 +694,27 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.18" +version = "0.9.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" +checksum = "dc74980687109a3b14c72fd458107bf0baa1da1a1a805e178d15501ba9b86d9d" dependencies = [ "crossbeam-utils", ] [[package]] name = "crossbeam-queue" -version = "0.3.12" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f58bbc28f91df819d0aa2a2c00cd19754769c2fad90579b3592b1c9ba7a3115" +checksum = "03e8bd762f7479489c70ed6c768ddca99d7296857de437a68dcb2a94365b3fae" dependencies = [ "crossbeam-utils", ] [[package]] name = "crossbeam-utils" -version = "0.8.21" +version = "0.8.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" +checksum = "a31eee39dddec8330830986fcd7625edb5a24ec90ea038215273bbc3adb08ac6" [[package]] name = "crunchy" @@ -618,8 +733,26 @@ name = "deranged" version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7cd812cc2bc1d69d4764bd80df88b4317eaef9e773c75226407d9bc0876b211c" + +[[package]] +name = "derive_more" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d751e9e49156b02b44f9c1815bcb94b984cdcc4396ecc32521c739452808b134" dependencies = [ - "powerfmt", + "derive_more-impl", +] + +[[package]] +name = "derive_more-impl" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "799a97264921d8623a957f6c3b9011f3b5492f557bbb7a5a19b7fa6d06ba8dcb" +dependencies = [ + "proc-macro2", + "quote", + "rustc_version", + "syn 2.0.119", ] [[package]] @@ -634,21 +767,27 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e0e367e4e7da84520dedcac1901e4da967309406d1e51017ae1abfb97adbd38" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.1", "objc2 0.6.4", ] [[package]] name = "displaydoc" -version = "0.2.5" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" +checksum = "c6232dd377dcc64799954cbd3a9bb882e9cdc1308ccd87b1c098f1fb2eaf82a8" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 3.0.5", ] +[[package]] +name = "disqualified" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e90a5dd66beeca277ae954f8055b02a712792b6b6b43f2bc2f92b0b7d8291614" + [[package]] name = "dlib" version = "0.5.3" @@ -664,6 +803,12 @@ version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" +[[package]] +name = "downcast-rs" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "117240f60069e65410b3ae1bb213295bd828f707b5bec6596a1afc8793ce0cbc" + [[package]] name = "dpi" version = "0.1.2" @@ -687,7 +832,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "25dd34cec49ab55d85ebf70139cb1ccd29c977ef6b6ba4fe85489d6877ee9ef3" dependencies = [ "ahash", - "bitflags 2.11.1", + "bitflags 2.13.1", "emath", "epaint", "log", @@ -742,9 +887,9 @@ dependencies = [ [[package]] name = "either" -version = "1.15.0" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" +checksum = "252afb9ae5eaa683babdc6a068b3f5726eb19e05070c731f9b2a23a7c3e8ed34" [[package]] name = "emath" @@ -796,7 +941,7 @@ checksum = "44f23cf4b44bfce11a86ace86f8a73ffdec849c9fd00a386a53d278bd9e81fb3" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.119", ] [[package]] @@ -805,6 +950,17 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" +[[package]] +name = "erased-serde" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2add8a07dd6a8d93ff627029c51de145e12686fbc36ecb298ac22e74cf02dec" +dependencies = [ + "serde", + "serde_core", + "typeid", +] + [[package]] name = "errno" version = "0.3.14" @@ -817,20 +973,22 @@ dependencies = [ [[package]] name = "error-code" -version = "3.3.2" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dea2df4cf52843e0452895c455a1a2cfbb842a1e7329671acf418fdc53ed4c59" +checksum = "0b5343afd4a8365a643ac588dab4cf234a190c7f6c88c9f6dd6ffe00837661b7" [[package]] name = "exr" -version = "1.74.0" +version = "1.74.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4300e043a56aa2cb633c01af81ca8f699a321879a7854d3896a0ba89056363be" +checksum = "711fe42c9964295e01ee3fba3f9fe0e1d24b98886950d68efe81b1c76e21adf3" dependencies = [ "bit_field", "half", "lebe", - "miniz_oxide", + "miniz_oxide 0.8.9", + "num-complex", + "pulp", "rayon-core", "smallvec", "zune-inflate", @@ -838,23 +996,9 @@ dependencies = [ [[package]] name = "fax" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f05de7d48f37cd6730705cbca900770cab77a89f413d23e100ad7fad7795a0ab" -dependencies = [ - "fax_derive", -] - -[[package]] -name = "fax_derive" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0aca10fb742cb43f9e7bb8467c91aa9bcb8e3ffbc6a6f7389bb93ffc920577d" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] +checksum = "caf1079563223d5d59d83c85886a56e586cfd5c1a26292e971a0fa266531ac5a" [[package]] name = "fdeflate" @@ -867,18 +1011,19 @@ dependencies = [ [[package]] name = "find-msvc-tools" -version = "0.1.9" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" +checksum = "3e0f1c7c3a72c66fd80abe965175f7523475c0489a87d3ff9d6e8c87d87a9d2d" [[package]] name = "flate2" -version = "1.1.9" +version = "1.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c" +checksum = "6e634e2e0ebac1ee034020da1ca582e17ffe4e0f5e985823721e168928136dcb" dependencies = [ "crc32fast", - "miniz_oxide", + "miniz_oxide 0.9.1", + "zlib-rs", ] [[package]] @@ -887,6 +1032,12 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" +[[package]] +name = "foldhash" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" + [[package]] name = "foreign-types" version = "0.5.0" @@ -899,13 +1050,13 @@ dependencies = [ [[package]] name = "foreign-types-macros" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" +checksum = "ea5190182e6915eb873ddbc16e23b711b6eb1f9c00a0d0a3a91b5f6228475225" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 3.0.5", ] [[package]] @@ -933,22 +1084,31 @@ dependencies = [ ] [[package]] -name = "futures-core" -version = "0.3.32" +name = "futures-channel" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d" +checksum = "b1f9e3d69d39e4862ffed03ed071a76f9a13ba1d9109d355b0f0aa6b15e393c4" +dependencies = [ + "futures-core", +] + +[[package]] +name = "futures-core" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92d699e522242e69e3003b94ecc1f960f3a5e015aa7c5d7486e65ad01dd94f5e" [[package]] name = "futures-task" -version = "0.3.32" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393" +checksum = "cd417de3d1d015fc3bfd2b1ea46dfc7bab72ef86f1cc7cc9c78e728b34a6d1fd" [[package]] name = "futures-util" -version = "0.3.32" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6" +checksum = "0d50a92467f8ba5dd6e3ee5d4bd04d73ab2e4e1c44474a0674821dfce14b79bc" dependencies = [ "futures-core", "futures-task", @@ -974,10 +1134,22 @@ checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" dependencies = [ "cfg-if", "libc", - "r-efi", + "r-efi 5.3.0", "wasip2", ] +[[package]] +name = "getrandom" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "300e883d756b2e4ec94e02791f39b04b522276138852cfc41d9fb7e904106099" +dependencies = [ + "cfg-if", + "libc", + "r-efi 6.0.0", + "rand_core 0.10.1", +] + [[package]] name = "gif" version = "0.14.2" @@ -990,9 +1162,12 @@ dependencies = [ [[package]] name = "glam" -version = "0.30.10" +version = "0.33.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19fc433e8437a212d1b6f1e68c7824af3aed907da60afa994e7f542d18d12aa9" +checksum = "37bfe73dc8ec21f54d181e5a60554327ec3f1c600c455a75ccbfc65d2106a6c4" +dependencies = [ + "serde_core", +] [[package]] name = "half" @@ -1008,9 +1183,15 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.17.0" +version = "0.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f467dd6dccf739c208452f8014c75c18bb8301b050ad1cfb27153803edb0f51" +checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" +dependencies = [ + "equivalent", + "foldhash 0.2.0", + "serde", + "serde_core", +] [[package]] name = "heck" @@ -1026,21 +1207,21 @@ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] name = "hermit-abi" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" +checksum = "e17592d60ebacc7d5e169f4663c5f84f9161cc90328abcfe8456f41e4dfcb284" [[package]] name = "humantime" -version = "2.3.0" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "135b12329e5e3ce057a9f972339ea52bc954fe1e9358ef27f95e89716fbc5424" +checksum = "15cdd26707701c53297e2fa6afb323d55fbc1d0810c3aec078ae3ef0424c3c15" [[package]] name = "icu_collections" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2984d1cd16c883d7935b9e07e44071dca8d917fd52ecc02c04d5fa0b5a3f191c" +checksum = "fa68d21081c4a05d5a901a1c62add574c77048b6a1c67be3b50ce0b60d4ca513" dependencies = [ "displaydoc", "potential_utf", @@ -1052,9 +1233,9 @@ dependencies = [ [[package]] name = "icu_locale_core" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92219b62b3e2b4d88ac5119f8904c10f8f61bf7e95b640d25ba3075e6cac2c29" +checksum = "d56e28588da92eee5c3201a6eff33fabdd49b62269c8938d4ff050ce4d900deb" dependencies = [ "displaydoc", "litemap", @@ -1065,9 +1246,9 @@ dependencies = [ [[package]] name = "icu_normalizer" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c56e5ee99d6e3d33bd91c5d85458b6005a22140021cc324cea84dd0e72cff3b4" +checksum = "12f9cf5f235641ed274641dd81c3f28d870e276763d0797aeeab72317b1c646f" dependencies = [ "icu_collections", "icu_normalizer_data", @@ -1079,16 +1260,17 @@ dependencies = [ [[package]] name = "icu_normalizer_data" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da3be0ae77ea334f4da67c12f149704f19f81d1adf7c51cf482943e84a2bad38" +checksum = "1563da1ed3e0b3bf3d74c9b85917ac9c56464d2f57242270c09c9e752f8021a0" [[package]] name = "icu_properties" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bee3b67d0ea5c2cca5003417989af8996f8604e34fb9ddf96208a033901e70de" +checksum = "7e7ca276ad3145661a65914e6daf131ca5120cd3dcee8f8f3214b8875184a148" dependencies = [ + "displaydoc", "icu_collections", "icu_locale_core", "icu_properties_data", @@ -1099,15 +1281,15 @@ dependencies = [ [[package]] name = "icu_properties_data" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e2bbb201e0c04f7b4b3e14382af113e17ba4f63e2c9d2ee626b720cbce54a14" +checksum = "e590f038c1464a96894fd6d10127e90a8be4509f56ff7ecef851b15cee0b7caa" [[package]] name = "icu_provider" -version = "2.2.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "139c4cf31c8b5f33d7e199446eff9c1e02decfc2f0eec2c8d71f65befa45b421" +checksum = "d27bbb9d3abbefac45d55f647c9de1d44aafcd1186eb91879afef17c396c3e73" dependencies = [ "displaydoc", "icu_locale_core", @@ -1131,9 +1313,9 @@ dependencies = [ [[package]] name = "idna_adapter" -version = "1.2.1" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" +checksum = "cb68373c0d6620ef8105e855e7745e18b0d00d3bdb07fb532e434244cdb9a714" dependencies = [ "icu_normalizer", "icu_properties", @@ -1175,36 +1357,38 @@ dependencies = [ [[package]] name = "imgref" -version = "1.12.0" +version = "1.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7c5cedc30da3a610cac6b4ba17597bdf7152cf974e8aab3afb3d54455e371c8" +checksum = "6e44b0a4eaa4c82f441d50a963f2d5f05a787240aeee097597033e72accfd22f" [[package]] name = "indexmap" -version = "2.14.0" +version = "2.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9" +checksum = "cc4e190f5d26ca7051642629da2c52fc03bde85a03197c99408dcd291734c855" dependencies = [ "equivalent", "hashbrown", + "serde", + "serde_core", ] [[package]] name = "inotify" -version = "0.11.1" +version = "0.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd5b3eaf1a28b758ac0faa5a4254e8ab2705605496f1b1f3fbbc3988ad73d199" +checksum = "4cc00ea907cab49550b7da656f80ebb97be1b997d931fbcd28d39734e17ce592" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.1", "inotify-sys", "libc", ] [[package]] name = "inotify-sys" -version = "0.1.5" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb" +checksum = "c033f80b2c113cdf91ab7a33faa9cbc014726dcad99880c8609af2a370edf37d" dependencies = [ "libc", ] @@ -1217,7 +1401,16 @@ checksum = "c34819042dc3d3971c46c2190835914dfbe0c3c13f61449b2997f4e9722dfa60" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.119", +] + +[[package]] +name = "inventory" +version = "0.3.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4f0c30c76f2f4ccee3fe55a2435f691ca00c0e4bd87abe4f4a851b1d4dac39b" +dependencies = [ + "rustversion", ] [[package]] @@ -1253,7 +1446,7 @@ dependencies = [ "jni-sys 0.4.1", "log", "simd_cesu8", - "thiserror 2.0.18", + "thiserror 2.0.20", "walkdir", "windows-link", ] @@ -1268,7 +1461,7 @@ dependencies = [ "quote", "rustc_version", "simd_cesu8", - "syn", + "syn 2.0.119", ] [[package]] @@ -1296,36 +1489,35 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38c0b942f458fe50cdac086d2f946512305e5631e720728f2a61aabcd47a6264" dependencies = [ "quote", - "syn", + "syn 2.0.119", ] [[package]] name = "jobserver" -version = "0.1.34" +version = "0.1.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" +checksum = "1c00acbd29eabad4a2392fa0e921c874934dbbf4194312ad20f04a0ed67a3cb3" dependencies = [ - "getrandom", + "getrandom 0.4.3", "libc", ] [[package]] name = "js-sys" -version = "0.3.95" +version = "0.3.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2964e92d1d9dc3364cae4d718d93f227e3abb088e747d92e0395bfdedf1c12ca" +checksum = "ce57d20d1ea864ce2ac172ab472d409214f4fd359f0b2a2775abdf522e2af99e" dependencies = [ "cfg-if", "futures-util", - "once_cell", "wasm-bindgen", ] [[package]] name = "kqueue" -version = "1.1.1" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eac30106d7dce88daf4a3fcb4879ea939476d5074a9b7ddd0fb97fa4bed5596a" +checksum = "8d763e5b24120b4ddf50de6c92308156765aabfbbccebf401da7cff2d70a41ea" dependencies = [ "kqueue-sys", "libc", @@ -1333,11 +1525,11 @@ dependencies = [ [[package]] name = "kqueue-sys" -version = "1.0.4" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed9625ffda8729b85e45cf04090035ac368927b8cebc34898e7c120f52e4838b" +checksum = "07293a4e297ac234359b510362495713f75ea345d5307140414f20c69ffeb087" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.13.1", "libc", ] @@ -1349,15 +1541,15 @@ checksum = "7a79a3332a6609480d7d0c9eab957bca6b455b91bb84e66d19f5ff66294b85b8" [[package]] name = "libc" -version = "0.2.185" +version = "0.2.189" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52ff2c0fe9bc6cb6b14a0592c2ff4fa9ceb83eea9db979b0487cd054946a2b8f" +checksum = "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2" [[package]] name = "libfuzzer-sys" -version = "0.4.12" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f12a681b7dd8ce12bff52488013ba614b869148d54dd79836ab85aafdd53f08d" +checksum = "a9fd2f41a1cba099f79a0b6b6c35656cf7c03351a7bae8ff0f28f25270f929d2" dependencies = [ "arbitrary", "cc", @@ -1374,15 +1566,21 @@ dependencies = [ ] [[package]] -name = "libredox" -version = "0.1.16" +name = "libm" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e02f3bb43d335493c96bf3fd3a321600bf6bd07ed34bc64118e9293bdffea46c" +checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" + +[[package]] +name = "libredox" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d8f1ea3f21fd3405dcaf6c9b5c1630af9afc422d9073ea39c5f6d6c772e08ed" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.1", "libc", "plain", - "redox_syscall 0.7.4", + "redox_syscall 0.9.4", ] [[package]] @@ -1399,9 +1597,9 @@ checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" [[package]] name = "litemap" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92daf443525c4cce67b150400bc2316076100ce0b3686209eb8cf3c31612e6f0" +checksum = "47d9d19d1d6efa0109d2f65ff4c85cddd50bd572e5a00127ab10987290bcefae" [[package]] name = "lock_api" @@ -1414,9 +1612,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.29" +version = "0.4.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" +checksum = "f9f8bd3e56ce4dfc153cf470fffbfa98c7620958b312ca5c3a4b8d5181fd13c6" [[package]] name = "loop9" @@ -1439,15 +1637,15 @@ dependencies = [ [[package]] name = "memchr" -version = "2.8.0" +version = "2.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" +checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98" [[package]] name = "memmap2" -version = "0.9.10" +version = "0.9.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "714098028fe011992e1c3962653c96b2d578c4b4bce9036e15ff220319b1e0e3" +checksum = "d1219ed1b7f229ee7104d281dd01d6802fe28bb6e95d292942c4daacdeb798c0" dependencies = [ "libc", ] @@ -1469,10 +1667,20 @@ dependencies = [ ] [[package]] -name = "mio" -version = "1.2.0" +name = "miniz_oxide" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50b7e5b27aa02a74bac8c3f23f448f8d87ff11f92d3aac1a6ed369ee08cc56c1" +checksum = "b63fbc4a50860e98e7b2aa7804ded1db5cbc3aff9193adaff57a6931bf7c4b4c" +dependencies = [ + "adler2", + "simd-adler32", +] + +[[package]] +name = "mio" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b18443e9c262bfe8fa82f51666e2642c53393f7e5c27b3e1aeab922cff5b9d8" dependencies = [ "libc", "log", @@ -1490,13 +1698,32 @@ dependencies = [ "pxfm", ] +[[package]] +name = "mutants" +version = "0.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc0287524726960e07b119cebd01678f852f147742ae0d925e6a520dca956126" + +[[package]] +name = "naga-types" +version = "30.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "590afbf58a6f4f62873cd5cff4468061844bafa1cdf399cc954537c22d768d49" +dependencies = [ + "hashbrown", + "indexmap", + "rustc-hash 1.1.0", + "serde", + "thiserror 2.0.20", +] + [[package]] name = "ndk" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.1", "jni-sys 0.3.1", "log", "ndk-sys", @@ -1528,9 +1755,9 @@ checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" [[package]] name = "no_std_io2" -version = "0.9.3" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b51ed7824b6e07d354605f4abb3d9d300350701299da96642ee084f5ce631550" +checksum = "418abd1b6d34fbf6cae440dc874771b0525a604428704c76e48b29a5e67b8003" dependencies = [ "memchr", ] @@ -1572,7 +1799,7 @@ version = "8.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4d3d07927151ff8575b7087f245456e549fea62edf0ec4e565a5ee50c8402bc3" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.1", "fsevent-sys", "inotify", "kqueue", @@ -1590,24 +1817,34 @@ version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42b8cfee0e339a0337359f3c88165702ac6e600dc01c0cc9579a92d62b08477a" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.1", ] [[package]] name = "num-bigint" -version = "0.4.6" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" +checksum = "c89e69e7e0f03bea5ef08013795c25018e101932225a656383bd384495ecc367" dependencies = [ "num-integer", "num-traits", ] [[package]] -name = "num-conv" -version = "0.2.1" +name = "num-complex" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6673768db2d862beb9b39a78fdcb1a69439615d5794a1be50caa9bc92c81967" +checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" +dependencies = [ + "bytemuck", + "num-traits", +] + +[[package]] +name = "num-conv" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "521739c6d2bac4aa25192232afe6841231376b2b26d4d9fae5ecf8ca5772e441" [[package]] name = "num-derive" @@ -1617,14 +1854,14 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.119", ] [[package]] name = "num-integer" -version = "0.1.46" +version = "0.1.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +checksum = "7ce2d95d4b3734dc35aa2f45e1aa22cd416814592a4f9d9205e11affd5b8e10b" dependencies = [ "num-traits", ] @@ -1678,7 +1915,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn", + "syn 2.0.119", ] [[package]] @@ -1727,7 +1964,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e4e89ad9e3d7d297152b17d39ed92cd50ca8063a89a9fa569046d41568891eff" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.1", "block2", "libc", "objc2 0.5.2", @@ -1743,7 +1980,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d49e936b501e5c5bf01fda3a9452ff86dc3ea98ad5f283e1455153142d97518c" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.1", "objc2 0.6.4", "objc2-core-graphics", "objc2-foundation 0.3.2", @@ -1755,7 +1992,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "74dd3b56391c7a0596a295029734d3c1c5e7e510a4cb30245f8221ccea96b009" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.1", "block2", "objc2 0.5.2", "objc2-core-location", @@ -1779,7 +2016,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "617fbf49e071c178c0b24c080767db52958f716d9eabdf0890523aeae54773ef" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.1", "block2", "objc2 0.5.2", "objc2-foundation 0.2.2", @@ -1791,7 +2028,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.1", "dispatch2", "objc2 0.6.4", ] @@ -1802,7 +2039,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e022c9d066895efa1345f8e33e584b9f958da2fd4cd116792e15e07e4720a807" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.1", "dispatch2", "objc2 0.6.4", "objc2-core-foundation", @@ -1845,7 +2082,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.1", "block2", "dispatch", "libc", @@ -1858,7 +2095,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3e0adef53c21f888deb4fa59fc59f7eb17404926ee8a6f59f5df0fd7f9f3272" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.1", "objc2 0.6.4", "objc2-core-foundation", ] @@ -1869,7 +2106,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "180788110936d59bab6bd83b6060ffdfffb3b922ba1396b312ae795e1de9d81d" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.1", "objc2 0.6.4", "objc2-core-foundation", ] @@ -1892,7 +2129,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.1", "block2", "objc2 0.5.2", "objc2-foundation 0.2.2", @@ -1904,7 +2141,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a0125f776a10d00af4152d74616409f0d4a2053a6f57fa5b7d6aa2854ac04794" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.1", "objc2 0.6.4", "objc2-foundation 0.3.2", ] @@ -1915,7 +2152,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.1", "block2", "objc2 0.5.2", "objc2-foundation 0.2.2", @@ -1928,7 +2165,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96c1358452b371bf9f104e21ec536d37a650eb10f7ee379fff67d2e08d537f1f" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.1", "objc2 0.6.4", "objc2-core-foundation", "objc2-foundation 0.3.2", @@ -1951,7 +2188,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b8bb46798b20cd6b91cbd113524c490f1686f4c4e8f49502431415f3512e2b6f" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.1", "block2", "objc2 0.5.2", "objc2-cloud-kit", @@ -1983,7 +2220,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "76cfcbf642358e8689af64cee815d139339f3ed8ad05103ed5eaf73db8d84cb3" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.1", "block2", "objc2 0.5.2", "objc2-core-location", @@ -2004,9 +2241,9 @@ checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" [[package]] name = "orbclient" -version = "0.3.53" +version = "0.3.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12c6933ddbbd16539a7672e697bb8d41ac3a4e99ac43eeb40c07236bd7fcb2dd" +checksum = "5df339f526ea9a60e371768d50efc2f2508c7203290731565d1f7a6f71d21747" dependencies = [ "libc", "libredox", @@ -2064,22 +2301,22 @@ checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "pin-project" -version = "1.1.11" +version = "1.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1749c7ed4bcaf4c3d0a3efc28538844fb29bcdd7d2b67b2be7e20ba861ff517" +checksum = "2466b2336ed02bcdca6b294417127b90ec92038d1d5c4fbeac971a922e0e0924" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.11" +version = "1.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b20ed30f105399776b9c883e68e536ef602a16ae6f596d2c473591d6ad64c6" +checksum = "c96395f0a926bc13b1c17622aaddda1ecb55d49c8f1bf9777e4d877800a43f8b" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.119", ] [[package]] @@ -2090,9 +2327,9 @@ checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" [[package]] name = "pkg-config" -version = "0.3.33" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19f132c84eca552bf34cab8ec81f1c1dcc229b811638f9d283dceabe58c5569e" +checksum = "f6b464fbc74e149a392436b17d523f769e057cb6877f6a5c4618bc6f11800548" [[package]] name = "plain" @@ -2106,11 +2343,11 @@ version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "60769b8b31b2a9f263dae2776c37b1b28ae246943cf719eb6946a1db05128a61" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.1", "crc32fast", "fdeflate", "flate2", - "miniz_oxide", + "miniz_oxide 0.8.9", ] [[package]] @@ -2128,10 +2365,25 @@ dependencies = [ ] [[package]] -name = "potential_utf" -version = "0.1.5" +name = "portable-atomic" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0103b1cef7ec0cf76490e969665504990193874ea05c85ff9bab8b911d0a0564" +checksum = "05c8b63e8d9609db387f0324918f81d68fe27748f084ef092fb35954d0539a85" + +[[package]] +name = "portable-atomic-util" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10ab3eb7f3becc3a1cbc4f2c6f20267996cfc1a6467a873763411b136a122715" +dependencies = [ + "portable-atomic", +] + +[[package]] +name = "potential_utf" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d83eb9bc6d8e5cf568e7a1101d60ee05e81ed50ea106026f3d18deeb046d7661" dependencies = [ "zerovec", ] @@ -2162,37 +2414,60 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.106" +version = "1.0.107" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" +checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9" dependencies = [ "unicode-ident", ] [[package]] name = "profiling" -version = "1.0.17" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3eb8486b569e12e2c32ad3e204dbaba5e4b5b216e9367044f25f1dba42341773" +checksum = "3d595e54a326bc53c1c197b32d295e14b169e3cfeaa8dc82b529f947fba6bcf5" dependencies = [ "profiling-procmacros", ] [[package]] name = "profiling-procmacros" -version = "1.0.17" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52717f9a02b6965224f95ca2a81e2e0c5c43baacd28ca057577988930b6c3d5b" +checksum = "4488a4a36b9a4ba6b9334a32a39971f77c1436ec82c38707bce707699cc3bbcb" dependencies = [ "quote", - "syn", + "syn 2.0.119", ] [[package]] -name = "pxfm" -version = "0.1.29" +name = "pulp" +version = "0.22.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0c5ccf5294c6ccd63a74f1565028353830a9c2f5eb0c682c355c471726a6e3f" +checksum = "046aa45b989642ec2e4717c8e72d677b13edd831a4d3b6cf37d9a3e54912496a" +dependencies = [ + "bytemuck", + "cfg-if", + "libm", + "num-complex", + "paste", + "pulp-wasm-simd-flag", + "raw-cpuid", + "reborrow", + "version_check", +] + +[[package]] +name = "pulp-wasm-simd-flag" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d8f70e07b9c3962945a74e59ca1c511bba65b6419468acc217c457d93f3c740" + +[[package]] +name = "pxfm" +version = "0.1.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d55d956fa96f5ec02be2e13af0e20391a5aa83d6a074e3ad368959d0fab299ea" [[package]] name = "qoi" @@ -2211,18 +2486,18 @@ checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3" [[package]] name = "quick-xml" -version = "0.39.2" +version = "0.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "958f21e8e7ceb5a1aa7fa87fab28e7c75976e0bfe7e23ff069e0a260f894067d" +checksum = "e660451e55124f798a69a5af3f49ccfbefbd41910eefd25caf2393e1f3473ec1" dependencies = [ "memchr", ] [[package]] name = "quote" -version = "1.0.45" +version = "1.0.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" +checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001" dependencies = [ "proc-macro2", ] @@ -2234,13 +2509,30 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" [[package]] -name = "rand" -version = "0.9.4" +name = "r-efi" +version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44c5af06bb1b7d3216d91932aed5265164bf384dc89cd6ba05cf59a35f5f76ea" +checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" + +[[package]] +name = "rand" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9ef1d0d795eb7d84685bca4f72f3649f064e6641543d3a8c415898726a57b41" dependencies = [ "rand_chacha", - "rand_core", + "rand_core 0.9.5", +] + +[[package]] +name = "rand" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65c9fb96cbc91e3478eaae79a69fcd3f1ae4ad052e471fe6732fff548984b4af" +dependencies = [ + "chacha20", + "getrandom 0.4.3", + "rand_core 0.10.1", ] [[package]] @@ -2250,7 +2542,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" dependencies = [ "ppv-lite86", - "rand_core", + "rand_core 0.9.5", ] [[package]] @@ -2259,9 +2551,15 @@ version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" dependencies = [ - "getrandom", + "getrandom 0.3.4", ] +[[package]] +name = "rand_core" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63b8176103e19a2643978565ca18b50549f6101881c443590420e4dc998a3c69" + [[package]] name = "rav1e" version = "0.8.1" @@ -2289,10 +2587,10 @@ dependencies = [ "num-traits", "paste", "profiling", - "rand", + "rand 0.9.5", "rand_chacha", "simd_helpers", - "thiserror 2.0.18", + "thiserror 2.0.20", "v_frame", "wasm-bindgen", ] @@ -2312,6 +2610,15 @@ dependencies = [ "rgb", ] +[[package]] +name = "raw-cpuid" +version = "11.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "498cd0dc59d73224351ee52a95fee0f1a617a2eae0e7d9d720cc622c73a54186" +dependencies = [ + "bitflags 2.13.1", +] + [[package]] name = "raw-window-handle" version = "0.6.2" @@ -2350,6 +2657,12 @@ dependencies = [ "crossbeam-utils", ] +[[package]] +name = "reborrow" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03251193000f4bd3b042892be858ee50e8b3719f2b08e5833ac4353724632430" + [[package]] name = "redox_syscall" version = "0.4.1" @@ -2365,16 +2678,16 @@ version = "0.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.1", ] [[package]] name = "redox_syscall" -version = "0.7.4" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f450ad9c3b1da563fb6948a8e0fb0fb9269711c9c73d9ea1de5058c79c8d643a" +checksum = "737970939a87c6fa31e7acad13307bccbb017a073b695b6089a2c484f929e20e" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.1", ] [[package]] @@ -2394,11 +2707,11 @@ dependencies = [ [[package]] name = "rspirv" -version = "0.12.0+sdk-1.3.268.0" +version = "0.13.0+sdk-1.4.341.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cf3a93856b6e5946537278df0d3075596371b1950ccff012f02b0f7eafec8d" +checksum = "091dca2e1d6fd3098417b5ec88e77e80d1ba5945750943419dc976858082c296" dependencies = [ - "rustc-hash", + "rustc-hash 1.1.0", "spirv", ] @@ -2408,6 +2721,12 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" +[[package]] +name = "rustc-hash" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b1e7f9a428571be2dc5bc0505c13fb6bf936822b894ec87abf8a08a4e51742d" + [[package]] name = "rustc_version" version = "0.4.1" @@ -2423,7 +2742,7 @@ version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.1", "errno", "libc", "linux-raw-sys 0.4.15", @@ -2436,7 +2755,7 @@ version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.1", "errno", "libc", "linux-raw-sys 0.12.1", @@ -2445,9 +2764,9 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.22" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" +checksum = "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f" [[package]] name = "same-file" @@ -2491,9 +2810,9 @@ checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" [[package]] name = "serde" -version = "1.0.228" +version = "1.0.229" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" +checksum = "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba" dependencies = [ "serde_core", "serde_derive", @@ -2501,29 +2820,29 @@ dependencies = [ [[package]] name = "serde_core" -version = "1.0.228" +version = "1.0.229" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" +checksum = "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.228" +version = "1.0.229" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" +checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 3.0.5", ] [[package]] name = "serde_json" -version = "1.0.149" +version = "1.0.151" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" +checksum = "c841b55ecdae098c80dcae9cf767f6f8a0c2cdb3416bbef72181df4d0fe73f14" dependencies = [ "itoa", "memchr", @@ -2555,21 +2874,21 @@ dependencies = [ [[package]] name = "shlex" -version = "1.3.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" +checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba" [[package]] name = "simd-adler32" -version = "0.3.9" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "703d5c7ef118737c72f1af64ad2f6f8c5e1921f818cdcb97b8fe6fc69bf66214" +checksum = "3a219298ac11a56ea9a6d2120044824d6f01aeb034955e7af7bc16858527deea" [[package]] name = "simd_cesu8" -version = "1.1.1" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94f90157bb87cddf702797c5dadfa0be7d266cdf49e22da2fcaa32eff75b2c33" +checksum = "11031e251abf8611c80f460e19dbdeb54a66db918e49c65a7065b46ac7aec520" dependencies = [ "rustc_version", "simdutf8", @@ -2615,9 +2934,9 @@ checksum = "9db491c0d4152a069911a0fbdaca959691bf0b9d7110d98a7ed1c8e59b79ab30" [[package]] name = "smallvec" -version = "1.15.1" +version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" +checksum = "b9be42f50aa861c555654aa3a37f52f4b1074bacf4e48fe0ef7fa584e80f1f0f" [[package]] name = "smithay-client-toolkit" @@ -2625,7 +2944,7 @@ version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3457dea1f0eb631b4034d61d4d8c32074caa6cd1ab2d59f2327bd8461e2c0016" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.1", "calloop 0.13.0", "calloop-wayland-source 0.3.0", "cursor-icon", @@ -2650,7 +2969,7 @@ version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0512da38f5e2b31201a93524adb8d3136276fa4fe4aafab4e1f727a82b534cc0" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.1", "calloop 0.14.4", "calloop-wayland-source 0.4.1", "cursor-icon", @@ -2658,7 +2977,7 @@ dependencies = [ "log", "memmap2", "rustix 1.1.4", - "thiserror 2.0.18", + "thiserror 2.0.20", "wayland-backend", "wayland-client", "wayland-csd-frame", @@ -2692,12 +3011,21 @@ dependencies = [ ] [[package]] -name = "spirv" -version = "0.3.0+sdk-1.3.268.0" +name = "spin" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eda41003dc44290527a59b13432d4a0379379fa074b70174882adfbdfd917844" +checksum = "0134f9043ed38b087ac4f7d4af44c79e2c9e5094421fe3164f435ce585953b10" dependencies = [ - "bitflags 2.11.1", + "portable-atomic", +] + +[[package]] +name = "spirv" +version = "0.4.0+sdk-1.4.341.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9571ea910ebd84c86af4b3ed27f9dbdc6ad06f17c5f96146b2b671e2976744f" +dependencies = [ + "bitflags 2.13.1", ] [[package]] @@ -2706,6 +3034,12 @@ version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + [[package]] name = "strict-num" version = "0.1.1" @@ -2720,9 +3054,20 @@ checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] name = "syn" -version = "2.0.117" +version = "2.0.119" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" +checksum = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "3.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12df2e0110f65b775f769bb17ef989067a1d931b2eb822bd4346631eeada89f9" dependencies = [ "proc-macro2", "quote", @@ -2737,7 +3082,7 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.119", ] [[package]] @@ -2749,13 +3094,13 @@ dependencies = [ "egui", "egui_plot", "egui_winit_vulkano", - "foldhash", + "foldhash 0.1.5", "glam", "log", "notify", "num_cpus", "obj", - "rand", + "rand 0.10.3", "rspirv", "simplelog", "tape-load", @@ -2770,7 +3115,8 @@ dependencies = [ name = "tape-load" version = "0.1.0" dependencies = [ - "foldhash", + "bevy_reflect", + "foldhash 0.1.5", "glam", "humantime", "rspirv", @@ -2796,11 +3142,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.18" +version = "2.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" +checksum = "ec86235f5fcc2a73650310756d2ac5b138a5780bbbdfae3eeccec992c435ba4f" dependencies = [ - "thiserror-impl 2.0.18", + "thiserror-impl 2.0.20", ] [[package]] @@ -2811,25 +3157,25 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.119", ] [[package]] name = "thiserror-impl" -version = "2.0.18" +version = "2.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" +checksum = "bc04cd3e1236dd4a98afca4569f2deb3f120e5422a4023be2cb683f8486292af" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 3.0.5", ] [[package]] name = "thread_local" -version = "1.1.9" +version = "1.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" +checksum = "1ad99c4c6d32803332c548b1af0540b357b3f5fc0be8f6c6bfe8b2e6ae784070" dependencies = [ "cfg-if", ] @@ -2850,12 +3196,11 @@ dependencies = [ [[package]] name = "time" -version = "0.3.47" +version = "0.3.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "743bd48c283afc0388f9b8827b976905fb217ad9e647fae3a379a9283c4def2c" +checksum = "cdb87b95ec50ddfa440816d227a17b2ccbdda963a316a727fda0fc4334f7d134" dependencies = [ "deranged", - "itoa", "libc", "num-conv", "num_threads", @@ -2867,15 +3212,15 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7694e1cfe791f8d31026952abf09c69ca6f6fa4e1a1229e18988f06a04a12dca" +checksum = "9e1c906769ad99c88eaa54e728060edef082f8e358ff32030cb7c7d315e81109" [[package]] name = "time-macros" -version = "0.2.27" +version = "0.2.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e70e4c5a0e0a8a4823ad65dfe1a6930e4f4d756dcd9dd7939022b5e8c501215" +checksum = "7e689342a48d2ea927c87ea50cabf8594854bf940e9310208848d680d668ed85" dependencies = [ "num-conv", "time-core", @@ -2908,9 +3253,9 @@ dependencies = [ [[package]] name = "tinystr" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8323304221c2a851516f22236c5722a72eaa19749016521d6dff0824447d96d" +checksum = "b1e27c91459209c2986af3dcf603a5a74a4368754ce37414f59acc971167f643" dependencies = [ "displaydoc", "zerovec", @@ -2927,9 +3272,9 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.25.11+spec-1.1.0" +version = "0.25.13+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b59c4d22ed448339746c59b905d24568fcbb3ab65a500494f7b8c3e97739f2b" +checksum = "6975367e4d2ef766d86af01ffad14b622fecc8d4357a998fbc4deb6e9bacaf9b" dependencies = [ "indexmap", "toml_datetime", @@ -2939,9 +3284,9 @@ dependencies = [ [[package]] name = "toml_parser" -version = "1.1.2+spec-1.1.0" +version = "1.1.3+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526" +checksum = "1d38ac1cf9b95face32296c0a3ede1fdc270627c9d9c02a7274dd6d960dc4d56" dependencies = [ "winnow", ] @@ -2969,6 +3314,12 @@ version = "0.25.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2df906b07856748fa3f6e0ad0cbaa047052d4a7dd609e231c4f72cee8c36f31" +[[package]] +name = "typeid" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c" + [[package]] name = "unicode-ident" version = "1.0.24" @@ -2977,9 +3328,20 @@ checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" [[package]] name = "unicode-segmentation" -version = "1.13.2" +version = "1.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9629274872b2bfaf8d66f5f15725007f635594914870f65218920345aa11aa8c" +checksum = "c6f5d3c3b1bf09027a88a6bc961fc00497d651009560b5463668dc81b0fa87a8" + +[[package]] +name = "unsynn" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "501a7adf1a4bd9951501e5c66621e972ef8874d787628b7f90e64f936ef7ec0a" +dependencies = [ + "mutants", + "proc-macro2", + "rustc-hash 2.1.3", +] [[package]] name = "url" @@ -3011,6 +3373,18 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" +[[package]] +name = "uuid" +version = "1.26.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ef6dac1e96601b4fb3acccccff2139741fcb757cb9a36089bf5be91cfb285ce" +dependencies = [ + "getrandom 0.4.3", + "js-sys", + "serde_core", + "wasm-bindgen", +] + [[package]] name = "v_frame" version = "0.3.9" @@ -3022,6 +3396,16 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "variadics_please" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b53d0f7f2d0182759a549f1f313ce16b07d8f9ba93098157b5fa10ee3e61117f" +dependencies = [ + "quote", + "unsynn", +] + [[package]] name = "version_check" version = "0.9.5" @@ -3046,7 +3430,7 @@ dependencies = [ "ash", "bytemuck", "crossbeam-queue", - "foldhash", + "foldhash 0.1.5", "half", "heck 0.4.1", "indexmap", @@ -3078,7 +3462,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn", + "syn 2.0.119", ] [[package]] @@ -3087,12 +3471,12 @@ version = "0.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3bf501461be7cef2893c0e62c50945add9763cc482051d29053f6157089d5ea9" dependencies = [ - "foldhash", + "foldhash 0.1.5", "heck 0.4.1", "proc-macro2", "quote", "shaderc", - "syn", + "syn 2.0.119", "vulkano", ] @@ -3102,7 +3486,7 @@ version = "0.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e25dc54fd5e14a0e01c7282f9b5d9c6e133745e1df3228b0352366e34c83bb6b" dependencies = [ - "foldhash", + "foldhash 0.1.5", "vulkano", "winit", ] @@ -3125,18 +3509,18 @@ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasip2" -version = "1.0.3+wasi-0.2.9" +version = "1.0.4+wasi-0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20064672db26d7cdc89c7798c48a0fdfac8213434a1186e5ef29fd560ae223d6" +checksum = "b67efb37e106e55ce722a510d6b5f9c17f083e5fc79afc2badeb12cc313d9487" dependencies = [ "wit-bindgen", ] [[package]] name = "wasm-bindgen" -version = "0.2.118" +version = "0.2.128" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bf938a0bacb0469e83c1e148908bd7d5a6010354cf4fb73279b7447422e3a89" +checksum = "aecb87a33d3b0c5e3b7aa46336eaf486cffafbd281b195e4c8b80d50df2351bf" dependencies = [ "cfg-if", "once_cell", @@ -3147,9 +3531,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.68" +version = "0.4.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f371d383f2fb139252e0bfac3b81b265689bf45b6874af544ffa4c975ac1ebf8" +checksum = "6ef4c5d3d2cdf5c54f4231181768f5510842e350db025faf1f7163b1030ed928" dependencies = [ "js-sys", "wasm-bindgen", @@ -3157,9 +3541,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.118" +version = "0.2.128" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eeff24f84126c0ec2db7a449f0c2ec963c6a49efe0698c4242929da037ca28ed" +checksum = "a690d511e3c1a8b3a55e33511e3c2c00c78415cd23650f32b808627f5696b9ed" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -3167,34 +3551,34 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.118" +version = "0.2.128" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d08065faf983b2b80a79fd87d8254c409281cf7de75fc4b773019824196c904" +checksum = "411e4887f0071ef2d2164a9d5fdf2d20efbef78fccd3a78b0c10a1dc5295e48a" dependencies = [ "bumpalo", "proc-macro2", "quote", - "syn", + "syn 3.0.5", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.118" +version = "0.2.128" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fd04d9e306f1907bd13c6361b5c6bfc7b3b3c095ed3f8a9246390f8dbdee129" +checksum = "81941cd78d0c92026c33e5e01312845a4cb1e9af3407f9134b100dd03144103e" dependencies = [ "unicode-ident", ] [[package]] name = "wayland-backend" -version = "0.3.15" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2857dd20b54e916ec7253b3d6b4d5c4d7d4ca2c33c2e11c6c76a99bd8744755d" +checksum = "38a91b4eaddff87b1cd1074985e3713da4af2c49742d1b356b2c01670a67a078" dependencies = [ "cc", - "downcast-rs", + "downcast-rs 1.2.1", "rustix 1.1.4", "scoped-tls", "smallvec", @@ -3203,11 +3587,11 @@ dependencies = [ [[package]] name = "wayland-client" -version = "0.31.14" +version = "0.31.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "645c7c96bb74690c3189b5c9cb4ca1627062bb23693a4fad9d8c3de958260144" +checksum = "e3c36a0f861ad76d0901f2800b46321410d9f73f2ea88aac0650d86c32688073" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.1", "rustix 1.1.4", "wayland-backend", "wayland-scanner", @@ -3219,7 +3603,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "625c5029dbd43d25e6aa9615e88b829a5cad13b2819c4ae129fdbb7c31ab4c7e" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.1", "cursor-icon", "wayland-backend", ] @@ -3237,11 +3621,11 @@ dependencies = [ [[package]] name = "wayland-protocols" -version = "0.32.12" +version = "0.32.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "563a85523cade2429938e790815fd7319062103b9f4a2dc806e9b53b95982d8f" +checksum = "23d0c813de3daa2ed6520af85a3bd49b0e722a3078506899aa9686fea58dc4b6" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.1", "wayland-backend", "wayland-client", "wayland-scanner", @@ -3253,7 +3637,7 @@ version = "20250721.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "40a1f863128dcaaec790d7b4b396cc9b9a7a079e878e18c47e6c2d2c5a8dcbb1" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.1", "wayland-backend", "wayland-client", "wayland-protocols", @@ -3266,7 +3650,7 @@ version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e9567599ef23e09b8dad6e429e5738d4509dfc46b3b21f32841a304d16b29c8" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.1", "wayland-backend", "wayland-client", "wayland-protocols", @@ -3279,7 +3663,7 @@ version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b6d8cf1eb2c1c31ed1f5643c88a6e53538129d4af80030c8cabd1f9fa884d91" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.1", "wayland-backend", "wayland-client", "wayland-protocols", @@ -3292,7 +3676,7 @@ version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eb04e52f7836d7c7976c78ca0250d61e33873c34156a2a1fc9474828ec268234" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.1", "wayland-backend", "wayland-client", "wayland-protocols", @@ -3301,9 +3685,9 @@ dependencies = [ [[package]] name = "wayland-scanner" -version = "0.31.10" +version = "0.31.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c324a910fd86ebdc364a3e61ec1f11737d3b1d6c273c0239ee8ff4bc0d24b4a" +checksum = "338e30461b3a2b67d70eb30a6d89f8e0c93a833e07d2ae89085cd070c4a00ac0" dependencies = [ "proc-macro2", "quick-xml", @@ -3324,9 +3708,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.95" +version = "0.3.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f2dfbb17949fa2088e5d39408c48368947b86f7834484e87b73de55bc14d97d" +checksum = "9fbddc4a036f00ec4f18c83445bd3115cb306a91da554919a099d9222fe4a7f8" dependencies = [ "js-sys", "wasm-bindgen", @@ -3344,15 +3728,15 @@ dependencies = [ [[package]] name = "webbrowser" -version = "1.2.1" +version = "1.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fc95580916af1e68ff6a7be07446fc5db73ebf71cf092de939bbf5f7e189f72" +checksum = "62c35be770821a214dbc362fc26908c853e776c0004294d0b10b8a6bad582f94" dependencies = [ - "core-foundation 0.10.1", "jni", "log", "ndk-context", "objc2 0.6.4", + "objc2-app-kit 0.3.2", "objc2-foundation 0.3.2", "url", "web-sys", @@ -3364,6 +3748,23 @@ version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a28ac98ddc8b9274cb41bb4d9d4d5c425b6020c50c46f25559911905610b4a88" +[[package]] +name = "wgpu-types" +version = "30.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99dad6f1fbdbbdb4c278a6508b059d44688f5cebddf78d005a46a31340269286" +dependencies = [ + "bitflags 2.13.1", + "bytemuck", + "js-sys", + "log", + "naga-types", + "raw-window-handle", + "serde", + "static_assertions", + "web-sys", +] + [[package]] name = "winapi-util" version = "0.1.11" @@ -3553,13 +3954,13 @@ dependencies = [ "ahash", "android-activity", "atomic-waker", - "bitflags 2.11.1", + "bitflags 2.13.1", "block2", "bytemuck", "calloop 0.13.0", "cfg_aliases", "concurrent-queue", - "core-foundation 0.9.4", + "core-foundation", "core-graphics", "cursor-icon", "dpi", @@ -3598,9 +3999,9 @@ dependencies = [ [[package]] name = "winnow" -version = "1.0.1" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09dac053f1cd375980747450bfc7250c264eaae0583872e845c0c7cd578872b5" +checksum = "23b97319f7b8343df12cc98938e5c3eb436064524c8d2b4e30a1d3a36eecdf81" dependencies = [ "memchr", ] @@ -3613,9 +4014,9 @@ checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" [[package]] name = "writeable" -version = "0.6.3" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ffae5123b2d3fc086436f8834ae3ab053a283cfac8fe0a0b8eaae044768a4c4" +checksum = "3ad82d2a33cdc9674dc7465672f271e096168fcdbe0f799d9e6db8c5892679dc" [[package]] name = "x11-dl" @@ -3651,9 +4052,9 @@ checksum = "ea6fc2961e4ef194dcbfe56bb845534d0dc8098940c7e5c012a258bfec6701bd" [[package]] name = "xcursor" -version = "0.3.10" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bec9e4a500ca8864c5b47b8b482a73d62e4237670e5b5f1d6b9e3cae50f28f2b" +checksum = "163b33ed8786455e2fa5d72f554057ce3f3182425434f756cd39c99839d88e23" [[package]] name = "xkbcommon-dl" @@ -3661,7 +4062,7 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d039de8032a9a8856a6be89cea3e5d12fdd82306ab7c94d74e6deab2460651c5" dependencies = [ - "bitflags 2.11.1", + "bitflags 2.13.1", "dlib", "log", "once_cell", @@ -3676,9 +4077,9 @@ checksum = "b9cc00251562a284751c9973bace760d86c0276c471b4be569fe6b068ee97a56" [[package]] name = "xml-rs" -version = "0.8.28" +version = "0.8.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ae8337f8a065cfc972643663ea4279e04e7256de865aa66fe25cec5fb912d3f" +checksum = "e450f9b2ed1dff33c94c12589a87338689467b9c4f5d8a5710bd09a847d2c8a7" [[package]] name = "xmlparser" @@ -3694,9 +4095,9 @@ checksum = "7a5a4b21e1a62b67a2970e6831bc091d7b87e119e7f9791aef9702e3bef04448" [[package]] name = "yoke" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abe8c5fda708d9ca3df187cae8bfb9ceda00dd96231bed36e445a1a48e66f9ca" +checksum = "709fe23a0424b6a435d82152b1bd3fdfb0833487d5fa90d05d42762a9891fef5" dependencies = [ "stable_deref_trait", "yoke-derive", @@ -3711,35 +4112,35 @@ checksum = "de844c262c8848816172cef550288e7dc6c7b7814b4ee56b3e1553f275f1858e" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.119", "synstructure", ] [[package]] name = "zerocopy" -version = "0.8.48" +version = "0.8.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eed437bf9d6692032087e337407a86f04cd8d6a16a37199ed57949d415bd68e9" +checksum = "556764e583adb45a9f8d413c2a147fa7e8d821e48e12b14fd560b607998b75eb" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.48" +version = "0.8.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70e3cd084b1788766f53af483dd21f93881ff30d7320490ec3ef7526d203bad4" +checksum = "f2ab42fc20575779bd240faa45f94a74256f755c0fa9e89f0ede20d91d0cdfc1" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.119", ] [[package]] name = "zerofrom" -version = "0.1.7" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69faa1f2a1ea75661980b013019ed6687ed0e83d069bc1114e2cc74c6c04c4df" +checksum = "0ec05a11813ea801ff6d75110ad09cd0824ddba17dfe17128ea0d5f68e6c5272" dependencies = [ "zerofrom-derive", ] @@ -3752,15 +4153,15 @@ checksum = "11532158c46691caf0f2593ea8358fed6bbf68a0315e80aae9bd41fbade684a1" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.119", "synstructure", ] [[package]] name = "zerotrie" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f9152d31db0792fa83f70fb2f83148effb5c1f5b8c7686c3459e361d9bc20bf" +checksum = "4ea269c3bd32f0a32c321907a2ae912ba6f4649bb0fc764a15627e99a7095a3f" dependencies = [ "displaydoc", "yoke", @@ -3769,9 +4170,9 @@ dependencies = [ [[package]] name = "zerovec" -version = "0.11.6" +version = "0.11.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90f911cbc359ab6af17377d242225f4d75119aec87ea711a880987b18cd7b239" +checksum = "bb0464e17806c1d976d5cba29399c7f08e516e279e2ba493f63123b5fca67dd8" dependencies = [ "yoke", "zerofrom", @@ -3780,26 +4181,32 @@ dependencies = [ [[package]] name = "zerovec-derive" -version = "0.11.3" +version = "0.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "625dc425cab0dca6dc3c3319506e6593dcb08a9f387ea3b284dbd52a92c40555" +checksum = "34df6fc39dbd26ddc9c10e6a2984476e13acce22e64e4487636ef494369225da" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 3.0.5", ] [[package]] -name = "zmij" -version = "1.0.21" +name = "zlib-rs" +version = "0.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" +checksum = "34b31d188d9d685a4f9c7b46d6e36631b07058d2cfe190267adce54dc230bf12" + +[[package]] +name = "zmij" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b" [[package]] name = "zune-core" -version = "0.5.1" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb8a0807f7c01457d0379ba880ba6322660448ddebc890ce29bb64da71fb40f9" +checksum = "d56377fd46368984a170bc5aac5567e52ca5da874caa60bea39fcbca78fb658b" [[package]] name = "zune-inflate" diff --git a/tape-drive/Cargo.toml b/tape-drive/Cargo.toml index 05eef2e..1b4d5ea 100644 --- a/tape-drive/Cargo.toml +++ b/tape-drive/Cargo.toml @@ -18,7 +18,7 @@ bytemuck = { version = "1.13", features = [ "min_const_generics", ] } -glam = "0.30.3" +glam = "0.33.12" egui = "0.31.1" egui_winit_vulkano = "0.28.0" @@ -29,13 +29,13 @@ egui_plot = "0.32.1" utf-8 = "0.7" -rand = "0.9.1" +rand = "0.10.3" foldhash = "0.1.5" log = "0.4" simplelog = "0.12" -rspirv = "0.12" +rspirv = "0.13.0" num_cpus = "1" diff --git a/tape-drive/src/main.rs b/tape-drive/src/main.rs index 25d0feb..d9805c3 100644 --- a/tape-drive/src/main.rs +++ b/tape-drive/src/main.rs @@ -41,7 +41,7 @@ use notify::{RecommendedWatcher, Watcher}; use rspirv::dr::Module; use simplelog::{CombinedLogger, Config, TermLogger, WriteLogger}; use tape_load::{ - interpreters::{self, interval::IntervalInterpreter, point::PointInterpreter}, + interpreters::{interval::IntervalInterpreter, point::PointInterpreter}, ssa, types, }; use vulkano::{ @@ -474,7 +474,8 @@ impl App { .map(|i| (p, i)) }) .min_by_key(|(p, _)| { - // We assign a lower score to device types that are likely to be faster/better. + // We assign a lower score to device types that are likely + // to be faster/better. match p.properties().device_type { PhysicalDeviceType::DiscreteGpu => 0, PhysicalDeviceType::IntegratedGpu => 1, @@ -884,8 +885,8 @@ impl ApplicationHandler for App { present_modes .into_iter() .min_by_key(|p| { - // We assign a lower score to device types that are likely to be - // faster/better. + // We assign a lower score to device types that are + // likely to be faster/better. match p { PresentMode::Mailbox => 0, PresentMode::FifoRelaxed => 1, @@ -1264,8 +1265,12 @@ impl App { let aspect_ratio = rcx.swapchain.image_extent()[0] as f32 / rcx.swapchain.image_extent()[1] as f32; - let proj = - Mat4::perspective_infinite_reverse_rh(std::f32::consts::FRAC_PI_2, aspect_ratio, near); + // TODO: Make this use the vulkan projection + let proj = glam::camera::rh::proj::directx::perspective_infinite_reverse( + std::f32::consts::FRAC_PI_2, + aspect_ratio, + near, + ); let view = Mat4::from_euler(EulerRot::XYZ, self.cstate.forward.x.to_radians(), self.cstate.forward.y.to_radians(), self.cstate.forward.z.to_radians()) //* Mat4::from_rotation_z(std::f32::consts::PI) * Mat4::from_translation(Vec3::ZERO - self.cstate.position); @@ -2385,9 +2390,9 @@ fn pipeline_recompile( ) .unwrap(); - // Define the shader groups that will eventually turn into the shader binding - // table. The numbers are the indices of the stages in the `stages` - // array. + // Define the shader groups that will eventually turn into the shader + // binding table. The numbers are the indices of the stages in + // the `stages` array. let mut groups = vec![ RayTracingShaderGroupCreateInfo::General { general_shader: 0 }, RayTracingShaderGroupCreateInfo::General { general_shader: 1 }, diff --git a/tape-drive/src/threads.rs b/tape-drive/src/threads.rs index ba0862b..8f544cf 100644 --- a/tape-drive/src/threads.rs +++ b/tape-drive/src/threads.rs @@ -1,7 +1,6 @@ use std::{ fs::File, io::Write, - simd::StdFloat, sync::{ Arc, Mutex, RwLock, atomic::{AtomicU64, Ordering}, @@ -13,9 +12,8 @@ use std::{ use foldhash::{HashMap, HashMapExt}; use glam::Vec3; use log::info; -use rand::{Rng, SeedableRng, rngs::SmallRng}; +use rand::{RngExt as _, SeedableRng, rngs::SmallRng}; use rspirv::{binary::Assemble, dr::Module}; -use tape_load::interpreters; use vulkano::{ buffer::{Subbuffer, allocator::SubbufferAllocator}, descriptor_set::{DescriptorSet, WriteDescriptorSet, allocator::DescriptorSetAllocator}, @@ -34,7 +32,6 @@ use vulkano::{ use crate::{ ARGS, MAX_TRANSFORM_BUFFER, MAXIMUM_SUBDIVISION, get_spec_constants, gui::PreviousDebug, - interpreters::point::PointInterpreter, objects::{self, CSG, Position}, ssa::{SSAInput, SSAOpcode, SSAOpcodeSized, SSATape}, }; @@ -528,36 +525,7 @@ fn create_csg(seed: u64) -> SSATape { } fn interval_check(csg: &CSG, time: f32) -> (Vec3, Vec3) { - const INTERPRET_INPUT_X: interpreters::Value = - interpreters::Value::from_array([10000.0, 0.0, 0.0, -10000.0, 0.0, 0.0, 0.0, 0.0]); - const INTERPRET_INPUT_Y: interpreters::Value = - interpreters::Value::from_array([0.0, 10000.0, 0.0, 0.0, -10000.0, 0.0, 0.0, 0.0]); - const INTERPRET_INPUT_Z: interpreters::Value = - interpreters::Value::from_array([0.0, 0.0, 10000.0, 0.0, 0.0, -10000.0, 0.0, 0.0]); - const INTERPRET_MUL: interpreters::Value = - interpreters::Value::from_array([-1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 0.0, 0.0]); - const INTERPRET_ADD: interpreters::Value = interpreters::Value::from_array([ - 10000.0, 10000.0, 10000.0, -10000.0, -10000.0, -10000.0, 0.0, 0.0, - ]); - - let mut interpreter = PointInterpreter::new(&csg.parts); - let interpreter_out = interpreter - .scene( - INTERPRET_INPUT_X, - INTERPRET_INPUT_Y, - INTERPRET_INPUT_Z, - interpreters::Value::splat(time), - ) - .mul_add(INTERPRET_MUL, INTERPRET_ADD) - .to_array(); - - const EPSILON: f32 = 0.1; - - let highest_corner = - Vec3::new(interpreter_out[0], interpreter_out[1], interpreter_out[2]) + EPSILON; - let lowest_corner = - Vec3::new(interpreter_out[3], interpreter_out[4], interpreter_out[5]) - EPSILON; - + let (highest_corner, lowest_corner) = csg.parts.get_aabb(time); (highest_corner - lowest_corner, lowest_corner) } diff --git a/tape-load/Cargo.toml b/tape-load/Cargo.toml index 11f8e75..5d635b7 100644 --- a/tape-load/Cargo.toml +++ b/tape-load/Cargo.toml @@ -4,7 +4,12 @@ version = "0.1.0" edition = "2024" [dependencies] -glam = "0.30.3" -rspirv = "0.12" +bevy_reflect = { git = "https://github.com/bevyengine/bevy.git", rev = "0f38358f573a7dc6ea961076f6151be662142010", optional = true } +glam = "0.33.12" +rspirv = "0.13.0" foldhash = "0.1.5" humantime = "2.3" + +[features] +default = [] +bevy = ["dep:bevy_reflect"] diff --git a/tape-load/src/spirv_compilers/gradient.rs b/tape-load/src/spirv_compilers/gradient.rs index cd2d08b..889caa9 100644 --- a/tape-load/src/spirv_compilers/gradient.rs +++ b/tape-load/src/spirv_compilers/gradient.rs @@ -198,7 +198,7 @@ pub(crate) fn compile_gradient_function( types.float, None, types.glsl, - spirv::GLOp::Atan2 as u32, + spirv::GlslStd450Op::Atan2 as u32, [IdRef(val_a), IdRef(val_b)], ) .unwrap() @@ -216,7 +216,7 @@ pub(crate) fn compile_gradient_function( types.float, None, types.glsl, - spirv::GLOp::FMin as u32, + spirv::GlslStd450Op::FMin as u32, [IdRef(val_a), IdRef(val_b)], ) .unwrap() @@ -235,7 +235,7 @@ pub(crate) fn compile_gradient_function( types.float, None, types.glsl, - spirv::GLOp::FMax as u32, + spirv::GlslStd450Op::FMax as u32, [IdRef(val_a), IdRef(val_b)], ) .unwrap() @@ -281,7 +281,7 @@ pub(crate) fn compile_gradient_function( types.float, None, types.glsl, - spirv::GLOp::Length as u32, + spirv::GlslStd450Op::Length as u32, [IdRef(val_a)], ) .unwrap() @@ -310,7 +310,7 @@ pub(crate) fn compile_gradient_function( types.float, None, types.glsl, - spirv::GLOp::Distance as u32, + spirv::GlslStd450Op::Distance as u32, [IdRef(val_a), IdRef(val_b)], ) .unwrap() @@ -334,7 +334,7 @@ pub(crate) fn compile_gradient_function( types.float, None, types.glsl, - spirv::GLOp::Round as u32, + spirv::GlslStd450Op::Round as u32, [IdRef(val_a)], ) .unwrap() @@ -346,7 +346,7 @@ pub(crate) fn compile_gradient_function( types.float, None, types.glsl, - spirv::GLOp::FAbs as u32, + spirv::GlslStd450Op::FAbs as u32, [IdRef(val_a)], ) .unwrap() @@ -358,7 +358,7 @@ pub(crate) fn compile_gradient_function( types.float, None, types.glsl, - spirv::GLOp::Floor as u32, + spirv::GlslStd450Op::Floor as u32, [IdRef(val_a)], ) .unwrap() @@ -370,7 +370,7 @@ pub(crate) fn compile_gradient_function( types.float, None, types.glsl, - spirv::GLOp::Ceil as u32, + spirv::GlslStd450Op::Ceil as u32, [IdRef(val_a)], ) .unwrap() @@ -382,7 +382,7 @@ pub(crate) fn compile_gradient_function( types.float, None, types.glsl, - spirv::GLOp::Fract as u32, + spirv::GlslStd450Op::Fract as u32, [IdRef(val_a)], ) .unwrap() @@ -394,7 +394,7 @@ pub(crate) fn compile_gradient_function( types.float, None, types.glsl, - spirv::GLOp::Sin as u32, + spirv::GlslStd450Op::Sin as u32, [IdRef(val_a)], ) .unwrap() @@ -406,7 +406,7 @@ pub(crate) fn compile_gradient_function( types.float, None, types.glsl, - spirv::GLOp::Cos as u32, + spirv::GlslStd450Op::Cos as u32, [IdRef(val_a)], ) .unwrap() @@ -418,7 +418,7 @@ pub(crate) fn compile_gradient_function( types.float, None, types.glsl, - spirv::GLOp::Tan as u32, + spirv::GlslStd450Op::Tan as u32, [IdRef(val_a)], ) .unwrap() @@ -430,7 +430,7 @@ pub(crate) fn compile_gradient_function( types.float, None, types.glsl, - spirv::GLOp::Asin as u32, + spirv::GlslStd450Op::Asin as u32, [IdRef(val_a)], ) .unwrap() @@ -442,7 +442,7 @@ pub(crate) fn compile_gradient_function( types.float, None, types.glsl, - spirv::GLOp::Acos as u32, + spirv::GlslStd450Op::Acos as u32, [IdRef(val_a)], ) .unwrap() @@ -454,7 +454,7 @@ pub(crate) fn compile_gradient_function( types.float, None, types.glsl, - spirv::GLOp::Atan as u32, + spirv::GlslStd450Op::Atan as u32, [IdRef(val_a)], ) .unwrap() @@ -466,7 +466,7 @@ pub(crate) fn compile_gradient_function( types.float, None, types.glsl, - spirv::GLOp::Exp as u32, + spirv::GlslStd450Op::Exp as u32, [IdRef(val_a)], ) .unwrap() @@ -478,7 +478,7 @@ pub(crate) fn compile_gradient_function( types.float, None, types.glsl, - spirv::GLOp::Log as u32, + spirv::GlslStd450Op::Log as u32, [IdRef(val_a)], ) .unwrap() @@ -490,7 +490,7 @@ pub(crate) fn compile_gradient_function( types.float, None, types.glsl, - spirv::GLOp::Sqrt as u32, + spirv::GlslStd450Op::Sqrt as u32, [IdRef(val_a)], ) .unwrap() @@ -521,7 +521,7 @@ pub(crate) fn compile_gradient_function( types.float, None, types.glsl, - spirv::GLOp::FClamp as u32, + spirv::GlslStd450Op::FClamp as u32, [IdRef(add_half), IdRef(zero_const), IdRef(one_const)], ) .unwrap(); @@ -533,7 +533,7 @@ pub(crate) fn compile_gradient_function( types.float, None, types.glsl, - spirv::GLOp::FMix as u32, + spirv::GlslStd450Op::FMix as u32, [IdRef(d2), IdRef(d1), IdRef(h)], ) .unwrap(); @@ -554,7 +554,7 @@ pub(crate) fn compile_gradient_function( types.float, None, types.glsl, - spirv::GLOp::FClamp as u32, + spirv::GlslStd450Op::FClamp as u32, [IdRef(add_half), IdRef(zero_const), IdRef(one_const)], ) .unwrap(); @@ -567,7 +567,7 @@ pub(crate) fn compile_gradient_function( types.float, None, types.glsl, - spirv::GLOp::FMix as u32, + spirv::GlslStd450Op::FMix as u32, [IdRef(d2), IdRef(negate), IdRef(h)], ) .unwrap(); @@ -587,7 +587,7 @@ pub(crate) fn compile_gradient_function( types.float, None, types.glsl, - spirv::GLOp::FClamp as u32, + spirv::GlslStd450Op::FClamp as u32, [IdRef(val_a), IdRef(val_b), IdRef(val_c)], ) .unwrap() @@ -605,7 +605,7 @@ pub(crate) fn compile_gradient_function( types.float, None, types.glsl, - spirv::GLOp::FMix as u32, + spirv::GlslStd450Op::FMix as u32, [IdRef(val_a), IdRef(val_b), IdRef(val_c)], ) .unwrap() @@ -623,7 +623,7 @@ pub(crate) fn compile_gradient_function( types.float, None, types.glsl, - spirv::GLOp::Fma as u32, + spirv::GlslStd450Op::Fma as u32, [IdRef(val_a), IdRef(val_b), IdRef(val_c)], ) .unwrap() @@ -646,7 +646,7 @@ pub(crate) fn compile_gradient_function( types.float, None, types.glsl, - spirv::GLOp::Length as u32, + spirv::GlslStd450Op::Length as u32, [IdRef(pos)], ) .unwrap(); @@ -676,7 +676,7 @@ pub(crate) fn compile_gradient_function( types.vec3, None, types.glsl, - spirv::GLOp::FAbs as u32, + spirv::GlslStd450Op::FAbs as u32, [IdRef(pos)], ) .unwrap(); @@ -692,7 +692,7 @@ pub(crate) fn compile_gradient_function( types.vec3, None, types.glsl, - spirv::GLOp::FMax as u32, + spirv::GlslStd450Op::FMax as u32, [IdRef(q), IdRef(zero_vec3)], ) .unwrap(); @@ -702,7 +702,7 @@ pub(crate) fn compile_gradient_function( types.float, None, types.glsl, - spirv::GLOp::Length as u32, + spirv::GlslStd450Op::Length as u32, [IdRef(q_limit)], ) .unwrap(); @@ -715,7 +715,7 @@ pub(crate) fn compile_gradient_function( types.float, None, types.glsl, - spirv::GLOp::FMax as u32, + spirv::GlslStd450Op::FMax as u32, [IdRef(q_x), IdRef(q_y)], ) .unwrap(); @@ -724,7 +724,7 @@ pub(crate) fn compile_gradient_function( types.float, None, types.glsl, - spirv::GLOp::FMax as u32, + spirv::GlslStd450Op::FMax as u32, [IdRef(max1), IdRef(q_z)], ) .unwrap(); @@ -733,7 +733,7 @@ pub(crate) fn compile_gradient_function( types.float, None, types.glsl, - spirv::GLOp::FMax as u32, + spirv::GlslStd450Op::FMax as u32, [IdRef(max2), IdRef(zero)], ) .unwrap(); @@ -763,7 +763,7 @@ pub(crate) fn compile_gradient_function( types.float, None, types.glsl, - spirv::GLOp::Sqrt as u32, + spirv::GlslStd450Op::Sqrt as u32, [IdRef(dot)], ) .unwrap(); @@ -778,7 +778,7 @@ pub(crate) fn compile_gradient_function( types.float, None, types.glsl, - spirv::GLOp::Length as u32, + spirv::GlslStd450Op::Length as u32, [IdRef(q)], ) .unwrap(); diff --git a/tape-load/src/spirv_compilers/interval.rs b/tape-load/src/spirv_compilers/interval.rs index 461b156..854c7fe 100644 --- a/tape-load/src/spirv_compilers/interval.rs +++ b/tape-load/src/spirv_compilers/interval.rs @@ -130,7 +130,7 @@ pub(crate) fn compile_interval_function( float, None, glsl, - spirv::GLOp::FMin as u32, + spirv::GlslStd450Op::FMin as u32, [IdRef(m0), IdRef(m1)], ) .unwrap(); @@ -139,7 +139,7 @@ pub(crate) fn compile_interval_function( float, None, glsl, - spirv::GLOp::FMin as u32, + spirv::GlslStd450Op::FMin as u32, [IdRef(min), IdRef(m2)], ) .unwrap(); @@ -148,7 +148,7 @@ pub(crate) fn compile_interval_function( float, None, glsl, - spirv::GLOp::FMin as u32, + spirv::GlslStd450Op::FMin as u32, [IdRef(min), IdRef(m3)], ) .unwrap(); @@ -157,7 +157,7 @@ pub(crate) fn compile_interval_function( float, None, glsl, - spirv::GLOp::FMax as u32, + spirv::GlslStd450Op::FMax as u32, [IdRef(m0), IdRef(m1)], ) .unwrap(); @@ -166,7 +166,7 @@ pub(crate) fn compile_interval_function( float, None, glsl, - spirv::GLOp::FMax as u32, + spirv::GlslStd450Op::FMax as u32, [IdRef(max), IdRef(m2)], ) .unwrap(); @@ -175,7 +175,7 @@ pub(crate) fn compile_interval_function( float, None, glsl, - spirv::GLOp::FMax as u32, + spirv::GlslStd450Op::FMax as u32, [IdRef(max), IdRef(m3)], ) .unwrap(); @@ -198,7 +198,7 @@ pub(crate) fn compile_interval_function( float, None, glsl, - spirv::GLOp::FMin as u32, + spirv::GlslStd450Op::FMin as u32, [IdRef(m0), IdRef(m1)], ) .unwrap(); @@ -207,7 +207,7 @@ pub(crate) fn compile_interval_function( float, None, glsl, - spirv::GLOp::FMin as u32, + spirv::GlslStd450Op::FMin as u32, [IdRef(min), IdRef(m2)], ) .unwrap(); @@ -216,7 +216,7 @@ pub(crate) fn compile_interval_function( float, None, glsl, - spirv::GLOp::FMin as u32, + spirv::GlslStd450Op::FMin as u32, [IdRef(min), IdRef(m3)], ) .unwrap(); @@ -225,7 +225,7 @@ pub(crate) fn compile_interval_function( float, None, glsl, - spirv::GLOp::FMax as u32, + spirv::GlslStd450Op::FMax as u32, [IdRef(m0), IdRef(m1)], ) .unwrap(); @@ -234,7 +234,7 @@ pub(crate) fn compile_interval_function( float, None, glsl, - spirv::GLOp::FMax as u32, + spirv::GlslStd450Op::FMax as u32, [IdRef(max), IdRef(m2)], ) .unwrap(); @@ -243,7 +243,7 @@ pub(crate) fn compile_interval_function( float, None, glsl, - spirv::GLOp::FMax as u32, + spirv::GlslStd450Op::FMax as u32, [IdRef(max), IdRef(m3)], ) .unwrap(); @@ -312,17 +312,17 @@ pub(crate) fn compile_interval_function( let gt = b.f_ord_greater_than(bool, None, v.1, zero_const).unwrap(); let both = b.logical_and(bool, None, lt, gt).unwrap(); let abs_l = b - .ext_inst(float, None, glsl, spirv::GLOp::FAbs as u32, [IdRef(v.0)]) + .ext_inst(float, None, glsl, spirv::GlslStd450Op::FAbs as u32, [IdRef(v.0)]) .unwrap(); let abs_h = b - .ext_inst(float, None, glsl, spirv::GLOp::FAbs as u32, [IdRef(v.1)]) + .ext_inst(float, None, glsl, spirv::GlslStd450Op::FAbs as u32, [IdRef(v.1)]) .unwrap(); let min = b .ext_inst( float, None, glsl, - spirv::GLOp::FMin as u32, + spirv::GlslStd450Op::FMin as u32, [IdRef(abs_l), IdRef(abs_h)], ) .unwrap(); @@ -334,16 +334,16 @@ pub(crate) fn compile_interval_function( .iter() .map(|v| { let abs_l = b - .ext_inst(float, None, glsl, spirv::GLOp::FAbs as u32, [IdRef(v.0)]) + .ext_inst(float, None, glsl, spirv::GlslStd450Op::FAbs as u32, [IdRef(v.0)]) .unwrap(); let abs_h = b - .ext_inst(float, None, glsl, spirv::GLOp::FAbs as u32, [IdRef(v.1)]) + .ext_inst(float, None, glsl, spirv::GlslStd450Op::FAbs as u32, [IdRef(v.1)]) .unwrap(); b.ext_inst( float, None, glsl, - spirv::GLOp::FMax as u32, + spirv::GlslStd450Op::FMax as u32, [IdRef(abs_l), IdRef(abs_h)], ) .unwrap() @@ -361,7 +361,7 @@ pub(crate) fn compile_interval_function( .unwrap(); let xy_sum = b.f_add(float, None, x, y).unwrap(); let sqrt_low = b - .ext_inst(float, None, glsl, spirv::GLOp::Sqrt as u32, [IdRef(xy_sum)]) + .ext_inst(float, None, glsl, spirv::GlslStd450Op::Sqrt as u32, [IdRef(xy_sum)]) .unwrap(); let x = b .f_mul(float, None, val_a_uppers[0], val_a_uppers[0]) @@ -371,7 +371,7 @@ pub(crate) fn compile_interval_function( .unwrap(); let xy_sum = b.f_add(float, None, x, y).unwrap(); let sqrt_high = b - .ext_inst(float, None, glsl, spirv::GLOp::Sqrt as u32, [IdRef(xy_sum)]) + .ext_inst(float, None, glsl, spirv::GlslStd450Op::Sqrt as u32, [IdRef(xy_sum)]) .unwrap(); (sqrt_low, sqrt_high) }, @@ -392,7 +392,7 @@ pub(crate) fn compile_interval_function( float, None, glsl, - spirv::GLOp::Sqrt as u32, + spirv::GlslStd450Op::Sqrt as u32, [IdRef(xyz_sum)], ) .unwrap(); @@ -412,7 +412,7 @@ pub(crate) fn compile_interval_function( float, None, glsl, - spirv::GLOp::Sqrt as u32, + spirv::GlslStd450Op::Sqrt as u32, [IdRef(xyz_sum)], ) .unwrap(); @@ -439,7 +439,7 @@ pub(crate) fn compile_interval_function( float, None, glsl, - spirv::GLOp::Sqrt as u32, + spirv::GlslStd450Op::Sqrt as u32, [IdRef(xyzw_sum)], ) .unwrap(); @@ -463,7 +463,7 @@ pub(crate) fn compile_interval_function( float, None, glsl, - spirv::GLOp::Sqrt as u32, + spirv::GlslStd450Op::Sqrt as u32, [IdRef(xyzw_sum)], ) .unwrap(); @@ -496,7 +496,7 @@ pub(crate) fn compile_interval_function( float, None, glsl, - spirv::GLOp::FMax as u32, + spirv::GlslStd450Op::FMax as u32, [IdRef(val_a.1), IdRef(n_val_a_low)], ) .unwrap(); @@ -540,7 +540,7 @@ pub(crate) fn compile_interval_function( float, None, glsl, - spirv::GLOp::FMin as u32, + spirv::GlslStd450Op::FMin as u32, [IdRef(val_a.0), IdRef(val_b.0)], ) .unwrap(), @@ -548,7 +548,7 @@ pub(crate) fn compile_interval_function( float, None, glsl, - spirv::GLOp::FMin as u32, + spirv::GlslStd450Op::FMin as u32, [IdRef(val_a.1), IdRef(val_b.1)], ) .unwrap(), @@ -592,7 +592,7 @@ pub(crate) fn compile_interval_function( float, None, glsl, - spirv::GLOp::FMax as u32, + spirv::GlslStd450Op::FMax as u32, [IdRef(val_a.0), IdRef(val_b.0)], ) .unwrap(), @@ -600,7 +600,7 @@ pub(crate) fn compile_interval_function( float, None, glsl, - spirv::GLOp::FMax as u32, + spirv::GlslStd450Op::FMax as u32, [IdRef(val_a.1), IdRef(val_b.1)], ) .unwrap(), @@ -650,7 +650,7 @@ pub(crate) fn compile_interval_function( float, None, glsl, - spirv::GLOp::FMin as u32, + spirv::GlslStd450Op::FMin as u32, [IdRef(val_b.0), IdRef(zero_const)], ) .unwrap(); @@ -659,7 +659,7 @@ pub(crate) fn compile_interval_function( float, None, glsl, - spirv::GLOp::FMax as u32, + spirv::GlslStd450Op::FMax as u32, [IdRef(val_b.1), IdRef(zero_const)], ) .unwrap(); @@ -711,7 +711,7 @@ pub(crate) fn compile_interval_function( float, None, glsl, - spirv::GLOp::FMin as u32, + spirv::GlslStd450Op::FMin as u32, [IdRef(val_b.0), IdRef(zero_const)], ) .unwrap(); @@ -720,7 +720,7 @@ pub(crate) fn compile_interval_function( float, None, glsl, - spirv::GLOp::FMax as u32, + spirv::GlslStd450Op::FMax as u32, [IdRef(val_b.1), IdRef(zero_const)], ) .unwrap(); @@ -748,7 +748,7 @@ pub(crate) fn compile_interval_function( float, None, glsl, - spirv::GLOp::FAbs as u32, + spirv::GlslStd450Op::FAbs as u32, [IdRef(val_a.0)], ) .unwrap(); @@ -757,7 +757,7 @@ pub(crate) fn compile_interval_function( float, None, glsl, - spirv::GLOp::FAbs as u32, + spirv::GlslStd450Op::FAbs as u32, [IdRef(val_a.1)], ) .unwrap(); @@ -766,7 +766,7 @@ pub(crate) fn compile_interval_function( float, None, glsl, - spirv::GLOp::FMax as u32, + spirv::GlslStd450Op::FMax as u32, [IdRef(abs_lower), IdRef(abs_upper)], ) .unwrap(); @@ -877,7 +877,7 @@ pub(crate) fn compile_interval_function( types.float, None, types.glsl, - spirv::GLOp::Floor as u32, + spirv::GlslStd450Op::Floor as u32, [IdRef(v1)], ) .unwrap(); @@ -886,7 +886,7 @@ pub(crate) fn compile_interval_function( types.float, None, types.glsl, - spirv::GLOp::Floor as u32, + spirv::GlslStd450Op::Floor as u32, [IdRef(v2)], ) .unwrap(); @@ -913,7 +913,7 @@ pub(crate) fn compile_interval_function( types.float, None, types.glsl, - spirv::GLOp::FMax as u32, + spirv::GlslStd450Op::FMax as u32, [IdRef(val_b.1), IdRef(n_val_b_low)], ) .unwrap(); @@ -1079,7 +1079,7 @@ pub(crate) fn compile_interval_function( types.float, None, types.glsl, - spirv::GLOp::Round as u32, + spirv::GlslStd450Op::Round as u32, [IdRef(val_a.0)], ) .unwrap(), @@ -1087,7 +1087,7 @@ pub(crate) fn compile_interval_function( types.float, None, types.glsl, - spirv::GLOp::Round as u32, + spirv::GlslStd450Op::Round as u32, [IdRef(val_a.1)], ) .unwrap(), @@ -1106,7 +1106,7 @@ pub(crate) fn compile_interval_function( types.float, None, types.glsl, - spirv::GLOp::Floor as u32, + spirv::GlslStd450Op::Floor as u32, [IdRef(val_a.0)], ) .unwrap(), @@ -1114,7 +1114,7 @@ pub(crate) fn compile_interval_function( types.float, None, types.glsl, - spirv::GLOp::Floor as u32, + spirv::GlslStd450Op::Floor as u32, [IdRef(val_a.1)], ) .unwrap(), @@ -1128,7 +1128,7 @@ pub(crate) fn compile_interval_function( types.float, None, types.glsl, - spirv::GLOp::Ceil as u32, + spirv::GlslStd450Op::Ceil as u32, [IdRef(val_a.0)], ) .unwrap(), @@ -1136,7 +1136,7 @@ pub(crate) fn compile_interval_function( types.float, None, types.glsl, - spirv::GLOp::Ceil as u32, + spirv::GlslStd450Op::Ceil as u32, [IdRef(val_a.1)], ) .unwrap(), @@ -1156,7 +1156,7 @@ pub(crate) fn compile_interval_function( types.float, None, types.glsl, - spirv::GLOp::Fract as u32, + spirv::GlslStd450Op::Fract as u32, [IdRef(val_a.0)], ) .unwrap(); @@ -1165,7 +1165,7 @@ pub(crate) fn compile_interval_function( types.float, None, types.glsl, - spirv::GLOp::Fract as u32, + spirv::GlslStd450Op::Fract as u32, [IdRef(val_a.1)], ) .unwrap(); @@ -1195,7 +1195,7 @@ pub(crate) fn compile_interval_function( types.float, None, types.glsl, - spirv::GLOp::Floor as u32, + spirv::GlslStd450Op::Floor as u32, [IdRef(lower_cycle)], ) .unwrap(); @@ -1205,7 +1205,7 @@ pub(crate) fn compile_interval_function( types.float, None, types.glsl, - spirv::GLOp::Floor as u32, + spirv::GlslStd450Op::Floor as u32, [IdRef(upper_cycle)], ) .unwrap(); @@ -1224,7 +1224,7 @@ pub(crate) fn compile_interval_function( types.float, None, types.glsl, - spirv::GLOp::Cos as u32, + spirv::GlslStd450Op::Cos as u32, [IdRef(val_a.0)], ) .unwrap(); @@ -1233,7 +1233,7 @@ pub(crate) fn compile_interval_function( types.float, None, types.glsl, - spirv::GLOp::Cos as u32, + spirv::GlslStd450Op::Cos as u32, [IdRef(val_a.1)], ) .unwrap(); @@ -1256,7 +1256,7 @@ pub(crate) fn compile_interval_function( types.float, None, types.glsl, - spirv::GLOp::FMin as u32, + spirv::GlslStd450Op::FMin as u32, [IdRef(temp0), IdRef(temp1)], ) .unwrap(); @@ -1268,7 +1268,7 @@ pub(crate) fn compile_interval_function( types.float, None, types.glsl, - spirv::GLOp::FMax as u32, + spirv::GlslStd450Op::FMax as u32, [IdRef(temp0), IdRef(temp1)], ) .unwrap(); @@ -1288,7 +1288,7 @@ pub(crate) fn compile_interval_function( types.float, None, types.glsl, - spirv::GLOp::Tan as u32, + spirv::GlslStd450Op::Tan as u32, [IdRef(val_a.0)], ) .unwrap(); @@ -1297,7 +1297,7 @@ pub(crate) fn compile_interval_function( types.float, None, types.glsl, - spirv::GLOp::Tan as u32, + spirv::GlslStd450Op::Tan as u32, [IdRef(val_a.1)], ) .unwrap(); @@ -1324,7 +1324,7 @@ pub(crate) fn compile_interval_function( types.float, None, types.glsl, - spirv::GLOp::Asin as u32, + spirv::GlslStd450Op::Asin as u32, [IdRef(val_a.0)], ) .unwrap(); @@ -1333,7 +1333,7 @@ pub(crate) fn compile_interval_function( types.float, None, types.glsl, - spirv::GLOp::Asin as u32, + spirv::GlslStd450Op::Asin as u32, [IdRef(val_a.1)], ) .unwrap(); @@ -1362,7 +1362,7 @@ pub(crate) fn compile_interval_function( types.float, None, types.glsl, - spirv::GLOp::Acos as u32, + spirv::GlslStd450Op::Acos as u32, [IdRef(val_a.0)], ) .unwrap(); @@ -1371,7 +1371,7 @@ pub(crate) fn compile_interval_function( types.float, None, types.glsl, - spirv::GLOp::Acos as u32, + spirv::GlslStd450Op::Acos as u32, [IdRef(val_a.1)], ) .unwrap(); @@ -1397,7 +1397,7 @@ pub(crate) fn compile_interval_function( types.float, None, types.glsl, - spirv::GLOp::Atan as u32, + spirv::GlslStd450Op::Atan as u32, [IdRef(val_a.0)], ) .unwrap(), @@ -1405,7 +1405,7 @@ pub(crate) fn compile_interval_function( types.float, None, types.glsl, - spirv::GLOp::Atan as u32, + spirv::GlslStd450Op::Atan as u32, [IdRef(val_a.1)], ) .unwrap(), @@ -1419,7 +1419,7 @@ pub(crate) fn compile_interval_function( types.float, None, types.glsl, - spirv::GLOp::Exp as u32, + spirv::GlslStd450Op::Exp as u32, [IdRef(val_a.0)], ) .unwrap(), @@ -1427,7 +1427,7 @@ pub(crate) fn compile_interval_function( types.float, None, types.glsl, - spirv::GLOp::Exp as u32, + spirv::GlslStd450Op::Exp as u32, [IdRef(val_a.1)], ) .unwrap(), @@ -1441,7 +1441,7 @@ pub(crate) fn compile_interval_function( types.float, None, types.glsl, - spirv::GLOp::Log as u32, + spirv::GlslStd450Op::Log as u32, [IdRef(val_a.0)], ) .unwrap(), @@ -1449,7 +1449,7 @@ pub(crate) fn compile_interval_function( types.float, None, types.glsl, - spirv::GLOp::Log as u32, + spirv::GlslStd450Op::Log as u32, [IdRef(val_a.1)], ) .unwrap(), @@ -1463,7 +1463,7 @@ pub(crate) fn compile_interval_function( types.float, None, types.glsl, - spirv::GLOp::Sqrt as u32, + spirv::GlslStd450Op::Sqrt as u32, [IdRef(val_a.0)], ) .unwrap(), @@ -1471,7 +1471,7 @@ pub(crate) fn compile_interval_function( types.float, None, types.glsl, - spirv::GLOp::Sqrt as u32, + spirv::GlslStd450Op::Sqrt as u32, [IdRef(val_a.1)], ) .unwrap(), @@ -1513,7 +1513,7 @@ pub(crate) fn compile_interval_function( types.float, None, types.glsl, - spirv::GLOp::FClamp as u32, + spirv::GlslStd450Op::FClamp as u32, [IdRef(add_half.0), IdRef(zero_const), IdRef(one_const)], ) .unwrap(), @@ -1521,7 +1521,7 @@ pub(crate) fn compile_interval_function( types.float, None, types.glsl, - spirv::GLOp::FClamp as u32, + spirv::GlslStd450Op::FClamp as u32, [IdRef(add_half.1), IdRef(zero_const), IdRef(one_const)], ) .unwrap(), @@ -1553,7 +1553,7 @@ pub(crate) fn compile_interval_function( types.float, None, types.glsl, - spirv::GLOp::FClamp as u32, + spirv::GlslStd450Op::FClamp as u32, [IdRef(add_half.0), IdRef(zero_const), IdRef(one_const)], ) .unwrap(), @@ -1561,7 +1561,7 @@ pub(crate) fn compile_interval_function( types.float, None, types.glsl, - spirv::GLOp::FClamp as u32, + spirv::GlslStd450Op::FClamp as u32, [IdRef(add_half.1), IdRef(zero_const), IdRef(one_const)], ) .unwrap(), @@ -1588,7 +1588,7 @@ pub(crate) fn compile_interval_function( types.float, None, types.glsl, - spirv::GLOp::FClamp as u32, + spirv::GlslStd450Op::FClamp as u32, [IdRef(val_a.0), IdRef(val_b.0), IdRef(val_c.1)], ) .unwrap(), @@ -1596,7 +1596,7 @@ pub(crate) fn compile_interval_function( types.float, None, types.glsl, - spirv::GLOp::FClamp as u32, + spirv::GlslStd450Op::FClamp as u32, [IdRef(val_a.1), IdRef(val_b.0), IdRef(val_c.1)], ) .unwrap(), @@ -1742,7 +1742,7 @@ pub(crate) fn compile_interval_function( types.float, None, types.glsl, - spirv::GLOp::Sqrt as u32, + spirv::GlslStd450Op::Sqrt as u32, [IdRef(dot.0)], ) .unwrap(), @@ -1750,7 +1750,7 @@ pub(crate) fn compile_interval_function( types.float, None, types.glsl, - spirv::GLOp::Sqrt as u32, + spirv::GlslStd450Op::Sqrt as u32, [IdRef(dot.1)], ) .unwrap(), diff --git a/tape-load/src/spirv_compilers/point.rs b/tape-load/src/spirv_compilers/point.rs index e916a4a..81fadca 100644 --- a/tape-load/src/spirv_compilers/point.rs +++ b/tape-load/src/spirv_compilers/point.rs @@ -191,7 +191,7 @@ pub(crate) fn compile_point_function( types.float, None, types.glsl, - spirv::GLOp::Atan2 as u32, + spirv::GlslStd450Op::Atan2 as u32, [IdRef(val_a), IdRef(val_b)], ) .unwrap() @@ -209,7 +209,7 @@ pub(crate) fn compile_point_function( types.float, None, types.glsl, - spirv::GLOp::FMin as u32, + spirv::GlslStd450Op::FMin as u32, [IdRef(val_a), IdRef(val_b)], ) .unwrap() @@ -228,7 +228,7 @@ pub(crate) fn compile_point_function( types.float, None, types.glsl, - spirv::GLOp::FMax as u32, + spirv::GlslStd450Op::FMax as u32, [IdRef(val_a), IdRef(val_b)], ) .unwrap() @@ -274,7 +274,7 @@ pub(crate) fn compile_point_function( types.float, None, types.glsl, - spirv::GLOp::Length as u32, + spirv::GlslStd450Op::Length as u32, [IdRef(val_a)], ) .unwrap() @@ -303,7 +303,7 @@ pub(crate) fn compile_point_function( types.float, None, types.glsl, - spirv::GLOp::Distance as u32, + spirv::GlslStd450Op::Distance as u32, [IdRef(val_a), IdRef(val_b)], ) .unwrap() @@ -327,7 +327,7 @@ pub(crate) fn compile_point_function( types.float, None, types.glsl, - spirv::GLOp::Round as u32, + spirv::GlslStd450Op::Round as u32, [IdRef(val_a)], ) .unwrap() @@ -339,7 +339,7 @@ pub(crate) fn compile_point_function( types.float, None, types.glsl, - spirv::GLOp::FAbs as u32, + spirv::GlslStd450Op::FAbs as u32, [IdRef(val_a)], ) .unwrap() @@ -351,7 +351,7 @@ pub(crate) fn compile_point_function( types.float, None, types.glsl, - spirv::GLOp::Floor as u32, + spirv::GlslStd450Op::Floor as u32, [IdRef(val_a)], ) .unwrap() @@ -363,7 +363,7 @@ pub(crate) fn compile_point_function( types.float, None, types.glsl, - spirv::GLOp::Ceil as u32, + spirv::GlslStd450Op::Ceil as u32, [IdRef(val_a)], ) .unwrap() @@ -375,7 +375,7 @@ pub(crate) fn compile_point_function( types.float, None, types.glsl, - spirv::GLOp::Fract as u32, + spirv::GlslStd450Op::Fract as u32, [IdRef(val_a)], ) .unwrap() @@ -387,7 +387,7 @@ pub(crate) fn compile_point_function( types.float, None, types.glsl, - spirv::GLOp::Sin as u32, + spirv::GlslStd450Op::Sin as u32, [IdRef(val_a)], ) .unwrap() @@ -399,7 +399,7 @@ pub(crate) fn compile_point_function( types.float, None, types.glsl, - spirv::GLOp::Cos as u32, + spirv::GlslStd450Op::Cos as u32, [IdRef(val_a)], ) .unwrap() @@ -411,7 +411,7 @@ pub(crate) fn compile_point_function( types.float, None, types.glsl, - spirv::GLOp::Tan as u32, + spirv::GlslStd450Op::Tan as u32, [IdRef(val_a)], ) .unwrap() @@ -423,7 +423,7 @@ pub(crate) fn compile_point_function( types.float, None, types.glsl, - spirv::GLOp::Asin as u32, + spirv::GlslStd450Op::Asin as u32, [IdRef(val_a)], ) .unwrap() @@ -435,7 +435,7 @@ pub(crate) fn compile_point_function( types.float, None, types.glsl, - spirv::GLOp::Acos as u32, + spirv::GlslStd450Op::Acos as u32, [IdRef(val_a)], ) .unwrap() @@ -447,7 +447,7 @@ pub(crate) fn compile_point_function( types.float, None, types.glsl, - spirv::GLOp::Atan as u32, + spirv::GlslStd450Op::Atan as u32, [IdRef(val_a)], ) .unwrap() @@ -459,7 +459,7 @@ pub(crate) fn compile_point_function( types.float, None, types.glsl, - spirv::GLOp::Exp as u32, + spirv::GlslStd450Op::Exp as u32, [IdRef(val_a)], ) .unwrap() @@ -471,7 +471,7 @@ pub(crate) fn compile_point_function( types.float, None, types.glsl, - spirv::GLOp::Log as u32, + spirv::GlslStd450Op::Log as u32, [IdRef(val_a)], ) .unwrap() @@ -483,7 +483,7 @@ pub(crate) fn compile_point_function( types.float, None, types.glsl, - spirv::GLOp::Sqrt as u32, + spirv::GlslStd450Op::Sqrt as u32, [IdRef(val_a)], ) .unwrap() @@ -514,7 +514,7 @@ pub(crate) fn compile_point_function( types.float, None, types.glsl, - spirv::GLOp::FClamp as u32, + spirv::GlslStd450Op::FClamp as u32, [IdRef(add_half), IdRef(zero_const), IdRef(one_const)], ) .unwrap(); @@ -526,7 +526,7 @@ pub(crate) fn compile_point_function( types.float, None, types.glsl, - spirv::GLOp::FMix as u32, + spirv::GlslStd450Op::FMix as u32, [IdRef(d2), IdRef(d1), IdRef(h)], ) .unwrap(); @@ -547,7 +547,7 @@ pub(crate) fn compile_point_function( types.float, None, types.glsl, - spirv::GLOp::FClamp as u32, + spirv::GlslStd450Op::FClamp as u32, [IdRef(add_half), IdRef(zero_const), IdRef(one_const)], ) .unwrap(); @@ -560,7 +560,7 @@ pub(crate) fn compile_point_function( types.float, None, types.glsl, - spirv::GLOp::FMix as u32, + spirv::GlslStd450Op::FMix as u32, [IdRef(d2), IdRef(negate), IdRef(h)], ) .unwrap(); @@ -580,7 +580,7 @@ pub(crate) fn compile_point_function( types.float, None, types.glsl, - spirv::GLOp::FClamp as u32, + spirv::GlslStd450Op::FClamp as u32, [IdRef(val_a), IdRef(val_b), IdRef(val_c)], ) .unwrap() @@ -598,7 +598,7 @@ pub(crate) fn compile_point_function( types.float, None, types.glsl, - spirv::GLOp::FMix as u32, + spirv::GlslStd450Op::FMix as u32, [IdRef(val_a), IdRef(val_b), IdRef(val_c)], ) .unwrap() @@ -616,7 +616,7 @@ pub(crate) fn compile_point_function( types.float, None, types.glsl, - spirv::GLOp::Fma as u32, + spirv::GlslStd450Op::Fma as u32, [IdRef(val_a), IdRef(val_b), IdRef(val_c)], ) .unwrap() @@ -638,7 +638,7 @@ pub(crate) fn compile_point_function( types.float, None, types.glsl, - spirv::GLOp::Length as u32, + spirv::GlslStd450Op::Length as u32, [IdRef(pos)], ) .unwrap(); @@ -668,7 +668,7 @@ pub(crate) fn compile_point_function( types.vec3, None, types.glsl, - spirv::GLOp::FAbs as u32, + spirv::GlslStd450Op::FAbs as u32, [IdRef(pos)], ) .unwrap(); @@ -684,7 +684,7 @@ pub(crate) fn compile_point_function( types.vec3, None, types.glsl, - spirv::GLOp::FMax as u32, + spirv::GlslStd450Op::FMax as u32, [IdRef(q), IdRef(zero_vec3)], ) .unwrap(); @@ -694,7 +694,7 @@ pub(crate) fn compile_point_function( types.float, None, types.glsl, - spirv::GLOp::Length as u32, + spirv::GlslStd450Op::Length as u32, [IdRef(q_limit)], ) .unwrap(); @@ -707,7 +707,7 @@ pub(crate) fn compile_point_function( types.float, None, types.glsl, - spirv::GLOp::FMax as u32, + spirv::GlslStd450Op::FMax as u32, [IdRef(q_x), IdRef(q_y)], ) .unwrap(); @@ -716,7 +716,7 @@ pub(crate) fn compile_point_function( types.float, None, types.glsl, - spirv::GLOp::FMax as u32, + spirv::GlslStd450Op::FMax as u32, [IdRef(max1), IdRef(q_z)], ) .unwrap(); @@ -725,7 +725,7 @@ pub(crate) fn compile_point_function( types.float, None, types.glsl, - spirv::GLOp::FMax as u32, + spirv::GlslStd450Op::FMax as u32, [IdRef(max2), IdRef(zero)], ) .unwrap(); @@ -755,7 +755,7 @@ pub(crate) fn compile_point_function( types.float, None, types.glsl, - spirv::GLOp::Sqrt as u32, + spirv::GlslStd450Op::Sqrt as u32, [IdRef(dot)], ) .unwrap(); @@ -770,7 +770,7 @@ pub(crate) fn compile_point_function( types.float, None, types.glsl, - spirv::GLOp::Length as u32, + spirv::GlslStd450Op::Length as u32, [IdRef(q)], ) .unwrap(); diff --git a/tape-load/src/ssa.rs b/tape-load/src/ssa.rs index 6aeda06..dc4e454 100644 --- a/tape-load/src/ssa.rs +++ b/tape-load/src/ssa.rs @@ -1,10 +1,18 @@ use core::f32; +use std::{ + hash::{Hash, Hasher}, + simd::StdFloat as _, +}; +#[cfg(feature = "bevy")] +use bevy_reflect::prelude::*; +use glam::Vec3; use rspirv::{binary::Disassemble, dr::Module, spirv}; use crate::{ DUMP_SPV_DIS_TO_FILE, instruction_set::InstructionSet, + interpreters::{self, point::PointInterpreter}, spirv_compilers::{ SpirVTypes, gradient::compile_gradient_function, interval::compile_interval_function, point::compile_point_function, @@ -13,7 +21,9 @@ use crate::{ const JIT_VERSION: u32 = 1; -#[derive(Debug, Default, PartialEq, Eq, Clone, Copy)] +#[derive(Debug, Default, PartialEq, Eq, Clone, Copy, Hash)] +#[cfg_attr(feature = "bevy", derive(Reflect))] +#[cfg_attr(feature = "bevy", reflect(Clone))] pub enum SSAOpcode { SSAAdd, SSASub, @@ -70,19 +80,35 @@ pub enum SSAOpcode { SSASDFTorus, } -#[derive(Debug, Default, PartialEq, Eq, Clone, Copy)] +#[derive(Debug, Default, PartialEq, Eq, Clone, Copy, Hash)] +#[cfg_attr(feature = "bevy", derive(Reflect))] +#[cfg_attr(feature = "bevy", reflect(Clone))] pub struct SSAOpcodeSized { pub opcode: SSAOpcode, pub size: u8, } #[derive(Debug, PartialEq, Clone, Copy)] +#[cfg_attr(feature = "bevy", derive(Reflect))] +#[cfg_attr(feature = "bevy", reflect(Clone))] pub enum SSAInput { Register(u32), Constant(f32), } -#[derive(Debug, Default, PartialEq, Clone)] +impl Hash for SSAInput { + fn hash(&self, state: &mut H) { + std::mem::discriminant(self).hash(state); + match self { + SSAInput::Register(e) => e.hash(state), + SSAInput::Constant(e) => e.to_bits().hash(state), + } + } +} + +#[derive(Debug, Default, PartialEq, Clone, Hash)] +#[cfg_attr(feature = "bevy", derive(Reflect))] +#[cfg_attr(feature = "bevy", reflect(Clone))] pub struct SSAInstruction { pub opcode: SSAOpcodeSized, pub inputs: Vec, @@ -90,21 +116,50 @@ pub struct SSAInstruction { } #[derive(Debug, Default, PartialEq, Clone)] +#[cfg_attr(feature = "bevy", derive(Reflect))] +#[cfg_attr(feature = "bevy", reflect(Clone))] pub struct SSATape { pub last_output: u32, pub tape: Vec, constants: Vec, } -#[derive(Debug, Default, PartialEq, Eq, Clone, Copy)] +impl Hash for SSATape { + fn hash(&self, state: &mut H) { + self.last_output.hash(state); + self.tape.hash(state); + self.constants.len().hash(state); + for constant in &self.constants { + constant.to_bits().hash(state); + } + } +} + +#[derive(Debug, Default, PartialEq, Eq, Clone, Copy, Hash)] +#[cfg_attr(feature = "bevy", derive(Reflect))] +#[cfg_attr(feature = "bevy", reflect(Clone))] struct GPUOpcode(u8); +#[derive(Debug, Default, PartialEq, Clone)] +#[cfg_attr(feature = "bevy", derive(Reflect))] +#[cfg_attr(feature = "bevy", reflect(Clone))] pub struct GPUTape { pub instructions: Vec, pub io: Vec, pub constants: Vec, } +impl Hash for GPUTape { + fn hash(&self, state: &mut H) { + self.instructions.hash(state); + self.io.hash(state); + self.constants.len().hash(state); + for constant in &self.constants { + constant.to_bits().hash(state); + } + } +} + impl SSAOpcodeSized { const fn output(&self) -> u8 { use SSAOpcode::*; @@ -262,6 +317,44 @@ impl SSATape { outputs_register } + /** + * Returns the AABB of the tape as a tuple of lowest corner, highest + * corner. + */ + pub fn get_aabb(&self, time: f32) -> (Vec3, Vec3) { + const INTERPRET_INPUT_X: interpreters::Value = + interpreters::Value::from_array([10000.0, 0.0, 0.0, -10000.0, 0.0, 0.0, 0.0, 0.0]); + const INTERPRET_INPUT_Y: interpreters::Value = + interpreters::Value::from_array([0.0, 10000.0, 0.0, 0.0, -10000.0, 0.0, 0.0, 0.0]); + const INTERPRET_INPUT_Z: interpreters::Value = + interpreters::Value::from_array([0.0, 0.0, 10000.0, 0.0, 0.0, -10000.0, 0.0, 0.0]); + const INTERPRET_MUL: interpreters::Value = + interpreters::Value::from_array([-1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 0.0, 0.0]); + const INTERPRET_ADD: interpreters::Value = interpreters::Value::from_array([ + 10000.0, 10000.0, 10000.0, -10000.0, -10000.0, -10000.0, 0.0, 0.0, + ]); + + let mut interpreter = PointInterpreter::new(self); + let interpreter_out = interpreter + .scene( + INTERPRET_INPUT_X, + INTERPRET_INPUT_Y, + INTERPRET_INPUT_Z, + interpreters::Value::splat(time), + ) + .mul_add(INTERPRET_MUL, INTERPRET_ADD) + .to_array(); + + const EPSILON: f32 = 0.1; + + let highest_corner = + Vec3::new(interpreter_out[0], interpreter_out[1], interpreter_out[2]) + EPSILON; + let lowest_corner = + Vec3::new(interpreter_out[3], interpreter_out[4], interpreter_out[5]) - EPSILON; + + (lowest_corner, highest_corner) + } + pub fn compile_to_gpu(&self) -> GPUTape { let mut lifetimes = Vec::<(u32, u32)>::with_capacity(self.last_output as usize); @@ -473,7 +566,7 @@ impl SSATape { }; let void = b.type_void(); - let float = b.type_float(32); + let float = b.type_float(32, None); let bool = b.type_bool(); let choice = b.type_int(32, 0); let vec2 = b.type_vector(float, 2);