Commit Graph
123 Commits
Author SHA1 Message Date
swung0x48 195330ccea [Fix] (MG_Backend/DirectGLES): fix Complementary shaders on Mali
- emulate RGBA8 SNORM fallback writes
2026-06-26 23:33:46 +08:00
swung0x48 76acae9889 [Fix] (MG_Backend/DirectGLES): make format caveats probe-driven 2026-06-26 14:12:24 +08:00
swung0x48 18d19a9a8b [Fix]: fix Complementary
- add a DirectGLES ANGLE fallback control for 8-bit SNORM texture formats

- normalize SNORM8 textures to float storage so ANGLE can render Complementary intermediate framebuffers

- reuse the normalized upload conversion path for SNORM8 and existing norm16 float fallbacks
2026-06-23 07:37:25 +08:00
swung0x48 c08ac7db72 [Fix]: fix Sundial Lite
- detach source texture from synced GLES framebuffers before mipmap generation

- bind a complete scratch framebuffer while calling glGenerateMipmap

- force ANGLE norm16 texture fallback and convert 16-bit normalized uploads

- raise Sundial Lite retrace tolerance for software DirectGLES validation
2026-06-22 22:07:06 +08:00
swung0x48 19e4ba386d [Fix]: fix Chocapic V6 Lite
- prune unused SPIR-V interface variables before GLES transpilation

- remap shader varyings through glslang IO resolver bindings

- initialize opaque uniforms from explicit sampler bindings only

- avoid side effects in texture binding assertions

- register Chocapic V6 Lite retrace fixture
2026-06-19 18:42:32 +08:00
swung0x48 d51723c153 [Fix] (MG_Backend/DirectGLES): use safer buffer upload path. MAY AFFECT PERFORMANCE!! 2026-06-11 10:28:39 +08:00
BZLZHH 5c1fd733da [Feat] (MG_Backend/DirectGLES): implement multisample texture backend 2026-06-10 01:41:44 +08:00
BZLZHH 83a6f24f93 Merge remote-tracking branch 'origin/Feat/Backend-Direct-Vulkan' into Agent/CodexAudit
# Conflicts:
#	MobileGL/MG_Backend/BackendObject.h
#	MobileGL/MG_Backend/DirectGLES/Managers.cpp
#	MobileGL/MG_Backend/DirectVulkan/BackendObject_DirectVulkan.cpp
#	MobileGL/MG_Backend/DirectVulkan/Renderer/FrameContext.cpp
#	MobileGL/MG_Backend/DirectVulkan/Renderer/VkTextureManager.cpp
#	MobileGL/MG_Backend/DirectVulkan/Renderer/VulkanRenderer.cpp
#	MobileGL/MG_Impl/GLImpl/Buffer/GL_Buffer.cpp
#	MobileGL/MG_Impl/GLImpl/Exporting/Definitions.cpp
#	MobileGL/MG_Impl/GLImpl/Framebuffer/GL_Framebuffer.cpp
#	MobileGL/MG_Impl/GLImpl/Getter/GL_Getter.cpp
#	MobileGL/MG_Impl/GLImpl/Getter/GL_Getter.h
#	MobileGL/MG_Impl/GLImpl/Program/GL_Program.cpp
#	MobileGL/MG_Impl/GLImpl/Program/GL_Program.h
#	MobileGL/MG_Impl/GLImpl/Sync/GL_Sync.cpp
#	MobileGL/MG_Impl/GLImpl/Sync/GL_Sync.h
#	MobileGL/MG_Impl/GLImpl/Texture/GL_Texture.cpp
#	MobileGL/MG_Impl/GLImpl/VertexArray/GL_VertexArray.cpp
#	MobileGL/MG_Impl/GLImpl/VertexArray/GL_VertexArray.h
#	MobileGL/MG_State/GLState/BufferState/BufferObject.cpp
#	MobileGL/MG_State/GLState/BufferState/BufferObject.h
#	MobileGL/MG_Util/BackendLoaders/Vulkan/Loader.cpp
#	MobileGL/MG_Util/BackendLoaders/Vulkan/Loader.h
2026-06-09 21:18:12 +08:00
swung0x48 85bd0613ca [Fix] (MG_Backend/DirectGLES): support Voxy rendering
Implemented:

