Fixed the return value of SDL_Vulkan_CreateSurface() on the Vivante platform

This commit is contained in:
Sam Lantinga 2024-07-10 20:32:47 -07:00
parent 5ee88d43f9
commit 9e331d235f
2 changed files with 12 additions and 12 deletions

View file

@ -63,10 +63,10 @@ extern VkExtensionProperties *SDL_Vulkan_CreateInstanceExtensionsList(
* using the DisplayKHR extension. * using the DisplayKHR extension.
* This needs to be passed an instance that was created with the VK_KHR_DISPLAY_EXTENSION_NAME * This needs to be passed an instance that was created with the VK_KHR_DISPLAY_EXTENSION_NAME
* extension. */ * extension. */
extern SDL_bool SDL_Vulkan_Display_CreateSurface(void *vkGetInstanceProcAddr, extern int SDL_Vulkan_Display_CreateSurface(void *vkGetInstanceProcAddr,
VkInstance instance, VkInstance instance,
const struct VkAllocationCallbacks *allocator, const struct VkAllocationCallbacks *allocator,
VkSurfaceKHR *surface); VkSurfaceKHR *surface);
/* Platform independent base function for destroying the Vulkan surface. Unlike surface /* Platform independent base function for destroying the Vulkan surface. Unlike surface
* creation, surface destruction doesn't require platform specific extensions like * creation, surface destruction doesn't require platform specific extensions like

View file

@ -174,10 +174,10 @@ static const VkDisplayPlaneAlphaFlagBitsKHR alphaModes[4] = {
VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR, VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR,
}; };
SDL_bool SDL_Vulkan_Display_CreateSurface(void *vkGetInstanceProcAddr_, int SDL_Vulkan_Display_CreateSurface(void *vkGetInstanceProcAddr_,
VkInstance instance, VkInstance instance,
const struct VkAllocationCallbacks *allocator, const struct VkAllocationCallbacks *allocator,
VkSurfaceKHR *surface) VkSurfaceKHR *surface)
{ {
PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr = PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr =
(PFN_vkGetInstanceProcAddr)vkGetInstanceProcAddr_; (PFN_vkGetInstanceProcAddr)vkGetInstanceProcAddr_;
@ -447,7 +447,7 @@ SDL_bool SDL_Vulkan_Display_CreateSurface(void *vkGetInstanceProcAddr_,
if (physicalDeviceIndex == physicalDeviceCount) { if (physicalDeviceIndex == physicalDeviceCount) {
SDL_SetError("No usable displays found or requested display out of range"); SDL_SetError("No usable displays found or requested display out of range");
return SDL_FALSE; goto error;
} }
createInfo.sType = VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR; createInfo.sType = VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR;
@ -457,14 +457,14 @@ SDL_bool SDL_Vulkan_Display_CreateSurface(void *vkGetInstanceProcAddr_,
result = vkCreateDisplayPlaneSurfaceKHR(instance, &createInfo, allocator, surface); result = vkCreateDisplayPlaneSurfaceKHR(instance, &createInfo, allocator, surface);
if (result != VK_SUCCESS) { if (result != VK_SUCCESS) {
SDL_SetError("vkCreateDisplayPlaneSurfaceKHR failed: %s", SDL_Vulkan_GetResultString(result)); SDL_SetError("vkCreateDisplayPlaneSurfaceKHR failed: %s", SDL_Vulkan_GetResultString(result));
return SDL_FALSE; goto error;
} }
SDL_LogDebug(SDL_LOG_CATEGORY_VIDEO, "vulkandisplay: Created surface"); SDL_LogDebug(SDL_LOG_CATEGORY_VIDEO, "vulkandisplay: Created surface");
return SDL_TRUE; return 0;
error: error:
SDL_free(physicalDevices); SDL_free(physicalDevices);
return SDL_FALSE; return -1;
} }
void SDL_Vulkan_DestroySurface_Internal(void *vkGetInstanceProcAddr_, void SDL_Vulkan_DestroySurface_Internal(void *vkGetInstanceProcAddr_,