How to communicate requirements to potential end users?

As far as I understand, the Vulkan API version is dependent on the GPU driver.
So if I say that my application needs Vulkan 1.3, the end user has to check with AMD/NVidia/etc if their particular device has a driver that supports it.

How is that for the features in VkPhysicalDeviceFeatures2, though?
I adapted my current setup from tutorials, and if it finds a feature missing, it throws an exception - AKA the application crashes, and simply won’t run.

I am currently looking at MultiDrawIndirect, and according to http://vulkan.gpuinfo.org, it has 83% “device coverage”. I put “device coverage” in quotes, because I see for example Google Pixel in the not supported list with date 2017-06-08, but I also in the supported list with date 2017-12-17. That, plus the fact that non-graphical compute-focused devices exist - and I even saw raspberry pie in that list :smiley: - makes me think I might just see that as “supported everywhere (exceptions confirm the rule)”, maybe?

If that device coverage is lower, though, how are people handling this?

By which I mean especially in the practical, customer-facing sense - we wouldn’t want to put something like shaderTessellationAndGeometryPointSize in the requirements on a steam page and tell our end users to figure that out.

  1. Minimum requirements: GPU NXXX and above

  2. Requires: Vulkan 1.X+

  3. Requires: Vulkan Roadmap 2024 milestone

If there are features that feel like they should be core, make the case with Roadmap Feedback issue ticket. Otherwisely have sufficiently flexible code to maximize userbase.

MultiDrawIndirect is already part of Roadmap 2024

So for any feature there are 3 possibilities

  1. If it’s included in a roadmap milestone, you can reference that.
  2. If you have the resources, you can lobby for it to be included in the next roadmap milestone
  3. You do not use the feature as a baseline, and only use it conditionally

Generally should program for the target audience. That eliminates the need to communicate it to like 95 % of people. If your target is average people, things should probably be made to “just work” unless they have outrageously obsolete stuff. If the target is gamers, the expectations is they have like at least GCN AMD or NV GTX. As for Android, it maintains its own Baseline Profile. There’s also a LunarG profile, which tries to be descriptive rather than perscriptive like Roadmap.