From 8e783e0892a6322072588d42b16e2098c48a4c33 Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Fri, 6 Feb 2026 10:15:39 -0800
Subject: [PATCH] Fixed building with Visual Studio 2019
---
src/gpu/vulkan/SDL_gpu_vulkan.c | 12 ++++++++----
src/gpu/xr/SDL_gpu_openxr.c | 10 ++++++----
2 files changed, 14 insertions(+), 8 deletions(-)
diff --git a/src/gpu/vulkan/SDL_gpu_vulkan.c b/src/gpu/vulkan/SDL_gpu_vulkan.c
index bb034179757d6..474e89c98709e 100644
--- a/src/gpu/vulkan/SDL_gpu_vulkan.c
+++ b/src/gpu/vulkan/SDL_gpu_vulkan.c
@@ -11905,7 +11905,8 @@ static Uint8 VULKAN_INTERNAL_CreateInstance(VulkanRenderer *renderer, VulkanFeat
return 0;
}
- XrVulkanInstanceCreateInfoKHR xrCreateInfo = {};
+ XrVulkanInstanceCreateInfoKHR xrCreateInfo;
+ SDL_zero(xrCreateInfo);
xrCreateInfo.type = XR_TYPE_VULKAN_INSTANCE_CREATE_INFO_KHR;
xrCreateInfo.vulkanCreateInfo = &createInfo;
xrCreateInfo.systemId = renderer->xrSystemId;
@@ -12521,7 +12522,8 @@ static Uint8 VULKAN_INTERNAL_CreateLogicalDevice(
return 0;
}
- XrVulkanDeviceCreateInfoKHR xrDeviceCreateInfo = {};
+ XrVulkanDeviceCreateInfoKHR xrDeviceCreateInfo;
+ SDL_zero(xrDeviceCreateInfo);
xrDeviceCreateInfo.type = XR_TYPE_VULKAN_DEVICE_CREATE_INFO_KHR;
xrDeviceCreateInfo.vulkanCreateInfo = &deviceCreateInfo;
xrDeviceCreateInfo.systemId = renderer->xrSystemId;
@@ -12690,7 +12692,8 @@ static XrResult VULKAN_INTERNAL_GetXrMinimumVulkanApiVersion(XrVersion *minimumV
return xrResult;
}
- XrGraphicsRequirementsVulkanKHR graphicsRequirementsVulkan = {};
+ XrGraphicsRequirementsVulkanKHR graphicsRequirementsVulkan;
+ SDL_zero(graphicsRequirementsVulkan);
graphicsRequirementsVulkan.type = XR_TYPE_GRAPHICS_REQUIREMENTS_VULKAN2_KHR;
if ((xrResult = xrGetVulkanGraphicsRequirements2KHR(instance, systemId, &graphicsRequirementsVulkan)) != XR_SUCCESS) {
SDL_LogDebug(SDL_LOG_CATEGORY_GPU, "Failed to get vulkan graphics requirements, got OpenXR error %d", xrResult);
@@ -13099,7 +13102,8 @@ static XrResult VULKAN_CreateXRSession(
const void *XR_MAY_ALIAS currentNextPtr = createinfo->next;
// KHR_vulkan_enable and KHR_vulkan_enable2 share this structure, so we don't need to change any logic here to handle both
- XrGraphicsBindingVulkanKHR graphicsBinding = {};
+ XrGraphicsBindingVulkanKHR graphicsBinding;
+ SDL_zero(graphicsBinding);
graphicsBinding.type = XR_TYPE_GRAPHICS_BINDING_VULKAN_KHR;
graphicsBinding.instance = renderer->instance;
graphicsBinding.physicalDevice = renderer->physicalDevice;
diff --git a/src/gpu/xr/SDL_gpu_openxr.c b/src/gpu/xr/SDL_gpu_openxr.c
index 24f9bd9c0fdba..28e8b24bf36c6 100644
--- a/src/gpu/xr/SDL_gpu_openxr.c
+++ b/src/gpu/xr/SDL_gpu_openxr.c
@@ -113,7 +113,7 @@ XrResult SDL_OPENXR_INTERNAL_GPUInitOpenXR(
const char *const *userExtensionNames = SDL_GetPointerProperty(props, SDL_PROP_GPU_DEVICE_CREATE_XR_EXTENSION_NAMES_POINTER, NULL);
// allocate enough space for the validation layer + the user's api layers
- const char **apiLayerNames = SDL_stack_alloc(const char *, userApiLayerCount + 1);
+ char **apiLayerNames = SDL_stack_alloc(char *, userApiLayerCount + 1);
SDL_memcpy(apiLayerNames, userApiLayerNames, sizeof(const char *) * (userApiLayerCount));
apiLayerNames[userApiLayerCount] = VALIDATION_LAYER_API_NAME;
@@ -124,14 +124,15 @@ XrResult SDL_OPENXR_INTERNAL_GPUInitOpenXR(
const Uint32 platformExtensionCount = 1; // GPU extension only
#endif
- const char **extensionNames = SDL_stack_alloc(const char *, userExtensionCount + platformExtensionCount);
+ char **extensionNames = SDL_stack_alloc(char *, userExtensionCount + platformExtensionCount);
SDL_memcpy(extensionNames, userExtensionNames, sizeof(const char *) * (userExtensionCount));
extensionNames[userExtensionCount] = gpuExtension.extensionName;
#ifdef SDL_PLATFORM_ANDROID
extensionNames[userExtensionCount + 1] = XR_KHR_ANDROID_CREATE_INSTANCE_EXTENSION_NAME;
#endif
- XrInstanceCreateInfo xrInstanceCreateInfo = {};
+ XrInstanceCreateInfo xrInstanceCreateInfo;
+ SDL_zero(xrInstanceCreateInfo);
xrInstanceCreateInfo.type = XR_TYPE_INSTANCE_CREATE_INFO;
xrInstanceCreateInfo.applicationInfo.apiVersion = SDL_GetNumberProperty(props, SDL_PROP_GPU_DEVICE_CREATE_XR_VERSION_NUMBER, XR_API_VERSION_1_0);
xrInstanceCreateInfo.enabledApiLayerCount = userApiLayerCount + ((debugMode && validationLayersAvailable) ? 1 : 0); // in debug mode, we enable the validation layer
@@ -186,7 +187,8 @@ XrResult SDL_OPENXR_INTERNAL_GPUInitOpenXR(
return false;
}
- XrSystemGetInfo systemGetInfo = {};
+ XrSystemGetInfo systemGetInfo;
+ SDL_zero(systemGetInfo);
systemGetInfo.type = XR_TYPE_SYSTEM_GET_INFO;
systemGetInfo.formFactor = (XrFormFactor)SDL_GetNumberProperty(props, SDL_PROP_GPU_DEVICE_CREATE_XR_FORM_FACTOR_NUMBER, XR_FORM_FACTOR_HEAD_MOUNTED_DISPLAY);
if ((xrResult = (*xr)->xrGetSystem(*instance, &systemGetInfo, systemId)) != XR_SUCCESS) {