PistonDevelopers / conrod

An easy-to-use, 2D GUI library written entirely in Rust.
Other
3.35k stars 296 forks source link

Bump webgpu to 0.8 #1416

Closed AlexEne closed 3 years ago

AlexEne commented 3 years ago

I've upgraded webgpu. I can't run all the tests as I'm on windows and don't have ninja installed. Hopefully if there's anything wrong the CI will pick it up.

I did run the webgpu backend tests and those were fine.

AlexEne commented 3 years ago

I noticed the fmt failiure. Checking what vulkano version works. It seems that vulkano 0.22 builds fine under WSL. It actually doesn't build :D. Will further dig into it.

AlexEne commented 3 years ago

So in order to fix the build due to the change here

Rename shaderf3264 to shaderFloat64

I need to upgrade to vulkano at at least 0.20 from the current 0.16.
This will take a while and I think I need some help as I'm not too familiar with vulkan.
I can cope with some WGPU-RS changes, this is a bit complicated and will take me some time to figure out as a bunch of things have happened in Vulkan in the meantime.

mitchmindtree commented 3 years ago

Hey @AlexEne don't stress about the vulkano backend if you don't have the time! While it would be nice to have it out of date, it was broken before this PR and isn't related - happy to leave that for a future fix. See #1409 for some context.

Going to take a look at this now!

mitchmindtree commented 3 years ago

When attempting to run the all_winit_wgpu example (NixOS, GNOME Wayland, Intel GPU), I'm running into the following validation error during shader module creation:

wgpu error: Validation Error

Caused by:
    In Device::create_shader_module
      note: label = `shaders/frag.spv`
    Function [1] 'main' is invalid
    Required uniformity of control flow for IMPLICIT_LEVEL in [20] is not fulfilled because of Expression([1])

thread 'main' panicked at 'Handling wgpu errors as fatal by default', /home/mindtree/.cargo/registry/src/github.com-1ecc6299db9ec823/wgpu-0.8.1/src/backend/direct.rs:1955:5

Looking at the diff, I think it is unlikely this is to do with anything you have changed, as the error is related to validation of the SPIR-V shader which hasn't changed in a while. Likely, this is one of the new validation checks picking up something wrong with old code. Will have a look

mitchmindtree commented 3 years ago

It's a bit of a strange one - I've opened an issue here https://github.com/gfx-rs/wgpu-rs/issues/912.