- Advertise Voxy-required DirectGLES extensions without raising the reported OpenGL version.

- Add DirectGLES multi draw indirect count emulation and preserve GL draw indirect baseInstance semantics on GLES.

- Add DirectGLES DSA framebuffer clear/blit paths used by Minecraft and Voxy presentation.

Fixed:

- Rewrite gl_BaseInstance in DirectGLES vertex shaders and provide a backend uniform for indirect draw emulation.

- Materialize framebuffer attachment textures during DirectGLES FBO sync so named framebuffer operations do not desync backend attachment state.

- Avoid redundant texture buffer rebinding and handle texture buffers without bound storage during backend sync.

Tests:

- Add MG_Test coverage for DirectGLES Voxy extension advertising, baseInstance shader rewriting, and DSA named framebuffer clear/blit backend wiring.
2026-06-09 17:20:23 +08:00
BZLZHH 727939af5b [Fix] (MG_Impl, MG_State, MG_Backend, MG_Util): Do source audit by Codex. 2026-06-09 15:34:19 +08:00
swung0x48 d553e363a7 [Feat] (MG_Impl/GL_Buffer, MG_State/BufferState, MG_Backend): implement persistent mapping 2026-06-08 14:08:35 +08:00
swung0x48 357807666d [Fix] (MG_Backend/DirectVulkan, MG_Backend/DirectGLES): fix vulkan program
cache, get EGLSurfaceSize on viewport = 0
2026-06-08 05:41:38 +08:00
swung0x48 ad1ca4ea92 [Feat] (MG_Impl/VertexArray): implement client-side buffer 2026-06-07 13:02:58 +08:00
swung0x48 19ada4b8f9 [Fix]: fix glmark2 crash
- deal with legacy GLSL syntax (attribute/varying/gl_FragColor/texture2D/etc.)
- implement glGet GL_SHADER_SOURCE_LENGTH, and make sure returns
  original shader source
