>>106297616
I've been using dawn to make a simple deferred renderer.
Problems are
>Most dawn builds don't fucking work and google doesn't give out compiled code.
I recommend you use this guy (who does the webgpu cpp tutorials) tag to find which versions work.
Don't use this for cpp though, dawn comes with it.
I don't know why google jeets are allowed to have broken PRs.
https://github.com/eliemichel/WebGPU-Cpp/blob/main/dawn/dawn-git-tag.txt
>API is a bit unstable and the specs will be ahead of the API.
Firefox/WGPU is even further behind.
The biggest difference I see from my usage was that the storage texture formats weren't updated although that could've recently been implemented but I'm on a 6 month old dawn build.
>Backends don't have an equal amount of support.
DX12 is better supported than Vulkan. When it comes to feature limits such as MaxStorageAttachmentBytes.
I am unsure if this is the case with other things.
I recommend complying with the default limits and not setting anything.
>No one reports bugs because no one uses it.
It doesn't help that there's no stable builds.
I would've reported a bug to google (extra triangle being generated on dx12 when higher than the default limit of a storage attachment or something like that) but I don't know if it exists in the current version since I can't build it and I don't know what the last buildable version is.
>Some features just aren't there.
eg. Early Depth Testing so your fragment shader can have pre depth tested outputs.
sometimes you'll want something and you see a PR opened by one of the few familiar faces 2 years ago.
>WGSL doesn't support includes.
It makes sense for web.
But for desktop it sucks so I made a preprocessor.
You can compile shaders to SPIRV with a bit of trial and error which I did try with HLSL. I'm not sure if compute shaders work though.
If you create a deferred renderer pack everything or you'll be hit by limits and bugs of raising limits.
I spent months figuring this out.