Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
c0adfd0598
|
|||
|
c0982d80b7
|
Generated
+139
-103
@@ -188,7 +188,7 @@ dependencies = [
|
|||||||
"num-traits",
|
"num-traits",
|
||||||
"pastey",
|
"pastey",
|
||||||
"rayon",
|
"rayon",
|
||||||
"thiserror 2.0.17",
|
"thiserror 2.0.18",
|
||||||
"v_frame",
|
"v_frame",
|
||||||
"y4m",
|
"y4m",
|
||||||
]
|
]
|
||||||
@@ -349,9 +349,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "cc"
|
name = "cc"
|
||||||
version = "1.2.50"
|
version = "1.2.55"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "9f50d563227a1c37cc0a263f64eca3334388c01c5e4c4861a9def205c614383c"
|
checksum = "47b26a0954ae34af09b50f0de26458fa95369a0d478d8236d3f93082b219bd29"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"find-msvc-tools",
|
"find-msvc-tools",
|
||||||
"jobserver",
|
"jobserver",
|
||||||
@@ -788,15 +788,15 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "find-msvc-tools"
|
name = "find-msvc-tools"
|
||||||
version = "0.1.5"
|
version = "0.1.9"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "3a3076410a55c90011c298b04d0cfa770b00fa04e1e3c97d3f6c9de105a03844"
|
checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "flate2"
|
name = "flate2"
|
||||||
version = "1.1.5"
|
version = "1.1.8"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "bfe33edd8e85a12a67454e37f8c75e730830d83e313556ab9ebf9ee7fbeb3bfb"
|
checksum = "b375d6465b98090a5f25b1c7703f3859783755aa9a80433b36e0379a3ec2f369"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"crc32fast",
|
"crc32fast",
|
||||||
"miniz_oxide",
|
"miniz_oxide",
|
||||||
@@ -853,6 +853,31 @@ dependencies = [
|
|||||||
"libc",
|
"libc",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "futures-core"
|
||||||
|
version = "0.3.31"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "futures-task"
|
||||||
|
version = "0.3.31"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "futures-util"
|
||||||
|
version = "0.3.31"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81"
|
||||||
|
dependencies = [
|
||||||
|
"futures-core",
|
||||||
|
"futures-task",
|
||||||
|
"pin-project-lite",
|
||||||
|
"pin-utils",
|
||||||
|
"slab",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "gethostname"
|
name = "gethostname"
|
||||||
version = "1.1.0"
|
version = "1.1.0"
|
||||||
@@ -887,9 +912,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "glam"
|
name = "glam"
|
||||||
version = "0.30.9"
|
version = "0.30.10"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "bd47b05dddf0005d850e5644cae7f2b14ac3df487979dbfff3b56f20b1a6ae46"
|
checksum = "19fc433e8437a212d1b6f1e68c7824af3aed907da60afa994e7f542d18d12aa9"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "half"
|
name = "half"
|
||||||
@@ -1049,8 +1074,8 @@ dependencies = [
|
|||||||
"rayon",
|
"rayon",
|
||||||
"rgb",
|
"rgb",
|
||||||
"tiff",
|
"tiff",
|
||||||
"zune-core 0.5.0",
|
"zune-core 0.5.1",
|
||||||
"zune-jpeg 0.5.8",
|
"zune-jpeg 0.5.12",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -1071,9 +1096,9 @@ checksum = "e7c5cedc30da3a610cac6b4ba17597bdf7152cf974e8aab3afb3d54455e371c8"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "indexmap"
|
name = "indexmap"
|
||||||
version = "2.12.1"
|
version = "2.13.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "0ad4bb2b565bca0645f4d68c5c9af97fba094e9791da685bf83cb5f3ce74acf2"
|
checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"equivalent",
|
"equivalent",
|
||||||
"hashbrown",
|
"hashbrown",
|
||||||
@@ -1121,9 +1146,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "itoa"
|
name = "itoa"
|
||||||
version = "1.0.16"
|
version = "1.0.17"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "7ee5b5339afb4c41626dde77b7a611bd4f2c202b897852b4bcf5d03eddc61010"
|
checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "jni"
|
name = "jni"
|
||||||
@@ -1159,9 +1184,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "js-sys"
|
name = "js-sys"
|
||||||
version = "0.3.83"
|
version = "0.3.85"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "464a3709c7f55f1f721e5389aa6ea4e3bc6aba669353300af094b29ffbdde1d8"
|
checksum = "8c942ebf8e95485ca0d52d97da7c5a2c387d0e7f0ba4c35e93bfcaee045955b3"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"once_cell",
|
"once_cell",
|
||||||
"wasm-bindgen",
|
"wasm-bindgen",
|
||||||
@@ -1195,9 +1220,9 @@ checksum = "7a79a3332a6609480d7d0c9eab957bca6b455b91bb84e66d19f5ff66294b85b8"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "libc"
|
name = "libc"
|
||||||
version = "0.2.178"
|
version = "0.2.180"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "37c93d8daa9d8a012fd8ab92f088405fb202ea0b6ab73ee2482ae66af4f42091"
|
checksum = "bcc35a38544a891a5f7c865aca548a982ccb3b8650a5b06d0fd33a10283c56fc"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "libfuzzer-sys"
|
name = "libfuzzer-sys"
|
||||||
@@ -1221,13 +1246,13 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "libredox"
|
name = "libredox"
|
||||||
version = "0.1.11"
|
version = "0.1.12"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "df15f6eac291ed1cf25865b1ee60399f57e7c227e7f51bdbd4c5270396a9ed50"
|
checksum = "3d0b95e02c851351f877147b7deea7b1afb1df71b63aa5f8270716e0c5720616"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bitflags 2.10.0",
|
"bitflags 2.10.0",
|
||||||
"libc",
|
"libc",
|
||||||
"redox_syscall 0.6.0",
|
"redox_syscall 0.7.0",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -1422,9 +1447,12 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "notify-types"
|
name = "notify-types"
|
||||||
version = "2.0.0"
|
version = "2.1.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "5e0826a989adedc2a244799e823aece04662b66609d96af8dff7ac6df9a8925d"
|
checksum = "42b8cfee0e339a0337359f3c88165702ac6e600dc01c0cc9579a92d62b08477a"
|
||||||
|
dependencies = [
|
||||||
|
"bitflags 2.10.0",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "num-bigint"
|
name = "num-bigint"
|
||||||
@@ -1438,9 +1466,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "num-conv"
|
name = "num-conv"
|
||||||
version = "0.1.0"
|
version = "0.2.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
|
checksum = "cf97ec579c3c42f953ef76dbf8d55ac91fb219dde70e49aa4a6b7d74e9919050"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "num-derive"
|
name = "num-derive"
|
||||||
@@ -1831,10 +1859,11 @@ checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "orbclient"
|
name = "orbclient"
|
||||||
version = "0.3.49"
|
version = "0.3.50"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "247ad146e19b9437f8604c21f8652423595cf710ad108af40e77d3ae6e96b827"
|
checksum = "52ad2c6bae700b7aa5d1cc30c59bdd3a1c180b09dbaea51e2ae2b8e1cf211fdd"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
|
"libc",
|
||||||
"libredox",
|
"libredox",
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -1914,6 +1943,12 @@ version = "0.2.16"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b"
|
checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "pin-utils"
|
||||||
|
version = "0.1.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pkg-config"
|
name = "pkg-config"
|
||||||
version = "0.3.32"
|
version = "0.3.32"
|
||||||
@@ -1982,9 +2017,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "proc-macro2"
|
name = "proc-macro2"
|
||||||
version = "1.0.103"
|
version = "1.0.106"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8"
|
checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"unicode-ident",
|
"unicode-ident",
|
||||||
]
|
]
|
||||||
@@ -2034,18 +2069,18 @@ checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "quick-xml"
|
name = "quick-xml"
|
||||||
version = "0.37.5"
|
version = "0.38.4"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "331e97a1af0bf59823e6eadffe373d7b27f485be8748f71471c662c1f269b7fb"
|
checksum = "b66c2058c55a409d601666cffe35f04333cf1013010882cec174a7467cd4e21c"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"memchr",
|
"memchr",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "quote"
|
name = "quote"
|
||||||
version = "1.0.42"
|
version = "1.0.44"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "a338cc41d27e6cc6dce6cefc13a0729dfbb81c262b1f519331575dd80ef3067f"
|
checksum = "21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
]
|
]
|
||||||
@@ -2078,9 +2113,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rand_core"
|
name = "rand_core"
|
||||||
version = "0.9.3"
|
version = "0.9.5"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38"
|
checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"getrandom",
|
"getrandom",
|
||||||
]
|
]
|
||||||
@@ -2115,7 +2150,7 @@ dependencies = [
|
|||||||
"rand",
|
"rand",
|
||||||
"rand_chacha",
|
"rand_chacha",
|
||||||
"simd_helpers",
|
"simd_helpers",
|
||||||
"thiserror 2.0.17",
|
"thiserror 2.0.18",
|
||||||
"v_frame",
|
"v_frame",
|
||||||
"wasm-bindgen",
|
"wasm-bindgen",
|
||||||
]
|
]
|
||||||
@@ -2193,9 +2228,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "redox_syscall"
|
name = "redox_syscall"
|
||||||
version = "0.6.0"
|
version = "0.7.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "ec96166dafa0886eb81fe1c0a388bece180fbef2135f97c1e2cf8302e74b43b5"
|
checksum = "49f3fe0889e69e2ae9e41f4d6c4c0181701d00e4697b356fb1f74173a5e0ee27"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bitflags 2.10.0",
|
"bitflags 2.10.0",
|
||||||
]
|
]
|
||||||
@@ -2329,9 +2364,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "serde_json"
|
name = "serde_json"
|
||||||
version = "1.0.147"
|
version = "1.0.149"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "6af14725505314343e673e9ecb7cd7e8a36aa9791eb936235a3567cc31447ae4"
|
checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"itoa",
|
"itoa",
|
||||||
"memchr",
|
"memchr",
|
||||||
@@ -2450,7 +2485,7 @@ dependencies = [
|
|||||||
"log",
|
"log",
|
||||||
"memmap2",
|
"memmap2",
|
||||||
"rustix 1.1.3",
|
"rustix 1.1.3",
|
||||||
"thiserror 2.0.17",
|
"thiserror 2.0.18",
|
||||||
"wayland-backend",
|
"wayland-backend",
|
||||||
"wayland-client",
|
"wayland-client",
|
||||||
"wayland-csd-frame",
|
"wayland-csd-frame",
|
||||||
@@ -2506,9 +2541,9 @@ checksum = "6637bab7722d379c8b41ba849228d680cc12d0a45ba1fa2b48f2a30577a06731"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "syn"
|
name = "syn"
|
||||||
version = "2.0.111"
|
version = "2.0.114"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "390cc9a294ab71bdb1aa2e99d13be9c753cd2d7bd6560c77118597410c4d2e87"
|
checksum = "d4d107df263a3013ef9b1879b0df87d706ff80f65a86ea879bd9c31f9b307c2a"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
@@ -2581,11 +2616,11 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "thiserror"
|
name = "thiserror"
|
||||||
version = "2.0.17"
|
version = "2.0.18"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8"
|
checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"thiserror-impl 2.0.17",
|
"thiserror-impl 2.0.18",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -2601,9 +2636,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "thiserror-impl"
|
name = "thiserror-impl"
|
||||||
version = "2.0.17"
|
version = "2.0.18"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913"
|
checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
@@ -2635,9 +2670,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "time"
|
name = "time"
|
||||||
version = "0.3.44"
|
version = "0.3.46"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "91e7d9e3bb61134e77bde20dd4825b97c010155709965fedf0f49bb138e52a9d"
|
checksum = "9da98b7d9b7dad93488a84b8248efc35352b0b2657397d4167e7ad67e5d535e5"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"deranged",
|
"deranged",
|
||||||
"itoa",
|
"itoa",
|
||||||
@@ -2645,22 +2680,22 @@ dependencies = [
|
|||||||
"num-conv",
|
"num-conv",
|
||||||
"num_threads",
|
"num_threads",
|
||||||
"powerfmt",
|
"powerfmt",
|
||||||
"serde",
|
"serde_core",
|
||||||
"time-core",
|
"time-core",
|
||||||
"time-macros",
|
"time-macros",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "time-core"
|
name = "time-core"
|
||||||
version = "0.1.6"
|
version = "0.1.8"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b"
|
checksum = "7694e1cfe791f8d31026952abf09c69ca6f6fa4e1a1229e18988f06a04a12dca"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "time-macros"
|
name = "time-macros"
|
||||||
version = "0.2.24"
|
version = "0.2.26"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3"
|
checksum = "78cc610bac2dcee56805c99642447d4c5dbde4d01f752ffea0199aee1f601dc4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"num-conv",
|
"num-conv",
|
||||||
"time-core",
|
"time-core",
|
||||||
@@ -2768,9 +2803,9 @@ checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "url"
|
name = "url"
|
||||||
version = "2.5.7"
|
version = "2.5.8"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b"
|
checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"form_urlencoded",
|
"form_urlencoded",
|
||||||
"idna",
|
"idna",
|
||||||
@@ -2904,18 +2939,18 @@ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wasip2"
|
name = "wasip2"
|
||||||
version = "1.0.1+wasi-0.2.4"
|
version = "1.0.2+wasi-0.2.9"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7"
|
checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"wit-bindgen",
|
"wit-bindgen",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wasm-bindgen"
|
name = "wasm-bindgen"
|
||||||
version = "0.2.106"
|
version = "0.2.108"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "0d759f433fa64a2d763d1340820e46e111a7a5ab75f993d1852d70b03dbb80fd"
|
checksum = "64024a30ec1e37399cf85a7ffefebdb72205ca1c972291c51512360d90bd8566"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cfg-if",
|
"cfg-if",
|
||||||
"once_cell",
|
"once_cell",
|
||||||
@@ -2926,11 +2961,12 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wasm-bindgen-futures"
|
name = "wasm-bindgen-futures"
|
||||||
version = "0.4.56"
|
version = "0.4.58"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "836d9622d604feee9e5de25ac10e3ea5f2d65b41eac0d9ce72eb5deae707ce7c"
|
checksum = "70a6e77fd0ae8029c9ea0063f87c46fde723e7d887703d74ad2616d792e51e6f"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cfg-if",
|
"cfg-if",
|
||||||
|
"futures-util",
|
||||||
"js-sys",
|
"js-sys",
|
||||||
"once_cell",
|
"once_cell",
|
||||||
"wasm-bindgen",
|
"wasm-bindgen",
|
||||||
@@ -2939,9 +2975,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wasm-bindgen-macro"
|
name = "wasm-bindgen-macro"
|
||||||
version = "0.2.106"
|
version = "0.2.108"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "48cb0d2638f8baedbc542ed444afc0644a29166f1595371af4fecf8ce1e7eeb3"
|
checksum = "008b239d9c740232e71bd39e8ef6429d27097518b6b30bdf9086833bd5b6d608"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"quote",
|
"quote",
|
||||||
"wasm-bindgen-macro-support",
|
"wasm-bindgen-macro-support",
|
||||||
@@ -2949,9 +2985,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wasm-bindgen-macro-support"
|
name = "wasm-bindgen-macro-support"
|
||||||
version = "0.2.106"
|
version = "0.2.108"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "cefb59d5cd5f92d9dcf80e4683949f15ca4b511f4ac0a6e14d4e1ac60c6ecd40"
|
checksum = "5256bae2d58f54820e6490f9839c49780dff84c65aeab9e772f15d5f0e913a55"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bumpalo",
|
"bumpalo",
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
@@ -2962,18 +2998,18 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wasm-bindgen-shared"
|
name = "wasm-bindgen-shared"
|
||||||
version = "0.2.106"
|
version = "0.2.108"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "cbc538057e648b67f72a982e708d485b2efa771e1ac05fec311f9f63e5800db4"
|
checksum = "1f01b580c9ac74c8d8f0c0e4afb04eeef2acf145458e52c03845ee9cd23e3d12"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"unicode-ident",
|
"unicode-ident",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wayland-backend"
|
name = "wayland-backend"
|
||||||
version = "0.3.11"
|
version = "0.3.12"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "673a33c33048a5ade91a6b139580fa174e19fb0d23f396dca9fa15f2e1e49b35"
|
checksum = "fee64194ccd96bf648f42a65a7e589547096dfa702f7cadef84347b66ad164f9"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cc",
|
"cc",
|
||||||
"downcast-rs",
|
"downcast-rs",
|
||||||
@@ -2985,9 +3021,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wayland-client"
|
name = "wayland-client"
|
||||||
version = "0.31.11"
|
version = "0.31.12"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "c66a47e840dc20793f2264eb4b3e4ecb4b75d91c0dd4af04b456128e0bdd449d"
|
checksum = "b8e6faa537fbb6c186cb9f1d41f2f811a4120d1b57ec61f50da451a0c5122bec"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bitflags 2.10.0",
|
"bitflags 2.10.0",
|
||||||
"rustix 1.1.3",
|
"rustix 1.1.3",
|
||||||
@@ -3008,9 +3044,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wayland-cursor"
|
name = "wayland-cursor"
|
||||||
version = "0.31.11"
|
version = "0.31.12"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "447ccc440a881271b19e9989f75726d60faa09b95b0200a9b7eb5cc47c3eeb29"
|
checksum = "5864c4b5b6064b06b1e8b74ead4a98a6c45a285fe7a0e784d24735f011fdb078"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"rustix 1.1.3",
|
"rustix 1.1.3",
|
||||||
"wayland-client",
|
"wayland-client",
|
||||||
@@ -3019,9 +3055,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wayland-protocols"
|
name = "wayland-protocols"
|
||||||
version = "0.32.9"
|
version = "0.32.10"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "efa790ed75fbfd71283bd2521a1cfdc022aabcc28bdcff00851f9e4ae88d9901"
|
checksum = "baeda9ffbcfc8cd6ddaade385eaf2393bd2115a69523c735f12242353c3df4f3"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bitflags 2.10.0",
|
"bitflags 2.10.0",
|
||||||
"wayland-backend",
|
"wayland-backend",
|
||||||
@@ -3044,9 +3080,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wayland-protocols-misc"
|
name = "wayland-protocols-misc"
|
||||||
version = "0.3.9"
|
version = "0.3.10"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "2dfe33d551eb8bffd03ff067a8b44bb963919157841a99957151299a6307d19c"
|
checksum = "791c58fdeec5406aa37169dd815327d1e47f334219b523444bc26d70ceb4c34e"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bitflags 2.10.0",
|
"bitflags 2.10.0",
|
||||||
"wayland-backend",
|
"wayland-backend",
|
||||||
@@ -3057,9 +3093,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wayland-protocols-plasma"
|
name = "wayland-protocols-plasma"
|
||||||
version = "0.3.9"
|
version = "0.3.10"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "a07a14257c077ab3279987c4f8bb987851bf57081b93710381daea94f2c2c032"
|
checksum = "aa98634619300a535a9a97f338aed9a5ff1e01a461943e8346ff4ae26007306b"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bitflags 2.10.0",
|
"bitflags 2.10.0",
|
||||||
"wayland-backend",
|
"wayland-backend",
|
||||||
@@ -3070,9 +3106,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wayland-protocols-wlr"
|
name = "wayland-protocols-wlr"
|
||||||
version = "0.3.9"
|
version = "0.3.10"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "efd94963ed43cf9938a090ca4f7da58eb55325ec8200c3848963e98dc25b78ec"
|
checksum = "e9597cdf02cf0c34cd5823786dce6b5ae8598f05c2daf5621b6e178d4f7345f3"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bitflags 2.10.0",
|
"bitflags 2.10.0",
|
||||||
"wayland-backend",
|
"wayland-backend",
|
||||||
@@ -3083,9 +3119,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wayland-scanner"
|
name = "wayland-scanner"
|
||||||
version = "0.31.7"
|
version = "0.31.8"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "54cb1e9dc49da91950bdfd8b848c49330536d9d1fb03d4bfec8cae50caa50ae3"
|
checksum = "5423e94b6a63e68e439803a3e153a9252d5ead12fd853334e2ad33997e3889e3"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quick-xml",
|
"quick-xml",
|
||||||
@@ -3094,9 +3130,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wayland-sys"
|
name = "wayland-sys"
|
||||||
version = "0.31.7"
|
version = "0.31.8"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "34949b42822155826b41db8e5d0c1be3a2bd296c747577a43a3e6daefc296142"
|
checksum = "1e6dbfc3ac5ef974c92a2235805cc0114033018ae1290a72e474aa8b28cbbdfd"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"dlib",
|
"dlib",
|
||||||
"log",
|
"log",
|
||||||
@@ -3106,9 +3142,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "web-sys"
|
name = "web-sys"
|
||||||
version = "0.3.83"
|
version = "0.3.85"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "9b32828d774c412041098d182a8b38b16ea816958e07cf40eec2bc080ae137ac"
|
checksum = "312e32e551d92129218ea9a2452120f4aabc03529ef03e4d0d82fb2780608598"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"js-sys",
|
"js-sys",
|
||||||
"wasm-bindgen",
|
"wasm-bindgen",
|
||||||
@@ -3455,9 +3491,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wit-bindgen"
|
name = "wit-bindgen"
|
||||||
version = "0.46.0"
|
version = "0.51.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59"
|
checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "writeable"
|
name = "writeable"
|
||||||
@@ -3565,18 +3601,18 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "zerocopy"
|
name = "zerocopy"
|
||||||
version = "0.8.31"
|
version = "0.8.36"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "fd74ec98b9250adb3ca554bdde269adf631549f51d8a8f8f0a10b50f1cb298c3"
|
checksum = "dafd85c832c1b68bbb4ec0c72c7f6f4fc5179627d2bc7c26b30e4c0cc11e76cc"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"zerocopy-derive",
|
"zerocopy-derive",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "zerocopy-derive"
|
name = "zerocopy-derive"
|
||||||
version = "0.8.31"
|
version = "0.8.36"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "d8a8d209fdf45cf5138cbb5a506f6b52522a25afccc534d1475dad8e31105c6a"
|
checksum = "7cb7e4e8436d9db52fbd6625dbf2f45243ab84994a72882ec8227b99e72b439a"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
@@ -3639,9 +3675,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "zmij"
|
name = "zmij"
|
||||||
version = "0.1.9"
|
version = "1.0.17"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "d0095ecd462946aa3927d9297b63ef82fb9a5316d7a37d134eeb36e58228615a"
|
checksum = "02aae0f83f69aafc94776e879363e9771d7ecbffe2c7fbb6c14c5e00dfe88439"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "zune-core"
|
name = "zune-core"
|
||||||
@@ -3651,9 +3687,9 @@ checksum = "3f423a2c17029964870cfaabb1f13dfab7d092a62a29a89264f4d36990ca414a"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "zune-core"
|
name = "zune-core"
|
||||||
version = "0.5.0"
|
version = "0.5.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "111f7d9820f05fd715df3144e254d6fc02ee4088b0644c0ffd0efc9e6d9d2773"
|
checksum = "cb8a0807f7c01457d0379ba880ba6322660448ddebc890ce29bb64da71fb40f9"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "zune-inflate"
|
name = "zune-inflate"
|
||||||
@@ -3675,9 +3711,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "zune-jpeg"
|
name = "zune-jpeg"
|
||||||
version = "0.5.8"
|
version = "0.5.12"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "e35aee689668bf9bd6f6f3a6c60bb29ba1244b3b43adfd50edd554a371da37d5"
|
checksum = "410e9ecef634c709e3831c2cfdb8d9c32164fae1c67496d5b68fff728eec37fe"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"zune-core 0.5.0",
|
"zune-core 0.5.1",
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -0,0 +1,100 @@
|
|||||||
|
use std::{sync::Arc, thread};
|
||||||
|
|
||||||
|
use vulkano::{
|
||||||
|
buffer::{BufferContents, BufferWriteGuard, Subbuffer},
|
||||||
|
command_buffer::{
|
||||||
|
AutoCommandBufferBuilder, CommandBufferUsage, CopyBufferInfo, PrimaryCommandBufferAbstract,
|
||||||
|
allocator::CommandBufferAllocator,
|
||||||
|
},
|
||||||
|
device::Queue,
|
||||||
|
sync::{AccessConflict, GpuFuture, HostAccessError},
|
||||||
|
};
|
||||||
|
|
||||||
|
fn get_host_buffer_writer<'a, T>(host_visible: &'a Subbuffer<T>) -> BufferWriteGuard<'a, T>
|
||||||
|
where
|
||||||
|
T: BufferContents + ?Sized,
|
||||||
|
{
|
||||||
|
let mut writer = host_visible.write();
|
||||||
|
'writerloop: loop {
|
||||||
|
match writer {
|
||||||
|
Err(HostAccessError::AccessConflict(AccessConflict::DeviceRead))
|
||||||
|
| Err(HostAccessError::AccessConflict(AccessConflict::DeviceWrite)) => {
|
||||||
|
//warn!("WAITING FOR HOST BUFFER FREE");
|
||||||
|
thread::yield_now();
|
||||||
|
writer = host_visible.write();
|
||||||
|
},
|
||||||
|
_ => break 'writerloop,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
writer.unwrap()
|
||||||
|
}
|
||||||
|
|
||||||
|
pub(crate) fn gpu_upload<T>(
|
||||||
|
input: T,
|
||||||
|
device_local: Subbuffer<T>,
|
||||||
|
host_visible: Subbuffer<T>,
|
||||||
|
command_allocator: Arc<dyn CommandBufferAllocator>,
|
||||||
|
transfer_queue: Arc<Queue>,
|
||||||
|
) -> Box<dyn GpuFuture + Send + Sync>
|
||||||
|
where
|
||||||
|
T: BufferContents,
|
||||||
|
{
|
||||||
|
{
|
||||||
|
let mut writer = get_host_buffer_writer(&host_visible);
|
||||||
|
*writer = input;
|
||||||
|
}
|
||||||
|
|
||||||
|
gpu_upload_command_buffer(
|
||||||
|
device_local,
|
||||||
|
host_visible,
|
||||||
|
command_allocator,
|
||||||
|
transfer_queue,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
pub(crate) fn gpu_upload_slice<T>(
|
||||||
|
input: &[T],
|
||||||
|
device_local: Subbuffer<[T]>,
|
||||||
|
host_visible: Subbuffer<[T]>,
|
||||||
|
command_allocator: Arc<dyn CommandBufferAllocator>,
|
||||||
|
transfer_queue: Arc<Queue>,
|
||||||
|
) -> Box<dyn GpuFuture + Send + Sync>
|
||||||
|
where
|
||||||
|
T: BufferContents + Copy,
|
||||||
|
{
|
||||||
|
{
|
||||||
|
let mut writer = get_host_buffer_writer(&host_visible);
|
||||||
|
writer.copy_from_slice(input);
|
||||||
|
}
|
||||||
|
|
||||||
|
gpu_upload_command_buffer(
|
||||||
|
device_local,
|
||||||
|
host_visible,
|
||||||
|
command_allocator,
|
||||||
|
transfer_queue,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
fn gpu_upload_command_buffer<T>(
|
||||||
|
device_local: Subbuffer<T>,
|
||||||
|
host_visible: Subbuffer<T>,
|
||||||
|
command_allocator: Arc<dyn CommandBufferAllocator>,
|
||||||
|
transfer_queue: Arc<Queue>,
|
||||||
|
) -> Box<dyn GpuFuture + Send + Sync>
|
||||||
|
where
|
||||||
|
T: BufferContents + ?Sized,
|
||||||
|
{
|
||||||
|
let mut builder = AutoCommandBufferBuilder::primary(
|
||||||
|
command_allocator,
|
||||||
|
transfer_queue.queue_family_index(),
|
||||||
|
CommandBufferUsage::OneTimeSubmit,
|
||||||
|
)
|
||||||
|
.unwrap();
|
||||||
|
|
||||||
|
builder
|
||||||
|
.copy_buffer(CopyBufferInfo::buffers(host_visible, device_local))
|
||||||
|
.unwrap();
|
||||||
|
let commands = builder.build().unwrap();
|
||||||
|
|
||||||
|
commands.execute(transfer_queue).unwrap().boxed_send_sync()
|
||||||
|
}
|
||||||
@@ -53,6 +53,7 @@ pub(crate) struct GState {
|
|||||||
pub(crate) clear_coat: f32,
|
pub(crate) clear_coat: f32,
|
||||||
|
|
||||||
pub(crate) recreate_pipelines: bool,
|
pub(crate) recreate_pipelines: bool,
|
||||||
|
pub(crate) reset_time: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Default for GState {
|
impl Default for GState {
|
||||||
@@ -81,6 +82,7 @@ impl Default for GState {
|
|||||||
clear_coat: 0.85,
|
clear_coat: 0.85,
|
||||||
|
|
||||||
recreate_pipelines: false,
|
recreate_pipelines: false,
|
||||||
|
reset_time: false,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -362,6 +364,7 @@ pub(crate) fn gui_up(gui: &mut Gui, state: &mut GState) {
|
|||||||
);
|
);
|
||||||
|
|
||||||
state.recreate_pipelines = ui.button("Force recompile pipelines").clicked();
|
state.recreate_pipelines = ui.button("Force recompile pipelines").clicked();
|
||||||
|
state.reset_time = ui.button("Reset time to 0").clicked();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
+23
-85
@@ -1,5 +1,6 @@
|
|||||||
#![feature(portable_simd)]
|
#![feature(portable_simd)]
|
||||||
#![feature(mpmc_channel)]
|
#![feature(mpmc_channel)]
|
||||||
|
#![feature(duration_millis_float)]
|
||||||
|
|
||||||
const DUMP_SPV_TO_FILE: bool = false;
|
const DUMP_SPV_TO_FILE: bool = false;
|
||||||
const PIPELINE_CACHING: bool = false;
|
const PIPELINE_CACHING: bool = false;
|
||||||
@@ -34,15 +35,19 @@ use log::{error, info, trace};
|
|||||||
use notify::{RecommendedWatcher, Watcher};
|
use notify::{RecommendedWatcher, Watcher};
|
||||||
use rspirv::dr::Module;
|
use rspirv::dr::Module;
|
||||||
use simplelog::{CombinedLogger, Config, TermLogger, WriteLogger};
|
use simplelog::{CombinedLogger, Config, TermLogger, WriteLogger};
|
||||||
|
use tape_load::{
|
||||||
|
interpreters::{self, interval::IntervalInterpreter, point::PointInterpreter},
|
||||||
|
ssa, types,
|
||||||
|
};
|
||||||
use vulkano::{
|
use vulkano::{
|
||||||
Validated, Version, VulkanError, VulkanLibrary,
|
Validated, Version, VulkanError, VulkanLibrary,
|
||||||
buffer::{
|
buffer::{
|
||||||
BufferContents, BufferUsage, Subbuffer,
|
BufferUsage, Subbuffer,
|
||||||
allocator::{SubbufferAllocator, SubbufferAllocatorCreateInfo},
|
allocator::{SubbufferAllocator, SubbufferAllocatorCreateInfo},
|
||||||
},
|
},
|
||||||
command_buffer::{
|
command_buffer::{
|
||||||
AutoCommandBufferBuilder, CommandBufferUsage, CopyBufferInfo, PrimaryAutoCommandBuffer,
|
AutoCommandBufferBuilder, CommandBufferUsage, PrimaryAutoCommandBuffer,
|
||||||
PrimaryCommandBufferAbstract, RenderPassBeginInfo, SubpassBeginInfo, SubpassContents,
|
RenderPassBeginInfo, SubpassBeginInfo, SubpassContents,
|
||||||
allocator::{CommandBufferAllocator, StandardCommandBufferAllocator},
|
allocator::{CommandBufferAllocator, StandardCommandBufferAllocator},
|
||||||
},
|
},
|
||||||
descriptor_set::{
|
descriptor_set::{
|
||||||
@@ -101,24 +106,20 @@ use winit::{
|
|||||||
window::Window,
|
window::Window,
|
||||||
};
|
};
|
||||||
|
|
||||||
mod gui;
|
|
||||||
use crate::{
|
use crate::{
|
||||||
|
gpu_upload::{gpu_upload, gpu_upload_slice},
|
||||||
gui::*,
|
gui::*,
|
||||||
|
objects::*,
|
||||||
scene::Scene,
|
scene::Scene,
|
||||||
threads::{WorkComplete, WorkItem},
|
threads::{WorkComplete, WorkItem},
|
||||||
trace_vs::{Camera, Lights, PushConstantData},
|
trace_vs::{Camera, Lights, PushConstantData},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
mod gpu_upload;
|
||||||
|
mod gui;
|
||||||
mod objects;
|
mod objects;
|
||||||
use tape_load::{
|
|
||||||
interpreters::{self, interval::IntervalInterpreter, point::PointInterpreter},
|
|
||||||
ssa, types,
|
|
||||||
};
|
|
||||||
|
|
||||||
use crate::objects::*;
|
|
||||||
|
|
||||||
mod threads;
|
|
||||||
|
|
||||||
mod scene;
|
mod scene;
|
||||||
|
mod threads;
|
||||||
|
|
||||||
fn main() -> Result<(), impl Error> {
|
fn main() -> Result<(), impl Error> {
|
||||||
CombinedLogger::init(vec![
|
CombinedLogger::init(vec![
|
||||||
@@ -612,6 +613,8 @@ impl App {
|
|||||||
let mut gstate = GState::default();
|
let mut gstate = GState::default();
|
||||||
let cstate = CState::default();
|
let cstate = CState::default();
|
||||||
|
|
||||||
|
gstate.debug.disable_ao = true;
|
||||||
|
|
||||||
gstate.meshes.append(
|
gstate.meshes.append(
|
||||||
&mut load_obj(
|
&mut load_obj(
|
||||||
&memory_allocator,
|
&memory_allocator,
|
||||||
@@ -2200,10 +2203,15 @@ impl App {
|
|||||||
self.gstate.cpu_mpf[i - 1] = self.gstate.cpu_mpf[i];
|
self.gstate.cpu_mpf[i - 1] = self.gstate.cpu_mpf[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
self.time = (Instant::now() - self.application_start).as_secs_f32();
|
if self.gstate.reset_time {
|
||||||
|
self.application_start = Instant::now();
|
||||||
|
self.gstate.reset_time = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
self.time = self.application_start.elapsed().as_secs_f32();
|
||||||
|
|
||||||
self.gstate.cpu_mpf[self.gstate.cpu_mpf.len() - 1] =
|
self.gstate.cpu_mpf[self.gstate.cpu_mpf.len() - 1] =
|
||||||
(Instant::now() - rcx.render_start).as_secs_f64() * 1000.0;
|
rcx.render_start.elapsed().as_millis_f64();
|
||||||
|
|
||||||
for future in rcx.previous_frame_end.iter_mut().flatten() {
|
for future in rcx.previous_frame_end.iter_mut().flatten() {
|
||||||
future.cleanup_finished();
|
future.cleanup_finished();
|
||||||
@@ -2976,76 +2984,6 @@ fn pipeline_recompile(
|
|||||||
(lighting_pipeline, rt_pipeline, shader_binding_table)
|
(lighting_pipeline, rt_pipeline, shader_binding_table)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn gpu_upload<T>(
|
|
||||||
input: T,
|
|
||||||
device_local: Subbuffer<T>,
|
|
||||||
host_visible: Subbuffer<T>,
|
|
||||||
command_allocator: Arc<dyn CommandBufferAllocator>,
|
|
||||||
transfer_queue: Arc<Queue>,
|
|
||||||
) -> Box<dyn GpuFuture + Send + Sync>
|
|
||||||
where
|
|
||||||
T: BufferContents,
|
|
||||||
{
|
|
||||||
{
|
|
||||||
let mut writer = host_visible.write().unwrap();
|
|
||||||
*writer = input;
|
|
||||||
}
|
|
||||||
|
|
||||||
gpu_upload_command_buffer(
|
|
||||||
device_local,
|
|
||||||
host_visible,
|
|
||||||
command_allocator,
|
|
||||||
transfer_queue,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn gpu_upload_slice<T>(
|
|
||||||
input: &[T],
|
|
||||||
device_local: Subbuffer<[T]>,
|
|
||||||
host_visible: Subbuffer<[T]>,
|
|
||||||
command_allocator: Arc<dyn CommandBufferAllocator>,
|
|
||||||
transfer_queue: Arc<Queue>,
|
|
||||||
) -> Box<dyn GpuFuture + Send + Sync>
|
|
||||||
where
|
|
||||||
T: BufferContents + Copy,
|
|
||||||
{
|
|
||||||
{
|
|
||||||
let mut writer = host_visible.write().unwrap();
|
|
||||||
writer.copy_from_slice(input);
|
|
||||||
}
|
|
||||||
|
|
||||||
gpu_upload_command_buffer(
|
|
||||||
device_local,
|
|
||||||
host_visible,
|
|
||||||
command_allocator,
|
|
||||||
transfer_queue,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn gpu_upload_command_buffer<T>(
|
|
||||||
device_local: Subbuffer<T>,
|
|
||||||
host_visible: Subbuffer<T>,
|
|
||||||
command_allocator: Arc<dyn CommandBufferAllocator>,
|
|
||||||
transfer_queue: Arc<Queue>,
|
|
||||||
) -> Box<dyn GpuFuture + Send + Sync>
|
|
||||||
where
|
|
||||||
T: BufferContents + ?Sized,
|
|
||||||
{
|
|
||||||
let mut builder = AutoCommandBufferBuilder::primary(
|
|
||||||
command_allocator,
|
|
||||||
transfer_queue.queue_family_index(),
|
|
||||||
CommandBufferUsage::OneTimeSubmit,
|
|
||||||
)
|
|
||||||
.unwrap();
|
|
||||||
|
|
||||||
builder
|
|
||||||
.copy_buffer(CopyBufferInfo::buffers(host_visible, device_local))
|
|
||||||
.unwrap();
|
|
||||||
let commands = builder.build().unwrap();
|
|
||||||
|
|
||||||
commands.execute(transfer_queue).unwrap().boxed_send_sync()
|
|
||||||
}
|
|
||||||
|
|
||||||
fn dump_pipeline_cache(cache: Arc<PipelineCache>) {
|
fn dump_pipeline_cache(cache: Arc<PipelineCache>) {
|
||||||
if PIPELINE_CACHING && let Ok(data) = cache.get_data() {
|
if PIPELINE_CACHING && let Ok(data) = cache.get_data() {
|
||||||
info!("Dumping pipeline cache...");
|
info!("Dumping pipeline cache...");
|
||||||
|
|||||||
@@ -569,6 +569,27 @@ fn create_csg(seed: u64) -> SSATape {
|
|||||||
SSAInput::Constant(rng.random_range(0.0..1.0)),
|
SSAInput::Constant(rng.random_range(0.0..1.0)),
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
|
let sin = tape.push_instruction(
|
||||||
|
SSAOpcodeSized {
|
||||||
|
opcode: SSAOpcode::SSASin,
|
||||||
|
size: 1,
|
||||||
|
},
|
||||||
|
vec![pos[3]],
|
||||||
|
);
|
||||||
|
let offset = tape.push_instruction(
|
||||||
|
SSAOpcodeSized {
|
||||||
|
opcode: SSAOpcode::SSAAdd,
|
||||||
|
size: 3,
|
||||||
|
},
|
||||||
|
vec![
|
||||||
|
offset[0],
|
||||||
|
offset[1],
|
||||||
|
offset[2],
|
||||||
|
sin[0],
|
||||||
|
SSAInput::Constant(0.0),
|
||||||
|
SSAInput::Constant(0.0),
|
||||||
|
],
|
||||||
|
);
|
||||||
let sphere = tape.push_instruction(
|
let sphere = tape.push_instruction(
|
||||||
SSAOpcodeSized {
|
SSAOpcodeSized {
|
||||||
opcode: SSAOpcode::SSASDFSphere,
|
opcode: SSAOpcode::SSASDFSphere,
|
||||||
@@ -601,12 +622,89 @@ fn create_csg(seed: u64) -> SSATape {
|
|||||||
},
|
},
|
||||||
vec![sphere[0], torus[0]],
|
vec![sphere[0], torus[0]],
|
||||||
);
|
);
|
||||||
|
let scaled_time = tape.push_instruction(
|
||||||
|
SSAOpcodeSized {
|
||||||
|
opcode: SSAOpcode::SSAMul,
|
||||||
|
size: 1,
|
||||||
|
},
|
||||||
|
vec![pos[3], SSAInput::Constant(0.2)],
|
||||||
|
);
|
||||||
|
let moving_pos = tape.push_instruction(
|
||||||
|
SSAOpcodeSized {
|
||||||
|
opcode: SSAOpcode::SSAAdd,
|
||||||
|
size: 3,
|
||||||
|
},
|
||||||
|
vec![
|
||||||
|
pos[0],
|
||||||
|
pos[1],
|
||||||
|
pos[2],
|
||||||
|
scaled_time[0],
|
||||||
|
scaled_time[0],
|
||||||
|
scaled_time[0],
|
||||||
|
],
|
||||||
|
);
|
||||||
|
let pos_times_20 = tape.push_instruction(
|
||||||
|
SSAOpcodeSized {
|
||||||
|
opcode: SSAOpcode::SSAMul,
|
||||||
|
size: 3,
|
||||||
|
},
|
||||||
|
vec![
|
||||||
|
moving_pos[0],
|
||||||
|
moving_pos[1],
|
||||||
|
moving_pos[2],
|
||||||
|
SSAInput::Constant(20.0),
|
||||||
|
SSAInput::Constant(20.0),
|
||||||
|
SSAInput::Constant(20.0),
|
||||||
|
],
|
||||||
|
);
|
||||||
|
let sine_of_the_times = tape.push_instruction(
|
||||||
|
SSAOpcodeSized {
|
||||||
|
opcode: SSAOpcode::SSASin,
|
||||||
|
size: 3,
|
||||||
|
},
|
||||||
|
pos_times_20,
|
||||||
|
);
|
||||||
|
let sine_of_the_times = tape.push_instruction(
|
||||||
|
SSAOpcodeSized {
|
||||||
|
opcode: SSAOpcode::SSAMul,
|
||||||
|
size: 3,
|
||||||
|
},
|
||||||
|
vec![
|
||||||
|
sine_of_the_times[0],
|
||||||
|
sine_of_the_times[1],
|
||||||
|
sine_of_the_times[2],
|
||||||
|
SSAInput::Constant(0.3),
|
||||||
|
SSAInput::Constant(0.3),
|
||||||
|
SSAInput::Constant(0.3),
|
||||||
|
],
|
||||||
|
);
|
||||||
|
let multiply_out_1 = tape.push_instruction(
|
||||||
|
SSAOpcodeSized {
|
||||||
|
opcode: SSAOpcode::SSAMul,
|
||||||
|
size: 1,
|
||||||
|
},
|
||||||
|
vec![sine_of_the_times[0], sine_of_the_times[1]],
|
||||||
|
);
|
||||||
|
let multiply_out_2 = tape.push_instruction(
|
||||||
|
SSAOpcodeSized {
|
||||||
|
opcode: SSAOpcode::SSAMul,
|
||||||
|
size: 1,
|
||||||
|
},
|
||||||
|
vec![multiply_out_1[0], sine_of_the_times[2]],
|
||||||
|
);
|
||||||
|
let displacement = tape.push_instruction(
|
||||||
|
SSAOpcodeSized {
|
||||||
|
opcode: SSAOpcode::SSAAdd,
|
||||||
|
size: 1,
|
||||||
|
},
|
||||||
|
vec![min[0], multiply_out_2[0]],
|
||||||
|
);
|
||||||
tape.push_instruction(
|
tape.push_instruction(
|
||||||
SSAOpcodeSized {
|
SSAOpcodeSized {
|
||||||
opcode: SSAOpcode::SSAReturn,
|
opcode: SSAOpcode::SSAReturn,
|
||||||
size: 1,
|
size: 1,
|
||||||
},
|
},
|
||||||
min,
|
displacement,
|
||||||
);
|
);
|
||||||
tape
|
tape
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
use std::simd::{StdFloat, cmp::SimdPartialOrd, num::SimdFloat};
|
use std::simd::{Select, StdFloat, cmp::SimdPartialOrd, num::SimdFloat};
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
interpreters::VALUE_0,
|
interpreters::VALUE_0,
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
use std::simd::{StdFloat, cmp::SimdPartialEq, num::SimdFloat};
|
use std::simd::{Select, StdFloat, cmp::SimdPartialEq, num::SimdFloat};
|
||||||
|
|
||||||
use crate::BYTECODE_IMITATES_GLSL;
|
use crate::BYTECODE_IMITATES_GLSL;
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
use std::simd::{
|
use std::simd::{
|
||||||
StdFloat,
|
Select, StdFloat,
|
||||||
cmp::{SimdPartialEq, SimdPartialOrd},
|
cmp::{SimdPartialEq, SimdPartialOrd},
|
||||||
num::SimdFloat,
|
num::SimdFloat,
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
use std::simd::{
|
use std::simd::{
|
||||||
StdFloat,
|
Select, StdFloat,
|
||||||
cmp::{SimdPartialEq, SimdPartialOrd},
|
cmp::{SimdPartialEq, SimdPartialOrd},
|
||||||
num::SimdFloat,
|
num::SimdFloat,
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user