I'm trying to do an upgrade from wgpu-0.4 to the latest code on master, to make sure I don't have to refactor a lot of my code later on due to the newly introduced lifetimes.
I'm now running into the following: The winding order seems to have changed. Although I haven't changed anything in either the cull mode or in my index buffers, I now need to flip the winding order. Is this expected? Did the coordinate system change since 0.4?
This issue is on Metal on MacOS. I wasn't able to test on DX12 due to #233. Is there a way I can force the use of the Vulkan backend? Then I could try it on Windows as well.
Edit: Apparently this is related to the change in 02f7ac9c. If I update my 'OpenGL to WGPU' matrix based on that, it seems ok. But are there some details as to why this changed?
Hi! 👋 The coordinate system was updated to match the upstream WebGPU specification (https://gpuweb.github.io/gpuweb/#coordinate-systems) instead of Vulkan (as it was previously). This basically means everything became vertically flipped, which can be fixed through matrix multiplication (like 02f7ac9), or flipped in the shader, etc.
Ah! I didn't realize the WebGPU was still changing these fairly fundamental things. But that's definitely fair enough then, and expected.
It changed in the spec a while ago – we're just catching up now :)