swung0x48
fe1b6db653
[Feat] (ci): reuse build outputs across jobs
2026-06-16 08:46:43 +08:00
swung0x48
4c2c4cb565
[Fix] (trace-replay): stabilize GL4ES OpenRA validation
2026-06-15 22:27:39 +08:00
swung0x48
bc8109b695
[Fix] (trace-replay): fix Android Vulkan pbuffer build
2026-06-15 21:01:55 +08:00
swung0x48
a88ca75c14
[Fix] (trace-replay): run Vulkan retrace headlessly
2026-06-15 20:37:40 +08:00
swung0x48
e453a75ea9
[Fix] (trace-replay): validate OpenRA on both backends
2026-06-15 19:59:21 +08:00
swung0x48
627f737bbe
[Fix] (trace-replay): checkout nested submodules in CI
2026-06-15 19:35:48 +08:00
swung0x48
ef3e8da1b5
[Feat] (trace-replay): add Linux retrace CI
2026-06-15 18:08:55 +08:00
swung0x48
c2d6134cfa
[Feat] (android-plugin): add standalone trace replay profile
2026-06-15 16:57:50 +08:00
swung0x48
d51723c153
[Fix] (MG_Backend/DirectGLES): use safer buffer upload path. MAY AFFECT PERFORMANCE!!
2026-06-11 10:28:39 +08:00
swung0x48
94b2a863bf
[Chore] (MG_Impl/GLSync): stub out gl sync
2026-06-11 09:50:20 +08:00
swung0x48
442510f793
[Fix] (MG_Impl/GLImpl): split backend-dependent integer getters
2026-06-11 07:18:29 +08:00
swung0x48
75a0fc2c0c
[Fix] (MG_Impl/GLImpl): fix DSA state queries and compatibility tests
...
Fix texture parameter getters and element array buffer binding queries.
Update framebuffer, texture, program, and VAO tests to match current OpenGL semantics, while preserving VAO 0 compatibility behavior.
2026-06-10 23:33:59 +08:00
swung0x48
72b1f50314
[Fix] (MG_Backend/DirectGLES): don't glFlush on present
2026-06-10 18:44:59 +08:00
swung0x48
66c36cd945
Merge pull request #9 from BZLZHH/Agent/CodexAudit
2026-06-10 12:33:01 +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
swung0x48
dd52f0381a
[Fix] (MG_Backend/DirectVulkan): fix Voxy subgroup and indirect draw sync
...
- Implement Vulkan subgroup capability querying and expose KHR subgroup getter values.
- Fix DirectVulkan memory barriers so GL_COMMAND_BARRIER_BIT makes generated indirect draw commands visible.
- Keep Voxy on the DirectVulkan gpu_shader_int64 quad decode path while filtering unsupported optional int64 usage on backends that do not advertise it.
- Add MG_Test coverage for subgroup getters, Voxy subgroup/int64 shader probes, command barrier mapping, and indirect draw command layout.
- Check for whether driver supports shader subgroup operation, disable on demand, and provide env var `MOBILEGL_DISABLE_SUBGROUP` to explicitly disable subgroup features
2026-06-09 09:46:07 +08:00
swung0x48
cf165c0db5
[Fix] (MG_Backend/DirectVulkan): support Voxy rendering
...
Implemented:
- Advertise Voxy-required DirectVulkan extensions without raising the reported OpenGL version.
- Add DirectVulkan compute, indirect draw count, DSA, readback, and buffer state paths needed by Voxy.
Fixed:
- Enable Vulkan shaderInt64 and drawIndirectFirstInstance so Voxy baseInstance-driven LOD draws address the correct section data.
- Fix DirectVulkan synchronization, framebuffer, texture readback, and shader interface handling used by Voxy and Minecraft screenshots.
Tests:
- Add MG_Test coverage for DirectVulkan extension advertising, DSA buffer/texture/framebuffer/vertex-array behavior, persistent mapped readback, and shader/program paths.
2026-06-09 00:37:37 +08:00
swung0x48
ab9db43599
[Chore]: bump version to 26.06
2026-06-08 14:11:20 +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
be3c3eb9bb
[Fix] (MG_Test/VertexArray): lossen too strict error test
2026-06-08 09:43:24 +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
a701c896f0
[Feat] (MG_Backend/DirectVulkan): wire up client-side buffer
2026-06-07 18:05:48 +08:00
swung0x48
b0de886f8e
[Fix] (MG_Backend/DirectVulkan): make glmark2 work on Magma
2026-06-07 16:24:30 +08:00
swung0x48
ad1ca4ea92
[Feat] (MG_Impl/VertexArray): implement client-side buffer
2026-06-07 13:02:58 +08:00
swung0x48
fbaf5261e2
[Fix]: properly open X11 display for rendering
2026-06-07 12:26:35 +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
ff41e59282
[Feat] (EGL): support Linux X11 + EGL
2026-06-07 08:21:20 +08:00
swung0x48
a15a13ca46
[Fix]: fix compilation on Linux
2026-06-06 23:18:27 +08:00
swung0x48
2937043e77
[Fix] (MG_Backend/DirectGLES): mark integer varyings flat
2026-06-06 18:58:27 +08:00
swung0x48
24efb0bb17
[Fix] (MG_Impl/Program): implement direct state uniform updates
2026-06-06 17:27:09 +08:00
swung0x48
dd2bd267c1
[Fix] (MG_State/RenderState): track front face mode
2026-06-06 08:46:43 +08:00
swung0x48
5cfe9c8998
[Feat] (MG_Backend/DirectVulkan): support compute shaders
2026-06-05 11:52:10 +08:00
swung0x48
3bd8a62aa8
[Feat] (MG_Backend/DirectGLES): support compute shaders
2026-06-05 10:41:23 +08:00
swung0x48
dcd37f3c38
[Fix] (MG_Util/ShaderTranspiler): preserve reflected uniform backing
2026-06-05 10:39:53 +08:00
swung0x48
a579fd2342
[Feat] (MG_State/ProgramState): attempting to do shader LTO (WIP)
2026-06-01 22:26:16 +08:00
swung0x48
f93ff00642
[Chore] (MG_State/ProgramState): add more remarks to GenerateBinary()
2026-06-01 21:35:28 +08:00
swung0x48
8a628631fb
[Feat] (Backend/DirectVulkan): implement min/max lod
...
- This fixes water waves in Derivative d24.4.14
2026-06-01 05:38:28 +08:00
swung0x48
59733a2a26
[Fix] (MG_Backend/DirectVulkan): clear alpha as 1.0f when using RGB format on GL side. Transition to VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL for clearing
2026-05-24 19:23:36 +08:00
swung0x48
c7d385c03d
[Fix] (CI): scan rather than hardcode apk file name
2026-05-24 18:45:24 +08:00
swung0x48
27a8aa057c
[Feat] (MG_Impl/RenderState): implement some blend related states
2026-05-24 17:38:44 +08:00
swung0x48
e63bfbabf0
[Chore] (MG_Backend/DirectVulkan): enable vulkan validation layer only on DEBUG log level
2026-05-24 11:11:12 +08:00
swung0x48
c107d9edcf
[Fix] (MG_Backend/DirectVulkan): use RGBA format as RGB format
...
- some drivers (Adreno as I tested) lacks
VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT on 24-bit RGB formats,
use 32-bit ones as a fallback.
2026-05-24 10:07:28 +08:00
swung0x48
49e69c1c7d
[CI] (android-plugin): build two (Espryt/Magma) variants
2026-05-24 08:57:02 +08:00
swung0x48
482b6d7bbf
[CI] (android-plugin): specify MOBILEGL_LOG_ACTIVE_LEVEL=MOBILEGL_LOG_LEVEL_INFO define
2026-05-24 08:45:02 +08:00
swung0x48
dcfe91bdfc
[Optimization] (MG_Backend/DirectVulkan): properly use vkCmdBlitImage() on rotations that
...
applicable, rather than shader-based blit
2026-05-24 00:14:05 +08:00
swung0x48
6072b5b703
[Fix] (MG_Backend/DirectVulkan): use shader-based default framebuffer blit to fix wrong orientation
2026-05-24 00:07:16 +08:00
swung0x48
9c50ac8a69
[CI]: use DirectVulkan as default backend
2026-05-23 23:01:48 +08:00
swung0x48
8b7acad257
[CI]: add android build key + signing process
2026-05-23 21:54:40 +08:00
swung0x48
cb8cb48a60
[CI]: build MobileGL android renderer plugin
2026-05-23 20:58:03 +08:00
swung0x48
8c00ae1d38
[Fix] (MG_Impl/GL_Texture): don't actually allocate large proxy texture to avoid large allocation makes some devices to crash
2026-05-12 16:33:30 +08:00
swung0x48
633b3d3b0a
[Feat] (MG_State/RenderState, MG_Backend/DirectVulkan): make Distant
...
Horizon work
- Implement BlendEquation/CullFaceMode/PointSize/PolygonMode
- Implement GetFramebufferAttachmentParameter*
- Downgrade some color attachment resolve failure
- Downgrade some overly-strict shader stage linkage check (don't check
on unused input var)
2026-05-12 12:38:19 +08:00
swung0x48
60199c0323
[Optimization] (MG_Backend/DirectVulkan): optimize CreatePipeline hot path with VkPipelineCache
2026-05-12 00:27:52 +08:00
swung0x48
9e0e03d4c0
[Optimaization] (MG_Backend/DirectVulkan): optimize perf
...
- Properly reuse descriptor sets rather than always allocating
- Add program lookup cache
2026-05-11 23:20:55 +08:00
swung0x48
4972ebf914
[Fix] (MG_Backend/DirectVulkan): fix 1.21.6+ intermittent crashing
...
- Try coerce vertex input format to please Vulkan driver
- Skip inactive UBO instead of hard fast-fail
2026-05-10 11:53:26 +08:00
swung0x48
4a36d63c1b
[Fix] (MG_Backend/DirectVulkan): fix 26.2 texture bug.
...
- Fix texture object / buffer lifecycle issues
2026-05-10 10:03:03 +08:00
swung0x48
d7e768096e
[Fix] (MG_Backend/DirectVulkan): fix Minecraft 26.2 startup crashes
...
- Support cube map face uploads with cube-compatible images and per-face array layers
- Add uniform texel buffer descriptor support for samplerBuffer bindings
- Cache transient vertex/index buffer uploads per frame to avoid VMA allocation failures
2026-05-10 08:50:55 +08:00
swung0x48
e13b5d0618
[Chore] (MG_Backend/DirectVulkan): make Photon fix a SPIR-V patch rather than source-level
2026-05-09 17:46:16 +08:00
swung0x48
c5bf0dc07d
[Chore] (MG_Backend/DirectVulkan): exclude some validation logic from release build
2026-05-09 13:45:19 +08:00
swung0x48
9fbd83d602
Merge branch 'Feat/Backend-Direct-Vulkan' of https://github.com/MobileGL-Dev/MobileGL into Feat/Backend-Direct-Vulkan
2026-05-09 13:08:12 +08:00
swung0x48
39c5b28dfb
[Fix] (MG_Backend/DirectVulkan): fixing Photon v1.1
...
- Flatten DailyWeatherVariation interface varyings
- Correct internal-format component counts
- Preserve GL draw-buffer slot semantics in render pass creation
- relax GL_NONE / vec4-to-RGB pipeline checks
2026-05-09 09:56:45 +08:00
swung0x48
407d4344c4
[Feat] (MG_Backend/DirectVulkan): generate mipmap, add fallback texture, implement shader-based depth mipmap blit, enumerate more vk physical device features
...
- Supporting iterationT
2026-05-08 09:25:41 +08:00
swung0x48
76e3950028
[Feat] (MG_Backend/DirectVulkan): GenerateMipmap WIP
2026-05-07 15:14:25 +08:00
swung0x48
7337b00ca8
[Feat] (MG_Backend/DirectVulkan): implement 3D texture handling
2026-05-07 12:28:14 +08:00
swung0x48
22582dea3e
[Chore] (MG_Backend/DirectVulkan): get rid of 1x1 texture fallback path for unbinded sampler
2026-05-07 09:30:10 +08:00
swung0x48
f600a07404
[Fix] (MG_Backend/DirectVulkan): use fallback texture in case some
...
shaderpack failes to properly bind texture
2026-05-06 17:57:59 +08:00
swung0x48
ff790e1ff1
[Feat] (MG_Backend/DirectVulkan): implement vulkan backend for glCopyTex(Sub)Image2D
2026-05-06 15:39:59 +08:00
swung0x48
a345369269
[Fix] (MG_Backend/DirectVulkan): fix null dereference crash in VkClearManager
2026-05-06 13:15:08 +08:00
swung0x48
8e4a4359b4
[Chore] (MG_Backend/DirectVulkan): eliminate vague texture binding fallbacks
2026-05-05 18:34:44 +08:00
swung0x48
0a000d1628
[Feat] (MG_Backend/DirectVulkan): more built-in function renames
2026-05-05 18:33:20 +08:00
swung0x48
5bd8e369c4
[Feat] (MG_Backend/DirectVulkan): advertise GL_ARB_draw_buffers_blend for DirectVulkan backend
2026-05-05 18:02:20 +08:00
swung0x48
777d756d1b
[Fix] (MG_Impl/GL_Texture): properly unbind texture when texture name == 0
2026-05-05 17:23:57 +08:00
swung0x48
7716a8e05d
[Fix] (MG_Backend/DirectVulkan): more flexible ResolveSamplerDescriptor
2026-05-05 17:13:35 +08:00
swung0x48
94e93b171c
[Feat] (MG_Backend/DirectVulkan): get real maxProgramBindings from VkDevice
2026-05-05 13:19:45 +08:00
swung0x48
1bf12be278
[Fix] (MG_Util/ShaderTranspiler): add preprocessing to remove name-collided glsl functions
2026-05-05 12:58:36 +08:00
swung0x48
99b753be9a
[Feat] (MG_Backend/DirectVulkan): implement backend func for glCopyTex(Sub)Image2D
2026-05-05 12:02:33 +08:00
swung0x48
bc2f2d896b
[Chore]: bump version to 26.05
2026-05-05 09:12:01 +08:00
swung0x48
659fbf26da
[Fix] (MG_Backend/DirectVulkan): fix depth sampler state, fixing BSL
...
shadow
2026-05-05 00:40:17 +08:00
swung0x48
f61a7bb9c0
[Fix] (MG_Backend/DirectVulkan): fix some uniform/sampler binding
2026-05-04 22:48:50 +08:00
swung0x48
212309083a
[Fix] (MG_State/EGLState): fix compilation error on 32-bit arch where EGLAttrib & EGLint are the same type and collides
2026-05-03 19:52:29 +08:00
swung0x48
c1ebd01a70
Merge pull request #8 from MobileGL-Dev/Feat/Backend-Direct-Vulkan
...
Feat/backend direct vulkan
2026-04-26 21:55:28 +08:00
swung0x48
af58e2c7b4
[Fix] (MG_Backend/DirectVulkan/VertexInputStateFactory): don't use SSCALED formats
2026-04-26 19:43:27 +08:00
swung0x48
4a3a44924a
[Refactor] (MG_Backend/DirectVulkan/ProgramFactory): refactor uniform reflection
2026-04-03 16:45:11 +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
swung0x48
83d1ce177e
[Optimization] (MG_Util/ShaderTranspiler/SpvcSession): use SPIRV-Reflect to avoid full AST parse, speeding up reflection
2026-04-01 10:28:37 +08:00
swung0x48
4321c4a827
[Submodule] (3rdparty/SPIRV-Reflect): add SPIRV-Reflect as dependency
2026-03-29 00:03:57 +08:00
swung0x48
a039ce0987
[Chore] (MG_State/ProgramState): some renames
2026-03-26 09:49:05 +08:00
swung0x48
accfaab720
[Refactor] (MG_Backend/DirectVulkan): get rid of junk, and rename some symbols
2026-03-24 14:20:21 +08:00
swung0x48
35658eb998
[Refactor] (MG_Backend/DirectVulkan): move uniform reflection from UniformDescriptorBinder to ProgramFactory
2026-03-23 16:36:17 +08:00
swung0x48
ccbde0196e
[Fix] (MG_Test/ProgramTest): fix wrong decomp source output
2026-03-21 23:07:27 +08:00
swung0x48
0209c5461f
[Feat] (MG_Backend/DirectVulkan): implement naive transient/resident buffer, and heuristics to downgrade resident buffer to transient
2026-03-20 17:39:10 +08:00
swung0x48
810b4886c7
[Feat] (MG_Backend/DirectVulkan): supports uint8 index buffer by VK_KHR_index_type_uint8 / VK_EXT_index_type_uint8
2026-03-20 15:27:57 +08:00
swung0x48
7dfc2149d8
[Feat] (MG_Backend/DirectVulkan): unified transient buffer arena
2026-03-20 13:56:12 +08:00
swung0x48
9d1e8bd7cd
[Feat] (MG_Backend/DirectVulkan): VkBufferManager transient upload now includes uniform
2026-03-20 13:31:51 +08:00
swung0x48
bfa4049ac1
[Chore] (MG_Backend/DirectVulkan): unwrap frame context initialization
2026-03-20 09:55:22 +08:00
swung0x48
87c56ce3d5
[Fix] (MG_Backend/DirectVulkan): Fix VkBufferManager initialization assertion failure
2026-03-20 09:36:37 +08:00
swung0x48
f2ab50b84e
[Feat] (MG_Backend/DirectVulkan): VkBufferManager
2026-03-19 17:44:35 +08:00
swung0x48
b6ac6c182e
[Feat] (MG_Backend/DirectVulkan): Buffer arena, buffer slice
2026-03-19 17:23:52 +08:00
swung0x48
5e9f0f0c70
[Chore] (MG_Backend/DirectVulkan): remove some unused stuff
2026-03-19 08:59:34 +08:00
swung0x48
e4455aed9a
[Feat] (MG_Backend/DirectVulkan): add draw cmd MultiDrawIndexedCmd
2026-03-18 16:08:00 +08:00
swung0x48
bc018c9513
[Chore] (MG_Backend/DirectVulkan): add indexBufferView field for draw cmds
2026-03-18 13:25:10 +08:00