aclysma / skulpin

Skia + Vulkan = Skulpin
Apache License 2.0
401 stars 41 forks source link

Build errors on Windows 10 #89

Closed buzmeg closed 3 years ago

buzmeg commented 3 years ago

It looks like ash updated something:

cargo run --verbose --example physics --features winit-app,winit-24 Fresh autocfg v1.0.1 Fresh cfg-if v1.0.0 Fresh unicode-xid v0.2.1 Fresh lazy_static v1.4.0 Fresh version_check v0.9.2 Fresh cc v1.0.67 Fresh regex-syntax v0.6.22 Fresh adler v1.0.2 Fresh spin v0.5.2 Fresh untrusted v0.7.1 Fresh glob v0.3.0 Fresh matches v0.1.8 Fresh tinyvec_macros v0.1.0 Fresh downcast-rs v1.2.0 Fresh percent-encoding v2.1.0 Fresh unicode-width v0.1.8 Fresh rustc-hash v1.1.0 Fresh vec_map v0.8.2 Fresh scopeguard v1.1.0 Fresh strsim v0.8.0 Fresh base64 v0.13.0 Fresh fnv v1.0.7 Fresh humantime v2.1.0 Fresh once_cell v1.7.2 Fresh lazycell v1.3.0 Fresh peeking_take_while v0.1.2 Fresh shlex v0.1.1 Fresh itoa v0.4.7 Fresh chunked_transfer v1.4.0 Fresh unicode-segmentation v1.7.1 Fresh smallvec v1.6.1 Fresh arrayvec v0.5.2 Fresh cfg-if v0.1.10 Fresh ppv-lite86 v0.2.10 Fresh version-compare v0.0.10 Fresh paste v1.0.4 Fresh rawpointer v0.2.1 Fresh slab v0.4.2 Fresh either v1.6.1 Fresh quick-error v1.2.3 Fresh bit-vec v0.6.3 Fresh thread_local v1.0.1 Fresh cmake v0.1.45 Fresh tinyvec v1.1.1 Fresh unicode-bidi v0.3.4 Fresh form_urlencoded v1.0.1 Fresh textwrap v0.11.0 Fresh heck v0.3.2 Fresh lock_api v0.4.2 Fresh matrixmultiply v0.2.4 Fresh generational-arena v0.2.8 Fresh humantime v1.3.0 Fresh winapi v0.3.9 Fresh proc-macro2 v1.0.24 Fresh libc v0.2.88 Fresh memchr v2.3.4 Fresh bitflags v1.2.1 Fresh log v0.4.14 Fresh crc32fast v1.2.1 Fresh proc-macro-hack v0.5.19 Fresh unicode-normalization v0.1.17 Fresh libm v0.2.1 Fresh const_fn v0.4.5 Fresh ryu v1.0.5 Fresh quote v1.0.9 Fresh aho-corasick v0.7.15 Fresh libloading v0.6.7 Fresh crossbeam-utils v0.8.3 Fresh miniz_oxide v0.4.4 Fresh filetime v0.2.14 Fresh atty v0.2.14 Fresh raw-window-handle v0.3.3 Fresh winapi-util v0.1.5 Fresh libloading v0.7.0 Fresh which v3.1.1 Fresh glam v0.8.7 Fresh getrandom v0.1.16 Fresh encoding_rs v0.8.28 Fresh typenum v1.12.0 Fresh byteorder v1.3.4 Fresh ring v0.16.20 Fresh standback v0.2.15 Fresh num-traits v0.2.14 Fresh idna v0.2.2 Fresh nom v5.1.2 Fresh memoffset v0.6.1 Fresh syn v1.0.62 Fresh regex v1.4.3 Fresh tar v0.4.33 Fresh flate2 v1.0.20 Fresh crossbeam-channel v0.5.0 Fresh termcolor v1.1.2 Fresh ash v0.31.0 Fresh ash v0.32.0 Fresh clang-sys v1.0.1 Fresh clap v2.33.3 Fresh rand_core v0.5.1 Fresh crossbeam-queue v0.3.1 Fresh serde_derive v1.0.124 Fresh webpki v0.21.4 Fresh time-macros-impl v0.1.1 Fresh profiling-procmacros v0.1.3 Fresh sct v0.6.0 Fresh rafx-base v0.0.7 Fresh url v2.2.1 Fresh env_logger v0.8.3 Fresh cexpr v0.4.0 Fresh unidiff v0.3.3 Fresh num-complex v0.3.1 Fresh num-integer v0.1.44 Fresh approx v0.4.0 Fresh crossbeam-epoch v0.9.3 Fresh generic-array v0.14.4 Fresh num-derive v0.3.3 Fresh env_logger v0.6.2 Fresh serde v1.0.124 Fresh vk-mem v0.2.2 Fresh rustls v0.19.0 Fresh webpki-roots v0.21.0 Fresh profiling v0.1.8 Fresh ash-window v0.5.0 Fresh time-macros v0.1.1 Fresh bindgen v0.57.0 Fresh rand_chacha v0.2.2 Fresh serde_bytes v0.11.5 Fresh serde_json v1.0.64 Fresh toml v0.5.8 Fresh time v0.2.25 Fresh ureq v2.0.2 Fresh rand v0.7.3 Fresh bincode v1.3.2 Fresh simba v0.3.1 Fresh num-rational v0.3.2 Fresh crossbeam-deque v0.8.0 Compiling rafx-api v0.0.7 Fresh instant v0.1.9 Compiling sdl2-sys v0.34.2 Fresh rand_distr v0.3.0 Fresh crossbeam v0.8.0 Running rustc --crate-name rafx_api --edition=2018 C:\Users\andrewl\.cargo\registry\src\github.com-1ecc6299db9ec823\rafx-api-0.0.7\src\lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts --crate-type lib --emit=dep-info,metadata,link -C embed-bitcode=no -C debuginfo=2 --cfg "feature=\"ash\"" --cfg "feature=\"ash-window\"" --cfg "feature=\"default\"" --cfg "feature=\"rafx-vulkan\"" --cfg "feature=\"serde\"" --cfg "feature=\"serde-support\"" --cfg "feature=\"serde_bytes\"" --cfg "feature=\"vk-mem\"" -C metadata=5f3ab8c91baabd80 -C extra-filename=-5f3ab8c91baabd80 --out-dir C:\Users\andrewl\Desktop\rust_projects\skulpin\target\debug\deps -L dependency=C:\Users\andrewl\Desktop\rust_projects\skulpin\target\debug\deps --extern ash=C:\Users\andrewl\Desktop\rust_projects\skulpin\target\debug\deps\libash-b861ae952ec91cde.rmeta --extern ash_window=C:\Users\andrewl\Desktop\rust_projects\skulpin\target\debug\deps\libash_window-1686fbde239bf558.rmeta --extern bitflags=C:\Users\andrewl\Desktop\rust_projects\skulpin\target\debug\deps\libbitflags-82fb5b4d1ff6ce3a.rmeta --extern crossbeam_channel=C:\Users\andrewl\Desktop\rust_projects\skulpin\target\debug\deps\libcrossbeam_channel-65bf3c0801dee260.rmeta --extern fnv=C:\Users\andrewl\Desktop\rust_projects\skulpin\target\debug\deps\libfnv-a297a229b504ad4a.rmeta --extern log=C:\Users\andrewl\Desktop\rust_projects\skulpin\target\debug\deps\liblog-63efc7b73bb752d4.rmeta --extern profiling=C:\Users\andrewl\Desktop\rust_projects\skulpin\target\debug\deps\libprofiling-1888b142bb75012d.rmeta --extern rafx_base=C:\Users\andrewl\Desktop\rust_projects\skulpin\target\debug\deps\librafx_base-d5cddd35ca9c1282.rmeta --extern raw_window_handle=C:\Users\andrewl\Desktop\rust_projects\skulpin\target\debug\deps\libraw_window_handle-c7f2feb1409b2a95.rmeta --extern serde=C:\Users\andrewl\Desktop\rust_projects\skulpin\target\debug\deps\libserde-36cccc299401de57.rmeta --extern serde_bytes=C:\Users\andrewl\Desktop\rust_projects\skulpin\target\debug\deps\libserde_bytes-716c77d5b3fdbed0.rmeta --extern vk_mem=C:\Users\andrewl\Desktop\rust_projects\skulpin\target\debug\deps\libvk_mem-b7407264abc0d240.rmeta --cap-lints allow -L native=C:\Users\andrewl\Desktop\rust_projects\skulpin\target\debug\build\vk-mem-6a98c805860abba6\out Running C:\Users\andrewl\Desktop\rust_projects\skulpin\target\debug\build\sdl2-sys-f405d3a3b47e37b3\build-script-build Fresh parking_lot_core v0.8.3 Fresh nalgebra v0.24.1 Fresh skia-bindings v0.38.0 Fresh parking_lot v0.11.1 Fresh parry2d v0.1.2 Compiling skia-safe v0.38.0 Fresh winit v0.24.0 Compiling rapier2d v0.5.0 Running rustc --crate-name skia_safe --edition=2018 C:\Users\andrewl\.cargo\registry\src\github.com-1ecc6299db9ec823\skia-safe-0.38.0\src\lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts --crate-type lib --emit=dep-info,metadata,link -C embed-bitcode=no -C debuginfo=2 --cfg "feature=\"default\"" --cfg "feature=\"gpu\"" --cfg "feature=\"textlayout\"" --cfg "feature=\"vulkan\"" -C metadata=0aada90190dc4ed6 -C extra-filename=-0aada90190dc4ed6 --out-dir C:\Users\andrewl\Desktop\rust_projects\skulpin\target\debug\deps -L dependency=C:\Users\andrewl\Desktop\rust_projects\skulpin\target\debug\deps --extern bitflags=C:\Users\andrewl\Desktop\rust_projects\skulpin\target\debug\deps\libbitflags-82fb5b4d1ff6ce3a.rmeta --extern lazy_static=C:\Users\andrewl\Desktop\rust_projects\skulpin\target\debug\deps\liblazy_static-d20113d2098b0e23.rmeta --extern skia_bindings=C:\Users\andrewl\Desktop\rust_projects\skulpin\target\debug\deps\libskia_bindings-b3f57af29cf717b7.rmeta --cap-lints allow -L C:\Users\andrewl\Desktop\rust_projects\skulpin\target\debug\build\skia-bindings-bf7e36117bef26e4\out\skia Running rustc --crate-name rapier2d --edition=2018 C:\Users\andrewl\.cargo\registry\src\github.com-1ecc6299db9ec823\rapier2d-0.5.0\src/lib.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type lib --emit=dep-info,metadata,link -C embed-bitcode=no -C debuginfo=2 --cfg "feature=\"default\"" --cfg "feature=\"dim2\"" --cfg "feature=\"f32\"" -C metadata=3105f0eed1fd8d22 -C extra-filename=-3105f0eed1fd8d22 --out-dir C:\Users\andrewl\Desktop\rust_projects\skulpin\target\debug\deps -L dependency=C:\Users\andrewl\Desktop\rust_projects\skulpin\target\debug\deps --extern approx=C:\Users\andrewl\Desktop\rust_projects\skulpin\target\debug\deps\libapprox-d810eadbb0dbea79.rmeta --extern arrayvec=C:\Users\andrewl\Desktop\rust_projects\skulpin\target\debug\deps\libarrayvec-7bd3049088cfa4da.rmeta --extern bit_vec=C:\Users\andrewl\Desktop\rust_projects\skulpin\target\debug\deps\libbit_vec-db4f4fdf98f59ee8.rmeta --extern bitflags=C:\Users\andrewl\Desktop\rust_projects\skulpin\target\debug\deps\libbitflags-82fb5b4d1ff6ce3a.rmeta --extern crossbeam=C:\Users\andrewl\Desktop\rust_projects\skulpin\target\debug\deps\libcrossbeam-3dbd9ba040381d2e.rmeta --extern downcast_rs=C:\Users\andrewl\Desktop\rust_projects\skulpin\target\debug\deps\libdowncast_rs-00d2d76c789231ad.rmeta --extern generational_arena=C:\Users\andrewl\Desktop\rust_projects\skulpin\target\debug\deps\libgenerational_arena-46bb5d95c2eb90a3.rmeta --extern instant=C:\Users\andrewl\Desktop\rust_projects\skulpin\target\debug\deps\libinstant-f859ac339126d09a.rmeta --extern nalgebra=C:\Users\andrewl\Desktop\rust_projects\skulpin\target\debug\deps\libnalgebra-7660d4551cb9e307.rmeta --extern num_derive=C:\Users\andrewl\Desktop\rust_projects\skulpin\target\debug\deps\num_derive-a2b33ded1b208adb.dll --extern num_traits=C:\Users\andrewl\Desktop\rust_projects\skulpin\target\debug\deps\libnum_traits-d5e655bbffa7371a.rmeta --extern parry2d=C:\Users\andrewl\Desktop\rust_projects\skulpin\target\debug\deps\libparry2d-a655fbe432aedee7.rmeta --extern rustc_hash=C:\Users\andrewl\Desktop\rust_projects\skulpin\target\debug\deps\librustc_hash-05ff3e0677333cf9.rmeta --extern simba=C:\Users\andrewl\Desktop\rust_projects\skulpin\target\debug\deps\libsimba-d2b0f7d93a91542a.rmeta --extern vec_map=C:\Users\andrewl\Desktop\rust_projects\skulpin\target\debug\deps\libvec_map-94ced0c0acfb5c21.rmeta --cap-lints allow error[E0277]: the trait bound entry::VkEntry: ash::entry::EntryV1_0 is not satisfied --> C:\Users\andrewl.cargo\registry\src\github.com-1ecc6299db9ec823\rafx-api-0.0.7\src\backends\vulkan\swapchain.rs:130:13 130 ash_window::create_surface( ^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait ash::entry::EntryV1_0 is not implemented for entry::VkEntry

::: C:\Users\andrewl.cargo\registry\src\github.com-1ecc6299db9ec823\ash-window-0.5.0\src\lib.rs:29:8 | 29 | E: EntryV1_0, | --------- required by this bound in create_surface

error[E0277]: the trait bound entry::ash::Instance: ash::instance::InstanceV1_0 is not satisfied --> C:\Users\andrewl.cargo\registry\src\github.com-1ecc6299db9ec823\rafx-api-0.0.7\src\backends\vulkan\swapchain.rs:130:13 130 ash_window::create_surface( ^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait ash::instance::InstanceV1_0 is not implemented for entry::ash::Instance

::: C:\Users\andrewl.cargo\registry\src\github.com-1ecc6299db9ec823\ash-window-0.5.0\src\lib.rs:30:8 | 30 | I: InstanceV1_0, | ------------ required by this bound in create_surface

error[E0277]: ? couldn't convert the error to error::RafxError --> C:\Users\andrewl.cargo\registry\src\github.com-1ecc6299db9ec823\rafx-api-0.0.7\src\backends\vulkan\swapchain.rs:135:14 135 )? ^ the trait From<ash::vk::enums::Result> is not implemented for error::RafxError
= note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
= help: the following implementations were found:
          <error::RafxError as From<&str>>
          <error::RafxError as From<LoadingError>>
          <error::RafxError as From<entry::ash::vk::Result>>
          <error::RafxError as From<instance::VkCreateInstanceError>>
        and 3 others
= note: required by `std::convert::From::from`
error[E0308]: mismatched types --> C:\Users\andrewl.cargo\registry\src\github.com-1ecc6299db9ec823\rafx-api-0.0.7\src\backends\vulkan\swapchain.rs:148:13 148 surface, ^^^^^^^ expected struct SurfaceKHR, found struct ash::vk::definitions::SurfaceKHR
= note: perhaps two different versions of crate `ash` are being used?
error[E0308]: mismatched types --> C:\Users\andrewl.cargo\registry\src\github.com-1ecc6299db9ec823\rafx-api-0.0.7\src\backends\vulkan\swapchain.rs:170:13 170 surface, ^^^^^^^ expected struct SurfaceKHR, found struct ash::vk::definitions::SurfaceKHR
= note: perhaps two different versions of crate `ash` are being used?
error[E0277]: ? couldn't convert the error to instance::VkCreateInstanceError --> C:\Users\andrewl.cargo\registry\src\github.com-1ecc6299db9ec823\rafx-api-0.0.7\src\backends\vulkan\internal\instance.rs:112:84 112 let mut extension_names = ash_window::enumerate_required_extensions(window)?; ^ the trait From<ash::vk::enums::Result> is not implemented for instance::VkCreateInstanceError
= note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
= help: the following implementations were found:
          <instance::VkCreateInstanceError as From<InstanceError>>
          <instance::VkCreateInstanceError as From<entry::ash::vk::Result>>
= note: required by `std::convert::From::from`

error: aborting due to 6 previous errors

Some errors have detailed explanations: E0277, E0308. For more information about an error, try rustc --explain E0277. error: could not compile rafx-api

Caused by: process didn't exit successfully: rustc --crate-name rafx_api --edition=2018 C:\Users\andrewl\.cargo\registry\src\github.com-1ecc6299db9ec823\rafx-api-0.0.7\src\lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts --crate-type lib --emit=dep-info,metadata,link -C embed-bitcode=no -C debuginfo=2 --cfg "feature=\"ash\"" --cfg "feature=\"ash-window\"" --cfg "feature=\"default\"" --cfg "feature=\"rafx-vulkan\"" --cfg "feature=\"serde\"" --cfg "feature=\"serde-support\"" --cfg "feature=\"serde_bytes\"" --cfg "feature=\"vk-mem\"" -C metadata=5f3ab8c91baabd80 -C extra-filename=-5f3ab8c91baabd80 --out-dir C:\Users\andrewl\Desktop\rust_projects\skulpin\target\debug\deps -L dependency=C:\Users\andrewl\Desktop\rust_projects\skulpin\target\debug\deps --extern ash=C:\Users\andrewl\Desktop\rust_projects\skulpin\target\debug\deps\libash-b861ae952ec91cde.rmeta --extern ash_window=C:\Users\andrewl\Desktop\rust_projects\skulpin\target\debug\deps\libash_window-1686fbde239bf558.rmeta --extern bitflags=C:\Users\andrewl\Desktop\rust_projects\skulpin\target\debug\deps\libbitflags-82fb5b4d1ff6ce3a.rmeta --extern crossbeam_channel=C:\Users\andrewl\Desktop\rust_projects\skulpin\target\debug\deps\libcrossbeam_channel-65bf3c0801dee260.rmeta --extern fnv=C:\Users\andrewl\Desktop\rust_projects\skulpin\target\debug\deps\libfnv-a297a229b504ad4a.rmeta --extern log=C:\Users\andrewl\Desktop\rust_projects\skulpin\target\debug\deps\liblog-63efc7b73bb752d4.rmeta --extern profiling=C:\Users\andrewl\Desktop\rust_projects\skulpin\target\debug\deps\libprofiling-1888b142bb75012d.rmeta --extern rafx_base=C:\Users\andrewl\Desktop\rust_projects\skulpin\target\debug\deps\librafx_base-d5cddd35ca9c1282.rmeta --extern raw_window_handle=C:\Users\andrewl\Desktop\rust_projects\skulpin\target\debug\deps\libraw_window_handle-c7f2feb1409b2a95.rmeta --extern serde=C:\Users\andrewl\Desktop\rust_projects\skulpin\target\debug\deps\libserde-36cccc299401de57.rmeta --extern serde_bytes=C:\Users\andrewl\Desktop\rust_projects\skulpin\target\debug\deps\libserde_bytes-716c77d5b3fdbed0.rmeta --extern vk_mem=C:\Users\andrewl\Desktop\rust_projects\skulpin\target\debug\deps\libvk_mem-b7407264abc0d240.rmeta --cap-lints allow -L native=C:\Users\andrewl\Desktop\rust_projects\skulpin\target\debug\build\vk-mem-6a98c805860abba6\out (exit code: 1) warning: build failed, waiting for other jobs to finish... error: build failed

aclysma commented 3 years ago

cargo update -p ash:0.32.0 --precise 0.31 is a temporary fix for this problem. Caused by a couple dependencies (rafx and vk-mem) relying on ash >= * Also started hitting another compile error from a new Skia update. Looking at that too

aclysma commented 3 years ago

I committed a fix for this and published it as 0.12