diff --git a/Cargo.lock b/Cargo.lock index 6b2aab1ca..8a85235c5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -25,7 +25,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "alsa-sys 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)", "nix 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -34,7 +34,7 @@ name = "alsa-sys" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)", "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -90,6 +90,14 @@ dependencies = [ "libloading 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "ash" +version = "0.31.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "libloading 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "atom" version = "0.3.5" @@ -101,7 +109,7 @@ version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "hermit-abi 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -224,7 +232,7 @@ version = "0.29.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "glob 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)", "libloading 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -286,6 +294,14 @@ dependencies = [ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "cloudabi" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "cocoa" version = "0.19.1" @@ -296,7 +312,7 @@ dependencies = [ "core-foundation 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", "core-graphics 0.17.3 (registry+https://github.com/rust-lang/crates.io-index)", "foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)", "objc 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -310,7 +326,21 @@ dependencies = [ "core-foundation 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "core-graphics 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)", "foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)", + "objc 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "cocoa-foundation" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "block 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "core-foundation 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "core-graphics-types 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)", "objc 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -326,7 +356,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "encode_unicode 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)", "regex 1.3.7 (registry+https://github.com/rust-lang/crates.io-index)", "terminal_size 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", "termios 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -369,7 +399,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "core-foundation-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -378,7 +408,16 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "core-foundation-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "core-foundation" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "core-foundation-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -391,6 +430,11 @@ name = "core-foundation-sys" version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "core-foundation-sys" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "core-graphics" version = "0.17.3" @@ -399,7 +443,7 @@ dependencies = [ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "core-foundation 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", "foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -410,7 +454,18 @@ dependencies = [ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "core-foundation 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "core-graphics-types" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "core-foundation 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -421,7 +476,7 @@ dependencies = [ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", "core-foundation-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "core-graphics 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)", "objc 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -452,7 +507,7 @@ dependencies = [ "coreaudio-rs 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", "js-sys 0.3.44 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)", "mach 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "nix 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -621,7 +676,7 @@ name = "dirs-sys" version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)", "redox_users 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -718,7 +773,7 @@ dependencies = [ "ruffle_render_wgpu 0.1.0", "sample 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", "walkdir 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "wgpu 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", + "wgpu 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", "wgpu-native 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -729,7 +784,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", "crc32fast 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)", "miniz_oxide 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -892,7 +947,7 @@ version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)", "wasi 0.9.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -906,6 +961,16 @@ dependencies = [ "spirv_cross 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "gfx-auxil" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "fxhash 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "gfx-hal 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "spirv_cross 0.20.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "gfx-backend-dx11" version = "0.5.0" @@ -917,7 +982,7 @@ dependencies = [ "libloading 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", - "range-alloc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "range-alloc 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "raw-window-handle 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "smallvec 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "spirv_cross 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -925,6 +990,25 @@ dependencies = [ "wio 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "gfx-backend-dx11" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "gfx-auxil 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gfx-hal 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libloading 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", + "range-alloc 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "raw-window-handle 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)", + "spirv_cross 0.20.0 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", + "wio 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "gfx-backend-dx12" version = "0.5.1" @@ -935,13 +1019,30 @@ dependencies = [ "gfx-auxil 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "gfx-hal 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "range-alloc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "range-alloc 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "raw-window-handle 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "smallvec 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "spirv_cross 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "gfx-backend-dx12" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "d3d12 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gfx-auxil 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gfx-hal 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "range-alloc 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "raw-window-handle 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)", + "spirv_cross 0.20.0 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "gfx-backend-empty" version = "0.5.0" @@ -951,6 +1052,16 @@ dependencies = [ "raw-window-handle 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "gfx-backend-empty" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "gfx-hal 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "raw-window-handle 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "gfx-backend-metal" version = "0.5.1" @@ -970,13 +1081,38 @@ dependencies = [ "metal 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)", "objc 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", - "range-alloc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "range-alloc 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "raw-window-handle 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "smallvec 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "spirv_cross 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)", "storage-map 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "gfx-backend-metal" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "arrayvec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "block 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "cocoa-foundation 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "copyless 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "gfx-auxil 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gfx-hal 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "metal 0.20.0 (registry+https://github.com/rust-lang/crates.io-index)", + "objc 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", + "range-alloc 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "raw-window-handle 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)", + "spirv_cross 0.20.0 (registry+https://github.com/rust-lang/crates.io-index)", + "storage-map 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "gfx-backend-vulkan" version = "0.5.6" @@ -996,6 +1132,26 @@ dependencies = [ "x11 2.18.2 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "gfx-backend-vulkan" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "arrayvec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", + "ash 0.31.0 (registry+https://github.com/rust-lang/crates.io-index)", + "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "core-graphics-types 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gfx-hal 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "inplace_it 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "objc 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", + "raw-window-handle 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", + "x11 2.18.2 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "gfx-descriptor" version = "0.1.0" @@ -1006,6 +1162,17 @@ dependencies = [ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "gfx-descriptor" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "arrayvec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", + "fxhash 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "gfx-hal 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "gfx-hal" version = "0.5.0" @@ -1015,6 +1182,15 @@ dependencies = [ "raw-window-handle 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "gfx-hal" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "raw-window-handle 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "gfx-memory" version = "0.1.3" @@ -1027,6 +1203,18 @@ dependencies = [ "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "gfx-memory" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "fxhash 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "gfx-hal 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "hibitset 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "gif" version = "0.10.3" @@ -1062,7 +1250,7 @@ name = "hermit-abi" version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1133,9 +1321,14 @@ dependencies = [ "regex 1.3.7 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "inplace_it" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "instant" -version = "0.1.3" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -1143,7 +1336,7 @@ name = "iovec" version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1194,7 +1387,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "libc" -version = "0.2.69" +version = "0.2.76" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -1222,6 +1415,15 @@ dependencies = [ "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "libloading" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "line_drawing" version = "0.7.0" @@ -1238,6 +1440,14 @@ dependencies = [ "scopeguard 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "lock_api" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "scopeguard 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "log" version = "0.4.8" @@ -1298,7 +1508,7 @@ version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cc 1.0.52 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)", "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1312,7 +1522,7 @@ name = "mach" version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1320,7 +1530,7 @@ name = "malloc_buf" version = "0.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1343,7 +1553,7 @@ name = "memmap" version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1369,6 +1579,19 @@ dependencies = [ "objc 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "metal" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "block 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "cocoa-foundation 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "objc 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "minimp3" version = "0.4.0" @@ -1412,7 +1635,7 @@ dependencies = [ "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "net2 0.2.34 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1442,13 +1665,26 @@ dependencies = [ "ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "naga" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "fxhash 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)", + "spirv_headers 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)", + "thiserror 1.0.20 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "net2" version = "0.2.34" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1460,7 +1696,7 @@ dependencies = [ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "cc 1.0.52 (registry+https://github.com/rust-lang/crates.io-index)", "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)", "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1472,7 +1708,7 @@ dependencies = [ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "cc 1.0.52 (registry+https://github.com/rust-lang/crates.io-index)", "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)", "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1538,7 +1774,7 @@ version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "hermit-abi 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1646,6 +1882,16 @@ dependencies = [ "parking_lot_core 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "parking_lot" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "instant 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "lock_api 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot_core 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "parking_lot_core" version = "0.6.2" @@ -1653,7 +1899,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)", "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)", "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "smallvec 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1667,7 +1913,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "parking_lot_core" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "cloudabi 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "instant 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)", "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)", "smallvec 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1865,7 +2125,7 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)", "rand_chacha 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1907,7 +2167,7 @@ dependencies = [ [[package]] name = "range-alloc" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -1915,7 +2175,7 @@ name = "raw-window-handle" version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2106,7 +2366,7 @@ dependencies = [ "lyon 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)", "raw-window-handle 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "ruffle_core 0.1.0", - "wgpu 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", + "wgpu 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", "wgpu-native 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2286,7 +2546,7 @@ name = "slice-deque" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)", "mach 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2329,6 +2589,25 @@ dependencies = [ "wasm-bindgen 0.2.67 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "spirv_cross" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "cc 1.0.52 (registry+https://github.com/rust-lang/crates.io-index)", + "js-sys 0.3.44 (registry+https://github.com/rust-lang/crates.io-index)", + "wasm-bindgen 0.2.67 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "spirv_headers" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "stb_truetype" version = "0.3.1" @@ -2350,6 +2629,14 @@ dependencies = [ "lock_api 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "storage-map" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "lock_api 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "strsim" version = "0.9.3" @@ -2424,7 +2711,7 @@ name = "terminal_size" version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2433,7 +2720,7 @@ name = "termios" version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2488,6 +2775,28 @@ dependencies = [ "serde 1.0.115 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "tracing" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "tracing-core 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "tracing-core" +version = "0.1.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "typed-arena" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "unicode-bidi" version = "0.3.4" @@ -2554,7 +2863,7 @@ name = "vswhom" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)", "vswhom-sys 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2564,7 +2873,7 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cc 1.0.52 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2672,7 +2981,7 @@ dependencies = [ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "calloop 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", "downcast-rs 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)", "mio 0.6.22 (registry+https://github.com/rust-lang/crates.io-index)", "nix 0.14.1 (registry+https://github.com/rust-lang/crates.io-index)", "wayland-commons 0.23.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2745,16 +3054,24 @@ dependencies = [ [[package]] name = "wgpu" -version = "0.5.2" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "arrayvec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "gfx-backend-vulkan 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", + "js-sys 0.3.44 (registry+https://github.com/rust-lang/crates.io-index)", + "objc 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", "raw-window-handle 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "smallvec 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)", - "wgpu-core 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", - "wgpu-native 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "wgpu-types 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", + "tracing 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", + "typed-arena 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", + "wasm-bindgen 0.2.67 (registry+https://github.com/rust-lang/crates.io-index)", + "wasm-bindgen-futures 0.4.17 (registry+https://github.com/rust-lang/crates.io-index)", + "web-sys 0.3.44 (registry+https://github.com/rust-lang/crates.io-index)", + "wgpu-core 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "wgpu-types 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2782,6 +3099,32 @@ dependencies = [ "wgpu-types 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "wgpu-core" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "arrayvec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "copyless 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "fxhash 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "gfx-backend-dx11 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gfx-backend-dx12 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", + "gfx-backend-empty 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gfx-backend-metal 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", + "gfx-backend-vulkan 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", + "gfx-descriptor 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gfx-hal 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "gfx-memory 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "naga 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", + "raw-window-handle 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)", + "thiserror 1.0.20 (registry+https://github.com/rust-lang/crates.io-index)", + "tracing 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", + "wgpu-types 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "wgpu-native" version = "0.5.1" @@ -2789,7 +3132,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "arrayvec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)", "objc 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", "raw-window-handle 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2806,6 +3149,14 @@ dependencies = [ "peek-poke 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "wgpu-types" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "widestring" version = "0.4.0" @@ -2860,9 +3211,9 @@ dependencies = [ "core-graphics 0.17.3 (registry+https://github.com/rust-lang/crates.io-index)", "core-video-sys 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "dispatch 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "instant 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "instant 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "mio 0.6.22 (registry+https://github.com/rust-lang/crates.io-index)", "mio-extras 2.0.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2906,7 +3257,7 @@ name = "x11" version = "2.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)", "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2924,7 +3275,7 @@ version = "2.18.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)", "maybe-uninit 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2934,7 +3285,7 @@ name = "xcb" version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2969,6 +3320,7 @@ dependencies = [ "checksum arrayref 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544" "checksum arrayvec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cff77d8686867eceff3105329d4698d96c2391c176d5d03adc90c7389162b5b8" "checksum ash 0.30.0 (registry+https://github.com/rust-lang/crates.io-index)" = "69daec0742947f33a85931fa3cb0ce5f07929159dcbd1f0cbb5b2912e2978509" +"checksum ash 0.31.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c69a8137596e84c22d57f3da1b5de1d4230b1742a710091c85f4d7ce50f00f38" "checksum atom 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "3c86699c3f02778ec07158376991c8f783dd1f2f95c579ffaf0738dc984b2fe2" "checksum atty 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" "checksum autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d" @@ -2993,8 +3345,10 @@ dependencies = [ "checksum clipboard 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "25a904646c0340239dcf7c51677b33928bf24fdf424b79a57909c0109075b2e7" "checksum clipboard-win 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e3a093d6fed558e5fe24c3dfc85a68bb68f1c824f440d3ba5aca189e2998786b" "checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" +"checksum cloudabi 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4344512281c643ae7638bbabc3af17a11307803ec8f0fcad9fae512a8bf36467" "checksum cocoa 0.19.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f29f7768b2d1be17b96158e3285951d366b40211320fb30826a76cb7a0da6400" "checksum cocoa 0.20.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0a4736c86d51bd878b474400d9ec888156f4037015f5d09794fab9f26eab1ad4" +"checksum cocoa-foundation 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7ade49b65d560ca58c403a479bb396592b155c0185eada742ee323d1d68d6318" "checksum color_quant 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0dbbb57365263e881e805dc77d94697c9118fd94d8da011240555aa7b23445bd" "checksum console 0.11.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dea0f3e2e8d7dba335e913b97f9e1992c86c4399d54f8be1d31c8727d0652064" "checksum console_error_panic_hook 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "b8d976903543e0c48546a91908f21588a680a8c8f984df9a5d69feccb2b2a211" @@ -3003,10 +3357,13 @@ dependencies = [ "checksum copyless 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "6ff9c56c9fb2a49c05ef0e431485a22400af20d33226dc0764d891d09e724127" "checksum core-foundation 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "25b9e03f145fd4f2bf705e07b900cd41fc636598fe5dc452fd0db1441c3f496d" "checksum core-foundation 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "57d24c7a13c43e870e37c1556b74555437870a04514f7685f5b354e090567171" +"checksum core-foundation 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3b5ed8e7e76c45974e15e41bfa8d5b0483cd90191639e01d8f5f1e606299d3fb" "checksum core-foundation-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e7ca8a5221364ef15ce201e8ed2f609fc312682a8f4e0e3d4aa5879764e0fa3b" "checksum core-foundation-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b3a71ab494c0b5b860bdc8407ae08978052417070c2ced38573a9157ad75b8ac" +"checksum core-foundation-sys 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9a21fa21941700a3cd8fcb4091f361a6a712fac632f85d9f487cc892045d55c6" "checksum core-graphics 0.17.3 (registry+https://github.com/rust-lang/crates.io-index)" = "56790968ab1c8a1202a102e6de05fc6e1ec87da99e4e93e9a7d13efbfc1e95a9" "checksum core-graphics 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)" = "59e78b2e0aaf43f08e7ae0d6bc96895ef72ff0921c7d4ff4762201b2dba376dd" +"checksum core-graphics-types 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e92f5d519093a4178296707dbaa3880eae85a5ef5386675f361a1cf25376e93c" "checksum core-video-sys 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "34ecad23610ad9757664d644e369246edde1803fcb43ed72876565098a5d3828" "checksum coreaudio-rs 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f229761965dad3e9b11081668a6ea00f1def7aa46062321b5ec245b834f6e491" "checksum coreaudio-sys 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "e81f1c165c33ffab90a03077ac3b03462b34d5947145dfa48102e063d581502c" @@ -3059,14 +3416,23 @@ dependencies = [ "checksum generational-arena 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "8e1d3b771574f62d0548cee0ad9057857e9fc25d7a3335f140c84f6acd0bf601" "checksum getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb" "checksum gfx-auxil 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3b46e6f0031330a0be08d17820f2dcaaa91cb36710a97a9500cb4f1c36e785c8" +"checksum gfx-auxil 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6311ee3cc7a3b4c8ae94c4513cd2cbe888ec37990cf0ffa672bd275391b12eb1" "checksum gfx-backend-dx11 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b148219292624126f78245e50a9720d95ea149a415ce8ce73ab7014205301b88" +"checksum gfx-backend-dx11 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "de0a460b6458f3857af43064c687b1a010fe1f1b2e8c68fcd1d5db7206fa0809" "checksum gfx-backend-dx12 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "6facbfcdbb383b3cb7ea0709932ad1273e600a31a242255e80597297ce803dca" +"checksum gfx-backend-dx12 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c392af02ae88bc127abf94e1b88c817b7274d8d977aae986d5f2829392a30b0b" "checksum gfx-backend-empty 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b67bd2d7bc022b257ddbdabc5fa3b10c29c292372c3409f2b6a6e3f4e11cdb85" +"checksum gfx-backend-empty 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2085227c12b78f6657a900c829f2d0deb46a9be3eaf86844fde263cdc218f77c" "checksum gfx-backend-metal 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cfe128c29675b5afc8acdda1dfe096d6abd5e3528059ab0b98bda8215d8beed9" +"checksum gfx-backend-metal 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d3b5e4bb037dd844b72c486b3f2ec51949f719c66e8e4467288eca9835d3e234" "checksum gfx-backend-vulkan 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)" = "45ff36feae801fa23d29acd74082603a0145a697a23595757dd4e78828ab33da" +"checksum gfx-backend-vulkan 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a84bda4200a82e1912d575801e2bb76ae19c6256359afbc0adfbbaec02fcadc6" "checksum gfx-descriptor 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1bf35f5d66d1bc56e63e68d7528441453f25992bd954b84309d23c659df2c5da" +"checksum gfx-descriptor 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "cd8c7afcd000f279d541a490e27117e61037537279b9342279abf4938fe60c6b" "checksum gfx-hal 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bc96180204064c9493e0fe4a9efeb721e0ac59fe8e1906d0c659142a93114fb1" +"checksum gfx-hal 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "18d0754f5b7a43915fd7466883b2d1bb0800d7cc4609178d0b27bf143b9e5123" "checksum gfx-memory 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "c2eed6cda674d9cd4d92229102dbd544292124533d236904f987e9afab456137" +"checksum gfx-memory 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fe8d8855df07f438eb8a765e90356d5b821d644ea3b59b870091450b89576a9f" "checksum gif 0.10.3 (registry+https://github.com/rust-lang/crates.io-index)" = "471d90201b3b223f3451cd4ad53e34295f16a1df17b1edf3736d47761c3981af" "checksum glob 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" "checksum hashbrown 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "34f595585f103464d8d2f6e9864682d74c1601fed5e07d62b1c9058dba8246fb" @@ -3079,7 +3445,8 @@ dependencies = [ "checksum image 0.23.8 (registry+https://github.com/rust-lang/crates.io-index)" = "543904170510c1b5fb65140485d84de4a57fddb2ed685481e9020ce3d2c9f64c" "checksum indexmap 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "86b45e59b16c76b11bf9738fd5d38879d3bd28ad292d7b313608becb17ae2df9" "checksum indicatif 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7baab56125e25686df467fe470785512329883aab42696d661247aca2a2896e4" -"checksum instant 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "f7152d2aed88aa566e7a342250f21ba2222c1ae230ad577499dbfa3c18475b80" +"checksum inplace_it 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dd01a2a73f2f399df96b22dc88ea687ef4d76226284e7531ae3c7ee1dc5cb534" +"checksum instant 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "5b141fdc7836c525d4d594027d318c84161ca17aaf8113ab1f81ab93ae897485" "checksum iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e" "checksum itoa 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = "b8b7a7c0c47db5545ed3fef7468ee7bb5b74691498139e4b3f6a20685dc6dd8e" "checksum jpeg-decoder 0.1.20 (registry+https://github.com/rust-lang/crates.io-index)" = "cc797adac5f083b8ff0ca6f6294a999393d76e197c36488e2ef732c4715f6fa3" @@ -3088,12 +3455,14 @@ dependencies = [ "checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" "checksum lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" "checksum lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f" -"checksum libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)" = "99e85c08494b21a9054e7fe1374a732aeadaff3980b6990b94bfd3a70f690005" +"checksum libc 0.2.76 (registry+https://github.com/rust-lang/crates.io-index)" = "755456fae044e6fa1ebbbd1b3e902ae19e73097ed4ed87bb79934a867c007bc3" "checksum libflate 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e9bac9023e1db29c084f9f8cd9d3852e5e8fddf98fb47c4964a0ea4663d95949" "checksum libflate_lz77 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3286f09f7d4926fc486334f28d8d2e6ebe4f7f9994494b6dab27ddfad2c9b11b" "checksum libloading 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f2b111a074963af1d37a139918ac6d49ad1d0d5e47f72fd55388619691a7d753" +"checksum libloading 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2443d8f0478b16759158b2f66d525991a05491138bc05814ef52a250148ef4f9" "checksum line_drawing 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5cc7ad3d82c845bdb5dde34ffdcc7a5fb4d2996e1e1ee0f19c33bc80e15196b9" "checksum lock_api 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "c4da24a77a3d8a6d4862d95f72e6fdb9c09a643ecdb402d754004a557f2bec75" +"checksum lock_api 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "28247cc5a5be2f05fbcd76dd0cf2c7d3b5400cb978a28042abcd4fa0b3f8261c" "checksum log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7" "checksum lyon 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e70c7d8016c5c3a488b987ce9b90e5276cd0e4f977218b0ca00484518e06bbe7" "checksum lyon_algorithms 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)" = "11033936a5e9d7bf35b7ba71a19f8b6bc838f3206304175dc5b3524ca16672a8" @@ -3110,6 +3479,7 @@ dependencies = [ "checksum memmap 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6585fd95e7bb50d6cc31e20d4cf9afb4e2ba16c5846fc76793f11218da9c475b" "checksum memoffset 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b4fc2c02a7e374099d4ee95a193111f72d2110197fe200272371758f6c3643d8" "checksum metal 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e198a0ee42bdbe9ef2c09d0b9426f3b2b47d90d93a4a9b0395c4cea605e92dc0" +"checksum metal 0.20.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5c4e8a431536529327e28c9ba6992f2cb0c15d4222f0602a16e6d7695ff3bccf" "checksum minimp3 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c774cf8909b7170c02e767e920f461124a176447e7505a99f53cab261fd90f51" "checksum minimp3-sys 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e21c73734c69dc95696c9ed8926a2b393171d98b3f5f5935686a26a487ab9b90" "checksum miniz_oxide 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "aa679ff6578b1cddee93d7e82e263b94a575e0bfced07284eb0c037c1d2416a5" @@ -3117,6 +3487,7 @@ dependencies = [ "checksum mio 0.6.22 (registry+https://github.com/rust-lang/crates.io-index)" = "fce347092656428bc8eaf6201042cb551b8d67855af7374542a92a0fbfcac430" "checksum mio-extras 2.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "52403fe290012ce777c4626790c8951324a2b9e3316b3143779c72b029742f19" "checksum miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919" +"checksum naga 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0873deb76cf44b7454fba7b2ba6a89d3de70c08aceffd2c489379b3d9d08e661" "checksum net2 0.2.34 (registry+https://github.com/rust-lang/crates.io-index)" = "2ba7c918ac76704fb42afcbbb43891e72731f3dcca3bef2a19786297baf14af7" "checksum nix 0.14.1 (registry+https://github.com/rust-lang/crates.io-index)" = "6c722bee1037d430d0f8e687bbdbf222f27cc6e4e68d5caf630857bb2b6dbdce" "checksum nix 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3b2e0b4f3320ed72aaedb9a5ac838690a8047c7b275da22711fddff4f8a14229" @@ -3139,9 +3510,11 @@ dependencies = [ "checksum os_str_bytes 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "06de47b848347d8c4c94219ad8ecd35eb90231704b067e67e6ae2e36ee023510" "checksum output_vt100 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "53cdc5b785b7a58c5aad8216b3dfa114df64b0b06ae6e1501cef91df2fbdf8f9" "checksum parking_lot 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d3a704eb390aafdc107b0e392f56a82b668e3a71366993b5340f5833fd62505e" +"checksum parking_lot 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a4893845fa2ca272e647da5d0e46660a314ead9c2fdd9a883aabc32e481a8733" "checksum parking_lot 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f842b1982eb6c2fe34036a4fbfb06dd185a3f5c8edfaacdf7d1ea10b07de6252" "checksum parking_lot_core 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b876b1b9e7ac6e1a74a6da34d25c42e17e8862aa409cbbbdcfc8d86c6f3bc62b" "checksum parking_lot_core 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d58c7c768d4ba344e3e8d72518ac13e259d7c7ade24167003b8488e10b6740a3" +"checksum parking_lot_core 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c361aa727dd08437f2f1447be8b59a33b0edd15e0fcee698f935613d9efbca9b" "checksum path-slash 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ff65715a17cba8979903db6294baef56c5d39e05c8b054cffa31e69e61f24c68" "checksum peek-poke 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d93fd6a575ebf1ac2668d08443c97a22872cfb463fd8b7ddd141e9f6be59af2f" "checksum peek-poke-derive 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "6fb44a25c5bba983be0fc8592dfaf3e6d0935ce8be0c6b15b2a39507af34a926" @@ -3171,7 +3544,7 @@ dependencies = [ "checksum rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" "checksum rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" "checksum rand_pcg 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429" -"checksum range-alloc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "dd5927936723a9e8b715d37d7e4b390455087c4bdf25b9f702309460577b14f9" +"checksum range-alloc 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a871f1e45a3a3f0c73fb60343c811238bb5143a81642e27c2ac7aac27ff01a63" "checksum raw-window-handle 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "0a441a7a6c80ad6473bd4b74ec1c9a4c951794285bf941c2126f607c72e48211" "checksum rayon 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "db6ce3297f9c85e16621bb8cca38a06779ffc31bb8184e1be4bed2be4678a098" "checksum rayon-core 1.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "08a89b46efaf957e52b18062fb2f4660f8b8a4dde1807ca002690868ef2c85a9" @@ -3204,9 +3577,12 @@ dependencies = [ "checksum smallvec 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "fbee7696b84bbf3d89a1c2eccff0850e3047ed46bfcd2e92c29a2d074d57e252" "checksum smithay-client-toolkit 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)" = "421c8dc7acf5cb205b88160f8b4cc2c5cfabe210e43b2f80f009f4c1ef910f1d" "checksum spirv_cross 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)" = "946216f8793f7199e3ea5b995ee8dc20a0ace1fcf46293a0ef4c17e1d046dbde" +"checksum spirv_cross 0.20.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a33a9478e9c78782dd694d05dee074703a9c4c74b511de742b88a7e8149f1b37" +"checksum spirv_headers 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1f5b132530b1ac069df335577e3581765995cba5a13995cdbbdbc8fb057c532c" "checksum stb_truetype 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f77b6b07e862c66a9f3e62a07588fee67cd90a9135a2b942409f195507b4fb51" "checksum stdweb 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ef5430c8e36b713e13b48a9f709cc21e046723fe44ce34587b73a830203b533e" "checksum storage-map 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fd0a4829a5c591dc24a944a736d6b1e4053e51339a79fd5d4702c4c999a9c45e" +"checksum storage-map 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "418bb14643aa55a7841d5303f72cf512cfb323b8cc221d51580500a1ca75206c" "checksum strsim 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" "checksum strsim 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6446ced80d6c486436db5c078dde11a9f73d42b57fb273121e160b84f63d894c" "checksum svg 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0b65a64d32a41db2a8081aa03c1ccca26f246ff681add693f8b01307b137da79" @@ -3222,6 +3598,9 @@ dependencies = [ "checksum thread_local 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14" "checksum tiff 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3f3b8a87c4da944c3f27e5943289171ac71a6150a79ff6bacfff06d159dfff2f" "checksum toml 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)" = "ffc92d160b1eef40665be3a05630d003936a3bc7da7421277846c2613e92c71a" +"checksum tracing 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)" = "6d79ca061b032d6ce30c660fded31189ca0b9922bf483cd70759f13a2d86786c" +"checksum tracing-core 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)" = "4f0e00789804e99b20f12bc7003ca416309d28a6f495d6af58d1e2c2842461b5" +"checksum typed-arena 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0685c84d5d54d1c26f7d3eb96cd41550adb97baed141a761cf335d3d33bcd0ae" "checksum unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5" "checksum unicode-normalization 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "5479532badd04e128284890390c1e876ef7a993d0570b3597ae43dfa1d59afa4" "checksum unicode-segmentation 1.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e83e153d1053cbb5a118eeff7fd5be06ed99153f00dbcd8ae310c5fb2b22edc0" @@ -3252,10 +3631,12 @@ dependencies = [ "checksum weak-table 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9a8f3bf74f2d43500dea6a8291b6ac943e3465ea9936b94bd017e61b7b21dd01" "checksum web-sys 0.3.44 (registry+https://github.com/rust-lang/crates.io-index)" = "dda38f4e5ca63eda02c059d243aa25b5f35ab98451e518c51612cd0f1bd19a47" "checksum webbrowser 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)" = "ecad156490d6b620308ed411cfee90d280b3cbd13e189ea0d3fada8acc89158a" -"checksum wgpu 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b5dece29f3cd403aabf4056595eabe4b9af56b8bfae12445f097cf8666a41829" +"checksum wgpu 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "549160f188eef412ac978499ddf0ceadad4c9159bb1160f9e6b9d4cc8ee977dc" "checksum wgpu-core 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)" = "f07fd0b6b3b340465bce96286350d34b7661fb623ef24c3c2b8902ea654cd4e0" +"checksum wgpu-core 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3a5558a9607100816a033b0d06a2d6d06e8bf6fb294803d1dea871e9a479eec0" "checksum wgpu-native 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5f1ac9838b0715d7911352db1268e34dfd05ef347fbef0b65ae211268316a432" "checksum wgpu-types 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "67b69dfe001a8a6b78810c7e479717cd1898b9177dbf646611fa1f258f5a2512" +"checksum wgpu-types 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6fb82203cfaa5165e6eb9f1daca5b0ba8a2b8d632f6c9a7f9b10463b145deb2b" "checksum widestring 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "effc0e4ff8085673ea7b9b2e3c73f6bd4d118810c9009ed8f1e16bd96c331db6" "checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" "checksum winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" diff --git a/exporter/Cargo.toml b/exporter/Cargo.toml index 613b97405..a6d05a593 100644 --- a/exporter/Cargo.toml +++ b/exporter/Cargo.toml @@ -14,7 +14,7 @@ image = "0.23.8" log = "0.4" sample = "0.11.0" futures = "0.3.4" -wgpu = "0.5" +wgpu = "0.6" wgpu-native = "0.5" path-slash = "0.1.3" walkdir = "2.3.1" diff --git a/exporter/src/main.rs b/exporter/src/main.rs index 1c20201a3..e2e598646 100644 --- a/exporter/src/main.rs +++ b/exporter/src/main.rs @@ -332,23 +332,23 @@ fn capture_multiple_swfs( fn main() -> Result<(), Box> { let opt: Opt = Opt::parse(); - let adapter = block_on(wgpu::Adapter::request( - &wgpu::RequestAdapterOptions { - power_preference: wgpu::PowerPreference::Default, - compatible_surface: None, - }, - wgpu::BackendBit::PRIMARY, - )) + let instance = wgpu::Instance::new(wgpu::BackendBit::PRIMARY); + let adapter = block_on(instance.request_adapter(&wgpu::RequestAdapterOptions { + power_preference: wgpu::PowerPreference::Default, + compatible_surface: None, + })) .ok_or_else(|| { "This tool requires hardware acceleration, but no compatible graphics device was found." })?; - let (device, queue) = block_on(adapter.request_device(&wgpu::DeviceDescriptor { - extensions: wgpu::Extensions { - anisotropic_filtering: false, + let (device, queue) = block_on(adapter.request_device( + &wgpu::DeviceDescriptor { + features: Default::default(), + limits: wgpu::Limits::default(), + shader_validation: false, }, - limits: wgpu::Limits::default(), - })); + None, + ))?; if opt.swf.is_file() { capture_single_swf(Rc::new(device), Rc::new(queue), &opt)?; diff --git a/render/wgpu/Cargo.toml b/render/wgpu/Cargo.toml index a0ce5c2e0..82317ec5f 100644 --- a/render/wgpu/Cargo.toml +++ b/render/wgpu/Cargo.toml @@ -6,7 +6,7 @@ edition = "2018" license = "MIT OR Apache-2.0" [dependencies] -wgpu = "0.5" +wgpu = "0.6" wgpu-native = "0.5" image = "0.23.8" jpeg-decoder = "0.1.20" diff --git a/render/wgpu/src/lib.rs b/render/wgpu/src/lib.rs index 29f322769..4753c1191 100644 --- a/render/wgpu/src/lib.rs +++ b/render/wgpu/src/lib.rs @@ -122,25 +122,26 @@ unsafe impl Zeroable for GPUVertex {} impl WgpuRenderBackend { pub fn for_window(window: &W, size: (u32, u32)) -> Result { - let surface = wgpu::Surface::create(window); + let instance = wgpu::Instance::new(wgpu::BackendBit::PRIMARY); - let adapter = block_on(wgpu::Adapter::request( - &wgpu::RequestAdapterOptions { - power_preference: wgpu::PowerPreference::HighPerformance, - compatible_surface: Some(&surface), - }, - wgpu::BackendBit::PRIMARY, - )) + let surface = unsafe { instance.create_surface(window) }; + + let adapter = block_on(instance.request_adapter(&wgpu::RequestAdapterOptions { + power_preference: wgpu::PowerPreference::HighPerformance, + compatible_surface: Some(&surface), + })) .ok_or_else(|| { "Ruffle requires hardware acceleration, but no compatible graphics device was found." })?; - let (device, queue) = block_on(adapter.request_device(&wgpu::DeviceDescriptor { - extensions: wgpu::Extensions { - anisotropic_filtering: false, + let (device, queue) = block_on(adapter.request_device( + &wgpu::DeviceDescriptor { + features: Default::default(), + limits: wgpu::Limits::default(), + shader_validation: false, }, - limits: wgpu::Limits::default(), - })); + None, + ))?; let target = SwapChainTarget::new(surface, size, &device); Self::new(Rc::new(device), Rc::new(queue), target) @@ -164,20 +165,18 @@ impl WgpuRenderBackend { let frame_buffer = device.create_texture(&wgpu::TextureDescriptor { label: frame_buffer_label.as_deref(), size: extent, - array_layer_count: 1, mip_level_count: 1, sample_count: msaa_sample_count, dimension: wgpu::TextureDimension::D2, format: target.format(), usage: wgpu::TextureUsage::OUTPUT_ATTACHMENT, }); - let frame_buffer_view = frame_buffer.create_default_view(); + let frame_buffer_view = frame_buffer.create_view(&Default::default()); let depth_label = create_debug_label!("Depth texture"); let depth_texture = device.create_texture(&wgpu::TextureDescriptor { label: depth_label.as_deref(), size: extent, - array_layer_count: 1, mip_level_count: 1, sample_count: msaa_sample_count, dimension: wgpu::TextureDimension::D2, @@ -190,7 +189,7 @@ impl WgpuRenderBackend { label: register_encoder_label.as_deref(), }); - let depth_texture_view = depth_texture.create_default_view(); + let depth_texture_view = depth_texture.create_view(&Default::default()); let (quad_vbo, quad_ibo, quad_tex_transforms) = create_quad_buffers(&device); @@ -234,6 +233,7 @@ impl WgpuRenderBackend { label: transforms_label.as_deref(), size: std::mem::size_of::() as u64, usage: wgpu::BufferUsage::UNIFORM | wgpu::BufferUsage::COPY_DST, + mapped_at_creation: false, }); let colors_ubo = create_buffer_with_data( @@ -508,7 +508,7 @@ impl WgpuRenderBackend { } Some(t) => &t.1, }; - let texture_view = texture.texture.create_default_view(); + let texture_view = texture.texture.create_view(&Default::default()); flush_draw( shape.id, @@ -641,7 +641,6 @@ impl WgpuRenderBackend { let texture = self.device.create_texture(&wgpu::TextureDescriptor { label: texture_label.as_deref(), size: extent, - array_layer_count: 1, mip_level_count: 1, sample_count: 1, dimension: wgpu::TextureDimension::D2, @@ -649,25 +648,17 @@ impl WgpuRenderBackend { usage: wgpu::TextureUsage::SAMPLED | wgpu::TextureUsage::COPY_DST, }); - let buffer = create_buffer_with_data( - &self.device, - &data, - wgpu::BufferUsage::COPY_SRC, - create_debug_label!("{} transfer buffer {}", debug_str, id), - ); - - self.register_encoder.copy_buffer_to_texture( - wgpu::BufferCopyView { - buffer: &buffer, - offset: 0, - bytes_per_row: 4 * extent.width, - rows_per_image: 0, - }, + self.queue.write_texture( wgpu::TextureCopyView { texture: &texture, mip_level: 0, - array_layer: 0, - origin: wgpu::Origin3d::ZERO, + origin: Default::default(), + }, + &data, + wgpu::TextureDataLayout { + offset: 0, + bytes_per_row: 4 * extent.width, + rows_per_image: 0, }, extent, ); @@ -744,20 +735,18 @@ impl WgpuRenderBackend { let bind_group_label = create_debug_label!("Rectangle bind group"); let bind_group = self.device.create_bind_group(&wgpu::BindGroupDescriptor { layout: &self.pipelines.color.bind_layout, - bindings: &[ - wgpu::Binding { + entries: &[ + wgpu::BindGroupEntry { binding: 0, - resource: wgpu::BindingResource::Buffer { - buffer: &transforms_ubo, - range: 0..std::mem::size_of::() as u64, - }, + resource: wgpu::BindingResource::Buffer( + transforms_ubo.slice(0..std::mem::size_of::() as u64), + ), }, - wgpu::Binding { + wgpu::BindGroupEntry { binding: 1, - resource: wgpu::BindingResource::Buffer { - buffer: &colors_ubo, - range: 0..std::mem::size_of::() as u64, - }, + resource: wgpu::BindingResource::Buffer( + colors_ubo.slice(0..std::mem::size_of::() as u64), + ), }, ], label: bind_group_label.as_deref(), @@ -771,19 +760,22 @@ impl WgpuRenderBackend { let mut render_pass = encoder.begin_render_pass(&wgpu::RenderPassDescriptor { color_attachments: &[wgpu::RenderPassColorAttachmentDescriptor { attachment: color_attachment, - load_op: wgpu::LoadOp::Load, - store_op: wgpu::StoreOp::Store, - clear_color: wgpu::Color::WHITE, resolve_target, + ops: wgpu::Operations { + load: wgpu::LoadOp::Load, + store: true, + }, }], depth_stencil_attachment: Some(wgpu::RenderPassDepthStencilAttachmentDescriptor { attachment: &self.depth_texture_view, - depth_load_op: wgpu::LoadOp::Load, - depth_store_op: wgpu::StoreOp::Store, - stencil_load_op: wgpu::LoadOp::Load, - stencil_store_op: wgpu::StoreOp::Store, - clear_depth: 0.0, - clear_stencil: 0, + depth_ops: Some(wgpu::Operations { + load: wgpu::LoadOp::Load, + store: true, + }), + stencil_ops: Some(wgpu::Operations { + load: wgpu::LoadOp::Load, + store: true, + }), }), }); @@ -794,8 +786,8 @@ impl WgpuRenderBackend { self.write_stencil_mask, )); render_pass.set_bind_group(0, &bind_group, &[]); - render_pass.set_vertex_buffer(0, &self.quad_vbo, 0, 0); - render_pass.set_index_buffer(&self.quad_ibo, 0, 0); + render_pass.set_vertex_buffer(0, self.quad_vbo.slice(..)); + render_pass.set_index_buffer(self.quad_ibo.slice(..)); if self.num_masks_active < self.num_masks { render_pass.set_stencil_reference(self.write_stencil_mask); @@ -823,14 +815,13 @@ impl RenderBackend for WgpuRenderBackend { height, depth: 1, }, - array_layer_count: 1, mip_level_count: 1, sample_count: self.msaa_sample_count, dimension: wgpu::TextureDimension::D2, format: self.target.format(), usage: wgpu::TextureUsage::OUTPUT_ATTACHMENT, }); - self.frame_buffer_view = frame_buffer.create_default_view(); + self.frame_buffer_view = frame_buffer.create_view(&Default::default()); let label = create_debug_label!("Depth texture"); let depth_texture = self.device.create_texture(&wgpu::TextureDescriptor { @@ -840,14 +831,13 @@ impl RenderBackend for WgpuRenderBackend { height, depth: 1, }, - array_layer_count: 1, mip_level_count: 1, sample_count: self.msaa_sample_count, dimension: wgpu::TextureDimension::D2, format: wgpu::TextureFormat::Depth24PlusStencil8, usage: wgpu::TextureUsage::OUTPUT_ATTACHMENT, }); - self.depth_texture_view = depth_texture.create_default_view(); + self.depth_texture_view = depth_texture.create_view(&Default::default()); self.viewport_width = width as f32; self.viewport_height = height as f32; @@ -936,8 +926,8 @@ impl RenderBackend for WgpuRenderBackend { }), )) } - Err(wgpu::TimeOut) => { - log::warn!("Couldn't begin new render frame: timed out whilst aquiring new swapchain output"); + Err(e) => { + log::warn!("Couldn't begin new render frame: {}", e); None } }; @@ -956,24 +946,27 @@ impl RenderBackend for WgpuRenderBackend { encoder.begin_render_pass(&wgpu::RenderPassDescriptor { color_attachments: &[wgpu::RenderPassColorAttachmentDescriptor { attachment: color_attachment, - load_op: wgpu::LoadOp::Clear, - store_op: wgpu::StoreOp::Store, - clear_color: wgpu::Color { - r: f64::from(clear.r) / 255.0, - g: f64::from(clear.g) / 255.0, - b: f64::from(clear.b) / 255.0, - a: f64::from(clear.a) / 255.0, + ops: wgpu::Operations { + load: wgpu::LoadOp::Clear(wgpu::Color { + r: f64::from(clear.r) / 255.0, + g: f64::from(clear.g) / 255.0, + b: f64::from(clear.b) / 255.0, + a: f64::from(clear.a) / 255.0, + }), + store: true, }, resolve_target, }], depth_stencil_attachment: Some(wgpu::RenderPassDepthStencilAttachmentDescriptor { attachment: &self.depth_texture_view, - depth_load_op: wgpu::LoadOp::Clear, - depth_store_op: wgpu::StoreOp::Store, - stencil_load_op: wgpu::LoadOp::Clear, - stencil_store_op: wgpu::StoreOp::Store, - clear_depth: 0.0, - clear_stencil: 0, + depth_ops: Some(wgpu::Operations { + load: wgpu::LoadOp::Clear(0.0), + store: true, + }), + stencil_ops: Some(wgpu::Operations { + load: wgpu::LoadOp::Clear(0), + store: true, + }), }), }); } @@ -1028,8 +1021,10 @@ impl RenderBackend for WgpuRenderBackend { create_debug_label!("Bitmap {} colors transfer buffer", bitmap.0), ); - let texture_view = texture.texture.create_default_view(); + let texture_view = texture.texture.create_view(&Default::default()); + let sampler_label = create_debug_label!("Bitmap {} sampler", bitmap.0); let sampler = self.device.create_sampler(&wgpu::SamplerDescriptor { + label: sampler_label.as_deref(), address_mode_u: wgpu::AddressMode::ClampToEdge, address_mode_v: wgpu::AddressMode::ClampToEdge, address_mode_w: wgpu::AddressMode::ClampToEdge, @@ -1038,39 +1033,38 @@ impl RenderBackend for WgpuRenderBackend { mipmap_filter: wgpu::FilterMode::Linear, lod_min_clamp: 0.0, lod_max_clamp: 100.0, - compare: wgpu::CompareFunction::Undefined, + compare: None, + anisotropy_clamp: None, }); let bind_group_label = create_debug_label!("Bitmap {} bind group", bitmap.0); let bind_group = self.device.create_bind_group(&wgpu::BindGroupDescriptor { layout: &self.pipelines.bitmap.bind_layout, - bindings: &[ - wgpu::Binding { + entries: &[ + wgpu::BindGroupEntry { binding: 0, - resource: wgpu::BindingResource::Buffer { - buffer: &transforms_ubo, - range: 0..std::mem::size_of::() as u64, - }, + resource: wgpu::BindingResource::Buffer( + transforms_ubo.slice(0..std::mem::size_of::() as u64), + ), }, - wgpu::Binding { + wgpu::BindGroupEntry { binding: 1, - resource: wgpu::BindingResource::Buffer { - buffer: &self.quad_tex_transforms, - range: 0..std::mem::size_of::() as u64, - }, + resource: wgpu::BindingResource::Buffer( + self.quad_tex_transforms + .slice(0..std::mem::size_of::() as u64), + ), }, - wgpu::Binding { + wgpu::BindGroupEntry { binding: 2, - resource: wgpu::BindingResource::Buffer { - buffer: &colors_ubo, - range: 0..std::mem::size_of::() as u64, - }, + resource: wgpu::BindingResource::Buffer( + colors_ubo.slice(0..std::mem::size_of::() as u64), + ), }, - wgpu::Binding { + wgpu::BindGroupEntry { binding: 3, resource: wgpu::BindingResource::TextureView(&texture_view), }, - wgpu::Binding { + wgpu::BindGroupEntry { binding: 4, resource: wgpu::BindingResource::Sampler(&sampler), }, @@ -1086,19 +1080,22 @@ impl RenderBackend for WgpuRenderBackend { let mut render_pass = encoder.begin_render_pass(&wgpu::RenderPassDescriptor { color_attachments: &[wgpu::RenderPassColorAttachmentDescriptor { attachment: color_attachment, - load_op: wgpu::LoadOp::Load, - store_op: wgpu::StoreOp::Store, - clear_color: wgpu::Color::WHITE, resolve_target, + ops: wgpu::Operations { + load: wgpu::LoadOp::Load, + store: true, + }, }], depth_stencil_attachment: Some(wgpu::RenderPassDepthStencilAttachmentDescriptor { attachment: &self.depth_texture_view, - depth_load_op: wgpu::LoadOp::Load, - depth_store_op: wgpu::StoreOp::Store, - stencil_load_op: wgpu::LoadOp::Load, - stencil_store_op: wgpu::StoreOp::Store, - clear_depth: 0.0, - clear_stencil: 0, + depth_ops: Some(wgpu::Operations { + load: wgpu::LoadOp::Load, + store: true, + }), + stencil_ops: Some(wgpu::Operations { + load: wgpu::LoadOp::Load, + store: true, + }), }), }); @@ -1109,8 +1106,8 @@ impl RenderBackend for WgpuRenderBackend { self.write_stencil_mask, )); render_pass.set_bind_group(0, &bind_group, &[]); - render_pass.set_vertex_buffer(0, &self.quad_vbo, 0, 0); - render_pass.set_index_buffer(&self.quad_ibo, 0, 0); + render_pass.set_vertex_buffer(0, self.quad_vbo.slice(..)); + render_pass.set_index_buffer(self.quad_ibo.slice(..)); if self.num_masks_active < self.num_masks { render_pass.set_stencil_reference(self.write_stencil_mask); @@ -1189,19 +1186,22 @@ impl RenderBackend for WgpuRenderBackend { let mut render_pass = encoder.begin_render_pass(&wgpu::RenderPassDescriptor { color_attachments: &[wgpu::RenderPassColorAttachmentDescriptor { attachment: color_attachment, - load_op: wgpu::LoadOp::Load, - store_op: wgpu::StoreOp::Store, - clear_color: wgpu::Color::WHITE, resolve_target, + ops: wgpu::Operations { + load: wgpu::LoadOp::Load, + store: true, + }, }], depth_stencil_attachment: Some(wgpu::RenderPassDepthStencilAttachmentDescriptor { attachment: &self.depth_texture_view, - depth_load_op: wgpu::LoadOp::Load, - depth_store_op: wgpu::StoreOp::Store, - stencil_load_op: wgpu::LoadOp::Load, - stencil_store_op: wgpu::StoreOp::Store, - clear_depth: 0.0, - clear_stencil: 0, + depth_ops: Some(wgpu::Operations { + load: wgpu::LoadOp::Load, + store: true, + }), + stencil_ops: Some(wgpu::Operations { + load: wgpu::LoadOp::Load, + store: true, + }), }), }); @@ -1234,8 +1234,8 @@ impl RenderBackend for WgpuRenderBackend { } render_pass.set_bind_group(0, &draw.bind_group, &[]); - render_pass.set_vertex_buffer(0, &draw.vertex_buffer, 0, 0); - render_pass.set_index_buffer(&draw.index_buffer, 0, 0); + render_pass.set_vertex_buffer(0, draw.vertex_buffer.slice(..)); + render_pass.set_index_buffer(draw.index_buffer.slice(..)); if self.num_masks_active < self.num_masks { render_pass.set_stencil_reference(self.write_stencil_mask); @@ -1260,7 +1260,7 @@ impl RenderBackend for WgpuRenderBackend { self.target.submit( &self.device, &self.queue, - &[register_buffer, encoder.finish()], + vec![register_buffer, encoder.finish()], ); } } @@ -1345,20 +1345,23 @@ impl RenderBackend for WgpuRenderBackend { encoder.begin_render_pass(&wgpu::RenderPassDescriptor { color_attachments: &[wgpu::RenderPassColorAttachmentDescriptor { attachment: color_attachment, - load_op: wgpu::LoadOp::Load, - store_op: wgpu::StoreOp::Store, - clear_color: wgpu::Color::WHITE, resolve_target, + ops: wgpu::Operations { + load: wgpu::LoadOp::Load, + store: true, + }, }], depth_stencil_attachment: Some( wgpu::RenderPassDepthStencilAttachmentDescriptor { attachment: &self.depth_texture_view, - depth_load_op: wgpu::LoadOp::Load, - depth_store_op: wgpu::StoreOp::Store, - stencil_load_op: wgpu::LoadOp::Clear, - stencil_store_op: wgpu::StoreOp::Store, - clear_depth: 0.0, - clear_stencil: self.test_stencil_mask, + depth_ops: Some(wgpu::Operations { + load: wgpu::LoadOp::Load, + store: true, + }), + stencil_ops: Some(wgpu::Operations { + load: wgpu::LoadOp::Clear(self.test_stencil_mask), + store: true, + }), }, ), }); diff --git a/render/wgpu/src/pipelines.rs b/render/wgpu/src/pipelines.rs index 8307311ff..6e971e101 100644 --- a/render/wgpu/src/pipelines.rs +++ b/render/wgpu/src/pipelines.rs @@ -33,35 +33,47 @@ impl ShapePipeline { impl Pipelines { pub fn new(device: &wgpu::Device, msaa_sample_count: u32) -> Result { - let color_vs_bytes = include_bytes!("../shaders/color.vert.spv"); - let color_vs = device.create_shader_module(&wgpu::read_spirv(std::io::Cursor::new( - &color_vs_bytes[..], - ))?); - let color_fs_bytes = include_bytes!("../shaders/color.frag.spv"); - let color_fs = device.create_shader_module(&wgpu::read_spirv(std::io::Cursor::new( - &color_fs_bytes[..], - ))?); - let texture_vs_bytes = include_bytes!("../shaders/texture.vert.spv"); - let texture_vs = device.create_shader_module(&wgpu::read_spirv(std::io::Cursor::new( - &texture_vs_bytes[..], - ))?); - let gradient_fs_bytes = include_bytes!("../shaders/gradient.frag.spv"); - let gradient_fs = device.create_shader_module(&wgpu::read_spirv(std::io::Cursor::new( - &gradient_fs_bytes[..], - ))?); - let bitmap_fs_bytes = include_bytes!("../shaders/bitmap.frag.spv"); - let bitmap_fs = device.create_shader_module(&wgpu::read_spirv(std::io::Cursor::new( - &bitmap_fs_bytes[..], - ))?); + let color_vs = + device.create_shader_module(wgpu::include_spirv!("../shaders/color.vert.spv")); + let color_fs = + device.create_shader_module(wgpu::include_spirv!("../shaders/color.frag.spv")); + let texture_vs = + device.create_shader_module(wgpu::include_spirv!("../shaders/texture.vert.spv")); + let gradient_fs = + device.create_shader_module(wgpu::include_spirv!("../shaders/gradient.frag.spv")); + let bitmap_fs = + device.create_shader_module(wgpu::include_spirv!("../shaders/bitmap.frag.spv")); + + let vertex_buffers_description = [wgpu::VertexBufferDescriptor { + stride: std::mem::size_of::() as u64, + step_mode: wgpu::InputStepMode::Vertex, + attributes: &vertex_attr_array![ + 0 => Float2, + 1 => Float4 + ], + }]; Ok(Self { - color: create_color_pipelines(&device, &color_vs, &color_fs, msaa_sample_count), - bitmap: create_bitmap_pipeline(&device, &texture_vs, &bitmap_fs, msaa_sample_count), + color: create_color_pipelines( + &device, + &color_vs, + &color_fs, + msaa_sample_count, + &vertex_buffers_description, + ), + bitmap: create_bitmap_pipeline( + &device, + &texture_vs, + &bitmap_fs, + msaa_sample_count, + &vertex_buffers_description, + ), gradient: create_gradient_pipeline( &device, &texture_vs, &gradient_fs, msaa_sample_count, + &vertex_buffers_description, ), }) } @@ -73,10 +85,12 @@ fn create_pipeline_descriptor<'a>( pipeline_layout: &'a wgpu::PipelineLayout, depth_stencil_state: Option, color_states: &'a [wgpu::ColorStateDescriptor], + vertex_buffers_description: &'a [wgpu::VertexBufferDescriptor<'a>], msaa_sample_count: u32, ) -> wgpu::RenderPipelineDescriptor<'a> { wgpu::RenderPipelineDescriptor { - layout: &pipeline_layout, + label: None, + layout: Some(&pipeline_layout), vertex_stage: wgpu::ProgrammableStageDescriptor { module: &vertex_shader, entry_point: "main", @@ -88,6 +102,7 @@ fn create_pipeline_descriptor<'a>( rasterization_state: Some(wgpu::RasterizationStateDescriptor { front_face: wgpu::FrontFace::Ccw, cull_mode: wgpu::CullMode::None, + clamp_depth: false, depth_bias: 0, depth_bias_slope_scale: 0.0, depth_bias_clamp: 0.0, @@ -100,14 +115,7 @@ fn create_pipeline_descriptor<'a>( alpha_to_coverage_enabled: false, vertex_state: wgpu::VertexStateDescriptor { index_format: wgpu::IndexFormat::Uint16, - vertex_buffers: &[wgpu::VertexBufferDescriptor { - stride: std::mem::size_of::() as u64, - step_mode: wgpu::InputStepMode::Vertex, - attributes: &vertex_attr_array![ - 0 => Float2, - 1 => Float4 - ], - }], + vertex_buffers: vertex_buffers_description, }, } } @@ -117,26 +125,37 @@ fn create_color_pipelines( vertex_shader: &wgpu::ShaderModule, fragment_shader: &wgpu::ShaderModule, msaa_sample_count: u32, + vertex_buffers_description: &[wgpu::VertexBufferDescriptor<'_>], ) -> ShapePipeline { let label = create_debug_label!("Color shape bind group"); let bind_layout = device.create_bind_group_layout(&wgpu::BindGroupLayoutDescriptor { - bindings: &[ + entries: &[ wgpu::BindGroupLayoutEntry { binding: 0, visibility: wgpu::ShaderStage::VERTEX, - ty: wgpu::BindingType::UniformBuffer { dynamic: false }, + ty: wgpu::BindingType::UniformBuffer { + dynamic: false, + min_binding_size: None, + }, + count: None, }, wgpu::BindGroupLayoutEntry { binding: 1, visibility: wgpu::ShaderStage::VERTEX, - ty: wgpu::BindingType::UniformBuffer { dynamic: false }, + ty: wgpu::BindingType::UniformBuffer { + dynamic: false, + min_binding_size: None, + }, + count: None, }, ], label: label.as_deref(), }); let pipeline_layout = device.create_pipeline_layout(&wgpu::PipelineLayoutDescriptor { + label: None, bind_group_layouts: &[&bind_layout], + push_constant_ranges: &[], }); let mut write_mask_pipelines = Vec::new(); @@ -151,20 +170,22 @@ fn create_color_pipelines( format: wgpu::TextureFormat::Depth24PlusStencil8, depth_write_enabled: true, depth_compare: wgpu::CompareFunction::Always, - stencil_front: wgpu::StencilStateFaceDescriptor { - compare: wgpu::CompareFunction::Always, - fail_op: wgpu::StencilOperation::Keep, - depth_fail_op: wgpu::StencilOperation::Keep, - pass_op: wgpu::StencilOperation::Replace, + stencil: wgpu::StencilStateDescriptor { + front: wgpu::StencilStateFaceDescriptor { + compare: wgpu::CompareFunction::Always, + fail_op: wgpu::StencilOperation::Keep, + depth_fail_op: wgpu::StencilOperation::Keep, + pass_op: wgpu::StencilOperation::Replace, + }, + back: wgpu::StencilStateFaceDescriptor { + compare: wgpu::CompareFunction::Always, + fail_op: wgpu::StencilOperation::Keep, + depth_fail_op: wgpu::StencilOperation::Keep, + pass_op: wgpu::StencilOperation::Replace, + }, + read_mask: 0, + write_mask: 1 << i, }, - stencil_back: wgpu::StencilStateFaceDescriptor { - compare: wgpu::CompareFunction::Always, - fail_op: wgpu::StencilOperation::Keep, - depth_fail_op: wgpu::StencilOperation::Keep, - pass_op: wgpu::StencilOperation::Replace, - }, - stencil_read_mask: 0, - stencil_write_mask: 1 << i, }), &[wgpu::ColorStateDescriptor { format: wgpu::TextureFormat::Bgra8Unorm, @@ -180,6 +201,7 @@ fn create_color_pipelines( }, write_mask: wgpu::ColorWrite::empty(), }], + vertex_buffers_description, msaa_sample_count, ))); } @@ -193,20 +215,22 @@ fn create_color_pipelines( format: wgpu::TextureFormat::Depth24PlusStencil8, depth_write_enabled: true, depth_compare: wgpu::CompareFunction::Always, - stencil_front: wgpu::StencilStateFaceDescriptor { - compare: wgpu::CompareFunction::Equal, - fail_op: wgpu::StencilOperation::Keep, - depth_fail_op: wgpu::StencilOperation::Keep, - pass_op: wgpu::StencilOperation::Keep, + stencil: wgpu::StencilStateDescriptor { + front: wgpu::StencilStateFaceDescriptor { + compare: wgpu::CompareFunction::Equal, + fail_op: wgpu::StencilOperation::Keep, + depth_fail_op: wgpu::StencilOperation::Keep, + pass_op: wgpu::StencilOperation::Keep, + }, + back: wgpu::StencilStateFaceDescriptor { + compare: wgpu::CompareFunction::Equal, + fail_op: wgpu::StencilOperation::Keep, + depth_fail_op: wgpu::StencilOperation::Keep, + pass_op: wgpu::StencilOperation::Keep, + }, + read_mask: i, + write_mask: 0, }, - stencil_back: wgpu::StencilStateFaceDescriptor { - compare: wgpu::CompareFunction::Equal, - fail_op: wgpu::StencilOperation::Keep, - depth_fail_op: wgpu::StencilOperation::Keep, - pass_op: wgpu::StencilOperation::Keep, - }, - stencil_read_mask: i, - stencil_write_mask: 0, }), &[wgpu::ColorStateDescriptor { format: wgpu::TextureFormat::Bgra8Unorm, @@ -222,6 +246,7 @@ fn create_color_pipelines( }, write_mask: wgpu::ColorWrite::ALL, }], + vertex_buffers_description, msaa_sample_count, ))); } @@ -238,24 +263,37 @@ fn create_bitmap_pipeline( vertex_shader: &wgpu::ShaderModule, fragment_shader: &wgpu::ShaderModule, msaa_sample_count: u32, + vertex_buffers_description: &[wgpu::VertexBufferDescriptor<'_>], ) -> ShapePipeline { let label = create_debug_label!("Bitmap shape bind group"); let bind_layout = device.create_bind_group_layout(&wgpu::BindGroupLayoutDescriptor { - bindings: &[ + entries: &[ wgpu::BindGroupLayoutEntry { binding: 0, visibility: wgpu::ShaderStage::VERTEX, - ty: wgpu::BindingType::UniformBuffer { dynamic: false }, + ty: wgpu::BindingType::UniformBuffer { + dynamic: false, + min_binding_size: None, + }, + count: None, }, wgpu::BindGroupLayoutEntry { binding: 1, visibility: wgpu::ShaderStage::VERTEX, - ty: wgpu::BindingType::UniformBuffer { dynamic: false }, + ty: wgpu::BindingType::UniformBuffer { + dynamic: false, + min_binding_size: None, + }, + count: None, }, wgpu::BindGroupLayoutEntry { binding: 2, visibility: wgpu::ShaderStage::FRAGMENT, - ty: wgpu::BindingType::UniformBuffer { dynamic: false }, + ty: wgpu::BindingType::UniformBuffer { + dynamic: false, + min_binding_size: None, + }, + count: None, }, wgpu::BindGroupLayoutEntry { binding: 3, @@ -265,18 +303,22 @@ fn create_bitmap_pipeline( component_type: wgpu::TextureComponentType::Float, dimension: wgpu::TextureViewDimension::D2, }, + count: None, }, wgpu::BindGroupLayoutEntry { binding: 4, visibility: wgpu::ShaderStage::FRAGMENT, ty: wgpu::BindingType::Sampler { comparison: false }, + count: None, }, ], label: label.as_deref(), }); let pipeline_layout = device.create_pipeline_layout(&wgpu::PipelineLayoutDescriptor { + label: None, bind_group_layouts: &[&bind_layout], + push_constant_ranges: &[], }); let mut write_mask_pipelines = Vec::new(); @@ -291,20 +333,22 @@ fn create_bitmap_pipeline( format: wgpu::TextureFormat::Depth24PlusStencil8, depth_write_enabled: true, depth_compare: wgpu::CompareFunction::Always, - stencil_front: wgpu::StencilStateFaceDescriptor { - compare: wgpu::CompareFunction::Always, - fail_op: wgpu::StencilOperation::Keep, - depth_fail_op: wgpu::StencilOperation::Keep, - pass_op: wgpu::StencilOperation::Replace, + stencil: wgpu::StencilStateDescriptor { + front: wgpu::StencilStateFaceDescriptor { + compare: wgpu::CompareFunction::Always, + fail_op: wgpu::StencilOperation::Keep, + depth_fail_op: wgpu::StencilOperation::Keep, + pass_op: wgpu::StencilOperation::Replace, + }, + back: wgpu::StencilStateFaceDescriptor { + compare: wgpu::CompareFunction::Always, + fail_op: wgpu::StencilOperation::Keep, + depth_fail_op: wgpu::StencilOperation::Keep, + pass_op: wgpu::StencilOperation::Replace, + }, + read_mask: 0, + write_mask: 1 << i, }, - stencil_back: wgpu::StencilStateFaceDescriptor { - compare: wgpu::CompareFunction::Always, - fail_op: wgpu::StencilOperation::Keep, - depth_fail_op: wgpu::StencilOperation::Keep, - pass_op: wgpu::StencilOperation::Replace, - }, - stencil_read_mask: 0, - stencil_write_mask: 1 << i, }), &[wgpu::ColorStateDescriptor { format: wgpu::TextureFormat::Bgra8Unorm, @@ -320,6 +364,7 @@ fn create_bitmap_pipeline( }, write_mask: wgpu::ColorWrite::empty(), }], + vertex_buffers_description, msaa_sample_count, ))); } @@ -333,20 +378,22 @@ fn create_bitmap_pipeline( format: wgpu::TextureFormat::Depth24PlusStencil8, depth_write_enabled: true, depth_compare: wgpu::CompareFunction::Always, - stencil_front: wgpu::StencilStateFaceDescriptor { - compare: wgpu::CompareFunction::Equal, - fail_op: wgpu::StencilOperation::Keep, - depth_fail_op: wgpu::StencilOperation::Keep, - pass_op: wgpu::StencilOperation::Keep, + stencil: wgpu::StencilStateDescriptor { + front: wgpu::StencilStateFaceDescriptor { + compare: wgpu::CompareFunction::Equal, + fail_op: wgpu::StencilOperation::Keep, + depth_fail_op: wgpu::StencilOperation::Keep, + pass_op: wgpu::StencilOperation::Keep, + }, + back: wgpu::StencilStateFaceDescriptor { + compare: wgpu::CompareFunction::Equal, + fail_op: wgpu::StencilOperation::Keep, + depth_fail_op: wgpu::StencilOperation::Keep, + pass_op: wgpu::StencilOperation::Keep, + }, + read_mask: i, + write_mask: 0, }, - stencil_back: wgpu::StencilStateFaceDescriptor { - compare: wgpu::CompareFunction::Equal, - fail_op: wgpu::StencilOperation::Keep, - depth_fail_op: wgpu::StencilOperation::Keep, - pass_op: wgpu::StencilOperation::Keep, - }, - stencil_read_mask: i, - stencil_write_mask: 0, }), &[wgpu::ColorStateDescriptor { format: wgpu::TextureFormat::Bgra8Unorm, @@ -362,6 +409,7 @@ fn create_bitmap_pipeline( }, write_mask: wgpu::ColorWrite::ALL, }], + vertex_buffers_description, msaa_sample_count, ))); } @@ -378,39 +426,56 @@ fn create_gradient_pipeline( vertex_shader: &wgpu::ShaderModule, fragment_shader: &wgpu::ShaderModule, msaa_sample_count: u32, + vertex_buffers_description: &[wgpu::VertexBufferDescriptor<'_>], ) -> ShapePipeline { let label = create_debug_label!("Gradient shape bind group"); let bind_layout = device.create_bind_group_layout(&wgpu::BindGroupLayoutDescriptor { - bindings: &[ + entries: &[ wgpu::BindGroupLayoutEntry { binding: 0, visibility: wgpu::ShaderStage::VERTEX, - ty: wgpu::BindingType::UniformBuffer { dynamic: false }, + ty: wgpu::BindingType::UniformBuffer { + dynamic: false, + min_binding_size: None, + }, + count: None, }, wgpu::BindGroupLayoutEntry { binding: 1, visibility: wgpu::ShaderStage::VERTEX, - ty: wgpu::BindingType::UniformBuffer { dynamic: false }, + ty: wgpu::BindingType::UniformBuffer { + dynamic: false, + min_binding_size: None, + }, + count: None, }, wgpu::BindGroupLayoutEntry { binding: 2, visibility: wgpu::ShaderStage::FRAGMENT, - ty: wgpu::BindingType::UniformBuffer { dynamic: false }, + ty: wgpu::BindingType::UniformBuffer { + dynamic: false, + min_binding_size: None, + }, + count: None, }, wgpu::BindGroupLayoutEntry { binding: 3, visibility: wgpu::ShaderStage::FRAGMENT, ty: wgpu::BindingType::StorageBuffer { dynamic: false, + min_binding_size: None, readonly: true, }, + count: None, }, ], label: label.as_deref(), }); let pipeline_layout = device.create_pipeline_layout(&wgpu::PipelineLayoutDescriptor { + label: None, bind_group_layouts: &[&bind_layout], + push_constant_ranges: &[], }); let mut write_mask_pipelines = Vec::new(); @@ -425,20 +490,22 @@ fn create_gradient_pipeline( format: wgpu::TextureFormat::Depth24PlusStencil8, depth_write_enabled: true, depth_compare: wgpu::CompareFunction::Always, - stencil_front: wgpu::StencilStateFaceDescriptor { - compare: wgpu::CompareFunction::Always, - fail_op: wgpu::StencilOperation::Keep, - depth_fail_op: wgpu::StencilOperation::Keep, - pass_op: wgpu::StencilOperation::Replace, + stencil: wgpu::StencilStateDescriptor { + front: wgpu::StencilStateFaceDescriptor { + compare: wgpu::CompareFunction::Always, + fail_op: wgpu::StencilOperation::Keep, + depth_fail_op: wgpu::StencilOperation::Keep, + pass_op: wgpu::StencilOperation::Replace, + }, + back: wgpu::StencilStateFaceDescriptor { + compare: wgpu::CompareFunction::Always, + fail_op: wgpu::StencilOperation::Keep, + depth_fail_op: wgpu::StencilOperation::Keep, + pass_op: wgpu::StencilOperation::Replace, + }, + read_mask: 0, + write_mask: 1 << i, }, - stencil_back: wgpu::StencilStateFaceDescriptor { - compare: wgpu::CompareFunction::Always, - fail_op: wgpu::StencilOperation::Keep, - depth_fail_op: wgpu::StencilOperation::Keep, - pass_op: wgpu::StencilOperation::Replace, - }, - stencil_read_mask: 0, - stencil_write_mask: 1 << i, }), &[wgpu::ColorStateDescriptor { format: wgpu::TextureFormat::Bgra8Unorm, @@ -454,6 +521,7 @@ fn create_gradient_pipeline( }, write_mask: wgpu::ColorWrite::empty(), }], + vertex_buffers_description, msaa_sample_count, ))); } @@ -467,20 +535,22 @@ fn create_gradient_pipeline( format: wgpu::TextureFormat::Depth24PlusStencil8, depth_write_enabled: true, depth_compare: wgpu::CompareFunction::Always, - stencil_front: wgpu::StencilStateFaceDescriptor { - compare: wgpu::CompareFunction::Equal, - fail_op: wgpu::StencilOperation::Keep, - depth_fail_op: wgpu::StencilOperation::Keep, - pass_op: wgpu::StencilOperation::Keep, + stencil: wgpu::StencilStateDescriptor { + front: wgpu::StencilStateFaceDescriptor { + compare: wgpu::CompareFunction::Equal, + fail_op: wgpu::StencilOperation::Keep, + depth_fail_op: wgpu::StencilOperation::Keep, + pass_op: wgpu::StencilOperation::Keep, + }, + back: wgpu::StencilStateFaceDescriptor { + compare: wgpu::CompareFunction::Equal, + fail_op: wgpu::StencilOperation::Keep, + depth_fail_op: wgpu::StencilOperation::Keep, + pass_op: wgpu::StencilOperation::Keep, + }, + read_mask: i, + write_mask: 0, }, - stencil_back: wgpu::StencilStateFaceDescriptor { - compare: wgpu::CompareFunction::Equal, - fail_op: wgpu::StencilOperation::Keep, - depth_fail_op: wgpu::StencilOperation::Keep, - pass_op: wgpu::StencilOperation::Keep, - }, - stencil_read_mask: i, - stencil_write_mask: 0, }), &[wgpu::ColorStateDescriptor { format: wgpu::TextureFormat::Bgra8Unorm, @@ -496,6 +566,7 @@ fn create_gradient_pipeline( }, write_mask: wgpu::ColorWrite::ALL, }], + vertex_buffers_description, msaa_sample_count, ))); } diff --git a/render/wgpu/src/shapes.rs b/render/wgpu/src/shapes.rs index c5a2790ee..c3bad02fe 100644 --- a/render/wgpu/src/shapes.rs +++ b/render/wgpu/src/shapes.rs @@ -97,20 +97,18 @@ impl IncompleteDrawType { create_debug_label!("Shape {} (color) draw {} bindgroup", shape_id, draw_id); let bind_group = device.create_bind_group(&wgpu::BindGroupDescriptor { layout: &pipelines.color.bind_layout, - bindings: &[ - wgpu::Binding { + entries: &[ + wgpu::BindGroupEntry { binding: 0, - resource: wgpu::BindingResource::Buffer { - buffer: transforms_ubo, - range: 0..std::mem::size_of::() as u64, - }, + resource: wgpu::BindingResource::Buffer( + transforms_ubo.slice(0..std::mem::size_of::() as u64), + ), }, - wgpu::Binding { + wgpu::BindGroupEntry { binding: 1, - resource: wgpu::BindingResource::Buffer { - buffer: colors_ubo, - range: 0..std::mem::size_of::() as u64, - }, + resource: wgpu::BindingResource::Buffer( + colors_ubo.slice(0..std::mem::size_of::() as u64), + ), }, ], label: bind_group_label.as_deref(), @@ -142,7 +140,7 @@ impl IncompleteDrawType { let gradient_ubo = create_buffer_with_data( device, bytemuck::cast_slice(&[gradient]), - wgpu::BufferUsage::STORAGE_READ, + wgpu::BufferUsage::STORAGE, create_debug_label!( "Shape {} draw {} gradient ubo transfer buffer", shape_id, @@ -154,34 +152,32 @@ impl IncompleteDrawType { create_debug_label!("Shape {} (gradient) draw {} bindgroup", shape_id, draw_id); let bind_group = device.create_bind_group(&wgpu::BindGroupDescriptor { layout: &pipelines.gradient.bind_layout, - bindings: &[ - wgpu::Binding { + entries: &[ + wgpu::BindGroupEntry { binding: 0, - resource: wgpu::BindingResource::Buffer { - buffer: transforms_ubo, - range: 0..std::mem::size_of::() as u64, - }, + resource: wgpu::BindingResource::Buffer( + transforms_ubo.slice(0..std::mem::size_of::() as u64), + ), }, - wgpu::Binding { + wgpu::BindGroupEntry { binding: 1, - resource: wgpu::BindingResource::Buffer { - buffer: &tex_transforms_ubo, - range: 0..std::mem::size_of::() as u64, - }, + resource: wgpu::BindingResource::Buffer( + tex_transforms_ubo + .slice(0..std::mem::size_of::() as u64), + ), }, - wgpu::Binding { + wgpu::BindGroupEntry { binding: 2, - resource: wgpu::BindingResource::Buffer { - buffer: colors_ubo, - range: 0..std::mem::size_of::() as u64, - }, + resource: wgpu::BindingResource::Buffer( + colors_ubo.slice(0..std::mem::size_of::() as u64), + ), }, - wgpu::Binding { + wgpu::BindGroupEntry { binding: 3, - resource: wgpu::BindingResource::Buffer { - buffer: &gradient_ubo, - range: 0..std::mem::size_of::() as u64, - }, + resource: wgpu::BindingResource::Buffer( + gradient_ubo + .slice(0..std::mem::size_of::() as u64), + ), }, ], label: bind_group_label.as_deref(), @@ -229,6 +225,7 @@ impl IncompleteDrawType { }; let sampler = device.create_sampler(&wgpu::SamplerDescriptor { + label: None, address_mode_u: address_mode, address_mode_v: address_mode, address_mode_w: address_mode, @@ -237,40 +234,39 @@ impl IncompleteDrawType { mipmap_filter: filter, lod_min_clamp: 0.0, lod_max_clamp: 100.0, - compare: wgpu::CompareFunction::Undefined, + compare: None, + anisotropy_clamp: None, }); let bind_group_label = create_debug_label!("Shape {} (bitmap) draw {} bindgroup", shape_id, draw_id); let bind_group = device.create_bind_group(&wgpu::BindGroupDescriptor { layout: &pipelines.bitmap.bind_layout, - bindings: &[ - wgpu::Binding { + entries: &[ + wgpu::BindGroupEntry { binding: 0, - resource: wgpu::BindingResource::Buffer { - buffer: transforms_ubo, - range: 0..std::mem::size_of::() as u64, - }, + resource: wgpu::BindingResource::Buffer( + transforms_ubo.slice(0..std::mem::size_of::() as u64), + ), }, - wgpu::Binding { + wgpu::BindGroupEntry { binding: 1, - resource: wgpu::BindingResource::Buffer { - buffer: &tex_transforms_ubo, - range: 0..std::mem::size_of::() as u64, - }, + resource: wgpu::BindingResource::Buffer( + tex_transforms_ubo + .slice(0..std::mem::size_of::() as u64), + ), }, - wgpu::Binding { + wgpu::BindGroupEntry { binding: 2, - resource: wgpu::BindingResource::Buffer { - buffer: colors_ubo, - range: 0..std::mem::size_of::() as u64, - }, + resource: wgpu::BindingResource::Buffer( + colors_ubo.slice(0..std::mem::size_of::() as u64), + ), }, - wgpu::Binding { + wgpu::BindGroupEntry { binding: 3, resource: wgpu::BindingResource::TextureView(&texture_view), }, - wgpu::Binding { + wgpu::BindGroupEntry { binding: 4, resource: wgpu::BindingResource::Sampler(&sampler), }, diff --git a/render/wgpu/src/target.rs b/render/wgpu/src/target.rs index 6b75caa6e..0a2ee6cd7 100644 --- a/render/wgpu/src/target.rs +++ b/render/wgpu/src/target.rs @@ -1,3 +1,4 @@ +use crate::utils::BufferDimensions; use futures::executor::block_on; use image::buffer::ConvertBuffer; use image::{Bgra, ImageBuffer, RgbaImage}; @@ -18,13 +19,13 @@ pub trait RenderTarget: Debug + 'static { fn height(&self) -> u32; - fn get_next_texture(&mut self) -> Result; + fn get_next_texture(&mut self) -> Result; - fn submit( + fn submit>( &self, device: &wgpu::Device, queue: &wgpu::Queue, - command_buffers: &[wgpu::CommandBuffer], + command_buffers: I, ); } @@ -36,11 +37,11 @@ pub struct SwapChainTarget { } #[derive(Debug)] -pub struct SwapChainTargetFrame(wgpu::SwapChainOutput); +pub struct SwapChainTargetFrame(wgpu::SwapChainFrame); impl RenderTargetFrame for SwapChainTargetFrame { fn view(&self) -> &wgpu::TextureView { - &self.0.view + &self.0.output.view } } @@ -83,15 +84,17 @@ impl RenderTarget for SwapChainTarget { self.swap_chain_desc.height } - fn get_next_texture(&mut self) -> Result { - self.swap_chain.get_next_texture().map(SwapChainTargetFrame) + fn get_next_texture(&mut self) -> Result { + self.swap_chain + .get_current_frame() + .map(SwapChainTargetFrame) } - fn submit( + fn submit>( &self, _device: &wgpu::Device, queue: &wgpu::Queue, - command_buffers: &[wgpu::CommandBuffer], + command_buffers: I, ) { queue.submit(command_buffers); } @@ -103,6 +106,7 @@ pub struct TextureTarget { texture: wgpu::Texture, format: wgpu::TextureFormat, buffer: wgpu::Buffer, + buffer_dimensions: BufferDimensions, } #[derive(Debug)] @@ -118,6 +122,7 @@ impl RenderTargetFrame for TextureTargetFrame { impl TextureTarget { pub fn new(device: &wgpu::Device, size: (u32, u32)) -> Self { + let buffer_dimensions = BufferDimensions::new(size.0 as usize, size.1 as usize); let size = wgpu::Extent3d { width: size.0, height: size.1, @@ -128,7 +133,6 @@ impl TextureTarget { let texture = device.create_texture(&wgpu::TextureDescriptor { label: texture_label.as_deref(), size, - array_layer_count: 1, mip_level_count: 1, sample_count: 1, dimension: wgpu::TextureDimension::D2, @@ -138,29 +142,35 @@ impl TextureTarget { let buffer_label = create_debug_label!("Render target buffer"); let buffer = device.create_buffer(&wgpu::BufferDescriptor { label: buffer_label.as_deref(), - size: size.width as u64 * size.height as u64 * 4, + size: (buffer_dimensions.padded_bytes_per_row * buffer_dimensions.height) as u64, usage: wgpu::BufferUsage::COPY_DST | wgpu::BufferUsage::MAP_READ, + mapped_at_creation: false, }); Self { size, texture, format, buffer, + buffer_dimensions, } } pub fn capture(&self, device: &wgpu::Device) -> Option { - let buffer_future = self - .buffer - .map_read(0, self.size.width as u64 * self.size.height as u64 * 4); + let buffer_future = self.buffer.slice(..).map_async(wgpu::MapMode::Read); device.poll(wgpu::Maintain::Wait); match block_on(buffer_future) { - Ok(map) => { - let bgra = BgraImage::from_raw( - self.size.width, - self.size.height, - Vec::from(map.as_slice()), + Ok(()) => { + let map = self.buffer.slice(..).get_mapped_range(); + let mut buffer = Vec::with_capacity( + self.buffer_dimensions.height * self.buffer_dimensions.unpadded_bytes_per_row, ); + + for chunk in map.chunks(self.buffer_dimensions.padded_bytes_per_row) { + buffer + .extend_from_slice(&chunk[..self.buffer_dimensions.unpadded_bytes_per_row]); + } + + let bgra = BgraImage::from_raw(self.size.width, self.size.height, buffer); bgra.map(|image| image.convert()) } Err(e) => { @@ -182,7 +192,6 @@ impl RenderTarget for TextureTarget { self.texture = device.create_texture(&wgpu::TextureDescriptor { label: label.as_deref(), size: self.size, - array_layer_count: 1, mip_level_count: 1, sample_count: 1, dimension: wgpu::TextureDimension::D2, @@ -195,6 +204,7 @@ impl RenderTarget for TextureTarget { label: buffer_label.as_deref(), size: width as u64 * height as u64 * 4, usage: wgpu::BufferUsage::COPY_DST | wgpu::BufferUsage::MAP_READ, + mapped_at_creation: false, }); } @@ -210,15 +220,17 @@ impl RenderTarget for TextureTarget { self.size.height } - fn get_next_texture(&mut self) -> Result { - Ok(TextureTargetFrame(self.texture.create_default_view())) + fn get_next_texture(&mut self) -> Result { + Ok(TextureTargetFrame( + self.texture.create_view(&Default::default()), + )) } - fn submit( + fn submit>( &self, device: &wgpu::Device, queue: &wgpu::Queue, - command_buffers: &[wgpu::CommandBuffer], + command_buffers: I, ) { let label = create_debug_label!("Render target transfer encoder"); let mut encoder = device.create_command_encoder(&wgpu::CommandEncoderDescriptor { @@ -228,18 +240,18 @@ impl RenderTarget for TextureTarget { wgpu::TextureCopyView { texture: &self.texture, mip_level: 0, - array_layer: 0, origin: wgpu::Origin3d::ZERO, }, wgpu::BufferCopyView { buffer: &self.buffer, - offset: 0, - bytes_per_row: self.width() * 4, - rows_per_image: 0, + layout: wgpu::TextureDataLayout { + offset: 0, + bytes_per_row: self.buffer_dimensions.padded_bytes_per_row as u32, + rows_per_image: 0, + }, }, self.size, ); - queue.submit(command_buffers); - queue.submit(&[encoder.finish()]); + queue.submit(command_buffers.into_iter().chain(Some(encoder.finish()))); } } diff --git a/render/wgpu/src/utils.rs b/render/wgpu/src/utils.rs index 053b70027..0e45e0f5e 100644 --- a/render/wgpu/src/utils.rs +++ b/render/wgpu/src/utils.rs @@ -1,7 +1,9 @@ use lyon::lyon_algorithms::path::Path; use ruffle_core::shape_utils::DrawCommand; use ruffle_core::swf; +use std::mem::size_of; use swf::{GradientSpread, Twips}; +use wgpu::util::DeviceExt; macro_rules! create_debug_label { ($($arg:tt)*) => ( if cfg!(feature = "render_debug_labels") { @@ -18,13 +20,11 @@ pub fn create_buffer_with_data( usage: wgpu::BufferUsage, label: Option, ) -> wgpu::Buffer { - let mapped = device.create_buffer_mapped(&wgpu::BufferDescriptor { - size: data.len() as u64, + device.create_buffer_init(&wgpu::util::BufferInitDescriptor { usage, label: label.as_deref(), - }); - mapped.data.copy_from_slice(data); - mapped.finish() + contents: data, + }) } pub fn point(x: Twips, y: Twips) -> lyon::math::Point { @@ -146,3 +146,28 @@ pub fn gradient_spread_mode_index(spread: GradientSpread) -> i32 { GradientSpread::Reflect => 2, } } + +// Based off wgpu example 'capture' +#[derive(Debug)] +pub struct BufferDimensions { + pub width: usize, + pub height: usize, + pub unpadded_bytes_per_row: usize, + pub padded_bytes_per_row: usize, +} + +impl BufferDimensions { + pub fn new(width: usize, height: usize) -> Self { + let bytes_per_pixel = size_of::(); + let unpadded_bytes_per_row = width * bytes_per_pixel; + let align = wgpu::COPY_BYTES_PER_ROW_ALIGNMENT as usize; + let padded_bytes_per_row_padding = (align - unpadded_bytes_per_row % align) % align; + let padded_bytes_per_row = unpadded_bytes_per_row + padded_bytes_per_row_padding; + Self { + width, + height, + unpadded_bytes_per_row, + padded_bytes_per_row, + } + } +}