Skip to content

Libretro: support Vulkan swapchains with more than eight images#455

Open
mattakins wants to merge 1 commit into
libretro:masterfrom
mattakins:fix-dolphin-vulkan-swapchain-capacity
Open

Libretro: support Vulkan swapchains with more than eight images#455
mattakins wants to merge 1 commit into
libretro:masterfrom
mattakins:fix-dolphin-vulkan-swapchain-capacity

Conversation

@mattakins

@mattakins mattakins commented Jul 19, 2026

Copy link
Copy Markdown

Problem

The libretro Vulkan shim stores its fake swapchain images in a fixed eight-element array.

RetroArch now supports swapchains with up to 16 images (libretro/RetroArch#19186), which exposed this core-side limit on drivers that return more than eight images.

When that happens, Dolphin writes past the fixed array while creating the fake swapchain. In release builds, this corrupts adjacent state, including synchronization objects, and hangs on booting a game.

Fix

Replace the fixed image array with dynamically sized storage based on the frame-slot mask reported by the frontend. This preserves the existing fake-swapchain behavior while removing the unsupported eight-image limit.

Validation

  • Android libretro build passed.
  • Tested Vulkan on RG477M - Android 14 / Mali with RetroArch.

@mattakins
mattakins marked this pull request as ready for review July 19, 2026 18:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant