Skip to content

Commit da4f2f9

Browse files
committed
Update SDL_GPUVulkanOptions documentation
1 parent 24749c4 commit da4f2f9

File tree

1 file changed

+19
-10
lines changed

1 file changed

+19
-10
lines changed

include/SDL3/SDL_gpu.h

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2309,12 +2309,12 @@ extern SDL_DECLSPEC SDL_GPUDevice * SDLCALL SDL_CreateGPUDevice(
23092309
*
23102310
* With the Vulkan renderer:
23112311
*
2312-
* - `SDL_PROP_GPU_DEVICE_CREATE_VULKAN_ADDITIONAL_FEATURES_POINTER`: pointer
2313-
* to a Vulkan structure to be appended to SDL's VkDeviceCreateInfo during
2314-
* device creation.
2315-
* This allows passing a list of VkPhysicalDeviceFeature structures to
2316-
* opt-into features aside from the minimal set SDL requires. It also allows
2317-
* requesting a higher API version and opting into extensions.
2312+
* - `SDL_PROP_GPU_DEVICE_CREATE_VULKAN_OPTIONS_POINTER`: pointer to an
2313+
* SDL_GPUVulkanOptions structure to be processed during device creation.
2314+
* This allows configuring a variety of Vulkan-specific options such as
2315+
* increasing the API version and opting into extensions aside from the
2316+
* minimal set SDL requires. The structure is NOT deep-copied. Make sure
2317+
* that the pointer valid memory during window creation.
23182318
*
23192319
* \param props the properties to use.
23202320
* \returns a GPU context on success or NULL on failure; call SDL_GetError()
@@ -2352,17 +2352,26 @@ extern SDL_DECLSPEC SDL_GPUDevice * SDLCALL SDL_CreateGPUDeviceWithProperties(
23522352
/**
23532353
* A structure specifying additional options when using Vulkan.
23542354
*
2355-
* When no such structure is provided, SDL will use Vulkan API version 1.0 and a minimal set of features.
2356-
* The feature list gets passed to the vkCreateInstance function and allows requesting additional
2357-
* features.
2355+
* When no such structure is provided, SDL will use Vulkan API version 1.0 and
2356+
* a minimal set of features.
2357+
* The requested API version influences how the feature_list is processed by
2358+
* SDL. When requesting API version 1.0, the feature_list is ignored. Only the
2359+
* vulkan_10_phyisical_device_features and the extension lists are used. When
2360+
* requesting API version 1.1, the feature_list is scanned for feature
2361+
* structures introduced in Vulkan 1.1. When requesting Vulkan 1.2 or higher,
2362+
* the feature_list is additionally scanned for compound feature structs such
2363+
* as VkPhysicalDeviceVulkan11Features. The device and instance extension
2364+
* lists, as well as vulkan_10_physical_device_features, are always processed.
2365+
* The pointers inside this structure are NOT deep-copied. Make sure they are
2366+
* valid during window creation.
23582367
*
23592368
* \since This struct is available since SDL 3.4.0.
23602369
*
23612370
*/
23622371
typedef struct SDL_GPUVulkanOptions
23632372
{
23642373
Uint32 vulkan_api_version; /**< The Vulkan API version to request for the instance. Use Vulkan's VK_MAKE_VERSION or VK_MAKE_API_VERSION. */
2365-
void *feature_list; /**< Pointer to the first element of a list of structs to be passed to device creation. */
2374+
void *feature_list; /**< Pointer to the first element of a chain of Vulkan feature structs. (Requires API version 1.1 or higher.)*/
23662375
void *vulkan_10_physical_device_features; /**< Pointer to a VkPhysicalDeviceFeatures struct to enable additional Vulkan 1.0 features. */
23672376
Uint32 device_extension_count; /**< Number of additional device extensions to require. */
23682377
const char **device_extension_names; /**< Pointer to a list of additional device extensions to require. */

0 commit comments

Comments
 (0)