3 ms·
I get by just fine with "one variant" using all the Vulkan 1.3 features that are ubiquitously available on desktop (= almost all of them) platforms with up to d
by exDM69 2y ago
I get by just fine with "one variant" using all the Vulkan 1.3 features that are ubiquitously available on desktop (= almost all of them) platforms with up to date drivers.
The fact that there's n+1 extensions does not mean you have to support 2^(n+1) combinations. I can't recall a single situation where I would've needed even two code paths to get something done in the past few years.
Situations where you need two or more code paths only arise if you use new hardware features like mesh shaders or ray tracing. For "software" features like dynamic rendering or dynamic states (both of which simplify things a lot), there's no need for a fallback on desktop, just require a recent driver version and you're good.
That said, the mobile driver support situation and lack of long term updates is an issue if mobile support is required.
- pjmlp 2y ago[flagged]
- exDM69 2y agoHow is it easier said than done? All three major GPU vendors (Intel, nvidia, AMD) have drivers have a very good support on all three major desktop platforms (Windows, Linux and Macos), and it goes back to quite old hardware (Intel Skylake 2015, Nvidia Maxwell 2014, not sure about AMD). If you know exactly which driver version(s) you require, you can explicitly check it at init time, or you can just check for the feature flags and require them at init (you need to do this explicitly anyways). OpenGL 3.3 is a popular choice only because Apple dropped OpenGL support and HW features (tessellation, etc) were required for 4.x. You don't have a situation like that with Vulkan. You get all the latest SW features even on old HW. Vulkan's explicit extensions/features setup is much much better than OpenGL ever was, and there are no "half assed" implementations out there like there were in OpenGL days. You don't end up using a feature by accident, and then have your app not work on a platform you didn't test on. The conformance test suite is very strict, so if a feature is supported it's very likely to work as advertised, much less driver bugs than in the OpenGL days.