5 ms·
Yeah exactly. How else can you support the wide range of hardware features out there without being stuck with a lowest-common-denominator?
by skohan 5y ago
Yeah exactly. How else can you support the wide range of hardware features out there without being stuck with a lowest-common-denominator?
- pjmlp 5y agoApple, Microsoft, Sony and Nintendo have such a hard time delivering high quality graphics with their proprietary APIs, pity them.
- skohan 5y agoHow does DX12 do feature discovery for things like ray tracing which are supported on only some hardware?
- pjmlp 5y agoBy requiring DX12 Ultimate support, done.
- skohan 5y agoThis is a very low-quality argument. Game developers quite clearly cannot only target DX12 Ultimate and have their product only work for a small percentage of users on PC. If you want to target PC, you have to deal with hardware fragmentation. You can pretend this is a Vulkan issue, but it's just a reality of the platform.
- pjmlp 5y agoNice story, except DirectX owns the PC market, period.
- skohan 5y agopjmlp I have been on this forum long enough to know you would eventually move the goalposts. Your claim was about the merit of extensions, I'm not sure why you're talking about marketshare now.
- deleted 5y ago[deleted]
- pjmlp 5y agoWhat goalposts? The APIs that own the games market are doing just fine without Khronos mess.
- fouric 5y agoThis is not feature discovery, though - this is feature constraining, which is rather different, and doesn't work at all if you want to get a game out to a large audience while also taking advantage of different hardware configurations.
- flohofwoe 5y agoHaven't checked DX12 yet, but both D3D11 and Metal have a small number of "tiers" with guaranteed feature sets, which basically correspond to GPU generations. Usually you pick the lowest tier you can afford and write your code against that feature set. In D3D11, the "tier" is basically the minor version number (D3D11.1, .2, etc...), while in Metal you have this handy reference: https://developer.apple.com/metal/Metal-Feature-Set-Tables.pdf https://developer.apple.com/metal/Metal-Feature-Set-Tables.p... Both solutions prevent the "combinatorial explosion" of OpenGL or Vulkan extensions.
- skohan 5y agoOk I didn't know that, but it seems like a very sensible approach. I suppose you would lose some specificity in terms of very specific features, but probably this would be sufficient in most cases. But couldn't you do something very similar in Vulkan? I.e. essentially bucket your render-paths into a couple tiers by checking for a set of extensions required to support each one?
- infogulch 5y ago"How do you support a wide variety of hardware with different features without API extensions?" "Look at these companies that offer an API without extensions by not even trying to support hardware with different features."
- pjmlp 5y agoPC, iOS and console AAA game studios are doing just fine with those APIs.
- ksec 5y agoI think what pjmlp is trying to suggest is the API or Khronos instead of allowing extensions where it has limitless possibility, it should be courting and doing what Metal and Direct X are doing setting tiers of GPU Level. You either support RayTracing + N other features and call yourself Vulkan 2.0 GPU or you get back to Vulkan 1.x This is exactly how is has been working in the PC world, and is working quite well as far as I can tell.