BZLZHH
d6fd101d2a
[Build] (CMakeLists.txt, docs/Disaggregated): default to the split in-process build
2026-10-31 20:59:18 +08:00
BZLZHH
6d3b00e820
[Chore] (docs, MobileGL, scripts, tools, .github): use US spelling in identifiers and file names
2026-10-31 20:06:22 +08:00
swung0x48
d1293354d1
[Fix] (CMakeLists.txt, MG_Backend/DirectGLES, MG_Pipe, MG_Test/Backend, MG_Test/ShaderTranspiler, MG_Util/ShaderTranspiler): give integer attributes their GL value in Espryt
...
- every integer array reaches the driver with its input's signedness, at the pointer, zero-stride and client-memory call sites, so each fetch is one ES defines
- 8/16-bit data of the other signedness is widened back by the program's runtime-width seeds, armed on the first draw that needs them and set as two uniforms per draw
- capture programs with integer inputs are armed at their first build; arming is part of the ESSL translation key
- a build whose seeds cannot be verified keeps the driver's own value for narrow data; one that fails to link is rebuilt without them
- the program's integer input masks are memoized on its shader record
2026-10-19 02:53:01 -04:00
swung0x48
381124a0b6
[Feat] (CMakeLists.txt, MG_Test/ShaderTranspiler, MG_Util/ShaderTranspiler): seed narrow integer inputs from runtime widths
...
- ExtendNarrowIntegerVertexInputsPass gains a RuntimeWidths mode: every 32-bit integer input below location 32 is widened from two Private uint globals by shifts only
- ShaderCompiler::ExtendNarrowIntegerVertexInputsForEssl reports whether it rewrote the module
- the constant-mask mode is unchanged byte for byte
2026-10-19 02:32:21 -04:00
swung0x48
3528628681
[Feat] (CMakeLists.txt, MG_Test/ShaderTranspiler, MG_Util/ShaderTranspiler): add a pass extending narrow integer vertex inputs GL's way
...
- listed locations are masked to 8/16 bits or sign-extended from them at the top of main
- each input becomes a Private copy seeded once; access chains are retyped, arrays go per element
2026-10-18 15:55:07 -04:00
swung0x48
c56c7e76c8
[Fix] (CMakeLists.txt, MG_Test/ShaderTranspiler, MG_Util/ShaderTranspiler): keep geometry outputs across EmitVertex
...
- RetainGeometryOutputsPass shadows each output whose pre-emit value can be
observed later and copies it into the real output before every emit
- runs in SanitizeAndOptimizeBinary, so Magma and Espryt both get it
- iterationT terrain: flat textureResolution written once, emitted 3 times
2026-10-18 15:55:05 -04:00
swung0x48
0c2f8df727
[Fix] (CMakeLists.txt, MG_Test/ShaderTranspiler, MG_Util/ShaderTranspiler): strip unused compatibility members from per-vertex blocks
...
- glslang gives them no BuiltIn, so Magma declined every compatibility
program that wrote gl_Position, including the Iris block outline
2026-10-18 15:55:05 -04:00
swung0x48
2793e46c8b
[Refactor] (CMakeLists.txt, MG_Pipe): move the device-loss debug knobs out of PipeApply.cpp
...
- PipeDeviceLossKnobs.cpp holds MGPipeDebugDeviceLossDue and MGPipeDebugSessionLossDue as they were; PipeApply.cpp keeps the session-fail seam its comment places there
2026-10-17 07:03:03 -04:00
swung0x48
7de09a673d
[Refactor] (CMakeLists.txt, MG_Backend, MG_Backend/DirectGLES, MG_Backend/DirectVulkan, MG_Remote/Client, MG_Remote/Protocol, MG_Remote/Server, MG_Test/Backend, scripts/data): move BackendObject's EGL bookkeeping into EGLSurfaceRegistry
...
- EGLSurfaceRegistry owns the display, the surface records, the active surface, each thread's binding and the one recursive lock; BackendObject holds one and is its hooks, so the EGL virtuals keep their signatures and their defaults
- the backends reach it through EGLRegistry(): lookups return copies, and the steps they compose (adopting an already-bound surface, a window's surfaces, a window's new extent) are named operations instead of writes to protected fields
- WindowBackend and WindowHandle move with it
- BackendObjectEglStateTest only re-points its accessors; the same 235 mutants, carried over, get the same verdicts except three that need a kind-None record, which no call can make, and one that cannot be written against the registry
- comments that cited BackendObject.cpp line numbers name the function
2026-10-17 03:55:28 -04:00
swung0x48
55fa9cdfdc
[Refactor] (CMakeLists.txt, MG_Backend, MG_Backend/DirectVulkan, MG_Impl/GLImpl, MG_Impl/Pipe, MG_IntegrationTest/Scenarios, MG_Pipe/generated, MG_Remote/Client, MG_Test/Query, MG_Test/Texture, scripts, scripts/data): move the function table and shared-image types out of BackendObject.h
...
- BackendFunctions.h holds GLFunctionsTable, GlobalBackendFunctionsTable, CopyImageEndpoint, the sync and query handles and the present damage; files that only call through the table include it instead of the backend object
- SharedImageTypes.h holds the shared-image structs
- FormatCapabilities.cpp holds the BackendCaps.h helpers that BackendObject.cpp defined
- gen_pipe.py reads the table from its new header
- two comments that cited a BackendObject.cpp line name the function instead
2026-10-16 23:30:20 -04:00
swung0x48
d1f220c1a2
[Refactor] (CMakeLists.txt, MG_Backend/DirectGLES): split Managers.cpp by object kind
...
- helpers and state several files share lose `static`; ManagersInternal.h declares them
2026-10-16 05:10:03 -04:00
swung0x48
b0f73e3795
[Refactor] (CMakeLists.txt, MG_Backend/DirectGLES): split DirectGLES.cpp by area
...
- helpers and state several files share lose `static`; DirectGLESInternal.h declares them
2026-10-16 05:09:31 -04:00
swung0x48
98c8e8833c
[Refactor] (CMakeLists.txt, MG_Backend/DirectVulkan): split VulkanRenderer.cpp and its fragments by area
...
- code moves unchanged; helpers several files use are in VulkanRendererInternal.h
2026-10-16 04:28:47 -04:00
swung0x48
01f80b0a0a
[Refactor] (CMakeLists.txt, MG_Backend, MG_Backend/DirectGLES, MG_Backend/DirectVulkan, MG_Backend/MGPipe, MG_Test/Framebuffer, MG_Test/Texture): move the client readback packing out of DirectGLES
2026-10-16 04:20:19 -04:00
swung0x48
aabca3c171
[Docs] (.claude/skills, .github/workflows, CMakeLists.txt, docs/archive, docs/Disaggregated, docs/MobileVA, docs/Performance, MG_Backend, MG_Backend/DirectGLES, MG_Backend/DirectVulkan, MG_Backend/Record, MG_Gbm, MG_Impl, MG_Impl/EGLImpl, MG_Impl/GLImpl, MG_Impl/GLXImpl, MG_Impl/Pipe, MG_IntegrationTest, MG_IntegrationTest/Harness, MG_IntegrationTest/Scenarios, MG_Pipe, MG_Pipe/generated, MG_Remote, MG_Remote/Client, MG_Remote/Server, MG_Remote/Transport, MG_Remote/Wire, MG_State/GLState, MG_Test/Pipe, MG_Test/Util, MG_Test/Wire, MobileGL, scripts, scripts/data, tools/device_bench, userguide): archive the planning notes and agent contracts under docs/archive
...
- DEBTS.md and OPEN-QUESTIONS.md stay maintained, now in docs/Disaggregated.
2026-10-15 20:01:45 -04:00
swung0x48
506ab1541d
[Docs] (.github/workflows, CMakeLists.txt, MG_Backend, MG_Backend/DirectGLES, MG_Backend/DirectVulkan, MG_Backend/MGPipe, MG_Backend/Record, MG_Impl/Pipe, MG_IntegrationTest, MG_IntegrationTest/Harness, MG_IntegrationTest/Scenarios, MG_Pipe, MG_Remote, MG_Remote/Client, MG_Remote/Server, MG_Remote/Transport, MG_Remote/Wire, MG_State/GLState, MG_Test, MG_Test/Buffer, MG_Test/Purity, MG_Test/Util, MG_Test/Wire, MG_Util/Metrics, MobileGL, scripts, tools/trace_replay): replace stale line-number citations with sections and symbols
2026-10-15 10:15:35 -04:00
swung0x48
cfbaffd757
[Fix] (Espryt): defer geometry emits behind memory writes on drivers that drop them
2026-10-12 23:57:48 -04:00
swung0x48
cd9f67763e
[Fix] (Magma): re-emit dynamic state after rasterizer-discard draws
2026-10-12 22:32:28 -04:00
swung0x48
4eb0dbc8a9
[Fix] (Magma): probe and work around Adreno E5 transfer reads and cross-format slice copies
2026-10-12 21:00:18 -04:00
swung0x48
065d1582ba
[Fix] (Magma): ignore shader gl_SampleMask without multisample fragment ops
2026-10-12 19:37:25 -04:00
swung0x48
6129d6e463
[Fix] (Magma): zero gl_Layer in draws into a non-layered framebuffer
2026-10-12 18:28:13 -04:00
swung0x48
da6b172d08
[Fix] (Magma): lower pixel_center_integer gl_FragCoord so Vulkan validation stops refusing the program
2026-10-12 15:06:42 -04:00
swung0x48
c9bf43b710
[Fix] (Texture): decode ETC2/EAC uploads into the texel shadow
2026-10-12 08:32:53 -04:00
swung0x48
dce02ae80e
Build: -Pmobilegl.androidApi=29 builds a separate API 29 library and plugin; the default stays 26.
2026-10-09 20:27:53 -04:00
swung0x48
2b8c04373d
Gradle builds the library with LTO by default, and the LTO block adds probed ICF, gc and interposition flags per toolchain.
2026-10-09 12:54:24 -04:00
swung0x48
4bac6255fd
[Build] (P13 W7): the server-only link check stays out of verify builds, whose comparator reads both halves by design.
2026-10-06 22:20:29 -04:00
swung0x48
9fa61b84a5
[Build] (P13 W7): the library links from module OBJECT targets along the ratchet's partition, and a server-only link check target must link without the frontend modules.
2026-10-06 19:50:31 -04:00
swung0x48
7fb18840dc
[Refactor] (P13 W5 S8): MOBILEGL_BUILD_RECORD_ARM is folded away - the record arm is unconditional - and retired_switches keeps it from coming back.
2026-10-06 15:03:11 -04:00
swung0x48
acfee266f5
[Fix] (Build): every library gets the vendored glvnd headers its GlvndVendor.cpp files include, so the Android library without MG_Remote builds.
2026-10-06 14:45:20 -04:00
swung0x48
23593c9f15
[Feature] (P13 W5 S7): the record arm is built into every library, so monolith without MG_Remote runs it too.
2026-10-06 13:30:09 -04:00
swung0x48
8e76f9dcb7
[Refactor] (P13 W5 S4c): the verb emitters, the monolith verb port and the client GPU-write set move to MG_Record under MG_Impl/Pipe/Verb.
2026-10-06 12:51:02 -04:00
swung0x48
fe5324c900
[Refactor] (P13 W5 S4): the record verbs move from ServerVerbSink to MG_Record::RecordVerbSink, which ServerVerbSink now extends.
2026-10-06 12:32:04 -04:00
swung0x48
0f5658f56e
[Refactor] (P13 W5 S4): the persistent-map tracker moves to MG_State as MG_Record; the adoption tier's verdict stays in MG_Remote.
2026-10-06 12:09:56 -04:00
swung0x48
cb81610b2b
[Refactor] (P13 W5 S3): the record arm's definitions and its depth-resolve probe source follow the record-arm guard.
2026-10-06 11:58:18 -04:00
swung0x48
a6c02a1741
[Build] (P13 W5 S2): MOBILEGL_BUILD_RECORD_ARM, equal to the disaggregated build until the flip.
2026-10-06 10:49:44 -04:00
swung0x48
c3af0719f0
[Feat] (GL): implement GL_ARB_shader_objects over the core's shared shader / program name space.
2026-10-06 10:11:19 -04:00
swung0x48
fc57a79bf1
[Build] (P13 W3b): no MOBILEGL_PIPE_PUSH macro or CMake variable, drop the HandleRecycle Legacy and AbaControl lanes
2026-10-06 04:04:46 -04:00
swung0x48
9e14c16d4c
[Build] (P13 W3b): retire MOBILEGL_PIPE_LEGACY_MEMOS, the pre-handle memo arm is no longer compiled
2026-10-06 04:04:42 -04:00
swung0x48
55de98a006
[Build] (P13 W3a): MOBILEGL_PIPE_PUSH is no longer an option, the macro stays 1 until W3b
2026-10-06 04:04:42 -04:00
swung0x48
68b56165da
[Build] (P13 W2): push by default, drop the Gradle pipePush switch so FCL embeds the push monolith
2026-10-06 04:04:40 -04:00
swung0x48
c5d25868cf
[Fix] (ShaderTranspiler): preserve block identity when deduplicating image types
2026-10-05 01:27:50 -04:00
swung0x48
287e1df8dc
[Fix] (Server, Magma, Espryt): end the session whose GPU work hangs the GPU so it cannot stall the desktop again.
2026-10-03 12:28:39 -04:00
swung0x48
2a1889b817
Discover gtest cases at ctest start so parallel links stop sharing one discovery JSON file.
2026-10-03 09:38:51 -04:00
swung0x48
198d6feaf3
[Feature] (GLX): present windows as shared images through DRI3 and Present, with MIT-SHM readback as the fallback
2026-10-03 01:51:22 -04:00
swung0x48
316ffe02d0
[Fix] (X11): never open an X connection to a display this process serves
2026-10-03 01:50:58 -04:00
swung0x48
69e96f5b8d
[Feature] (Client): read a system config file and decline EGL/GLX/GBM when no server answers
2026-10-02 19:36:38 -04:00
swung0x48
3d17e8c10b
[Feature] (SharedImage): zero-copy Wayland windows via linux-dmabuf, EGL dma-buf import, GBM backend, and Espryt/Magma AHB present and texture binding
2026-10-02 08:39:59 -04:00
swung0x48
38842985f8
[Feature] (SharedImage): server-allocated AHB images over a shared_image pipe verb, with dma-buf fds on the aux socket
2026-10-02 07:52:25 -04:00
swung0x48
15dbe78ce6
[Fix] (DirectVulkan): give each served session its own renderer and Magma state
2026-10-02 05:52:38 -04:00
swung0x48
47db68d557
[Feature] (GLX): serve as a glvnd GLX vendor and present remote X windows
2026-10-02 02:11:36 -04:00