SDL Wiki
(This is the documentation for SDL3, which is under heavy development and the API is changing! SDL2 is the current stable version!)


Get the Vulkan instance extensions needed for vkCreateInstance.

Header File

Defined in <SDL3/SDL_vulkan.h>


char const* const* SDL_Vulkan_GetInstanceExtensions(Uint32 *count);

Function Parameters

Uint32 * count a pointer filled in with the number of extensions returned.

Return Value

(char const * const *) Returns an array of extension name strings on success, NULL on error.


This should be called after either calling SDL_Vulkan_LoadLibrary() or creating an SDL_Window with the SDL_WINDOW_VULKAN flag.

On return, the variable pointed to by count will be set to the number of elements returned, suitable for using with VkInstanceCreateInfo::enabledExtensionCount, and the returned array can be used with VkInstanceCreateInfo::ppEnabledExtensionNames, for calling Vulkan's vkCreateInstance API.

You should not free the returned array; it is owned by SDL.


This function is available since SDL 3.0.0.

Code Examples

extern void handle_error(void);

int count_instance_extensions;
const char * const *instance_extensions = SDL_Vulkan_GetInstanceExtensions(&count_instance_extensions);

if (instance_extensions == NULL) { handle_error(); }

Uint32 count_extensions = count_instance_extensions;
const char **extensions = SDL_malloc(count_extensions * sizeof(const char *));
SDL_memcpy(&extensions[1], instance_extensions, count_instance_extensions * sizeof(const char*)); 

// Now we can make the Vulkan instance
VkInstanceCreateInfo create_info = {};
create_info.enabledExtensionCount = count_extensions;
create_info.ppEnabledExtensionNames = extensions;

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

See Also

CategoryAPI, CategoryAPIFunction, 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.