From 33b339b5c41dfbee07dc2aa21326b439eb6e5871 Mon Sep 17 00:00:00 2001 From: Utkarsh Dalal Date: Fri, 23 Oct 2026 12:17:21 +0530 Subject: [PATCH] Use gamescope payload 20261023.2: device-gated Vulkan proc lookup in the shim 64-bit games crashed inside their first vkMapMemory under gamescope on Android 16 (Control, BioShock 2, Cult of the Lamb on an Adreno 840 phone; Hollow Knight Silksong on an Adreno 750 phone), while X11 was fine. The ICD shim resolved device entry points through dlsym on the system libvulkan.so before asking the device, and the KHR-to-core alias hop turned vkMapMemory2KHR into Android 16's exported vkMapMemory2: a loader trampoline into a dispatch slot the 1.3 device never filled. winevulkan calls p_vkMapMemory2KHR whenever it is non-NULL, so the call landed on PC 0 and surfaced as "Exception 0xc0000005 in Unix call" (Proton 11) or the loader_thunks assert whose dialog hides behind the splash (Proton 9). Payload 20261023.2 is 20261023.1 with the shim from gamenative-drm device-proc-gdpa-gate: the device's own vkGetDeviceProcAddr now decides whether a name exists, so Wine falls back to vkMapMemory as it does through the X11 wrapper. --- app/src/main/java/app/gamenative/display/GamescopePayload.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/app/gamenative/display/GamescopePayload.kt b/app/src/main/java/app/gamenative/display/GamescopePayload.kt index 7504ea5d65..b397c1831f 100644 --- a/app/src/main/java/app/gamenative/display/GamescopePayload.kt +++ b/app/src/main/java/app/gamenative/display/GamescopePayload.kt @@ -11,7 +11,7 @@ import java.io.File /** Versioned gamescope payload (gamescope, XWayland, scaling clients), fetched on the first gamescope launch. */ object GamescopePayload { - const val VERSION = "20261022.13" + const val VERSION = "20261023.2" const val ARCHIVE = "gamescope-gamenative-$VERSION.tzst" private const val STAMP = ".payload.version"