- expose proper extensions (GL_ARB_depth_texture)
- support env var MOBILEGL_LOG_FILE_PATH
- unit tests to test against those changes
2026-06-07 11:08:38 +08:00
swung0x48 2937043e77 [Fix] (MG_Backend/DirectGLES): mark integer varyings flat 2026-06-06 18:58:27 +08:00
swung0x48 1b2a7989af [Fix] (MG_Util/ShaderTranspiler/SpvcSession): use proper usage bit to select the right code path. Fix bugs along the way 2026-04-01 14:57:00 +08:00
BZLZHH fff00e65c4 [Perf] (Texture|State): Replace dynamic_cast hot paths with static_cast. 2026-02-24 15:40:06 +08:00
BZLZHH 8320b4f456 [Feat|Fix] (MG_Backend/DirectGLES): Unify state-backend registries with weak-ref GC. 2026-02-24 15:27:28 +08:00
BZLZHH 15e24cda78 [Perf|Improvement] (All): Improve performance & optimize code. 2026-02-23 16:00:38 +08:00
BZLZHH 8413874e82 [Feat|Refactor] (MG_Backend|MG_Impl): Implement BackendObject, replacing previous methods. 2026-02-18 10:36:56 +08:00
BZLZHH 9af964de67 [Fix] (MG_Backend/DirectGLES): Remove the use of glVertexAttribFormat. 2026-02-05 13:30:30 +08:00
BZLZHH 9f4c9b61a0 [Fix] (MG_Backend/DirectGLES): Correctly sync attrib.Divisor when attrib.Buffer changes. 2026-02-05 12:54:22 +08:00
swung0x48 5319367869 [Feat] (MG_Backend/DirectGLES): assertion to check FBO cache integrity 2026-02-05 12:21:32 +08:00
swung0x48 6855ae42ef [Feat] (MG_Backend/DirectGLES): add assertion checks against FBO cache 2026-02-05 10:34:24 +08:00
swung0x48 de8342a96b Revert "[Optimize] (MG_Backend/DirectGLES): Texture object mipmap dirty bit"
This reverts commit 8f551794
2026-02-04 22:56:28 +08:00
BZLZHH 07638b8577 [Fix] (MG_Backend/DirectGLES): Fix incorrect active texture unit when binding not dirty. 2026-02-04 17:51:56 +08:00
swung0x48 d13a19126b [Fix] (MG_Backend/DirectGLES): properly handle default fbo's attachment? 2026-02-04 16:20:51 +08:00
swung0x48 1b47f1bb92 [Fix] (MG_Backend/DirectGLES): re-implement FBO sync, attachment remapping 2026-02-04 14:42:48 +08:00
swung0x48 f4ce17af51 [Perf] (MG_Backend/DirectGLES): skip redundant attachment object sync 2026-02-04 10:42:23 +08:00
swung0x48 2088009c01 [Fix] (MG_Backend/DirectGLES): direct draw buffer mapping, fix up simple case 2026-02-04 10:27:01 +08:00
swung0x48 77378bbf07 [Fix] (MG_Backend/DirectGLES): fix renaming error in BackendFramebufferObject::SyncToBackend 2026-02-03 23:43:55 +08:00
BZLZHH 74509ae0a3 [Perf] (MG_Backend/DirectGLES): No need to use shared_ptr for g_boundVertexBufferObject. 2026-02-03 21:07:14 +08:00
BZLZHH f0ab82ea2a [Fix] (MG_Backend/DirectGLES): Fix VBO binding state leakage. 2026-02-03 21:02:54 +08:00
swung0x48 41f6670a10 [Perf] (MG_Backend/DirectGLES): less shared_ptr deref 2026-02-03 17:50:20 +08:00
swung0x48 ca23fe4d6f [Perf] (MG_Backend/DirectGLES): use version to skip unnecessary FBO sync 2026-02-03 17:29:10 +08:00
swung0x48 522d5ad9f7 Merge branch 'Feat/Backend-Direct-GLES' of https://github.com/MobileGL-Dev/MobileGL into Feat/Backend-Direct-GLES 2026-02-03 16:58:38 +08:00
swung0x48 202922613b [Refactor] (MG_State/Framebuffer, MG_Backend/DirectGLES): Versioned framebuffer sync 2026-02-03 16:50:20 +08:00
BZLZHH 5eff8b2e30 [Perf] (MG_Backend/DirectGLES): Add cache for Texture and Sampler binding. 2026-02-03 16:44:00 +08:00
BZLZHH 207b746273 [Perf] (MG_Backend/DirectGLES): Avoid redunant VBO binding. 2026-02-03 11:41:23 +08:00
BZLZHH 1143c961b6 [Perf] (MG_Backend/DirectGLES): Use glVertexAttribFormat to avoid redunant buffer binding. 2026-02-03 02:52:34 +08:00
BZLZHH 2fab6c5b0b [Fix] (MG_Backend/DirectGLES): Always bind VBO before glVertexAttribPointer. 2026-02-03 02:38:50 +08:00
BZLZHH 8e897d54a2 [Perf] (MG_Backend/DirectGLES): Skip IBO binding for VA when not dirty. 2026-02-03 01:52:24 +08:00
BZLZHH 5e3cb98934 [Perf] (MG_Backend/DirectGLES): Use SwitchDirty in VA. 2026-02-03 01:37:27 +08:00
BZLZHH 5c63515259 [Feat|Perf|Fix] (MG_Backend/DirectGLES): Skip redundant sync for VA when not dirty. 2026-02-03 01:29:30 +08:00
BZLZHH 99d32439a8 [Perf] (MG_Backend/DirectGLES): Remove binding state protectors. 2026-02-03 00:42:24 +08:00
BZLZHH 4225cc4333 [Feat|Perf] (MG_Backend/DirectGLES): Skip whole texture params sync when not dirty. 2026-02-03 00:17:02 +08:00
BZLZHH 653ca9ea74 [Feat|Perf] (MG_Backend/DirectGLES): Skip whole sampler object when not dirty. 2026-02-03 00:08:25 +08:00
BZLZHH de17fdf5b0 [Misc] (MG_Backend/DirectGLES): Separate BackendTextureObject::SyncToBackend 2026-02-02 20:35:03 +08:00
BZLZHH 39a8e72ee9 [Perf] (MG_Backend/DirectGLES): Directly sync texture objects instead of collecting first. 2026-02-02 18:28:17 +08:00
swung0x48 8f55179493 [Optimize] (MG_Backend/DirectGLES): Texture object mipmap dirty bit 2026-02-02 15:37:55 +08:00