From b97a228cea163c9f5d0638d445c1eff824d96eb0 Mon Sep 17 00:00:00 2001 From: Swung0x48 Date: Tue, 8 Sep 2026 04:08:54 -0400 Subject: [PATCH] [Fix] (Espryt): carry the adopted-store respecify's buffer-id generation bump into the handle arm as well --- MobileGL/MG_Backend/DirectGLES/Managers.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/MobileGL/MG_Backend/DirectGLES/Managers.cpp b/MobileGL/MG_Backend/DirectGLES/Managers.cpp index 380b78f7..d34ce316 100644 --- a/MobileGL/MG_Backend/DirectGLES/Managers.cpp +++ b/MobileGL/MG_Backend/DirectGLES/Managers.cpp @@ -1846,6 +1846,12 @@ namespace MobileGL::MG_Backend::DirectGLES { if (resource->id != 0 && CanTouchGLNow() && resource->contextGeneration == g_bufferContextGeneration) { NoteBufferIdDeleted(resource->id); + // Frontend VAO bindings survive respecification; force their + // backend twins to bind the replacement buffer name. (dev@d7655247, + // carried into this arm as well: the handle arm duplicates the + // immediate retire path, so a fix that lands in only one of the two + // leaves the bug alive on whichever arm the operator selects.) + ++g_bufferBackendIdGeneration; g_GLESFuncs.glDeleteBuffers(1, &resource->id); resource->id = 0; resource->immutableStorage = false;