I would want to know if is there any way to check if extension that is supported by hardware is core extension? Are core extensions always returned in supported extensions? I am asking because my code for checking if all extensions that I want are supported is copying array of these extensions to set, removing all extensions that are on supported extensions list and checking if set is empty. Won't be there any cases when extension is core extension and and not listed in supported extensions thus leaving set that i check non-empty?
Asked
Active
Viewed 307 times
-1
-
1What do you mean by "core extension"? That's not really a concept which Vulkan possesses. – Nicol Bolas Jan 19 '21 at 17:45
-
@NicolBolas I believe they mean features, but even extensions *do* have different levels of "core-ness" or rather "promotion viability/compatibility", KHR vs KHX vs EXT vs Vendor abbreviation (NV,AMD,GOOGLE,VALVE...). see https://stackoverflow.com/questions/53798273/vulkan-extension-which-are-supported-by-whom – Krupip Jan 28 '21 at 17:34
1 Answers
2
You need to specify when you create an instance what version of Vulkan you are using in VkApplicationInfo::apiVersion
. This API version specifies exactly the core API you get. In addition to that, there is functionality available in extensions, which are listed at runtime in "available extensions", and have to be requested at runtime in "enabled extensions". There are no special subcategories of extensions.
Some functionality that was an extension in an older core API has been promoted into the core API of a newer version, but as I said, you need to set your core API version in apiVersion
, so that isn't relevant.

Andrew Tomazos
- 66,139
- 40
- 186
- 319