Files
parallel-gx2/tools
libretroadmin c81b43ba0c Vulkan through the frontend alone: no surfaces, swapchain or instance setup
Under libretro the Vulkan instance, device, surface and swapchain are the
frontend's: the core is handed a device and queue (the shared-device
constructor) and draws into the image the frontend gives it. Everything
the standalone emulator used to make its own was still compiled in and
never ran: the default constructor with its instance creation and device
selection, GetDevices, the X11, XCB, Wayland, Win32 and Metal surface
creation (CocoaSurface.mm), SwapchainInfoVk, swapchain acquire, recreate
and present, the swapchain blit pipeline and descriptor layout, and the
Breath of the Wild workaround that forked a child process to probe
RADV before creating an instance. All of it is removed (SwapchainInfoVk
and CocoaSurface are listed in .upstream-excluded).

What touched the swapchain on the way keeps its libretro behaviour:
BeginFrame reports no frame, ClearColorbuffer and ImguiInit do nothing,
ImguiBegin returns false after the base class's setup, IsPadWindowActive
follows the DRC layout, and a screenshot is always a single one.

With no VK_USE_PLATFORM_* defined, vulkan.h includes no window-system
header, and Common/platform.h no longer includes Xlib, Xrender or Xutil:
the Linux build needs no headers beyond the compiler's, so the CI jobs
and the README install none. tools/check_no_wsi.sh, run in both CIs,
fails on an X11, XCB, Wayland, GL or EGL include, a VK_USE_PLATFORM_*
define or a platform surface or context entry point in the core.
2026-11-07 12:58:23 +01:00
..