From d51723c153f4e9cba806c8b0f9db504fb61e1cda Mon Sep 17 00:00:00 2001 From: Swung0x48 Date: Thu, 11 Jun 2026 10:28:39 +0800 Subject: [PATCH] [Fix] (MG_Backend/DirectGLES): use safer buffer upload path. MAY AFFECT PERFORMANCE!! --- MobileGL/MG_Backend/DirectGLES/Managers.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/MobileGL/MG_Backend/DirectGLES/Managers.cpp b/MobileGL/MG_Backend/DirectGLES/Managers.cpp index a8c9dc50..2d5fdd6a 100644 --- a/MobileGL/MG_Backend/DirectGLES/Managers.cpp +++ b/MobileGL/MG_Backend/DirectGLES/Managers.cpp @@ -26,7 +26,7 @@ #include namespace MobileGL::MG_Backend::DirectGLES { - constexpr Bool PREFER_MAP_BUFFER_RANGE_FOR_BUFFER_SYNC = true; + constexpr Bool PREFER_MAP_BUFFER_RANGE_FOR_BUFFER_SYNC = false; constexpr const char* BASE_INSTANCE_UNIFORM_NAME = "mg_BaseInstance"; static Uint ResolveBackendEsslVersion() { @@ -130,9 +130,11 @@ namespace MobileGL::MG_Backend::DirectGLES { // glMapBufferRange or glBufferSubData Bool useInvalidationMap = !(stateBufferObject->GetChangeBits() & BufferChangeBits::ForbidInvalidationBit); + // TODO: MAY AFFECT PERFORMANCE Bool useUnsynchronizedMap = !(stateBufferObject->GetChangeBits() & BufferChangeBits::ForbidUnsynchronizationBit); - Bool useMapBufferRange = useInvalidationMap || useUnsynchronizedMap; + Bool useMapBufferRange = PREFER_MAP_BUFFER_RANGE_FOR_BUFFER_SYNC && + (useInvalidationMap || useUnsynchronizedMap); if (!useMapBufferRange && PREFER_MAP_BUFFER_RANGE_FOR_BUFFER_SYNC) { auto usage = stateBufferObject->GetUsage();