This is new wiki software and old wiki content. It's a work in progress!
Here's the explanation.
Be gentle, report bugs, leave feedback on pages, or just edit them yourself! Thanks!

SDL Wiki


Get the names of the Vulkan instance extensions needed to create a surface with SDL_Vulkan_CreateSurface.


SDL_bool SDL_Vulkan_GetInstanceExtensions(SDL_Window *window,
                                          unsigned int *pCount,
                                          const char **pNames);

Function Parameters


A window for which the required Vulkan instance extensions should be retrieved (will be deprecated in a future release)


A pointer to an unsigned int corresponding to the number of extensions to be returned


NULL or a pointer to an array to be filled with required Vulkan instance extensions

Return Value

Returns SDL_TRUE on success, SDL_FALSE on error.


If pNames is NULL, then the number of required Vulkan instance extensions is returned in pCount. Otherwise, pCount must point to a variable set to the number of elements in the pNames array, and on return the variable is overwritten with the number of names actually written to pNames. If pCount is less than the number of required extensions, at most pCount structures will be written. If pCount is smaller than the number of required extensions, SDL_FALSE will be returned instead of SDL_TRUE, to indicate that not all the required extensions were returned.

The window parameter is currently needed to be valid as of SDL 2.0.8, however, this parameter will likely be removed in future releases


This function is available in SDL 2.0.8

Code Examples

// Note: This sample uses C++17 features/syntax.
// Get the required extension count
unsigned int count;
if (!SDL_Vulkan_GetInstanceExtensions(window, &count, nullptr)) handle_error();

std::vector<const char*> extensions = {
    VK_EXT_DEBUG_REPORT_EXTENSION_NAME // Sample additional extension
size_t additional_extension_count = extensions.size();
extensions.resize(additional_extension_count + count);

if (!SDL_Vulkan_GetInstanceExtensions(window, &count, + additional_extension_count)) handle_error();

// Now we can make the Vulkan instance
VkInstanceCreateInfo create_info = {};
create_info.enabledExtensionCount = static_cast<uint32_t>(extensions.size());
create_info.ppEnabledExtensionNames =;

VkInstance instance;
VkResult result = vkCreateInstance(&create_info, nullptr, &instance);

CategoryAPI, CategoryVulkan

[ edit | delete | history | feedback | raw ]

[ front page | index | search | recent changes | git repo | offline html ]

All wiki content is licensed under Creative Commons Attribution 4.0 International (CC BY 4.0).
Wiki powered by ghwikipp.