From 4f83168891f911bebdb816fd8127f96fcb172d4f Mon Sep 17 00:00:00 2001 From: Dzmitry Malyshau Date: Wed, 6 Feb 2019 11:42:20 -0500 Subject: [PATCH 1/5] gfx dependency update --- Cargo.lock | 373 ++++++++++++++++---------------- libportability-gfx/src/conv.rs | 10 +- libportability-gfx/src/impls.rs | 37 ++-- 3 files changed, 207 insertions(+), 213 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5ba4f5f..20975ea 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3,17 +3,17 @@ name = "aho-corasick" version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "memchr 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr 2.1.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "andrew" -version = "0.1.4" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "line_drawing 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "rusttype 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", + "rusttype 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)", "walkdir 2.2.7 (registry+https://github.com/rust-lang/crates.io-index)", "xdg 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "xml-rs 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -42,10 +42,10 @@ dependencies = [ [[package]] name = "ash" -version = "0.27.0" +version = "0.27.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "shared_library 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -54,14 +54,14 @@ name = "atty" version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", "termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "autocfg" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -69,10 +69,10 @@ name = "backtrace" version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "autocfg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "backtrace-sys 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)", "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-demangle 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -82,8 +82,8 @@ name = "backtrace-sys" version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.29 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -98,12 +98,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "byteorder" -version = "1.2.7" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "cc" -version = "1.0.28" +version = "1.0.29" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -117,7 +117,7 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "gleam 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -136,7 +136,7 @@ dependencies = [ "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "block 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "core-graphics 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", "objc 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -150,7 +150,7 @@ dependencies = [ "core-foundation 0.6.3 (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.46 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", "objc 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -160,7 +160,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -169,7 +169,7 @@ version = "0.6.3" 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.46 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -177,7 +177,7 @@ name = "core-foundation-sys" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -193,7 +193,7 @@ dependencies = [ "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "core-foundation 0.5.1 (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.46 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -204,7 +204,7 @@ dependencies = [ "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "core-foundation 0.6.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.46 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -221,9 +221,9 @@ name = "derivative" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.24 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -265,9 +265,9 @@ name = "failure_derive" version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.24 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)", "synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -285,17 +285,8 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] -name = "fuchsia-zircon" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "fuchsia-zircon-sys" -version = "0.3.3" +name = "fuchsia-cprng" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -303,7 +294,7 @@ name = "fxhash" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", + "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -314,7 +305,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "gfx-backend-dx11" version = "0.1.0" -source = "git+https://github.com/gfx-rs/gfx#4f9945efb0d08685fa6edc56acf826fd3b5c39fe" +source = "git+https://github.com/gfx-rs/gfx#5dac01c1be02db9251d8e61098dda204c999ae5f" dependencies = [ "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "derivative 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -322,8 +313,8 @@ dependencies = [ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", "range-alloc 0.1.0 (git+https://github.com/gfx-rs/gfx)", - "smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", - "spirv_cross 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", + "spirv_cross 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "winit 0.18.1 (registry+https://github.com/rust-lang/crates.io-index)", "wio 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -332,7 +323,7 @@ dependencies = [ [[package]] name = "gfx-backend-dx12" version = "0.1.0" -source = "git+https://github.com/gfx-rs/gfx#4f9945efb0d08685fa6edc56acf826fd3b5c39fe" +source = "git+https://github.com/gfx-rs/gfx#5dac01c1be02db9251d8e61098dda204c999ae5f" dependencies = [ "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "d3d12 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -340,8 +331,8 @@ dependencies = [ "gfx-hal 0.1.0 (git+https://github.com/gfx-rs/gfx)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "range-alloc 0.1.0 (git+https://github.com/gfx-rs/gfx)", - "smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", - "spirv_cross 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", + "spirv_cross 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "winit 0.18.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -349,7 +340,7 @@ dependencies = [ [[package]] name = "gfx-backend-metal" version = "0.1.0" -source = "git+https://github.com/gfx-rs/gfx#4f9945efb0d08685fa6edc56acf826fd3b5c39fe" +source = "git+https://github.com/gfx-rs/gfx#5dac01c1be02db9251d8e61098dda204c999ae5f" dependencies = [ "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "block 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -362,8 +353,8 @@ dependencies = [ "objc 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", "range-alloc 0.1.0 (git+https://github.com/gfx-rs/gfx)", - "smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", - "spirv_cross 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", + "spirv_cross 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)", "storage-map 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "winit 0.18.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -371,14 +362,14 @@ dependencies = [ [[package]] name = "gfx-backend-vulkan" version = "0.1.0" -source = "git+https://github.com/gfx-rs/gfx#4f9945efb0d08685fa6edc56acf826fd3b5c39fe" +source = "git+https://github.com/gfx-rs/gfx#5dac01c1be02db9251d8e61098dda204c999ae5f" dependencies = [ - "ash 0.27.0 (registry+https://github.com/rust-lang/crates.io-index)", - "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", + "ash 0.27.1 (registry+https://github.com/rust-lang/crates.io-index)", + "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "gfx-hal 0.1.0 (git+https://github.com/gfx-rs/gfx)", "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "winit 0.18.1 (registry+https://github.com/rust-lang/crates.io-index)", "x11 2.18.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -388,7 +379,7 @@ dependencies = [ [[package]] name = "gfx-hal" version = "0.1.0" -source = "git+https://github.com/gfx-rs/gfx#4f9945efb0d08685fa6edc56acf826fd3b5c39fe" +source = "git+https://github.com/gfx-rs/gfx#5dac01c1be02db9251d8e61098dda204c999ae5f" dependencies = [ "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", @@ -435,7 +426,7 @@ dependencies = [ "core-graphics 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)", "gl_generator 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", "objc 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", "osmesa-sys 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "shared_library 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", @@ -475,7 +466,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "libc" -version = "0.2.46" +version = "0.2.48" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -483,7 +474,7 @@ name = "libloading" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.29 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -517,17 +508,16 @@ name = "malloc_buf" version = "0.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "memchr" -version = "2.1.2" +version = "2.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", - "version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -535,7 +525,7 @@ name = "memmap" version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -544,7 +534,7 @@ name = "memmap" version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -558,7 +548,7 @@ dependencies = [ "cocoa 0.18.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.46 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "objc 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", "objc-foundation 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -571,9 +561,9 @@ version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.29 (registry+https://github.com/rust-lang/crates.io-index)", "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -669,10 +659,10 @@ name = "parking_lot_core" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.5.6 (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.7 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -681,10 +671,10 @@ name = "parking_lot_core" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.6.5 (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.7 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -729,7 +719,7 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "0.4.24" +version = "0.4.27" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -742,36 +732,37 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "quote" -version = "0.6.10" +version = "0.6.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "rand" -version = "0.5.5" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", - "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_core 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", + "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "rand" -version = "0.6.4" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "autocfg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", "rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_os 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_jitter 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_os 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "rand_pcg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -782,21 +773,21 @@ name = "rand_chacha" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "autocfg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "rand_core" -version = "0.2.2" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "rand_core" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -804,7 +795,7 @@ name = "rand_hc" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -812,18 +803,28 @@ name = "rand_isaac" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "rand_jitter" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "rand_os" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", - "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -833,7 +834,7 @@ name = "rand_pcg" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -842,25 +843,25 @@ name = "rand_xorshift" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "range-alloc" version = "0.1.0" -source = "git+https://github.com/gfx-rs/gfx#4f9945efb0d08685fa6edc56acf826fd3b5c39fe" +source = "git+https://github.com/gfx-rs/gfx#5dac01c1be02db9251d8e61098dda204c999ae5f" [[package]] name = "rdrand" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "redox_syscall" -version = "0.1.50" +version = "0.1.51" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -868,7 +869,7 @@ name = "redox_termios" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "redox_syscall 0.1.50 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.51 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -877,15 +878,15 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "aho-corasick 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", - "memchr 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "regex-syntax 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr 2.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "regex-syntax 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", "thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "regex-syntax" -version = "0.6.4" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "ucd-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -927,13 +928,13 @@ dependencies = [ [[package]] name = "rusttype" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "approx 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", "ordered-float 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", - "stb_truetype 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", + "stb_truetype 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -941,7 +942,7 @@ name = "same-file" version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "winapi-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -968,12 +969,12 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "smallvec" -version = "0.6.7" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "unreachable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -984,24 +985,24 @@ name = "smithay-client-toolkit" version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "andrew 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "andrew 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "dlib 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "memmap 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "nix 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", - "wayland-client 0.21.10 (registry+https://github.com/rust-lang/crates.io-index)", - "wayland-commons 0.21.10 (registry+https://github.com/rust-lang/crates.io-index)", - "wayland-protocols 0.21.10 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", + "wayland-client 0.21.11 (registry+https://github.com/rust-lang/crates.io-index)", + "wayland-commons 0.21.11 (registry+https://github.com/rust-lang/crates.io-index)", + "wayland-protocols 0.21.11 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "spirv_cross" -version = "0.12.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.29 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1011,10 +1012,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "stb_truetype" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", + "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1027,11 +1028,11 @@ dependencies = [ [[package]] name = "syn" -version = "0.15.24" +version = "0.15.26" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1040,9 +1041,9 @@ name = "synstructure" version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.24 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1052,9 +1053,9 @@ version = "3.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_syscall 0.1.50 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.51 (registry+https://github.com/rust-lang/crates.io-index)", "remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1072,8 +1073,8 @@ name = "termion" version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_syscall 0.1.50 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.51 (registry+https://github.com/rust-lang/crates.io-index)", "redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1113,11 +1114,6 @@ name = "utf8-ranges" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "version_check" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "void" version = "1.0.2" @@ -1130,7 +1126,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "same-file 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1139,7 +1135,7 @@ version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", "token_store 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "wayland-scanner 0.12.5 (registry+https://github.com/rust-lang/crates.io-index)", "wayland-sys 0.12.5 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1147,25 +1143,25 @@ dependencies = [ [[package]] name = "wayland-client" -version = "0.21.10" +version = "0.21.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "downcast-rs 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", "nix 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", - "wayland-commons 0.21.10 (registry+https://github.com/rust-lang/crates.io-index)", - "wayland-scanner 0.21.10 (registry+https://github.com/rust-lang/crates.io-index)", - "wayland-sys 0.21.10 (registry+https://github.com/rust-lang/crates.io-index)", + "wayland-commons 0.21.11 (registry+https://github.com/rust-lang/crates.io-index)", + "wayland-scanner 0.21.11 (registry+https://github.com/rust-lang/crates.io-index)", + "wayland-sys 0.21.11 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "wayland-commons" -version = "0.21.10" +version = "0.21.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "nix 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", - "wayland-sys 0.21.10 (registry+https://github.com/rust-lang/crates.io-index)", + "wayland-sys 0.21.11 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1193,14 +1189,14 @@ dependencies = [ [[package]] name = "wayland-protocols" -version = "0.21.10" +version = "0.21.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "wayland-client 0.21.10 (registry+https://github.com/rust-lang/crates.io-index)", - "wayland-commons 0.21.10 (registry+https://github.com/rust-lang/crates.io-index)", - "wayland-scanner 0.21.10 (registry+https://github.com/rust-lang/crates.io-index)", - "wayland-sys 0.21.10 (registry+https://github.com/rust-lang/crates.io-index)", + "wayland-client 0.21.11 (registry+https://github.com/rust-lang/crates.io-index)", + "wayland-commons 0.21.11 (registry+https://github.com/rust-lang/crates.io-index)", + "wayland-scanner 0.21.11 (registry+https://github.com/rust-lang/crates.io-index)", + "wayland-sys 0.21.11 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1213,10 +1209,12 @@ dependencies = [ [[package]] name = "wayland-scanner" -version = "0.21.10" +version = "0.21.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "xml-rs 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", + "xml-rs 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1230,7 +1228,7 @@ dependencies = [ [[package]] name = "wayland-sys" -version = "0.21.10" +version = "0.21.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "dlib 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1264,7 +1262,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "winapi-util" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1281,7 +1279,7 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1294,7 +1292,7 @@ dependencies = [ "core-foundation 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "core-graphics 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", "objc 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", "percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", "wayland-client 0.12.5 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1316,13 +1314,13 @@ dependencies = [ "core-foundation 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", "core-graphics 0.17.3 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "objc 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", "smithay-client-toolkit 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", - "wayland-client 0.21.10 (registry+https://github.com/rust-lang/crates.io-index)", + "wayland-client 0.21.11 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "x11-dl 2.18.3 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1340,7 +1338,7 @@ name = "x11" version = "2.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1350,7 +1348,7 @@ version = "2.18.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1359,7 +1357,7 @@ name = "xcb" version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1383,19 +1381,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [metadata] "checksum aho-corasick 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)" = "1e9a933f4e58658d7b12defcf96dc5c720f20832deebe3e0a19efd3b6aaeeb9e" -"checksum andrew 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "62ea7024f6f4d203bede7c0c9cdafa3cbda3a9e0fa04d349008496cc95b8f11b" +"checksum andrew 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "142e9e6a99ad0d63a4cf6ce58a4c979f472c5815cbf7e5ca4e47b26a10dc728e" "checksum android_glue 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "000444226fcff248f2bc4c7625be32c63caccfecc2723a2b9f78a7487a49c407" "checksum approx 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3c57ff1a5b00753647aebbbcf4ea67fa1e711a65ea7a30eb90dbf07de2485aee" "checksum arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "92c7fb76bc8826a8b33b4ee5bb07a247a81e76764ab4d55e8f73e3a4d8808c71" -"checksum ash 0.27.0 (registry+https://github.com/rust-lang/crates.io-index)" = "18e1841348c170733919e7674ad09fc460ece970790959a1ae320df1735b330e" +"checksum ash 0.27.1 (registry+https://github.com/rust-lang/crates.io-index)" = "6bdd92aa1f43b5a24230055edecf223b51c769903315c94a6fbef6445d4ace50" "checksum atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "9a7d5b8723950951411ee34d271d99dddcc2035a16ab25310ea2c8cfd4369652" -"checksum autocfg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4e5f34df7a019573fb8bdc7e24a2bfebe51a2a1d6bfdbaeccedb3c41fc574727" +"checksum autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a6d640bee2da49f60a4068a7fae53acde8982514ab7bae8b8cea9e88cbcfd799" "checksum backtrace 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)" = "b5b493b66e03090ebc4343eb02f94ff944e0cbc9ac6571491d170ba026741eb5" "checksum backtrace-sys 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)" = "797c830ac25ccc92a7f8a7b9862bde440715531514594a6154e3d4a54dd769b6" "checksum bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "228047a76f468627ca71776ecdebd732a3423081fcf5125585bcd7c49886ce12" "checksum block 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" -"checksum byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "94f88df23a25417badc922ab0f5716cc1330e87f71ddd9203b3a3ccd9cedf75d" -"checksum cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4a8b715cb4597106ea87c7c84b2f1d452c7492033765df7f32651e66fcf749" +"checksum byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a019b10a2a7cdeb292db131fc8113e57ea2a908f6e7894b0c3c671893b65dbeb" +"checksum cc 1.0.29 (registry+https://github.com/rust-lang/crates.io-index)" = "4390a3b5f4f6bce9c1d0c00128379df433e53777fdd30e92f16a529332baec4e" "checksum cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "082bb9b28e00d3c9d39cc03e64ce4cea0f1bb9b3fde493f0cbc008472d22bdf4" "checksum cgl 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "55e7ec0b74fe5897894cbc207092c577e87c52f8a59e8ca8d97ef37551f60a49" "checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" @@ -1416,8 +1414,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" "checksum failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "ea1063915fd7ef4309e222a5a07cf9c319fb9c7836b1f89b85458672dbb127e1" "checksum foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" "checksum foreign-types-shared 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" -"checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" -"checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" +"checksum fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" "checksum fxhash 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" "checksum gcc 0.3.55 (registry+https://github.com/rust-lang/crates.io-index)" = "8f5f3913fa0bfe7ee1fd8248b6b9f42a5af4b9d65ec2dd2c3c26132b950ecfc2" "checksum gfx-backend-dx11 0.1.0 (git+https://github.com/gfx-rs/gfx)" = "" @@ -1434,13 +1431,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" "checksum khronos_api 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "62237e6d326bd5871cd21469323bf096de81f1618cd82cbaf5d87825335aeb49" "checksum lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "76f033c7ad61445c5b347c7382dd1237847eb1bce590fe50365dcb33d546be73" "checksum lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a374c89b9db55895453a74c1e38861d9deec0b01b405a82516e9d5de4820dea1" -"checksum libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)" = "023a4cd09b2ff695f9734c1934145a315594b7986398496841c7031a5a1bbdbd" +"checksum libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)" = "e962c7641008ac010fa60a7dfdc1712449f29c44ef2d4702394aea943ee75047" "checksum libloading 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9c3ad660d7cb8c5822cd83d10897b0f1f1526792737a179e73896152f85b88c2" "checksum line_drawing 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5cc7ad3d82c845bdb5dde34ffdcc7a5fb4d2996e1e1ee0f19c33bc80e15196b9" "checksum lock_api 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "62ebf1391f6acad60e5c8b43706dde4582df75c06698ab44511d15016bc2442c" "checksum log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c84ec4b527950aa83a329754b01dbe3f58361d1c5efacd1f6d68c494d08a17c6" "checksum malloc_buf 0.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" -"checksum memchr 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "db4c41318937f6e76648f42826b1d9ade5c09cafb5aef7e351240a70f39206e9" +"checksum memchr 2.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e1dd4eaac298c32ce07eb6ed9242eda7d82955b9170b7d6db59b2e02cc63fcb8" "checksum memmap 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e2ffa2c986de11a9df78620c01eeaaf27d94d3ff02bf81bfcca953102dd0c6ff" "checksum memmap 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6585fd95e7bb50d6cc31e20d4cf9afb4e2ba16c5846fc76793f11218da9c475b" "checksum metal 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)" = "cd3f21d259068945192293b7a98b1c6844af9eb7602e393c405198b229efc157" @@ -1460,42 +1457,43 @@ source = "registry+https://github.com/rust-lang/crates.io-index" "checksum parking_lot_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "94c8c7923936b28d546dfd14d4472eaf34c99b14e1c973a32b3e6d4eb04298c9" "checksum percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831" "checksum pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)" = "676e8eb2b1b4c9043511a9b7bea0915320d7e502b0a079fb03f9635a5252b18c" -"checksum proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)" = "77619697826f31a02ae974457af0b29b723e5619e113e9397b8b82c6bd253f09" +"checksum proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)" = "4d317f9caece796be1980837fd5cb3dfec5613ebdb04ad0956deea83ce168915" "checksum quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9274b940887ce9addde99c4eee6b5c44cc494b182b97e73dc8ffdcb3397fd3f0" -"checksum quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)" = "53fa22a1994bd0f9372d7a816207d8a2677ad0325b073f5c5332760f0fb62b5c" -"checksum rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)" = "e464cd887e869cddcae8792a4ee31d23c7edd516700695608f5b98c67ee0131c" -"checksum rand 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "3906503e80ac6cbcacb2c2973fa8e473f24d7e2747c8c92bb230c2441cad96b5" +"checksum quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)" = "cdd8e04bd9c52e0342b406469d494fcb033be4bdbe5c606016defbb1681411e1" +"checksum rand 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c618c47cd3ebd209790115ab837de41425723956ad3ce2e6a7f09890947cacb9" +"checksum rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca" "checksum rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef" -"checksum rand_core 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1961a422c4d189dfb50ffa9320bf1f2a9bd54ecb92792fb9477f99a1045f3372" -"checksum rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0905b6b7079ec73b314d4c748701f6931eb79fd97c668caa3f1899b22b32c6db" +"checksum rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b" +"checksum rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d0e7a549d590831370895ab7ba4ea0c1b6b011d106b5ff2da6eee112615e6dc0" "checksum rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4" "checksum rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08" -"checksum rand_os 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f46fbd5550acf75b0c2730f5dd1873751daf9beb8f11b44027778fae50d7feca" +"checksum rand_jitter 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7b9ea758282efe12823e0d952ddb269d2e1897227e464919a554f2a03ef1b832" +"checksum rand_os 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b7c690732391ae0abafced5015ffb53656abfaec61b342290e5eb56b286a679d" "checksum rand_pcg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "086bd09a33c7044e56bb44d5bdde5a60e7f119a9e95b0775f545de759a32fe05" "checksum rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c" "checksum range-alloc 0.1.0 (git+https://github.com/gfx-rs/gfx)" = "" "checksum rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" -"checksum redox_syscall 0.1.50 (registry+https://github.com/rust-lang/crates.io-index)" = "52ee9a534dc1301776eff45b4fa92d2c39b1d8c3d3357e6eb593e0d795506fc2" +"checksum redox_syscall 0.1.51 (registry+https://github.com/rust-lang/crates.io-index)" = "423e376fffca3dfa06c9e9790a9ccd282fafb3cc6e6397d01dbf64f9bacc6b85" "checksum redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76" "checksum regex 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "37e7cbbd370869ce2e8dff25c7018702d10b21a20ef7135316f8daecd6c25b7f" -"checksum regex-syntax 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "4e47a2ed29da7a9e1960e1639e7a982e6edc6d49be308a3b02daf511504a16d1" +"checksum regex-syntax 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "8c2f35eedad5295fdf00a63d7d4b238135723f92b434ec06774dad15c7ab0861" "checksum remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3488ba1b9a2084d38645c4c08276a1752dcbf2c7130d74f1569681ad5d2799c5" "checksum renderdoc 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3aee9badfb4078c375d2d0479ed29c9c057b51ade78f94792ba2dcb11f343e7e" "checksum rustc-demangle 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "adacaae16d02b6ec37fdc7acfcddf365978de76d1983d3ee22afc260e1ca9619" "checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" -"checksum rusttype 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "436c67ae0d0d24f14e1177c3ed96780ee16db82b405f0fba1bb80b46c9a30625" +"checksum rusttype 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)" = "ae90f66c7ca5fb2c566d373c9ccb3ce1ae1aeebf236b74ad0d413196facb31b3" "checksum same-file 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "8f20c4be53a8a1ff4c1f1b2bd14570d2f634628709752f0702ecdd2b3f9a5267" "checksum scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "94258f53601af11e6a49f722422f6e3425c52b06245a5cf9bc09908b174f5e27" "checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" "checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" "checksum shared_library 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "5a9e7e0f2bfae24d8a5b5a66c5b257a83c7412304311512a0c054cd5e619da11" -"checksum smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)" = "b73ea3738b47563803ef814925e69be00799a8c07420be8b996f8e98fb2336db" +"checksum smallvec 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)" = "88aea073965ab29f6edb5493faf96ad662fb18aa9eeb186a3b7057951605ed15" "checksum smithay-client-toolkit 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "d858330eeed4efaf71c560555e2a6a0597d01b7d52685c3cc964ab1cc360f8c6" -"checksum spirv_cross 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5c38f3b84da9c0439a5898f0697a07c8d59259b9d36c43e4fd5a9a01c38cd80a" +"checksum spirv_cross 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d957f729f8f52ad6fa75c4561e3169836bcdf7eac1126571d9a1834549f50f22" "checksum stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dba1a27d3efae4351c8051072d619e3ade2820635c3958d826bfea39d59b54c8" -"checksum stb_truetype 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "71a7d260b43b6129a22dc341be18a231044ca67a48b7e32625f380cc5ec9ad70" +"checksum stb_truetype 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "69b7df505db8e81d54ff8be4693421e5b543e08214bd8d99eb761fcb4d5668ba" "checksum storage-map 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "cb94f167ccba0941876c8e722e888be8b4c05511ffdacc8cfcd4c647adfd424d" -"checksum syn 0.15.24 (registry+https://github.com/rust-lang/crates.io-index)" = "734ecc29cd36e8123850d9bf21dfd62ef8300aaa8f879aabaa899721808be37c" +"checksum syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)" = "f92e629aa1d9c827b2bb8297046c1ccffc57c99b947a680d3ccff1f136a3bee9" "checksum synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "73687139bf99285483c96ac0add482c3776528beac1d97d444f6e91f203a2015" "checksum tempfile 3.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "7e91405c14320e5c79b3d148e1c86f40749a36e490642202a31689cb1a3452b2" "checksum termcolor 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "4096add70612622289f2fdcdbd5086dc81c1e2675e6ae58d6c4f62a16c6d7f2f" @@ -1506,23 +1504,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" "checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" "checksum unreachable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56" "checksum utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "796f7e48bef87609f7ade7e06495a87d5cd06c7866e6a5cbfceffc558a243737" -"checksum version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd" "checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" "checksum walkdir 2.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "9d9d7ed3431229a144296213105a390676cc49c9b6a72bd19f3176c98e129fa1" "checksum wayland-client 0.12.5 (registry+https://github.com/rust-lang/crates.io-index)" = "2b90adf943117ee4930d7944fe103dcb6f36ba05421f46521cb5adbf6bf0fbc8" -"checksum wayland-client 0.21.10 (registry+https://github.com/rust-lang/crates.io-index)" = "cb4e519a7a979ddf97ee25c07830bd10b2c466b3b904b8ad4a05b4eee58c1a4e" -"checksum wayland-commons 0.21.10 (registry+https://github.com/rust-lang/crates.io-index)" = "d985937818df10af90fe61bf8fc520fc6179539d972378b78be773694bb9f432" +"checksum wayland-client 0.21.11 (registry+https://github.com/rust-lang/crates.io-index)" = "96041810afa07e7953867d46f8f03c41cbca49ebd1e840eef6abefde8b458b30" +"checksum wayland-commons 0.21.11 (registry+https://github.com/rust-lang/crates.io-index)" = "92af0c5dc724c049e9bd927f8563d9a6abaa94893c5305ef0a6d2805e661f3d3" "checksum wayland-kbd 0.13.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4fe0fb1c9917da9529d781659e456d84a693d74fe873d1658109758444616f76" "checksum wayland-protocols 0.12.5 (registry+https://github.com/rust-lang/crates.io-index)" = "fb5942dd2fc79d934db437c9ea3aabffceb49b546046ea453bcba531005e5537" -"checksum wayland-protocols 0.21.10 (registry+https://github.com/rust-lang/crates.io-index)" = "e634e68e5b759cb549410ae1f25aab3c77cdc8f861aed9d0e86c2bd74efcb086" +"checksum wayland-protocols 0.21.11 (registry+https://github.com/rust-lang/crates.io-index)" = "fd94211387fa8ff50df1e4ff7a5529b5a9aebe68ba88acc48e5b7f5fd98f6eef" "checksum wayland-scanner 0.12.5 (registry+https://github.com/rust-lang/crates.io-index)" = "dcffa55a621e6f2c3d436de64d840fc325e1d0a467b92ee5e7292e17552e08ad" -"checksum wayland-scanner 0.21.10 (registry+https://github.com/rust-lang/crates.io-index)" = "1c8b867a824057b856790776e7cee37daf0435fc06543f2d96b2e37d15322e99" +"checksum wayland-scanner 0.21.11 (registry+https://github.com/rust-lang/crates.io-index)" = "3611f231e675e15c2feb7623103e6449edc6f10b0598cafb3e16e590a0561355" "checksum wayland-sys 0.12.5 (registry+https://github.com/rust-lang/crates.io-index)" = "377a2f83063c463e801ca10ae8cb9666e6e597eecac0049ac36cc7b9a83b0db3" -"checksum wayland-sys 0.21.10 (registry+https://github.com/rust-lang/crates.io-index)" = "6807f24ccb5b1a76a854fbd18160ae11cea64717b2f643d10810e5ef7fba2f59" +"checksum wayland-sys 0.21.11 (registry+https://github.com/rust-lang/crates.io-index)" = "2a69d729a1747a5bf40ae05b94c7904b64fbf2381e365c046d872ce4a34aa826" "checksum wayland-window 0.13.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e5bf431e84f0de9cd06a30b2fb9ab9458f449cb6c36277da703e979ad5c141b1" "checksum winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "92c1eb33641e276cfa214a0522acad57be5c56b10cb348b3c5117db75f3ac4b0" "checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" -"checksum winapi-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "afc5508759c5bf4285e61feb862b6083c8480aec864fa17a81fdec6f69b461ab" +"checksum winapi-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7168bab6e1daee33b4557efd0e95d5ca70a03706d39fa5f3fe7a236f584b03c9" "checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" "checksum wincolor 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "561ed901ae465d6185fa7864d63fbd5720d0ef718366c9a4dc83cf6170d7e9ba" "checksum winit 0.13.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3706b5ba299cc9ed06d39b8021fc5edd5a7d27d8e99355ca09636fddd9b14cc0" diff --git a/libportability-gfx/src/conv.rs b/libportability-gfx/src/conv.rs index 3f3d823..a3c7723 100644 --- a/libportability-gfx/src/conv.rs +++ b/libportability-gfx/src/conv.rs @@ -555,19 +555,19 @@ pub fn map_present_mode(present_mode: VkPresentModeKHR) -> window::PresentMode { pub fn map_composite_alpha(composite_alpha: VkCompositeAlphaFlagBitsKHR) -> window::CompositeAlpha { if composite_alpha == VkCompositeAlphaFlagBitsKHR::VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR { - window::CompositeAlpha::Opaque + window::CompositeAlpha::OPAQUE } else if composite_alpha == VkCompositeAlphaFlagBitsKHR::VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR { - window::CompositeAlpha::PreMultiplied + window::CompositeAlpha::PREMULTIPLIED } else if composite_alpha == VkCompositeAlphaFlagBitsKHR::VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR { - window::CompositeAlpha::PostMultiplied + window::CompositeAlpha::POSTMULTIPLIED } else if composite_alpha == VkCompositeAlphaFlagBitsKHR::VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR { - window::CompositeAlpha::Inherit + window::CompositeAlpha::INHERIT } else { error!("Unrecognized composite alpha: {:?}", composite_alpha); - window::CompositeAlpha::Opaque + window::CompositeAlpha::OPAQUE } } diff --git a/libportability-gfx/src/impls.rs b/libportability-gfx/src/impls.rs index 4312aa3..3387c7e 100644 --- a/libportability-gfx/src/impls.rs +++ b/libportability-gfx/src/impls.rs @@ -1701,16 +1701,27 @@ pub extern "C" fn gfxDestroyShaderModule( #[inline] pub extern "C" fn gfxCreatePipelineCache( gpu: VkDevice, - _pCreateInfo: *const VkPipelineCacheCreateInfo, + pCreateInfo: *const VkPipelineCacheCreateInfo, _pAllocator: *const VkAllocationCallbacks, pPipelineCache: *mut VkPipelineCache, ) -> VkResult { - //TODO: load - let cache = match gpu.device.create_pipeline_cache() { + let info = unsafe { &*pCreateInfo }; + let data = if info.initialDataSize != 0 { + Some(unsafe { + slice::from_raw_parts(info.pInitialData as *const u8, info.initialDataSize as usize) + }) + } else { + None + }; + + let cache = match unsafe { + gpu.device.create_pipeline_cache(data) + } { Ok(cache) => cache, Err(oom) => return map_oom(oom), }; unsafe { *pPipelineCache = Handle::new(cache) }; + VkResult::VK_SUCCESS } #[inline] @@ -4040,23 +4051,9 @@ pub extern "C" fn gfxGetPhysicalDeviceSurfaceCapabilitiesKHR( surface: VkSurfaceKHR, pSurfaceCapabilities: *mut VkSurfaceCapabilitiesKHR, ) -> VkResult { - let (caps, _, _supported_transforms, supported_alphas) = + let (caps, _, _supported_transforms) = surface.compatibility(&adapter.physical_device); - let mut composite_alpha_mask: VkCompositeAlphaFlagsKHR = 0; - for ca in supported_alphas { - composite_alpha_mask |= match ca { - hal::window::CompositeAlpha::Opaque => - VkCompositeAlphaFlagBitsKHR::VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR as u32, - hal::window::CompositeAlpha::PreMultiplied => - VkCompositeAlphaFlagBitsKHR::VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR as u32, - hal::window::CompositeAlpha::PostMultiplied => - VkCompositeAlphaFlagBitsKHR::VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR as u32, - hal::window::CompositeAlpha::Inherit => - VkCompositeAlphaFlagBitsKHR::VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR as u32, - }; - } - let output = VkSurfaceCapabilitiesKHR { minImageCount: caps.image_count.start, maxImageCount: caps.image_count.end - 1, @@ -4073,7 +4070,7 @@ pub extern "C" fn gfxGetPhysicalDeviceSurfaceCapabilitiesKHR( supportedTransforms: VkSurfaceTransformFlagBitsKHR::VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR as _, currentTransform: VkSurfaceTransformFlagBitsKHR::VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR, - supportedCompositeAlpha: composite_alpha_mask, + supportedCompositeAlpha: caps.composite_alpha.bits(), supportedUsageFlags: conv::map_image_usage_from_hal(caps.usage), }; @@ -4121,7 +4118,7 @@ pub extern "C" fn gfxGetPhysicalDeviceSurfacePresentModesKHR( pPresentModeCount: *mut u32, pPresentModes: *mut VkPresentModeKHR, ) -> VkResult { - let (_, _, present_modes, _) = surface + let (_, _, present_modes) = surface .compatibility(&adapter.physical_device); let num_present_modes = present_modes.len(); From d5fb1b6f6ce0c7e29338dd1b2ee212fc2954fcd6 Mon Sep 17 00:00:00 2001 From: Dzmitry Malyshau Date: Wed, 6 Feb 2019 15:06:48 -0500 Subject: [PATCH 2/5] Implement VK_EXTX_portability_subset v2 --- libportability-gfx/src/conv.rs | 62 ++++++- libportability-gfx/src/impls.rs | 279 +++++++++++++++++++++----------- libportability-gfx/src/lib.rs | 56 ++++++- 3 files changed, 297 insertions(+), 100 deletions(-) diff --git a/libportability-gfx/src/conv.rs b/libportability-gfx/src/conv.rs index a3c7723..13dead8 100644 --- a/libportability-gfx/src/conv.rs +++ b/libportability-gfx/src/conv.rs @@ -1,5 +1,5 @@ use hal::{buffer, command, error, format, image, memory, pass, pso, query, window}; -use hal::{IndexType, Limits, PatchSize, Primitive}; +use hal::{IndexType, Features, Limits, PatchSize, Primitive}; use std::mem; @@ -41,6 +41,66 @@ pub fn limits_from_hal(limits: Limits) -> VkPhysicalDeviceLimits { } } +pub fn features_from_hal(features: Features) -> VkPhysicalDeviceFeatures { + VkPhysicalDeviceFeatures { + robustBufferAccess: features.contains(Features::ROBUST_BUFFER_ACCESS) as _, + fullDrawIndexUint32: features.contains(Features::FULL_DRAW_INDEX_U32) as _, + imageCubeArray: features.contains(Features::IMAGE_CUBE_ARRAY) as _, + independentBlend: features.contains(Features::INDEPENDENT_BLENDING) as _, + geometryShader: features.contains(Features::GEOMETRY_SHADER) as _, + tessellationShader: features.contains(Features::TESSELLATION_SHADER) as _, + sampleRateShading: features.contains(Features::SAMPLE_RATE_SHADING) as _, + dualSrcBlend: features.contains(Features::DUAL_SRC_BLENDING) as _, + logicOp: features.contains(Features::LOGIC_OP) as _, + multiDrawIndirect: features.contains(Features::MULTI_DRAW_INDIRECT) as _, + drawIndirectFirstInstance: features.contains(Features::DRAW_INDIRECT_FIRST_INSTANCE) as _, + depthClamp: features.contains(Features::DEPTH_CLAMP) as _, + depthBiasClamp: features.contains(Features::DEPTH_BIAS_CLAMP) as _, + fillModeNonSolid: features.contains(Features::NON_FILL_POLYGON_MODE) as _, + depthBounds: features.contains(Features::DEPTH_BOUNDS) as _, + wideLines: features.contains(Features::LINE_WIDTH) as _, + largePoints: features.contains(Features::POINT_SIZE) as _, + alphaToOne: features.contains(Features::ALPHA_TO_ONE) as _, + multiViewport: features.contains(Features::MULTI_VIEWPORTS) as _, + samplerAnisotropy: features.contains(Features::SAMPLER_ANISOTROPY) as _, + textureCompressionETC2: features.contains(Features::FORMAT_ETC2) as _, + textureCompressionASTC_LDR: features.contains(Features::FORMAT_ASTC_LDR) as _, + textureCompressionBC: features.contains(Features::FORMAT_BC) as _, + occlusionQueryPrecise: features.contains(Features::PRECISE_OCCLUSION_QUERY) as _, + pipelineStatisticsQuery: features.contains(Features::PIPELINE_STATISTICS_QUERY) as _, + vertexPipelineStoresAndAtomics: features.contains(Features::VERTEX_STORES_AND_ATOMICS) as _, + fragmentStoresAndAtomics: features.contains(Features::FRAGMENT_STORES_AND_ATOMICS) as _, + shaderTessellationAndGeometryPointSize: features.contains(Features::SHADER_TESSELLATION_AND_GEOMETRY_POINT_SIZE) as _, + shaderImageGatherExtended: features.contains(Features::SHADER_IMAGE_GATHER_EXTENDED) as _, + shaderStorageImageExtendedFormats: features.contains(Features::SHADER_STORAGE_IMAGE_EXTENDED_FORMATS) as _, + shaderStorageImageMultisample: features.contains(Features::SHADER_STORAGE_IMAGE_MULTISAMPLE) as _, + shaderStorageImageReadWithoutFormat: features.contains(Features::SHADER_STORAGE_IMAGE_READ_WITHOUT_FORMAT) as _, + shaderStorageImageWriteWithoutFormat: features.contains(Features::SHADER_STORAGE_IMAGE_WRITE_WITHOUT_FORMAT) as _, + shaderUniformBufferArrayDynamicIndexing: features.contains(Features::SHADER_UNIFORM_BUFFER_ARRAY_DYNAMIC_INDEXING) as _, + shaderSampledImageArrayDynamicIndexing: features.contains(Features::SHADER_SAMPLED_IMAGE_ARRAY_DYNAMIC_INDEXING) as _, + shaderStorageBufferArrayDynamicIndexing: features.contains(Features::SHADER_STORAGE_BUFFER_ARRAY_DYNAMIC_INDEXING) as _, + shaderStorageImageArrayDynamicIndexing: features.contains(Features::SHADER_STORAGE_IMAGE_ARRAY_DYNAMIC_INDEXING) as _, + shaderClipDistance: features.contains(Features::SHADER_CLIP_DISTANCE) as _, + shaderCullDistance: features.contains(Features::SHADER_CULL_DISTANCE) as _, + shaderFloat64: features.contains(Features::SHADER_FLOAT64) as _, + shaderInt64: features.contains(Features::SHADER_INT64) as _, + shaderInt16: features.contains(Features::SHADER_INT16) as _, + shaderResourceResidency: features.contains(Features::SHADER_RESOURCE_RESIDENCY) as _, + shaderResourceMinLod: features.contains(Features::SHADER_RESOURCE_MIN_LOD) as _, + sparseBinding: features.contains(Features::SPARSE_BINDING) as _, + sparseResidencyBuffer: features.contains(Features::SPARSE_RESIDENCY_BUFFER) as _, + sparseResidencyImage2D: features.contains(Features::SPARSE_RESIDENCY_IMAGE_2D) as _, + sparseResidencyImage3D: features.contains(Features::SPARSE_RESIDENCY_IMAGE_3D) as _, + sparseResidency2Samples: features.contains(Features::SPARSE_RESIDENCY_2_SAMPLES) as _, + sparseResidency4Samples: features.contains(Features::SPARSE_RESIDENCY_4_SAMPLES) as _, + sparseResidency8Samples: features.contains(Features::SPARSE_RESIDENCY_8_SAMPLES) as _, + sparseResidency16Samples: features.contains(Features::SPARSE_RESIDENCY_16_SAMPLES) as _, + sparseResidencyAliased: features.contains(Features::SPARSE_RESIDENCY_ALIASED) as _, + variableMultisampleRate: features.contains(Features::VARIABLE_MULTISAMPLE_RATE) as _, + inheritedQueries: features.contains(Features::INHERITED_QUERIES) as _, + } +} + #[inline] pub fn format_from_hal(format: format::Format) -> VkFormat { // HAL formats have the same numeric representation as Vulkan formats diff --git a/libportability-gfx/src/impls.rs b/libportability-gfx/src/impls.rs index 3387c7e..b1b320e 100644 --- a/libportability-gfx/src/impls.rs +++ b/libportability-gfx/src/impls.rs @@ -13,7 +13,7 @@ use std::ffi::{CStr, CString}; use std::os::raw::c_int; #[cfg(feature = "renderdoc")] use std::os::raw::c_void; -use std::{mem, ptr}; +use std::{mem, ptr, str}; use super::*; @@ -208,64 +208,56 @@ pub extern "C" fn gfxGetPhysicalDeviceFeatures( pFeatures: *mut VkPhysicalDeviceFeatures, ) { let features = adapter.physical_device.features(); - unsafe { - *pFeatures = VkPhysicalDeviceFeatures { - robustBufferAccess: features.contains(Features::ROBUST_BUFFER_ACCESS) as _, - fullDrawIndexUint32: features.contains(Features::FULL_DRAW_INDEX_U32) as _, - imageCubeArray: features.contains(Features::IMAGE_CUBE_ARRAY) as _, - independentBlend: features.contains(Features::INDEPENDENT_BLENDING) as _, - geometryShader: features.contains(Features::GEOMETRY_SHADER) as _, - tessellationShader: features.contains(Features::TESSELLATION_SHADER) as _, - sampleRateShading: features.contains(Features::SAMPLE_RATE_SHADING) as _, - dualSrcBlend: features.contains(Features::DUAL_SRC_BLENDING) as _, - logicOp: features.contains(Features::LOGIC_OP) as _, - multiDrawIndirect: features.contains(Features::MULTI_DRAW_INDIRECT) as _, - drawIndirectFirstInstance: features.contains(Features::DRAW_INDIRECT_FIRST_INSTANCE) as _, - depthClamp: features.contains(Features::DEPTH_CLAMP) as _, - depthBiasClamp: features.contains(Features::DEPTH_BIAS_CLAMP) as _, - fillModeNonSolid: features.contains(Features::NON_FILL_POLYGON_MODE) as _, - depthBounds: features.contains(Features::DEPTH_BOUNDS) as _, - wideLines: features.contains(Features::LINE_WIDTH) as _, - largePoints: features.contains(Features::POINT_SIZE) as _, - alphaToOne: features.contains(Features::ALPHA_TO_ONE) as _, - multiViewport: features.contains(Features::MULTI_VIEWPORTS) as _, - samplerAnisotropy: features.contains(Features::SAMPLER_ANISOTROPY) as _, - textureCompressionETC2: features.contains(Features::FORMAT_ETC2) as _, - textureCompressionASTC_LDR: features.contains(Features::FORMAT_ASTC_LDR) as _, - textureCompressionBC: features.contains(Features::FORMAT_BC) as _, - occlusionQueryPrecise: features.contains(Features::PRECISE_OCCLUSION_QUERY) as _, - pipelineStatisticsQuery: features.contains(Features::PIPELINE_STATISTICS_QUERY) as _, - vertexPipelineStoresAndAtomics: features.contains(Features::VERTEX_STORES_AND_ATOMICS) as _, - fragmentStoresAndAtomics: features.contains(Features::FRAGMENT_STORES_AND_ATOMICS) as _, - shaderTessellationAndGeometryPointSize: features.contains(Features::SHADER_TESSELLATION_AND_GEOMETRY_POINT_SIZE) as _, - shaderImageGatherExtended: features.contains(Features::SHADER_IMAGE_GATHER_EXTENDED) as _, - shaderStorageImageExtendedFormats: features.contains(Features::SHADER_STORAGE_IMAGE_EXTENDED_FORMATS) as _, - shaderStorageImageMultisample: features.contains(Features::SHADER_STORAGE_IMAGE_MULTISAMPLE) as _, - shaderStorageImageReadWithoutFormat: features.contains(Features::SHADER_STORAGE_IMAGE_READ_WITHOUT_FORMAT) as _, - shaderStorageImageWriteWithoutFormat: features.contains(Features::SHADER_STORAGE_IMAGE_WRITE_WITHOUT_FORMAT) as _, - shaderUniformBufferArrayDynamicIndexing: features.contains(Features::SHADER_UNIFORM_BUFFER_ARRAY_DYNAMIC_INDEXING) as _, - shaderSampledImageArrayDynamicIndexing: features.contains(Features::SHADER_SAMPLED_IMAGE_ARRAY_DYNAMIC_INDEXING) as _, - shaderStorageBufferArrayDynamicIndexing: features.contains(Features::SHADER_STORAGE_BUFFER_ARRAY_DYNAMIC_INDEXING) as _, - shaderStorageImageArrayDynamicIndexing: features.contains(Features::SHADER_STORAGE_IMAGE_ARRAY_DYNAMIC_INDEXING) as _, - shaderClipDistance: features.contains(Features::SHADER_CLIP_DISTANCE) as _, - shaderCullDistance: features.contains(Features::SHADER_CULL_DISTANCE) as _, - shaderFloat64: features.contains(Features::SHADER_FLOAT64) as _, - shaderInt64: features.contains(Features::SHADER_INT64) as _, - shaderInt16: features.contains(Features::SHADER_INT16) as _, - shaderResourceResidency: features.contains(Features::SHADER_RESOURCE_RESIDENCY) as _, - shaderResourceMinLod: features.contains(Features::SHADER_RESOURCE_MIN_LOD) as _, - sparseBinding: features.contains(Features::SPARSE_BINDING) as _, - sparseResidencyBuffer: features.contains(Features::SPARSE_RESIDENCY_BUFFER) as _, - sparseResidencyImage2D: features.contains(Features::SPARSE_RESIDENCY_IMAGE_2D) as _, - sparseResidencyImage3D: features.contains(Features::SPARSE_RESIDENCY_IMAGE_3D) as _, - sparseResidency2Samples: features.contains(Features::SPARSE_RESIDENCY_2_SAMPLES) as _, - sparseResidency4Samples: features.contains(Features::SPARSE_RESIDENCY_4_SAMPLES) as _, - sparseResidency8Samples: features.contains(Features::SPARSE_RESIDENCY_8_SAMPLES) as _, - sparseResidency16Samples: features.contains(Features::SPARSE_RESIDENCY_16_SAMPLES) as _, - sparseResidencyAliased: features.contains(Features::SPARSE_RESIDENCY_ALIASED) as _, - variableMultisampleRate: features.contains(Features::VARIABLE_MULTISAMPLE_RATE) as _, - inheritedQueries: features.contains(Features::INHERITED_QUERIES) as _, + *pFeatures = conv::features_from_hal(features); + } +} +#[inline] +pub extern "C" fn gfxGetPhysicalDeviceFeatures2KHR( + adapter: VkPhysicalDevice, + pFeatures: *mut VkPhysicalDeviceFeatures2KHR, +) { + let features = adapter.physical_device.features(); + let mut ptr = pFeatures as *const VkStructureType; + while !ptr.is_null() { + match unsafe { *ptr } { + VkStructureType::VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR => { + let data = unsafe { + (ptr as *mut VkPhysicalDeviceFeatures2KHR).as_mut().unwrap() + }; + data.features = conv::features_from_hal(features); + } + VkStructureType::VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_EXTX =>{ + let data = unsafe { + (ptr as *mut VkPhysicalDevicePortabilitySubsetFeaturesEXTX).as_mut().unwrap() + }; + if features.contains(hal::Features::TRIANGLE_FAN) { + data.triangleFans = VK_TRUE; + } + if features.contains(hal::Features::SEPARATE_STENCIL_REF_VALUES) { + data.separateStencilMaskRef = VK_TRUE; + } + //TODO: turn those into feature flags + if !cfg!(feature = "gfx-backend-metal") { + data.standardImageViews = VK_TRUE; + data.samplerMipLodBias = VK_TRUE; + } + } + VkStructureType::VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_EXTX => { + let data = unsafe { + (ptr as *mut VkPhysicalDevicePortabilitySubsetPropertiesEXTX).as_mut().unwrap() + }; + //TODO: turn this into a limit value + if cfg!(feature = "gfx-backend-metal") { + data.minVertexInputBindingStrideAlignment = 4; + } + } + other => { + warn!("Unrecognized {:?}, skipping", other); + } + }; + ptr = unsafe { + *(ptr.offset(1) as *const *const VkStructureType) }; } } @@ -280,31 +272,118 @@ pub extern "C" fn gfxGetPhysicalDeviceFormatProperties( *pFormatProperties = conv::format_properties_from_hal(properties); } } + +fn get_physical_device_image_format_properties( + adapter: VkPhysicalDevice, + info: &VkPhysicalDeviceImageFormatInfo2KHR, +) -> Option { + adapter.physical_device + .image_format_properties( + conv::map_format(info.format).unwrap(), + match info.type_ { + VkImageType::VK_IMAGE_TYPE_1D => 1, + VkImageType::VK_IMAGE_TYPE_2D => 2, + VkImageType::VK_IMAGE_TYPE_3D => 3, + other => panic!("Unexpected image type: {:?}", other), + }, + conv::map_tiling(info.tiling), + conv::map_image_usage(info.usage), + conv::map_image_create_flags(info.flags), + ) + .map(conv::image_format_properties_from_hal) +} #[inline] pub extern "C" fn gfxGetPhysicalDeviceImageFormatProperties( adapter: VkPhysicalDevice, format: VkFormat, - typ: VkImageType, + type_: VkImageType, tiling: VkImageTiling, usage: VkImageUsageFlags, - create_flags: VkImageCreateFlags, + flags: VkImageCreateFlags, pImageFormatProperties: *mut VkImageFormatProperties, ) -> VkResult { - let properties = adapter.physical_device.image_format_properties( - conv::map_format(format).unwrap(), - match typ { - VkImageType::VK_IMAGE_TYPE_1D => 1, - VkImageType::VK_IMAGE_TYPE_2D => 2, - VkImageType::VK_IMAGE_TYPE_3D => 3, - _ => panic!("Unexpected image type: {:?}", typ), + let info = VkPhysicalDeviceImageFormatInfo2KHR { + sType: VkStructureType::VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR, + pNext: ptr::null(), + format, + type_, + tiling, + usage, + flags + }; + match get_physical_device_image_format_properties(adapter, &info) { + Some(props) => unsafe { + *pImageFormatProperties = props; + VkResult::VK_SUCCESS }, - conv::map_tiling(tiling), - conv::map_image_usage(usage), - conv::map_image_create_flags(create_flags), - ); + None => VkResult::VK_ERROR_FORMAT_NOT_SUPPORTED, + } +} +#[inline] +pub extern "C" fn gfxGetPhysicalDeviceImageFormatProperties2KHR( + adapter: VkPhysicalDevice, + pImageFormatInfo: *const VkPhysicalDeviceImageFormatInfo2KHR, + pImageFormatProperties: *mut VkImageFormatProperties2KHR, +) -> VkResult { + let mut properties = None; + + let mut ptr = pImageFormatInfo as *const VkStructureType; + while !ptr.is_null() { + match unsafe { *ptr } { + VkStructureType::VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR => { + let data = unsafe { + (ptr as *const VkPhysicalDeviceImageFormatInfo2KHR).as_ref().unwrap() + }; + properties = get_physical_device_image_format_properties(adapter, data); + } + VkStructureType::VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_SUPPORT_EXTX => { + let data = unsafe { + (ptr as *const VkPhysicalDeviceImageViewSupportEXTX).as_ref().unwrap() + }; + //TODO: provide the data from gfx-rs itself + // copied from `map_format_with_swizzle` + let identity = VkComponentMapping { + r: VkComponentSwizzle::VK_COMPONENT_SWIZZLE_R, + g: VkComponentSwizzle::VK_COMPONENT_SWIZZLE_G, + b: VkComponentSwizzle::VK_COMPONENT_SWIZZLE_B, + a: VkComponentSwizzle::VK_COMPONENT_SWIZZLE_A, + }; + let bgra = VkComponentMapping { + r: identity.b, + b: identity.r, + .. identity + }; + if data.components != identity && cfg!(feature = "gfx-backend-metal") { + let supported = match data.format { + VkFormat::VK_FORMAT_R8_UNORM => data.components == VkComponentMapping { + r: VkComponentSwizzle::VK_COMPONENT_SWIZZLE_ZERO, + g: VkComponentSwizzle::VK_COMPONENT_SWIZZLE_ZERO, + b: VkComponentSwizzle::VK_COMPONENT_SWIZZLE_ZERO, + a: VkComponentSwizzle::VK_COMPONENT_SWIZZLE_R, + }, + VkFormat::VK_FORMAT_R8G8B8A8_UNORM => data.components == bgra, + VkFormat::VK_FORMAT_B8G8R8A8_UNORM => data.components == bgra, + VkFormat::VK_FORMAT_B8G8R8A8_SRGB => data.components == bgra, + VkFormat::VK_FORMAT_B5G6R5_UNORM_PACK16 => data.components == bgra, + _ => false, + }; + if !supported { + return VkResult::VK_ERROR_FORMAT_NOT_SUPPORTED; + } + } + } + other => { + warn!("Unrecognized {:?}, skipping", other); + } + }; + ptr = unsafe { + *(ptr.offset(1) as *const *const VkStructureType) + }; + } + match properties { Some(props) => unsafe { - *pImageFormatProperties = conv::image_format_properties_from_hal(props); + (*pImageFormatProperties).imageFormatProperties = props; VkResult::VK_SUCCESS }, None => VkResult::VK_ERROR_FORMAT_NOT_SUPPORTED, @@ -399,9 +478,11 @@ pub extern "C" fn gfxGetInstanceProcAddr( vkEnumerateDeviceLayerProperties, PFN_vkEnumerateDeviceLayerProperties => gfxEnumerateDeviceLayerProperties, vkGetPhysicalDeviceFeatures, PFN_vkGetPhysicalDeviceFeatures => gfxGetPhysicalDeviceFeatures, + vkGetPhysicalDeviceFeatures2KHR, PFN_vkGetPhysicalDeviceFeatures2KHR => gfxGetPhysicalDeviceFeatures2KHR, vkGetPhysicalDeviceProperties, PFN_vkGetPhysicalDeviceProperties => gfxGetPhysicalDeviceProperties, vkGetPhysicalDeviceFormatProperties, PFN_vkGetPhysicalDeviceFormatProperties => gfxGetPhysicalDeviceFormatProperties, vkGetPhysicalDeviceImageFormatProperties, PFN_vkGetPhysicalDeviceImageFormatProperties => gfxGetPhysicalDeviceImageFormatProperties, + vkGetPhysicalDeviceImageFormatProperties2KHR, PFN_vkGetPhysicalDeviceImageFormatProperties2KHR => gfxGetPhysicalDeviceImageFormatProperties2KHR, vkGetPhysicalDeviceMemoryProperties, PFN_vkGetPhysicalDeviceMemoryProperties => gfxGetPhysicalDeviceMemoryProperties, vkGetPhysicalDeviceQueueFamilyProperties, PFN_vkGetPhysicalDeviceQueueFamilyProperties => gfxGetPhysicalDeviceQueueFamilyProperties, vkGetPhysicalDeviceSparseImageFormatProperties, PFN_vkGetPhysicalDeviceSparseImageFormatProperties => gfxGetPhysicalDeviceSparseImageFormatProperties, @@ -438,11 +519,10 @@ pub extern "C" fn gfxGetDeviceProcAddr( | "vkGetSwapchainImagesKHR" | "vkAcquireNextImageKHR" | "vkQueuePresentKHR" => { - let swapchain_extension_enabled = device - .enabled_extensions - .iter() - .any(|e| e == DEVICE_EXTENSION_NAME_VK_KHR_SWAPCHAIN); - if !swapchain_extension_enabled { + let search_name = str::from_utf8( + &VK_KHR_SWAPCHAIN_EXTENSION_NAME[.. VK_KHR_SWAPCHAIN_EXTENSION_NAME.len()-1] + ).unwrap(); + if !device.enabled_extensions.iter().any(|ext| ext == search_name) { return None; } } @@ -740,20 +820,19 @@ pub extern "C" fn gfxCreateDevice( let enabled_extensions = if dev_info.enabledExtensionCount == 0 { Vec::new() } else { - let extensions = unsafe { - slice::from_raw_parts(dev_info.ppEnabledExtensionNames, dev_info.enabledExtensionCount as _) - .iter() - .map(|raw| CStr::from_ptr(*raw) - .to_str() - .expect("Invalid extension name") - .to_owned() - ) - .collect::>() - }; - for extension in &extensions { - if !DEVICE_EXTENSION_NAMES.contains(&extension.as_ref()) { + let mut extensions = Vec::new(); + for raw in unsafe { + slice::from_raw_parts(dev_info.ppEnabledExtensionNames, dev_info.enabledExtensionCount as _) + } { + let cstr = unsafe { CStr::from_ptr(*raw) }; + if !DEVICE_EXTENSION_NAMES.contains(&cstr.to_bytes_with_nul()) { return VkResult::VK_ERROR_EXTENSION_NOT_PRESENT; } + let owned = cstr + .to_str() + .expect("Invalid extension name") + .to_owned(); + extensions.push(owned); } extensions }; @@ -806,8 +885,6 @@ static INSTANCE_EXTENSION_NAME_VK_KHR_SURFACE: &str = "VK_KHR_surface"; static INSTANCE_EXTENSION_NAME_VK_KHR_WIN32_SURFACE: &str = "VK_KHR_win32_surface"; #[cfg(target_os="macos")] static INSTANCE_EXTENSION_NAME_VK_MACOS_SURFACE: &str = "VK_MVK_macos_surface"; -static DEVICE_EXTENSION_NAME_VK_KHR_SWAPCHAIN: &str = "VK_KHR_swapchain"; -static DEVICE_EXTENSION_NAME_VK_KHR_MAINTENANCE1: &str = "VK_KHR_maintenance1"; lazy_static! { // TODO: Request from backend @@ -850,10 +927,12 @@ lazy_static! { extensions.to_vec() }; - static ref DEVICE_EXTENSION_NAMES: Vec<&'static str> = { + static ref DEVICE_EXTENSION_NAMES: Vec<&'static [u8]> = { vec![ - DEVICE_EXTENSION_NAME_VK_KHR_SWAPCHAIN, - DEVICE_EXTENSION_NAME_VK_KHR_MAINTENANCE1, + &VK_KHR_SWAPCHAIN_EXTENSION_NAME[..], + &VK_KHR_MAINTENANCE1_EXTENSION_NAME[..], + &VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME[..], + &VK_EXTX_PORTABILITY_SUBSET_EXTENSION_NAME[..], ] }; @@ -867,14 +946,20 @@ lazy_static! { extensionName: [0; 256], // VK_KHR_MAINTENANCE1_EXTENSION_NAME specVersion: VK_KHR_MAINTENANCE1_SPEC_VERSION, }, + VkExtensionProperties { + extensionName: [0; 256], // VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME + specVersion: VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION, + }, + VkExtensionProperties { + extensionName: [0; 256], // VK_EXTX_PORTABILITY_SUBSET_EXTENSION_NAME + specVersion: VK_EXTX_PORTABILITY_SUBSET_SPEC_VERSION, + }, ]; for (&name, extension) in DEVICE_EXTENSION_NAMES.iter().zip(&mut extensions) { extension .extensionName[.. name.len()] - .copy_from_slice(unsafe { - mem::transmute(name.as_bytes()) - }); + .copy_from_slice(unsafe { mem::transmute(name) }); } extensions.to_vec() diff --git a/libportability-gfx/src/lib.rs b/libportability-gfx/src/lib.rs index 137095c..88b3f17 100644 --- a/libportability-gfx/src/lib.rs +++ b/libportability-gfx/src/lib.rs @@ -512,6 +512,15 @@ pub const VK_EXT_discard_rectangles: ::std::os::raw::c_uint = 1; pub const VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION: ::std::os::raw::c_uint = 1; pub const VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME: &'static [u8; 26usize] = b"VK_EXT_discard_rectangles\x00"; +pub const VK_EXTX_portability_subset: ::std::os::raw::c_uint = 1; +pub const VK_EXTX_PORTABILITY_SUBSET_SPEC_VERSION: + ::std::os::raw::c_uint = + 2; +pub const VK_EXTX_PORTABILITY_SUBSET_EXTENSION_NAME: + &'static [u8; 27usize] = + b"VK_EXTX_portability_subset\x00"; + + pub type wchar_t = ::std::os::raw::c_int; #[repr(C)] #[derive(Debug, Copy)] @@ -721,6 +730,7 @@ pub enum VkStructureType { VK_STRUCTURE_TYPE_MEMORY_BARRIER = 46, VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = 47, VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = 48, + VK_STRUCTURE_TYPE_RANGE_SIZE = 49, VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000, VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001, VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR = 1000002000, @@ -829,7 +839,9 @@ pub enum VkStructureType { 1000099001, VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK = 1000122000, VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK = 1000123000, - VK_STRUCTURE_TYPE_RANGE_SIZE = 49, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_EXTX = 100163000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_EXTX = 100163001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_SUPPORT_EXTX = 100163002, VK_STRUCTURE_TYPE_MAX_ENUM = 2147483647, } pub const VkSystemAllocationScope_VK_SYSTEM_ALLOCATION_SCOPE_BEGIN_RANGE: @@ -2601,7 +2613,7 @@ impl Clone for VkSubresourceLayout { fn clone(&self) -> Self { *self } } #[repr(C)] -#[derive(Debug, Copy)] +#[derive(Debug, Copy, PartialEq)] pub struct VkComponentMapping { pub r: VkComponentSwizzle, pub g: VkComponentSwizzle, @@ -6907,3 +6919,43 @@ pub type PFN_vkCreateMacOSSurfaceMVK = ::std::option::Option VkResult>; + + +#[repr(C)] +#[derive(Debug, Copy)] +pub struct VkPhysicalDevicePortabilitySubsetFeaturesEXTX { + pub sType: VkStructureType, + pub pNext: *const ::std::os::raw::c_void, + pub triangleFans: VkBool32, + pub separateStencilMaskRef: VkBool32, + pub events: VkBool32, + pub standardImageViews: VkBool32, + pub samplerMipLodBias: VkBool32, +} +impl Clone for VkPhysicalDevicePortabilitySubsetFeaturesEXTX { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct VkPhysicalDevicePortabilitySubsetPropertiesEXTX { + pub sType: VkStructureType, + pub pNext: *const ::std::os::raw::c_void, + pub minVertexInputBindingStrideAlignment: u32, +} +impl Clone for VkPhysicalDevicePortabilitySubsetPropertiesEXTX { + fn clone(&self) -> Self { *self } +} +#[repr(C)] +#[derive(Debug, Copy)] +pub struct VkPhysicalDeviceImageViewSupportEXTX { + pub sType: VkStructureType, + pub pNext: *const ::std::os::raw::c_void, + pub flags: VkImageViewCreateFlags, + pub viewType: VkImageViewType, + pub format: VkFormat, + pub components: VkComponentMapping, + pub aspectMask: VkImageAspectFlags, +} +impl Clone for VkPhysicalDeviceImageViewSupportEXTX { + fn clone(&self) -> Self { *self } +} From d2ca924a71d12791431e2b3d8cfd74da7d30a2d9 Mon Sep 17 00:00:00 2001 From: Dzmitry Malyshau Date: Thu, 7 Feb 2019 09:47:18 -0500 Subject: [PATCH 3/5] Update gfx and use the new feature flags --- Cargo.lock | 20 ++++++++++---------- libportability-gfx/src/impls.rs | 12 ++++++------ 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 20975ea..dba9e9e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -305,7 +305,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "gfx-backend-dx11" version = "0.1.0" -source = "git+https://github.com/gfx-rs/gfx#5dac01c1be02db9251d8e61098dda204c999ae5f" +source = "git+https://github.com/gfx-rs/gfx#9eaee231f04b8e8d9c7672146edc8063a8ba6c9f" dependencies = [ "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "derivative 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -323,7 +323,7 @@ dependencies = [ [[package]] name = "gfx-backend-dx12" version = "0.1.0" -source = "git+https://github.com/gfx-rs/gfx#5dac01c1be02db9251d8e61098dda204c999ae5f" +source = "git+https://github.com/gfx-rs/gfx#9eaee231f04b8e8d9c7672146edc8063a8ba6c9f" dependencies = [ "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "d3d12 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -340,7 +340,7 @@ dependencies = [ [[package]] name = "gfx-backend-metal" version = "0.1.0" -source = "git+https://github.com/gfx-rs/gfx#5dac01c1be02db9251d8e61098dda204c999ae5f" +source = "git+https://github.com/gfx-rs/gfx#9eaee231f04b8e8d9c7672146edc8063a8ba6c9f" dependencies = [ "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "block 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -362,7 +362,7 @@ dependencies = [ [[package]] name = "gfx-backend-vulkan" version = "0.1.0" -source = "git+https://github.com/gfx-rs/gfx#5dac01c1be02db9251d8e61098dda204c999ae5f" +source = "git+https://github.com/gfx-rs/gfx#9eaee231f04b8e8d9c7672146edc8063a8ba6c9f" dependencies = [ "ash 0.27.1 (registry+https://github.com/rust-lang/crates.io-index)", "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -379,7 +379,7 @@ dependencies = [ [[package]] name = "gfx-hal" version = "0.1.0" -source = "git+https://github.com/gfx-rs/gfx#5dac01c1be02db9251d8e61098dda204c999ae5f" +source = "git+https://github.com/gfx-rs/gfx#9eaee231f04b8e8d9c7672146edc8063a8ba6c9f" dependencies = [ "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", @@ -849,7 +849,7 @@ dependencies = [ [[package]] name = "range-alloc" version = "0.1.0" -source = "git+https://github.com/gfx-rs/gfx#5dac01c1be02db9251d8e61098dda204c999ae5f" +source = "git+https://github.com/gfx-rs/gfx#9eaee231f04b8e8d9c7672146edc8063a8ba6c9f" [[package]] name = "rdrand" @@ -1049,7 +1049,7 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.0.5" +version = "3.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1214,7 +1214,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", - "xml-rs 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "xml-rs 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1241,7 +1241,7 @@ version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "memmap 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", - "tempfile 3.0.5 (registry+https://github.com/rust-lang/crates.io-index)", + "tempfile 3.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "wayland-client 0.12.5 (registry+https://github.com/rust-lang/crates.io-index)", "wayland-protocols 0.12.5 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1495,7 +1495,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" "checksum storage-map 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "cb94f167ccba0941876c8e722e888be8b4c05511ffdacc8cfcd4c647adfd424d" "checksum syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)" = "f92e629aa1d9c827b2bb8297046c1ccffc57c99b947a680d3ccff1f136a3bee9" "checksum synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "73687139bf99285483c96ac0add482c3776528beac1d97d444f6e91f203a2015" -"checksum tempfile 3.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "7e91405c14320e5c79b3d148e1c86f40749a36e490642202a31689cb1a3452b2" +"checksum tempfile 3.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "37daa55a7240c4931c84559f03b3cad7d19535840d1c4a0cc4e9b2fb0dcf70ff" "checksum termcolor 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "4096add70612622289f2fdcdbd5086dc81c1e2675e6ae58d6c4f62a16c6d7f2f" "checksum termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "689a3bdfaab439fd92bc87df5c4c78417d3cbe537487274e9b0b2dce76e92096" "checksum thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b" diff --git a/libportability-gfx/src/impls.rs b/libportability-gfx/src/impls.rs index b1b320e..e09d8d5 100644 --- a/libportability-gfx/src/impls.rs +++ b/libportability-gfx/src/impls.rs @@ -237,20 +237,20 @@ pub extern "C" fn gfxGetPhysicalDeviceFeatures2KHR( if features.contains(hal::Features::SEPARATE_STENCIL_REF_VALUES) { data.separateStencilMaskRef = VK_TRUE; } - //TODO: turn those into feature flags + if features.contains(hal::Features::SAMPLER_MIP_LOD_BIAS) { + data.samplerMipLodBias = VK_TRUE; + } + //TODO: turn this into a feature flag if !cfg!(feature = "gfx-backend-metal") { data.standardImageViews = VK_TRUE; - data.samplerMipLodBias = VK_TRUE; } } VkStructureType::VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_EXTX => { let data = unsafe { (ptr as *mut VkPhysicalDevicePortabilitySubsetPropertiesEXTX).as_mut().unwrap() }; - //TODO: turn this into a limit value - if cfg!(feature = "gfx-backend-metal") { - data.minVertexInputBindingStrideAlignment = 4; - } + let limits = adapter.physical_device.limits(); + data.minVertexInputBindingStrideAlignment = limits.min_vertex_input_binding_stride_alignment as u32; } other => { warn!("Unrecognized {:?}, skipping", other); From 781c9bb627a01fc6eb9262791af413cb42815ca5 Mon Sep 17 00:00:00 2001 From: Dzmitry Malyshau Date: Thu, 7 Feb 2019 15:10:21 -0500 Subject: [PATCH 4/5] Implement the unified Metal surface creation --- libportability-gfx/src/impls.rs | 128 +++++++++++++++++--------------- libportability-gfx/src/lib.rs | 24 ++++++ 2 files changed, 94 insertions(+), 58 deletions(-) diff --git a/libportability-gfx/src/impls.rs b/libportability-gfx/src/impls.rs index e09d8d5..022e805 100644 --- a/libportability-gfx/src/impls.rs +++ b/libportability-gfx/src/impls.rs @@ -67,45 +67,39 @@ pub extern "C" fn gfxCreateInstance( .map(Handle::new) .collect(); - unsafe { - let create_info = &*pCreateInfo; + let create_info = unsafe { &*pCreateInfo }; + let application_info = unsafe { create_info.pApplicationInfo.as_ref() }; - let application_info = create_info.pApplicationInfo.as_ref(); - - if let Some(ai) = application_info { - // Compare major and minor parts of version only - patch is ignored - let (supported_major, supported_minor, _) = VERSION; - let requested_major_minor = ai.apiVersion >> 12; - let version_supported = requested_major_minor - & (supported_major << 10 | supported_minor) - == requested_major_minor; - if !version_supported { - return VkResult::VK_ERROR_INCOMPATIBLE_DRIVER; - } + if let Some(ai) = application_info { + // Compare major and minor parts of version only - patch is ignored + let (supported_major, supported_minor, _) = VERSION; + let requested_major_minor = ai.apiVersion >> 12; + let version_supported = requested_major_minor + & (supported_major << 10 | supported_minor) + == requested_major_minor; + if !version_supported { + return VkResult::VK_ERROR_INCOMPATIBLE_DRIVER; } + } - let enabled_extensions = if create_info.enabledExtensionCount == 0 { - Vec::new() - } else { - let extensions = slice::from_raw_parts( - create_info.ppEnabledExtensionNames, - create_info.enabledExtensionCount as _, - ).iter() - .map(|raw| { - CStr::from_ptr(*raw) - .to_str() - .expect("Invalid extension name") - .to_owned() - }) - .collect::>(); - for extension in &extensions { - if !INSTANCE_EXTENSION_NAMES.contains(&extension.as_str()) { - return VkResult::VK_ERROR_EXTENSION_NOT_PRESENT; - } + let mut enabled_extensions = Vec::new(); + if create_info.enabledExtensionCount != 0 { + for raw in unsafe { + slice::from_raw_parts(create_info.ppEnabledExtensionNames, create_info.enabledExtensionCount as _) + } { + let cstr = unsafe { CStr::from_ptr(*raw) }; + if !INSTANCE_EXTENSION_NAMES.contains(&cstr.to_bytes_with_nul()) { + return VkResult::VK_ERROR_EXTENSION_NOT_PRESENT; } - extensions - }; + let owned = cstr + .to_str() + .expect("Invalid extension name") + .to_owned(); + enabled_extensions.push(owned); + } + } + unsafe { *pInstance = Handle::new(RawInstance { backend, adapters, @@ -493,6 +487,7 @@ pub extern "C" fn gfxGetInstanceProcAddr( vkGetPhysicalDeviceSurfacePresentModesKHR, PFN_vkGetPhysicalDeviceSurfacePresentModesKHR => gfxGetPhysicalDeviceSurfacePresentModesKHR, vkCreateWin32SurfaceKHR, PFN_vkCreateWin32SurfaceKHR => gfxCreateWin32SurfaceKHR, + vkCreateMetalSurfaceEXT, PFN_vkCreateMetalSurfaceEXT => gfxCreateMetalSurfaceEXT, vkCreateMacOSSurfaceMVK, PFN_vkCreateMacOSSurfaceMVK => gfxCreateMacOSSurfaceMVK, vkDestroySurfaceKHR, PFN_vkDestroySurfaceKHR => gfxDestroySurfaceKHR, @@ -817,10 +812,8 @@ pub extern "C" fn gfxCreateDevice( rd_device }; - let enabled_extensions = if dev_info.enabledExtensionCount == 0 { - Vec::new() - } else { - let mut extensions = Vec::new(); + let mut enabled_extensions = Vec::new(); + if dev_info.enabledExtensionCount != 0 { for raw in unsafe { slice::from_raw_parts(dev_info.ppEnabledExtensionNames, dev_info.enabledExtensionCount as _) } { @@ -832,10 +825,9 @@ pub extern "C" fn gfxCreateDevice( .to_str() .expect("Invalid extension name") .to_owned(); - extensions.push(owned); + enabled_extensions.push(owned); } - extensions - }; + } let gpu = Gpu { device: gpu.device, @@ -879,22 +871,17 @@ pub extern "C" fn gfxDestroyDevice(gpu: VkDevice, _pAllocator: *const VkAllocati } } -// TODO: Avoid redefining these somehow -static INSTANCE_EXTENSION_NAME_VK_KHR_SURFACE: &str = "VK_KHR_surface"; -#[cfg(target_os="windows")] -static INSTANCE_EXTENSION_NAME_VK_KHR_WIN32_SURFACE: &str = "VK_KHR_win32_surface"; -#[cfg(target_os="macos")] -static INSTANCE_EXTENSION_NAME_VK_MACOS_SURFACE: &str = "VK_MVK_macos_surface"; - lazy_static! { // TODO: Request from backend - static ref INSTANCE_EXTENSION_NAMES: Vec<&'static str> = { + static ref INSTANCE_EXTENSION_NAMES: Vec<&'static [u8]> = { vec![ - INSTANCE_EXTENSION_NAME_VK_KHR_SURFACE, + VK_KHR_SURFACE_EXTENSION_NAME, #[cfg(target_os="windows")] - INSTANCE_EXTENSION_NAME_VK_KHR_WIN32_SURFACE, + VK_KHR_WIN32_SURFACE_EXTENSION_NAME, #[cfg(target_os="macos")] - INSTANCE_EXTENSION_NAME_VK_MACOS_SURFACE, + VK_EXT_METAL_SURFACE_EXTENSION_NAME, + #[cfg(target_os="macos")] + VK_MVK_MACOS_SURFACE_EXTENSION_NAME, ] }; @@ -920,7 +907,7 @@ lazy_static! { extension .extensionName[.. name.len()] .copy_from_slice(unsafe { - mem::transmute(name.as_bytes()) + mem::transmute(name) }); } @@ -1105,8 +1092,8 @@ pub extern "C" fn gfxQueueSubmit( let submission = hal::queue::Submission { command_buffers: cmd_slice.iter(), - wait_semaphores: wait_semaphores, - signal_semaphores: signal_semaphores, + wait_semaphores, + signal_semaphores, }; unsafe { queue.submit(submission, fence.as_ref()); } @@ -4613,11 +4600,36 @@ pub extern "C" fn gfxQueuePresentKHR( .map(|semaphore| &**semaphore) }; - unsafe { - queue.present(swapchains, wait_semaphores).unwrap(); + match unsafe { + queue.present(swapchains, wait_semaphores) + } { + Ok(_) => VkResult::VK_SUCCESS, + Err(_) => VkResult::VK_ERROR_SURFACE_LOST_KHR, } +} - VkResult::VK_SUCCESS +#[inline] +pub extern "C" fn gfxCreateMetalSurfaceEXT( + instance: VkInstance, + pCreateInfo: *const VkMetalSurfaceCreateInfoEXT, + pAllocator: *const VkAllocationCallbacks, + pSurface: *mut VkSurfaceKHR, +) -> VkResult { + assert!(pAllocator.is_null()); + let info = unsafe { &*pCreateInfo }; + #[cfg(feature = "gfx-backend-metal")] + unsafe { + assert_eq!(info.flags, 0); + *pSurface = Handle::new( + instance.backend.create_surface_from_layer(info.pLayer as *mut _), + ); + VkResult::VK_SUCCESS + } + #[cfg(not(feature = "gfx-backend-metal"))] + { + let _ = (instance, info, pSurface); + unreachable!() + } } #[inline] diff --git a/libportability-gfx/src/lib.rs b/libportability-gfx/src/lib.rs index 88b3f17..6bc6c88 100644 --- a/libportability-gfx/src/lib.rs +++ b/libportability-gfx/src/lib.rs @@ -265,6 +265,9 @@ pub const VK_KHR_WIN32_SURFACE_EXTENSION_NAME: &'static [u8; 21usize] = b"VK_KHR_win32_surface\x00"; pub const VK_MVK_MACOS_SURFACE_EXTENSION_NAME: &'static [u8; 21usize] = b"VK_MVK_macos_surface\x00"; +pub const VK_EXT_METAL_SURFACE_EXTENSION_NAME: &'static [u8; 21usize] = + b"VK_EXT_metal_surface\x00"; +pub const VK_EXT_METAL_SURFACE_SPEC_VERSION: ::std::os::raw::c_uint = 1; pub const VK_KHR_swapchain: ::std::os::raw::c_uint = 1; pub const VK_KHR_SWAPCHAIN_SPEC_VERSION: ::std::os::raw::c_uint = 68; pub const VK_KHR_SWAPCHAIN_EXTENSION_NAME: &'static [u8; 17usize] = @@ -839,6 +842,7 @@ pub enum VkStructureType { 1000099001, VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK = 1000122000, VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK = 1000123000, + VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT = 1000248000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_EXTX = 100163000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_EXTX = 100163001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_SUPPORT_EXTX = 100163002, @@ -1936,6 +1940,8 @@ pub enum VkStencilFaceFlagBits { VK_STENCIL_FACE_FLAG_BITS_MAX_ENUM = 2147483647, } pub type VkStencilFaceFlags = VkFlags; +pub type VkMetalSurfaceCreateFlagsEXT = VkFlags; + pub type PFN_vkAllocationFunction = ::std::option::Option VkResult>; +pub type PFN_vkCreateMetalSurfaceEXT = ::std::option::Option VkResult>; + pub type PFN_vkCreateMacOSSurfaceMVK = ::std::option::Option Self { *self } } +#[repr(C)] +#[derive(Debug, Copy)] +pub struct VkMetalSurfaceCreateInfoEXT { + pub sType: VkStructureType, + pub pNext: *const ::std::os::raw::c_void, + pub flags: VkMetalSurfaceCreateFlagsEXT, + pub pLayer: *const ::std::os::raw::c_void, +} +impl Clone for VkMetalSurfaceCreateInfoEXT { + fn clone(&self) -> Self { *self } +} From 6c67ead74fcca0cfcf7fa80d1f742a60f63de6e2 Mon Sep 17 00:00:00 2001 From: Dzmitry Malyshau Date: Thu, 7 Feb 2019 15:41:38 -0500 Subject: [PATCH 5/5] Another dependency update, instance extension query fix --- Cargo.lock | 12 ++++++------ libportability-gfx/Cargo.toml | 1 + libportability-gfx/src/impls.rs | 27 ++++++++++++++++----------- libportability-icd/src/lib.rs | 1 + 4 files changed, 24 insertions(+), 17 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index dba9e9e..0298cdd 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -305,7 +305,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "gfx-backend-dx11" version = "0.1.0" -source = "git+https://github.com/gfx-rs/gfx#9eaee231f04b8e8d9c7672146edc8063a8ba6c9f" +source = "git+https://github.com/gfx-rs/gfx#85015738a3b5597e0ee9877f43bd04cb2682463d" dependencies = [ "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "derivative 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -323,7 +323,7 @@ dependencies = [ [[package]] name = "gfx-backend-dx12" version = "0.1.0" -source = "git+https://github.com/gfx-rs/gfx#9eaee231f04b8e8d9c7672146edc8063a8ba6c9f" +source = "git+https://github.com/gfx-rs/gfx#85015738a3b5597e0ee9877f43bd04cb2682463d" dependencies = [ "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "d3d12 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -340,7 +340,7 @@ dependencies = [ [[package]] name = "gfx-backend-metal" version = "0.1.0" -source = "git+https://github.com/gfx-rs/gfx#9eaee231f04b8e8d9c7672146edc8063a8ba6c9f" +source = "git+https://github.com/gfx-rs/gfx#85015738a3b5597e0ee9877f43bd04cb2682463d" dependencies = [ "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "block 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -362,7 +362,7 @@ dependencies = [ [[package]] name = "gfx-backend-vulkan" version = "0.1.0" -source = "git+https://github.com/gfx-rs/gfx#9eaee231f04b8e8d9c7672146edc8063a8ba6c9f" +source = "git+https://github.com/gfx-rs/gfx#85015738a3b5597e0ee9877f43bd04cb2682463d" dependencies = [ "ash 0.27.1 (registry+https://github.com/rust-lang/crates.io-index)", "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -379,7 +379,7 @@ dependencies = [ [[package]] name = "gfx-hal" version = "0.1.0" -source = "git+https://github.com/gfx-rs/gfx#9eaee231f04b8e8d9c7672146edc8063a8ba6c9f" +source = "git+https://github.com/gfx-rs/gfx#85015738a3b5597e0ee9877f43bd04cb2682463d" dependencies = [ "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", @@ -849,7 +849,7 @@ dependencies = [ [[package]] name = "range-alloc" version = "0.1.0" -source = "git+https://github.com/gfx-rs/gfx#9eaee231f04b8e8d9c7672146edc8063a8ba6c9f" +source = "git+https://github.com/gfx-rs/gfx#85015738a3b5597e0ee9877f43bd04cb2682463d" [[package]] name = "rdrand" diff --git a/libportability-gfx/Cargo.toml b/libportability-gfx/Cargo.toml index dec651d..4f16930 100644 --- a/libportability-gfx/Cargo.toml +++ b/libportability-gfx/Cargo.toml @@ -4,6 +4,7 @@ publish = false version = "0.1.0" authors = [ "Dzmitry Malyshau ", + "Joshua Groves ", "Markus Siglreithmaier ", ] diff --git a/libportability-gfx/src/impls.rs b/libportability-gfx/src/impls.rs index 022e805..2b89ede 100644 --- a/libportability-gfx/src/impls.rs +++ b/libportability-gfx/src/impls.rs @@ -878,15 +878,16 @@ lazy_static! { VK_KHR_SURFACE_EXTENSION_NAME, #[cfg(target_os="windows")] VK_KHR_WIN32_SURFACE_EXTENSION_NAME, - #[cfg(target_os="macos")] + #[cfg(feature="gfx-backend-metal")] VK_EXT_METAL_SURFACE_EXTENSION_NAME, #[cfg(target_os="macos")] VK_MVK_MACOS_SURFACE_EXTENSION_NAME, + VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME, ] }; static ref INSTANCE_EXTENSIONS: Vec = { - let mut extensions = [ + let mut extensions = vec![ VkExtensionProperties { extensionName: [0; 256], // VK_KHR_SURFACE_EXTENSION_NAME specVersion: VK_KHR_SURFACE_SPEC_VERSION, @@ -896,11 +897,20 @@ lazy_static! { extensionName: [0; 256], // VK_KHR_WIN32_SURFACE_EXTENSION_NAME specVersion: VK_KHR_WIN32_SURFACE_SPEC_VERSION, }, + #[cfg(feature="gfx-backend-metal")] + VkExtensionProperties { + extensionName: [0; 256], // VK_EXT_METAL_SURFACE_EXTENSION_NAME + specVersion: VK_EXT_METAL_SURFACE_SPEC_VERSION, + }, #[cfg(target_os="macos")] VkExtensionProperties { extensionName: [0; 256], // VK_MVK_MACOS_SURFACE_EXTENSION_NAME specVersion: VK_MVK_MACOS_SURFACE_SPEC_VERSION, }, + VkExtensionProperties { + extensionName: [0; 256], // VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME + specVersion: VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION, + }, ]; for (&name, extension) in INSTANCE_EXTENSION_NAMES.iter().zip(&mut extensions) { @@ -911,15 +921,14 @@ lazy_static! { }); } - extensions.to_vec() + extensions }; static ref DEVICE_EXTENSION_NAMES: Vec<&'static [u8]> = { vec![ - &VK_KHR_SWAPCHAIN_EXTENSION_NAME[..], - &VK_KHR_MAINTENANCE1_EXTENSION_NAME[..], - &VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME[..], - &VK_EXTX_PORTABILITY_SUBSET_EXTENSION_NAME[..], + VK_KHR_SWAPCHAIN_EXTENSION_NAME, + VK_KHR_MAINTENANCE1_EXTENSION_NAME, + VK_EXTX_PORTABILITY_SUBSET_EXTENSION_NAME, ] }; @@ -933,10 +942,6 @@ lazy_static! { extensionName: [0; 256], // VK_KHR_MAINTENANCE1_EXTENSION_NAME specVersion: VK_KHR_MAINTENANCE1_SPEC_VERSION, }, - VkExtensionProperties { - extensionName: [0; 256], // VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME - specVersion: VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION, - }, VkExtensionProperties { extensionName: [0; 256], // VK_EXTX_PORTABILITY_SUBSET_EXTENSION_NAME specVersion: VK_EXTX_PORTABILITY_SUBSET_SPEC_VERSION, diff --git a/libportability-icd/src/lib.rs b/libportability-icd/src/lib.rs index a5a500a..dc58440 100644 --- a/libportability-icd/src/lib.rs +++ b/libportability-icd/src/lib.rs @@ -44,6 +44,7 @@ pub extern "C" fn vk_icdGetPhysicalDeviceProcAddr( proc_addr!{ name, vkGetPhysicalDeviceFeatures, PFN_vkGetPhysicalDeviceFeatures => gfxGetPhysicalDeviceFeatures, + vkGetPhysicalDeviceFeatures2KHR, PFN_vkGetPhysicalDeviceFeatures2KHR => gfxGetPhysicalDeviceFeatures2KHR, vkGetPhysicalDeviceProperties, PFN_vkGetPhysicalDeviceProperties => gfxGetPhysicalDeviceProperties, vkGetPhysicalDeviceFormatProperties, PFN_vkGetPhysicalDeviceFormatProperties => gfxGetPhysicalDeviceFormatProperties, vkGetPhysicalDeviceImageFormatProperties, PFN_vkGetPhysicalDeviceImageFormatProperties => gfxGetPhysicalDeviceImageFormatProperties,