swung0x48
0b94e02de5
[Fix] (MG_Backend/DirectVulkan): skip combined depth-stencil texture data uploads instead of recording invalid single-copy with multi-bit aspect mask (VK_INCOMPLETE at vkEndCommandBuffer killed the process); proper per-aspect de-interleave tracked separately
2026-07-16 02:36:07 -04:00
swung0x48
273c7ebcf0
[Fix] (MG_Impl/GLImpl, MG_State, MG_Backend/DirectGLES): eliminate packed_pixels SIGTRAPs - complete TexImage format/type/internalformat validation matrix (depth-stencil family, integer-ness, packed-type pairing, 3D depth rejection), fix inverted UpdateSubData assert with clamped copy, demote unimplemented readback asserts to logged no-ops
2026-07-16 02:23:18 -04:00
swung0x48
fe7a5ee1b2
[Fix] (MG_Impl/GLImpl, MG_State, MG_Backend/DirectGLES): eliminate packed_pixels SIGTRAPs - complete TexImage format/type/internalformat validation matrix (depth-stencil family, integer-ness, packed-type pairing, 3D depth rejection), fix inverted UpdateSubData assert with clamped copy, demote unimplemented readback asserts to logged no-ops
2026-07-16 02:23:18 -04:00
swung0x48
3a40778c4b
[Fix] (MG_Util/ShaderTranspiler): stop stripping precision qualifiers - the strip corrupted "precision highp float;" into invalid syntax; glslang accepts and ignores them natively in 460 core (unblocks ~2000 GL CTS cases per backend)
2026-07-16 01:50:33 -04:00
swung0x48
5331150cb9
[Fix] (MG_Util/ShaderTranspiler): stop stripping precision qualifiers - the strip corrupted "precision highp float;" into invalid syntax; glslang accepts and ignores them natively in 460 core (unblocks ~2000 GL CTS cases per backend)
2026-07-16 01:50:33 -04:00
swung0x48
37a7f35a27
[Chore] (MG_Backend/DirectGLES): demote UBO ring creation log to debug level
2026-07-16 00:10:14 -04:00
swung0x48
dc2f3a477b
[Chore] (MG_Backend/DirectGLES): demote UBO ring creation log to debug level
2026-07-16 00:10:14 -04:00
swung0x48
c6ed9429be
[Fix] (MG_Backend/DirectGLES): UBO ring - preserve generation across ES context recreation, retire frame marks at Present to bound growth
2026-07-16 00:10:14 -04:00
swung0x48
21753b0e4c
[Fix] (MG_Backend/DirectGLES): UBO ring - preserve generation across ES context recreation, retire frame marks at Present to bound growth
2026-07-16 00:10:14 -04:00
swung0x48
cb6af44984
[Fix] (MG_Backend/DirectGLES): UBO ring review fixes - invalidate array-buffer bind cache on failed ring creation, bump generation on emergency drain, division-based alignment rounding
2026-07-16 00:10:13 -04:00
swung0x48
f509b19b1d
[Fix] (MG_Backend/DirectGLES): UBO ring review fixes - invalidate array-buffer bind cache on failed ring creation, bump generation on emergency drain, division-based alignment rounding
2026-07-16 00:10:13 -04:00
swung0x48
7464179249
[Chore] (MG_Backend/DirectGLES): log global-UBO ring creation
2026-07-16 00:10:13 -04:00
swung0x48
c7ac5de28e
[Chore] (MG_Backend/DirectGLES): log global-UBO ring creation
2026-07-16 00:10:13 -04:00
swung0x48
315e9cb194
[Perf] (MG_Backend/DirectGLES): replace per-draw global-UBO glBufferSubData with a persistent-mapped ring allocator (fence-watermark reclaimed, MOBILEGL_DISABLE_UBO_RING opt-out); scrub stale indexed-binding shadow on glDeleteBuffers
2026-07-16 00:10:12 -04:00
swung0x48
2e7073a890
[Perf] (MG_Backend/DirectGLES): replace per-draw global-UBO glBufferSubData with a persistent-mapped ring allocator (fence-watermark reclaimed, MOBILEGL_DISABLE_UBO_RING opt-out); scrub stale indexed-binding shadow on glDeleteBuffers
2026-07-16 00:10:12 -04:00
swung0x48
e8d9a913d8
[Fix] (MG_Util/SelfTest): preserve POST checks before format probing
2026-07-16 00:10:12 -04:00
swung0x48
305701326c
[Fix] (MG_Util/SelfTest): preserve POST checks before format probing
2026-07-16 00:10:12 -04:00
swung0x48
4453f1910d
[Feat] (MG_Backend, android-plugin): show format capability tables in POST
2026-07-16 00:10:11 -04:00
swung0x48
8c89b1618a
[Feat] (MG_Backend, android-plugin): show format capability tables in POST
2026-07-16 00:10:11 -04:00
swung0x48
1b0be9a997
[Docs] (android-plugin): specify POST format capability tables
2026-07-15 22:36:56 -04:00
swung0x48
3e4ce5caa7
[Refactor] (MG_Impl/GLImpl): replace Flywheel dispatch sync hack with MOBILEGL_COHERENT_AS_FLUSH
2026-07-15 21:51:20 -04:00
swung0x48
f80f6f4a62
[Fix] (CI): retain fixtures for failed retraces
2026-07-15 04:36:15 -04:00
swung0x48
66caf907fd
[Fix] (CI): remove intermediate trace artifacts
2026-07-15 02:52:03 -04:00
swung0x48
d3150399c7
[Fix] (CI): download direct trace APK artifact
2026-07-15 02:01:53 -04:00
swung0x48
f1c6a12c06
[Fix] (CI): use full commit SHAs
2026-07-15 01:33:56 -04:00
swung0x48
947442ec78
[Fix] (CI): resolve trace APK by SHA
2026-07-15 01:27:09 -04:00
swung0x48
165dd003d7
[Chore] (CI): clean intermediate artifacts
2026-07-15 00:53:50 -04:00
swung0x48
b852ced3c1
[Chore] (CI): upgrade GitHub Actions runtimes
2026-07-15 00:36:08 -04:00
swung0x48
4a03d62b91
[Fix] (CI): publish APK artifacts directly
2026-07-15 00:34:52 -04:00
swung0x48
056574eebe
[Fix] (CI): name APK artifacts by commit
2026-07-15 00:22:12 -04:00
swung0x48
e61685547a
[Fix] (CI): locate unified trace APK
2026-07-15 00:17:08 -04:00
swung0x48
7ebaf43282
[Refactor] (Android plugin): unify renderer APK with Plugin V2 DSL
2026-07-14 23:37:21 -04:00
swung0x48
15580ff6a6
[Fix] (Retrace): preserve bundled ANGLE binaries
2026-07-15 08:46:28 +08:00
swung0x48
fd6f5bca83
[Fix] (Retrace): rely on APK signing for bundled ANGLE
2026-07-15 07:50:40 +08:00
swung0x48
b6d311f20b
[Fix] (Retrace): bundle and select signed ANGLE variants
2026-07-15 06:48:10 +08:00
swung0x48
9c0d5517bd
[Refactor] (MG_Backend/DirectVulkan): replace null-renderer guards with MOBILEGL_ASSERT
...
Drops the if (!pVulkanRenderer) { return; } / !MG_State::pGLContext early-return guards across DirectVulkan.cpp in favor of MOBILEGL_ASSERT, matching the pattern already used by the rest of the backend. Legitimate runtime conditions (index bounds, sync/query handle nullness, renderer-generation mismatch, timer-query support) are kept as real checks; only the null-pointer defenses are converted.
2026-07-14 03:55:41 -04:00
swung0x48
3445ab9304
[Refactor] (MG_Backend/DirectVulkan, trace-replay): extract dump-image capture out of MobileGL backend
...
Moves snapshot capture entirely into the apitrace retrace layer (glReadPixels + PNG encode). Drops the MOBILEGL_PRESENT_DUMP_PATH / MOBILEGL_PRESENT_STATS / MOBILEGL_PRESENT_DUMP_CALL / MOBILEGL_PRESENT_CURRENT_CALL / MOBILEGL_TRACE_CURRENT_CALL_OVERRIDE plumbing from Config, ConfigLoader, VulkanRenderer (GetPresentedDumpPixel/WritePresentedDumpPpm + present-stats readback), the EGL/GLX/Android ws shims, and the Android trace_replay_core PPM reader.
DirectVulkan ReadPixels on the default framebuffer now remaps raw swapchain pixels (top-left origin, preTransform-rotated) to GL orientation (bottom-left origin) so the retrace snapshot matches the golden; SwapchainObject also resizes the default-FBO stencil attachment to the swapchain extent to fix GL_INVALID_FRAMEBUFFER_OPERATION under the glReadPixels completeness check.
2026-07-14 02:40:20 -04:00
swung0x48
533219ede7
[Fix] (Retrace): load ANGLE through LD_LIBRARY_PATH
2026-07-13 21:20:02 -04:00
swung0x48
b1f55026af
[Chore] (MobileGL/ConfigLoader): rename/clean up more env var clutter
2026-07-13 20:45:40 -04:00
swung0x48
a26e9aaf25
[Refactor] (MG_Config, MG_Backend, trace-replay): remove unused stats instrumentation
2026-07-13 20:33:31 -04:00
swung0x48
a55a0645e2
[Refactor] (MG_Config, MG_Backend/DirectVulkan, trace-replay): centralize Magma env parsing and rename R11G11B10F fallback
2026-07-13 19:58:06 -04:00
swung0x48
e529e12d27
[Perf] (MG_Backend/DirectVulkan): bind GetBoundObject/GetSamplerObject const-ref returns by reference in BindProgramUniformBuffers resolve paths (UBO/SSBO/texel/sampler override) instead of copying the SharedPtr; ResolveUniformBufferPayload 2.2%->1.6%
2026-07-13 08:27:12 -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
37cd5b42de
[Perf] (MG_Backend/DirectVulkan): drop redundant per-draw work in UploadAndBindVertexBuffers - pass programObj from SetupDraw, use the VAO attribute's buffer SharedPtr directly instead of re-resolving by external index; 8.5%->6.2%
2026-07-13 05:21:57 -04:00
swung0x48
7fe5247626
[Fix] (MG_Backend/DirectVulkan): key the sampled-set walk-skip on a program lifetime id, not the recyclable GL name, so a deleted+recreated program can't false-hit the cache
2026-07-13 04:58:05 -04:00
swung0x48
f098983c9f
[Perf] (MG_Backend/DirectVulkan): skip the per-draw sampled-texture walk when the bound set is unchanged (texture-bind generation + program state version); CollectSampledTextures 5.0%->0.2%, fps 228->249
2026-07-13 04:41:14 -04:00
swung0x48
516d2a659e
[Perf] (MG_Backend/DirectVulkan): cache resolved VkSampler per binding to skip the per-draw sampler key hash, keyed on a new sampler lifetime id
2026-07-13 02:04:57 -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
b0076af9bd
[Perf] (MG_Backend/DirectVulkan): raw-ptr in ResolveSamplerDescriptor drops the per-draw SharedPtr refcount on the sampler descriptor path
2026-07-12 22:48:05 -04:00