swung0x48
076cd0d19d
[Feat] (MG_State, MG_Impl/GLImpl): per-target default texture objects (name 0) - binding 0 binds a real per-context default object (the initial binding of every unit/target slot, rebound on delete of a bound texture), so glTexImage*/glTexParameter*/glGetTex* on it work like any texture while glIsTexture(0)/Gen/Delete keep excluding it and TexStorage* rejects it per spec; backends skip image-less defaults as cheaply as the old null slots (DirectGLES per-draw sync/bind loops, DirectVulkan sampler-fallback resolve); also accept the full advertised GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS range in glActiveTexture, allow zero-layer TexImage3DMultisample, and let glTexBuffer(buffer=0) detach - the texture section of GL CTS per-case state reset (gluStateReset) now runs clean
2026-07-16 23:36:43 -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 and Claude Fable 5
bd208783d7
[Perf] (MG_Backend/DirectVulkan, MG_State): stop re-deriving per-draw state
...
- Memoize the program content hash on ProgramObject (keyed by the backend
state version + compile flags; relinking and binding changes invalidate
it) and the vertex-input hash on VertexArrayObject (keyed by a new
aggregate config version bumped by every attribute mutation). Full-SPIRV
XXH64 hashing fell from 13.7% to 1.4% of the render thread.
- ProgramObject also gains a link version and a global-UBO content version
(bumped by uniform writes and on relink, wrap-safe around the backends'
"never uploaded" sentinel) for backends to gate uploads and link caches.
- Reuse member scratch vectors in SetupDraw, UploadAndBindVertexBuffers,
GetOrCreatePipeline and BindProgramUniformBuffers instead of allocating
per draw (~12% of render-thread time was in the allocator).
- Replace hot-path dynamic_cast with AsMipmapTexture (storage-type tag +
static_cast); TextureObjectMipmap is the only Mipmap-tagged branch.
- Register/prune texture aliases only when a new (texture, lifetimeId)
identity appears instead of scanning the entire alive map on every
sampled-texture sync.
- Make the fallback VkPresentModeKHR log strings report the actual mode.
Vanilla render-thread share of libMobileGL dropped from 48% to 35% on
DirectVulkan (simpleperf, Adreno 830).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-09 12:12:50 +00:00
swung0x48
e83e6ed76e
[Fix] (MG_State/GLState, MG_Impl/GLImpl): track immutable texture storage [skip ci]
2026-07-02 22:49:54 +08:00
swung0x48
0cd236414e
[Fix] (MG_Impl/GLImpl, MG_State/GLState): fix texture integer border color queries [skip ci]
2026-07-02 13:17:08 +08: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
c499480692
[Feat] (MG_Impl/Texture, MG_State/TextureState, MG_Impl/Framebuffer, MG_Test/Texture): implement multisample frontend state
2026-06-10 01:37:59 +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
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
7daa69cf73
[Feat] (MG_State/TextureState): Add resource version for texture params.
2026-02-03 00:15:50 +08:00
swung0x48
8f55179493
[Optimize] (MG_Backend/DirectGLES): Texture object mipmap dirty bit
2026-02-02 15:37:55 +08:00
BZLZHH
0cf9d9223d
[Feat|Perf] (*/BufferState): Improve dirty mark for Buffer.
2026-02-02 02:25:41 +08:00
BZLZHH
20fbfc2956
[Chore] (LICENSE): Switch project license to LGPLv3.
2026-01-18 09:33:33 +08:00
BZLZHH
3714e275ab
[Chore] (All): Update copyright year in source code files.
2026-01-01 00:42:06 +08:00
BZLZHH
e7d9da42dc
[Chore] (All): Adjust copyright declaration.
2025-12-31 21:49:54 +08:00
BZLZHH
8ed8efe347
[Chore] (All): Add standardized source file header and update script.
2025-12-31 15:45:34 +08:00
swung0x48
c3755d77ef
[Feat] (MG_Impl/Texture): implement GL_TEXTURE_SWIZZLE_RGBA
2025-12-13 21:28:04 +08:00
swung0x48
cb4e6b5f19
[Feat] (MG_State/Texture, MG_Impl/Texture): glTexBuffer (and implement TextureObjectBuffer accordingly)
2025-12-09 21:20:39 +08:00
swung0x48
0a89ad4f30
[Feat] (MG_State/Texture): separate mipmap from TextureObjectBase
2025-12-09 10:57:10 +08:00
swung0x48
ab6d9f60e7
[Refactor] (MG_State/Texture): decouple texture object and mipmap storage
2025-12-06 22:24:30 +08:00
BZLZHH
521bcadbee
[Fix] (...): Fix code mess.
2025-11-29 01:43:58 +08:00
BZLZHH
32c062d019
[Feat] (MG_State/TextureState): Add ITextureObject::GetAllSwizzleParams
2025-11-29 01:33:58 +08:00
BZLZHH
75fc52febe
[Feat] (MG_State/TextureState): Stubs for unimplemented texture types.
2025-11-29 01:31:41 +08:00
swung0x48
da5b9686ba
[Fix]: build on macOS
2025-11-26 22:05:02 +08:00
swung0x48
a0aaba3cb5
[Feat] (MG_State/Texture): Initial implementation of cube map
2025-11-25 22:47:41 +08:00
swung0x48
4d44dda117
[Chore] (MG_State/TextureObject): separate TextureObjectWithOneMipmap
2025-11-25 21:52:01 +08:00
swung0x48
e79d2fd059
[Chore]: get rid of junk in texture stuff
2025-11-25 14:20:37 +08:00
swung0x48
352df37b91
[Feat] (MG_State/TextureObject): implement GetIndexOfTextureUploadTarget()
2025-11-25 14:14:05 +08:00
swung0x48
419a67cd08
[Feat] (MG_State/TextureState): refractor mipmap (TextureStorage)
2025-11-25 00:10:13 +08:00
swung0x48
718eeaab43
[Chore] (MG_State/TextureObject): extract mipmap stuff
2025-11-24 16:59:59 +08:00
swung0x48
ca8d2b7bab
[Chore]: separate TextureObject child classes into individual files
2025-11-24 09:51:39 +08:00
BZLZHH
3809a9f52f
[Feat] (MG_State/SamplerState): Implement SamplerState.
2025-11-15 23:53:54 +08:00
BZLZHH
784b53344c
[Feat] (MG_State/TextureState|MG_Impl/Texture): Add hasData mark for MipmapLevelInternal.
2025-11-15 23:17:01 +08:00
BZLZHH
a01037b6fe
[Misc] (MG_State/TextureState): Remove completed TODO.
2025-11-14 11:09:27 +08:00
BZLZHH
4d8db7fb3b
[Feat] (MG_State/TextureState): Implement full texture parameter track.
2025-11-01 15:49:16 +08:00
BZLZHH
1269bc76f3
[Feat] (MG_State): Add external index getter for each object.
2025-11-01 11:18:35 +08:00
swung0x48
7151080a67
[Fix] (Types, GL_Texture): Memcpy insanity, proxy texture fix
2025-10-28 11:49:08 +08:00
BZLZHH
93a0bbaed8
[Feat] (MG_Backend/DirectGLES): Implement basic stuff for DirectGLES backend.
2025-10-19 11:47:44 +08:00
BZLZHH
bd1056f9c9
[Feat|Fix] (...): Add/Fix lots of stuff, being able not to crash in MC.
2025-10-06 16:08:35 +08:00
BZLZHH
776e1d99cf
[Feat] (MG_State/TextureState): Implement TextureObjectBase::IsComplete.
2025-10-02 20:22:12 +08:00
BZLZHH
fd82a2495f
[Improvement] (MG_State/TextureState): Mark the mipmap as dirty by default.
2025-09-06 08:53:11 +08:00
BZLZHH
b92bc0b44a
[Feat] (MG_State/TextureState): Add dirty mark for MipmapLevelInternal.
2025-08-25 15:18:34 +08:00
BZLZHH
427e069085
[Feat] (MG_State/TextureState): Implement GetMipmap for TextureObject.
2025-08-25 15:13:01 +08:00
BZLZHH
675ee4915b
[Feat|Fix] (MG_Impl/Texture): Implement TexImage2D & related stuff.
2025-08-14 18:32:37 +08:00
BZLZHH
115cdef6fd
[Feat] (MG_State/TextureState): Add TextureUploadTarget enum. Add more TextureTarget enum.
2025-08-14 15:19:32 +08:00
BZLZHH
4eba014513
[Fix] (MG_State/TextureState): Fix incorrect behavior.
2025-08-12 18:11:36 +08:00
BZLZHH
253e14f2c9
[Improvement] (...): Optimize code.
2025-08-10 23:18:01 +08:00