swung0x48
64e4840de2
[Fix] (DirectVulkan): fall back to immutable images when the mutable probe fails, gate robustBufferAccess behind MOBILEGL_DISABLE_ROBUST_BUFFER_ACCESS, decode R32/RG32/R16-class readback formats, and warn when shaderStorageImage*WithoutFormat is unavailable
2026-07-20 02:36:26 -04:00
swung0x48
4658536652
[Perf] (DirectVulkan): keep the render pass alive for steady-state storage-image draws and skip storage-image collection for programs without them
2026-07-20 02:36:24 -04:00
swung0x48
e5388c0e7e
[Fix] (MG_Backend, MG_Impl, ShaderTranspiler, MG_Test): support iterationRP custom images and storage format reinterpretation
2026-07-20 02:35:30 -04:00
swung0x48
e78eee972e
[Perf] (MG_Backend/DirectVulkan): store the resolved TextureResource pointer in the per-draw sync memo so repeat SyncTextureAndGetDescriptor calls skip the resource-map lookup
2026-07-13 06:53:37 -04:00
swung0x48
808c5dcc46
[Perf] (MG_Backend/DirectVulkan): re-land content-version texture early-out; bump content version on glGenerateMipmap so cached sampled views re-sync (fixes Iris shader retrace)
2026-07-13 00:50:09 -04:00
swung0x48
ecea8054a6
Revert content-version texture early-out ( e8e1521): the SyncTexture cross-draw skip breaks Iris shader retrace validation (correctness regression)
2026-07-12 23:27:54 -04:00
swung0x48
e8e1521972
[Perf] (MG_Backend/DirectVulkan): skip cross-draw re-sync of unchanged textures via a content-version early-out; SyncTextureAndGetDescriptor 8.9%->2.4%
2026-07-12 18:40:48 -04:00
swung0x48
542e50be33
[Perf] (MG_Backend/DirectVulkan): skip per-draw render-pass hash when framebuffer state unchanged; SetupDraw 60%->54%, fps 96->109
2026-07-12 08:18:37 -04:00
swung0x48 and Claude Opus 4.8
b253df881d
[Perf] (DirectVulkan): memoize per-draw texture sync in SetupDraw
...
Each sampled texture was resolved ~3x per draw: SetupDraw's layout-probe
loop, its post-transition loop, and again inside ResolveSamplerDescriptor.
No GL texture mutation happens mid-SetupDraw, and layout is tracked on the
TextureResource independently of SyncTexture, so the repeat SyncTexture work
(mip-completeness / resource+view resync / dirty scan) is pure redundancy.
Add a per-draw memo in VkTextureManager (BeginDrawSyncScope/EndDrawSyncScope
+ RAII DrawSyncScope guard around SetupDraw): after the first successful sync
of a texture in a draw, repeat SyncTextureAndGetDescriptor calls short-circuit
to the already-synced resource.
Device-verified on Adreno 830 (MC 26.3-snapshot3, Magma): rendering correct,
no validation errors; wall-clock profile of the render thread shows
SyncTextureAndGetDescriptor dropping from 15.2% to ~5% and SetupDraw from
43.7% to 28.9%.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-07-11 22:06:28 -04:00
BZLZHH
a4261f8b19
[Fix] (MG_Backend/DirectVulkan, MG_State/TextureState, MG_Test): harden default-fbo clear lifetime tracking
2026-06-10 09:49:16 +08:00
BZLZHH
6051588458
[Feat] (MG_Backend/DirectVulkan): implement multisample texture backend
2026-06-10 01:56:37 +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
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
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
5cfe9c8998
[Feat] (MG_Backend/DirectVulkan): support compute shaders
2026-06-05 11:52:10 +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
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
7337b00ca8
[Feat] (MG_Backend/DirectVulkan): implement 3D texture handling
2026-05-07 12:28:14 +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
e82815802e
[Feat] (MG_Backend/DirectVulkan): implement texture mipmap
2026-03-09 15:09:05 +08:00
swung0x48
8097c0d7b1
[Fix] (MG_Backend/DirectVulkan): add untreated aspect member in TextureResource move ctor
2026-03-06 15:45:19 +08:00
swung0x48
641f54e1b7
[Feat] (MG_Backend/DirectVulkan): Transition texture for sampling
2026-03-06 15:37:14 +08:00
swung0x48
c36bfe0843
[Fix] (MG_Backend/DirectVulkan): track image layout naively
2026-03-06 14:53:43 +08:00
swung0x48
a2e8faafe5
[Fix] (MG_Backend/DirectVulkan): upload buffer using fence, without vkQueueWaitIdle
2026-03-05 18:02:28 +08:00
swung0x48
7687c19b33
[Fix] (MG_Backend/DirectVulkan): hook up TextureManager to TextureEnumConverter
2026-03-03 13:30:33 +08:00
swung0x48
6f8c76f06c
[Fix] (MG_Backend/DirectVulkan): fixing Vulkan backend initialization
2026-03-01 22:39:30 +08:00
swung0x48
43f2043478
[Fix] (MG_Backend/DirectVulkan): Vulkan backend default framebuffer initialization
2026-03-01 21:21:32 +08:00
swung0x48
f61f068e28
[Fix] (MG_Backend/DirectVulkan): refactor VkRenderPassManager and hook it up (this commit only compiles and does not work)
2026-03-01 18:17:34 +08:00
swung0x48
2c848ab44b
[Chore] (MG_Backend/DirectVulkan): move TransitionImageLayout to VkTextureManager
2026-02-27 09:44:23 +08:00
swung0x48
b4be1292b8
[Feat] (MG_Backend/DirectVulkan): TextureManager mipmap completeness check
2026-02-25 11:04:28 +08:00
swung0x48
db58f4c214
[Feat] (MG_Backend/DirectVulkan): TextureManager supports mipmap
2026-02-25 10:52:54 +08:00
swung0x48
59bad77176
[Chore] (MG_Backend/DirectVulkan): rename functions in VkTextureManager
2026-02-25 09:52:15 +08:00
swung0x48
a757669df5
[Improvement] (MG_Backend/DirectVulkan): split TextureSamplerManager into TextureManager and SamplerManager
2026-02-24 15:19:34 +08:00