4 ms·
Is that not equally true of DX12? How can I execute mesh shaders on hardware which doesn't support them? This is not a sin of Vulkan, it's just the reality of
by skohan 7y ago
Is that not equally true of DX12? How can I execute mesh shaders on hardware which doesn't support them?
This is not a sin of Vulkan, it's just the reality of a fragmented GPU landscape.
At least Vulkan has a sensible, consistent API around extensions, and makes it easy to verify that your hardware has the capabilities you need in order to use a given feature.
- pjmlp 7y agoIt won't start at all because it requires DirectX 12 Ultimate drivers.
- skohan 7y agoDirectX 12 Ultimate is a different thing than DirectX 12. Game developers aren't just going to be able to target Ultimate if they want to capture any users with older than current generation NVIDIA or next gen AMD GPUs. edit: if I was using Vulkan and only wanted to target DX12 Ultimate-certified hardware I would still be able to use only one code-path. This would basically mean that I am choosing to only support hardware which supports a certain set of extensions
- pjmlp 7y agoThey have enough customers on XBox ecosystem.
- skohan 7y agoYou’re arguing that DX12 is better than Vulkan because it has exactly the same characteristics as Vulkan.
- pjmlp 7y agoIf only Vulkan had an SDK half as good.
- skohan 7y agoThat wasn't your argument but go ahead and move the goal posts all you want.
- pjmlp 7y agoNo, the original argument was that DirectX, or any other proprietary API from Apple, Nintendo and Sony, don't need the extension jungle of Vulkan and OpenGL, the former with almost weekly updates. Which than feds into learning the APIs and not having to deal with multiple execution paths. In DirectX there is only one way of doing RayTracing, in the Khronos APIs, well it depends. Same applies to lots of other features.
- skohan 7y agoYou're comparing apples and oranges. Your argument is that proprietary API's are better than Vulkan because there are less code paths, but if you go that way you need a completely separate code path for each top-level API. I think you're vastly over-stating the complexity of handling this in Vulkan. For the ray-tracing example, realistically you have one branch for non-ray-tracing, and one more where you check for whatever RT extensions you need and do ray-tracing if you have them available. This is exactly the same complexity you would have with DX12. DX12 Ultimate is a really poor counterpoint. No serious game developer is going to be content targeting only XBoxSX and PCs build for over $1200 in the last 18 months. Realistically, even if you only target MS platforms, you're probably even going to need a DX11 renderer, and the DX12 API is already quite different on XBox and PC, so that's already 3 code-paths minimum.