Hi guys ( I hate this),
Sorry before hand if this is already acknowledged but WebGPU has been broken for a while now ( at least 2 to 3 months back).
I “know” this is not a BabylonJs issue, because this happens even with the previous versions.
About a month ago all my projects and demos stopped working with WebGPU ( Chrome, Edge, Chrome Canary). I ran some PG’s and saw the same. I assume this is related to Chromium updates on spec or something.
To replicate this just open a PG like the one bellow, select WebGPU and you’ll notice there is no textures being loaded.
Some examples of PG’s from the docs:
Thanks for reading this team. Have a great one!
Cheers!
Everything works for me as expected in WebGPU, in both Chrome and Edge.
Do you have some errors in the browser console? What does this page display for you:
1 Like
I am in Windows 11 (Surface Pro 7) - Chrome canary 127.0.6504.0 (Compilação oficial) canary (64 bits)
I see this:
Report:
Oh hell no… I have another Surface Pro running Windows 10 and … it works… Now what!?
Not a bug in BabylonJs as I suspected.
1 Like
Probably a problem with the drivers of your GPU. Have you installed the latest version?
This is definitely a drivers issue. not a BabylonJs issue
Although I’ve updated the MS drivers for Surface Pro 7 (https://www.microsoft.com/en-us/download/details.aspx?id=100419 ) no luck… Thank you for W11 I am loving it…
Got the latest drivers directly form Intel: https://www.intel.com/content/www/us/en/search.html#sort=relevancy&f:downloadtype=[Drivers]&f:@tabfilter=[Downloads]&f:@stm_10385_en=[Graphics,Processor%20Graphics,Intel®%20Iris®%20Plus%20Graphics%20Family] … no luck either
Going to be locked on WebGL on this device… I just hope MS and Intel solves it somehow. I love my Surface.
I know I am hammering this one down but… I found this on Bevy engine and can relate to the fact that they solved it. This seams to be related to the selection of the gpu.adapter…
As I am using Windows 11 it does not always fallback to DX12 as it uses Vulkan by default.
Related investigations on some open discussions about this:
opened 05:37AM - 11 Mar 23 UTC
C-Bug
A-Rendering
C-Regression
### Bevy version
v0.10.0
### [Optional] Relevant system information
The… system is a Dell XPS 13 7390 2-in-1 running windows.
```
2023-03-11T05:22:43.409198Z INFO bevy_winit::system: Creating new window "Bevy App" (0v0)
2023-03-11T05:22:44.121756Z INFO bevy_render::renderer: AdapterInfo { name: "Intel(R) Iris(R) Plus Graphics", vendor: 32902, device: 35410, device_type: IntegratedGpu, driver: "Intel Corporation", driver_info: "Intel driver", backend: Vulkan }
2023-03-11T05:22:45.181282Z INFO bevy_diagnostic::system_information_diagnostics_plugin::internal: SystemInfo { os: "Windows 11 Home", kernel: "22621", cpu: "Intel(R) Core(TM) i7-1065G7 CPU @ 1.30GHz", core_count: "4", memory: "7.8 GiB" }
```
### What you did
Ran `cargo run --example breakout`.
Also occurs with other examples, and in release builds, but the breakout one seems to be the most interesting broken output.
### What went wrong
The blocks, paddle, and ball don't render, but the score does. The game plays as normal, with score going up and with correct sound.
A few other examples i've tried only render a grey screen, but some seem to work
![image](https://user-images.githubusercontent.com/809082/224466543-bcbcb08a-b9d4-4b0c-950f-734fd419480e.png)
### Additional Information
Possibly related to #6746 ? Am happy to try and debug on my end by running tools etc.
Additionally, a simple game I was testing/building on my own computer seems to render correctly
opened 12:50AM - 16 Apr 23 UTC
closed 07:02PM - 18 Apr 24 UTC
C-Bug
A-Rendering
C-Regression
## Bevy version
v0.10.1
## Relevant system information
SystemInfo { os:… "Windows 11 Home", kernel: "22621", cpu: "Intel(R) Core(TM) i5-1035G4 CPU @ 1.10GHz", core_count: "4", memory: "7.6 GiB" }
AdapterInfo { name: "Intel(R) Iris(R) Plus Graphics", vendor: 32902, device: 35418, device_type: IntegratedGpu, driver: "Intel Corporation", driver_info: "Intel driver", backend: Vulkan }
## What you did
I have cloned the bevy repo and try to run some of the examples after realising my game doesn't render after updating version
## What went wrong
If I run the sprite example i get nothing but a gray background
If I run the contributor example i get the names of the contriutors but not the sprites just a gray backgound
I have tried to run both examples with version 0.9.0 and there they work as expeted so it seems that the issue got introduced in version 0.10.0 because it persists on the main branch
I have also tried the [Boids](https://github.com/gfx-rs/wgpu/tree/trunk/wgpu/examples/boids) example in the wgpu repo and it seems to work as intended
opened 02:46AM - 21 Mar 21 UTC
closed 10:41AM - 25 Mar 21 UTC
The `WGPU` has `Vulkan` enabled on the default backend of the Windows platform, … and there will be some Cottonwood when the windows platform is resizing, but if you replace it with a `DX12` backend, you don’t have Cottonwood. I don’t know how to simply specify the render backend in `iced`. Can anyone help me?
opened 10:44PM - 25 Feb 20 UTC
closed 03:00PM - 26 Feb 20 UTC
improvement
question
@hecrj Thanks for your work
It is vulkan backend when I run wgpu-rs's example d… escribe.
Is Iced alaways use vulkan?
If not, how can I check the backend of iced.
If it is not default dx11 or dx12 on windows, How Can I switch to dx11 or dx12?
opened 10:29AM - 30 May 21 UTC
closed 05:52PM - 01 Jun 21 UTC
type: question
This is a bit of a follow-up on https://github.com/gfx-rs/wgpu-native/issues/101…
It was [mentioned there](https://github.com/gfx-rs/wgpu-native/issues/101#issuecomment-845538586) that the backend selection priority is Vulkan > Metal > DX12. However, I have experienced DX12 being selected even though Vulkan is available (and confirmed to work if I force Vulkan being selected). I can consistently reproduce this on my machine, with Windows 10 and an NVidea GPU, by selecting in the NVidea control panel to use the high performance GPU (and not integrated graphics).
(This issue was problematic for me due to certain problems with the DX12 backend, but now that we can force the selection of Vulkan, we have a simple workaround for now).
opened 09:44AM - 20 May 21 UTC
closed 11:31PM - 29 May 21 UTC
It seems that depending on the settings in my Nvida Conrol Panel (whether I sele… ct Integrated Graphics or the NVidea GPU), wgpu will use either the Vulkan or DX12 backend. With the DX12 backend I run into crashes for some code, which I should probably look into at some point, but it would be nice to just force the use of the Vulkan backend for now. Also because (in my understanding) the Vulkan backend is more mature.
Is this something that could be added to wgpu-native, e.g. in the form of an additional function `wgpuInstanceRequestAdapterSelectBackend` that has an extra argument for the backend bits? This would make the API deviate from webgpu, but its something that might be worthy for desktop use (similar to e.g. the tracing functionality). I'd be happy to prepare a PR for this.
Cheers!
Unfortunately, I don’t think you can choose the backend for WebGPU in Chrome (contrary to WebGL where you can change the ANGLE setting in the chrome flags)
Yeah I suspected so.
I was looking into the Bevy demos using WebGPU and they have this working somehow.
I see this in their logs:
WARN crates/bevy_pbr/src/ssao/mod.rs:86 ScreenSpaceAmbientOcclusionPlugin not loaded. GPU lacks support: TextureFormat::R16Float does not support TextureUsages::STORAGE_BINDING.
In my GPU Internals (chrome://gpu/) I have:
Graphics Feature Status
Canvas: Hardware accelerated
Canvas out-of-process rasterization: Enabled
Direct Rendering Display Compositor: Disabled
Compositing: Hardware accelerated
Multiple Raster Threads: Enabled
OpenGL: Enabled
Rasterization: Hardware accelerated
Raw Draw: Disabled
Skia Graphite: Disabled
Video Decode: Hardware accelerated
Video Encode: Hardware accelerated
Vulkan: Disabled
WebGL: Hardware accelerated
WebGL2: Hardware accelerated
WebGPU: Hardware accelerated
WebNN: Disabled
One_Flag:
I see this in their logs:
WARN crates/bevy_pbr/src/ssao/mod.rs:86 ScreenSpaceAmbientOcclusionPlugin not loaded. GPU lacks support: TextureFormat::R16Float does not support TextureUsages::STORAGE_BINDING.
If the problem was because we use unsupported features by WebGPU, we would have some warnings / errors in the browser console log.
One_Flag:
Vulkan: Disabled
This is expected on a Windows computer. I have the same:
For this PG:
Can you report what you get in the browser console log (the full log)?
No errors in the log related to WebGPU
I’m afraid I can’t help you any further…
[…] I just tested with the latest version of Firefox nightly, it seems their WebGPU support has improved and https://playground.babylonjs.com/#5ZCGRM#4 does work (there are some warnings in the console log but the display is ok)! So, maybe you can try it and see if it works for you.
2 Likes
No worries. It all works on other hardware I own.
Thank you for your efforts. I appreciate it. I just wonder how many users may be affected by this… but probably not many. Well time to move on to other stuff.
As closing note. Lessons learned. Do not update to Windows 11 on Surface Pro 7 if you want to use WebGPU with BabylonJs
1 Like
Yeah I’ve tested with Firefox Nightly and it worked. Thank you!
Let’s just hope whatever is causing this issue get’s fixed on MS Edge and Chrome.
1 Like