# SDL: Fixed Vulkan validation error when creating a swapchain on Android

**URL:** <https://discourse.libsdl.org/t/sdl-fixed-vulkan-validation-error-when-creating-a-swapchain-on-android/69292>\
**Category:** SDL Commits\
**Created:** [September 12, 2026, 12:07am UTC](https://discourse.libsdl.org/t/sdl-fixed-vulkan-validation-error-when-creating-a-swapchain-on-android/69292 "2026-09-12T00:07:32Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![SDLPushPostBot](https://discourse.libsdl.org/user_avatar/discourse.libsdl.org/sdlpushpostbot/32/4370_2.png) [@SDLPushPostBot](https://discourse.libsdl.org/u/SDLPushPostBot)\
**Post date:** [September 12, 2026, 12:07am UTC](https://discourse.libsdl.org/t/sdl-fixed-vulkan-validation-error-when-creating-a-swapchain-on-android/69292/1 "2026-09-12T00:07:32Z")

</div>

> <https://github.com/libsdl-org/SDL/commit/0628d5c6036727c340a8388fc2f16df5a7256388>

```diff
From 0628d5c6036727c340a8388fc2f16df5a7256388 Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Fri, 11 Sep 2026 13:54:47 -0700
Subject: [PATCH] Fixed Vulkan validation error when creating a swapchain on
 Android

---
 src/render/vulkan/SDL_render_vulkan.c | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/src/render/vulkan/SDL_render_vulkan.c b/src/render/vulkan/SDL_render_vulkan.c
index aaa655b739e53..b14ec1fadaaf2 100644
--- a/src/render/vulkan/SDL_render_vulkan.c
+++ b/src/render/vulkan/SDL_render_vulkan.c
@@ -2505,6 +2505,24 @@ static VkResult VULKAN_CreateSwapChain(SDL_Renderer *renderer, int w, int h)
     swapchainCreateInfo.presentMode = presentMode;
     swapchainCreateInfo.clipped = VK_TRUE;
     swapchainCreateInfo.oldSwapchain = rendererData->swapchain;
+ if (!(renderer->window->flags & SDL_WINDOW_TRANSPARENT)) {
+ // Set the first supported swap chain composite mode
+ // Android doesn't support VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR, for example
+ const VkCompositeAlphaFlagBitsKHR compositeAlphaFlags[] = {
+ VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR,
+ VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR
+ };
+ for (uint32_t i = 0; i < SDL_arraysize(compositeAlphaFlags); ++i) {
+ if (rendererData->surfaceCapabilities.supportedCompositeAlpha & compositeAlphaFlags[i]) {
+ swapchainCreateInfo.compositeAlpha = compositeAlphaFlags[i];
+ break;
+ }
+ }
+ if (!swapchainCreateInfo.compositeAlpha) {
+ // Fall back to VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR, unsupported but better than nothing
+ swapchainCreateInfo.compositeAlpha = VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR;
+ }
+ }
     result = vkCreateSwapchainKHR(rendererData->device, &swapchainCreateInfo, NULL, &rendererData->swapchain);
 
     if (swapchainCreateInfo.oldSwapchain != VK_NULL_HANDLE) {

```
