swung0x48
bb45648c41
[Refactor] (P13 W5 S3): Magma's wire texture and vertex-input builders and the buffer shadow size follow the record-arm guard.
2026-10-06 12:12:09 -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
e544121eed
[Refactor] (P13 W5 S3): record-arm declarations, role-guard stubs and the T0 split in the backends.
2026-10-06 11:29:37 -04:00
swung0x48
a891d0f514
[Docs] (P13 W5): S1 and S2 in the progress table.
2026-10-06 11:12:17 -04:00
swung0x48
0fbcaed454
[Docs] (P13 W5 S2): the guard classifier's transport words and the rewrite tool.
2026-10-06 10:51:09 -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
b3a8a1f47f
[Docs] (P13): record the GL_ARB_shader_objects work.
2026-10-06 10:31:43 -04:00
swung0x48
c641ed92fb
[Docs] (P13 W4b): record the Adreno 750 measurement of the copy-then-refused-readback fix.
2026-10-06 10:02:55 -04:00
swung0x48
ec92ae4d08
[Docs] (P13 W5 S0): the W5 design, its inventory and the pre-move measurements.
2026-10-06 09:45:22 -04:00
swung0x48
5fdc1e46e2
[Docs] (P13 W4b): record the monolith knob lanes and the aliasing store's followed copy.
2026-10-06 09:38:39 -04:00
swung0x48
96c3aff78f
[Docs] (P13): Magma's monolith flip and the W4d part that landed
2026-10-06 09:16:57 -04:00
swung0x48
c86be0c274
[Docs] (P13): log the W3 follow-up fixes and the Espryt W4 state
2026-10-06 08:21:51 -04:00
swung0x48
a7409e1e9a
[Docs] (P13): progress through W3c and how W4a switched Espryt's monolith arm
2026-10-06 08:14:38 -04:00
swung0x48
520bafe823
[Docs] (P13): handoff note for the state after W3c
2026-10-06 04:29:15 -04:00
swung0x48
3e11c848e8
[Docs] (P13): progress table and the last G1 reading
2026-10-06 04:04:41 -04:00
swung0x48
138a14019a
[Docs] (P13): record the integrator decisions
2026-10-06 02:39:48 -04:00
swung0x48
959f518669
[Docs] (P13): audit and wave plan for retiring the pull path
2026-10-06 00:40:05 -04:00
swung0x48
70e4691b3a
[Docs] (Anland): refresh the handoff to the 2026-10-04 state, with the perf, CI, YUV and VA-API streams
2026-10-04 07:25:23 -04:00
swung0x48
3a289222af
[Docs] (MobileVA): plan a vendor-agnostic VA-API driver on Android MediaCodec, H.264 first
2026-10-03 23:46:13 -04:00
swung0x48
18a5dba0e4
[Docs] (Anland): Chrome decodes video in hardware through the YUV shared images, with probes to check it
2026-10-03 22:46:01 -04:00
swung0x48
77c604061e
[Docs] (Anland): glxgears is fixed-function, so it measures presentation only
2026-10-03 07:53:11 -04:00
swung0x48
af2b9f4c1c
[Docs] (Anland): root cause of the X11 stale-region issue
2026-10-03 04:36:24 -04:00
swung0x48
b0dad54cf1
[Docs] (Anland): device numbers and the open stale-region issue for X11 on the GPU
2026-10-03 03:20:12 -04:00
swung0x48
9e7305b885
[Docs] (Anland): plan and device scripts for X11 apps on the GPU
2026-10-03 01:51:24 -04:00
swung0x48
b1405e17ad
[Docs] (Anland): the desktop starts from the app and idles while hidden, with no manual bring-up
2026-10-02 22:46:04 -04:00
swung0x48
7a5b0755b3
[Docs] (Anland): install MobileGL as the container's system-wide vendor and document the fallback
2026-10-02 20:13:33 -04:00
swung0x48
82d96a63c9
[Docs] (Anland): runbook and skill for bringing up MobileGL with anland and KDE Plasma
2026-10-02 10:31:35 -04:00
swung0x48
e06aabe812
[Docs] (Anland): plan for zero-copy windows via server-allocated AHB dma-bufs
2026-10-02 07:34:45 -04:00
swung0x48
ec084959fa
[Docs] (Anland): record the Magma bring-up to Espryt parity
2026-10-02 06:36:20 -04:00
swung0x48
75e1da4d1b
[Docs] (Anland): record the lock-screen corruption root cause
2026-10-02 05:07:59 -04:00
swung0x48
335637af38
[Docs] (Anland): record the GLX, Chrome and server-config fixes
2026-10-02 03:09:18 -04:00
swung0x48
4236b42a57
[Fix] (Server+Transpiler): configure the server once per process, and enable blend_func_extended for index-1 outputs
2026-10-02 03:09:17 -04:00
swung0x48
ce11c9accd
[Docs] (Anland): record the Chrome/dma-buf feedback fix
2026-10-02 01:45:03 -04:00
swung0x48
7bb9d9829f
[Docs] (Anland): record the Plasma desktop milestone and the remaining issues
2026-10-02 01:38:57 -04:00
swung0x48
d5acece005
[Docs] (Anland): record the Plasma bring-up state after the P14 server-state fixes
2026-10-02 00:04:01 -04:00
swung0x48
cbb87b968a
[Docs] (Anland): drop the stale-glslang note and record d554c87c and the landed tooling
2026-10-01 23:36:27 -04:00
swung0x48
d554c87c45
[Fix] (Loader+Texture): tolerate drivers without EXT swap-with-damage, and pair stencil-only storage correctly
...
- eglSwapBuffersWithDamageEXT is an extension entry point that Android's
framework libEGL does not export through dlsym; requiring it was a
bring-up FATAL on TB321FU. Resolve EXT, fall back to the KHR spelling
(same function, interchangeable signature), then to plain
eglSwapBuffers (a zero-rectangle damage call is defined to be exactly
that). The GLES dlsym fallback gains a self-reference guard for
MobileGL installed under a GLES soname, where dlsym would otherwise
hand the backend the frontend's own entry points and recurse forever.
- NormalizePixelFormat maps GL_STENCIL_INDEX8/GL_STENCIL_INDEX to
GL_STENCIL_INDEX/GL_UNSIGNED_BYTE instead of falling through to
RGBA/UBYTE, which no driver can pair with stencil-only storage.
- Tests pin the EXT->KHR->none preference order and the stencil pair.
- The anland handoff is rewritten to the post-P14 landed state: device
evidence (win-smoke green screen, Konsole on screen, eglinfo/glxinfo),
the remote-only recovery procedure, and the known gaps (Plasma session
bring-up, cursor scale, the no-CPU-blit requirement, resize/surface
loss, AVC audit).
2026-10-01 23:16:33 -04:00
swung0x48
6946ff3a5c
[Docs] (Anland): refresh the handoff to the post-P14 landed state
...
The document still described the state before the state-ownership work
landed: it called the unified server design unfinished, listed the
KernelSU grant as unsolved, said the directory bind had not taken effect,
and presented MobileGLAppsService plus the per-app fork worker as pending
drafts. None of that is true now.
Rewritten against the current tree and the device:
- header: architecture landed per the user's correction, acceptance still
open; the rejected fork-worker/AppsService path is removed and the
unified server lives in the MobileGL library (design 11-state-ownership,
commits d52c031c / 4ed1c9ce / 5c6399e2 / ff212061 / 5a0f13fd , plus the
landed 6fb880cd / ebc552a0 that used to be listed as uncommitted)
- MobileGL: HEAD moved to 5a0f13fd; the state-ownership section now records
what S1-S6 landed and the debts that remain (process-level unit shadows,
g_backendContextGeneration, per-record ContextSlot, the glIsBuffer probe,
the window half of pbuffer->window)
- anland: 2ffa1f5 and 33e496c pushed; the draft inventory is now a landed
inventory plus the three uncommitted KWin-acceptance fixes
- device: KernelSU grant resolved (reinstall changed the uid to 10270), the
clone restarted with the directory bind effective, the 5a0f13fd APK
serving @anland-mobilegl with six completed client sessions, and the
client library installed with a stale build stamp
- new: concurrency warning (parallel sessions have overwritten the dist and
the source tar), the current desktop-session.service failure state, and a
rewritten continuation order
Verified: doc citations resolve (scripts/check_doc_citations.py), device
facts checked against HA27Q3LQ at refresh time.
2026-10-01 20:41:54 -04:00
swung0x48
4156ca6e36
[Docs] (Anland): hand off unified runtime work and record corrected state ownership requirements
2026-10-01 13:18:23 -04:00
swung0x48
7308668488
[Docs] (Anland): kgsl-as-server.md - read with the kernel as the server, routes A and B are about who owns the buffer (6.x + Mesa is A, 5.x is B), plus the split-level analogy to virtio-gpu native context vs virgl / venus; linked from the README
2026-09-30 13:00:11 -04:00
swung0x48
134791b4b9
[Docs] (Anland): compare today's container Mesa (freedreno / turnip over kgsl) with routes A and B - it is route A's no-change dma-buf tier with the renderer in the app process, Anland's dma-buf ingress was shaped around it, and 5.x's private protocol sat between A and B
2026-09-30 12:45:16 -04:00
swung0x48
c24926cafe
[Docs] (Anland): add route B - Anland hands the window's Surface to the MobileGL server (the FCL shape: SC mode leaves the parent Surface's queue free, waylandbridge itself receives it over binder), with its MobileGL items B1-B4, the Anland extension, its limits, and the phasing reordered around it
2026-09-30 12:24:24 -04:00
swung0x48
c5fa722be7
[Docs] (Anland): correct the window model - a toplevel attaches on demand to at most one Android window and several can be attached at once (popups and subsurfaces composite into the parent); P12 does not fit because the Android window and its input belong to Anland, not because of the window count
2026-09-30 12:17:56 -04:00
swung0x48
b7aa8d2011
[Docs] (Anland): research note - what MobileGL and Anland would each need for MobileGL to render Anland's Linux apps (glibc split client in the container, bionic render server, native AHB ingress into waylandbridge), with the two source-audit reports, their briefs and the notes index entry
2026-09-30 11:57:57 -04:00
swung0x48
378020adf3
[Fix] (MG_Remote, P11 T0): the T0 POST also checks what the CPU writes through the held lock after the import and its first GPU use, in both directions - Mali-G1-Ultra passed the old single round (the import cleans the CPU cache) while its GPU saw 0/1024 post-import words, so T0 was granted and create-indirect-in-world-align1024 x Magma lost every Flywheel object on inproc/spawn (0.867/0.848); it now fails there and runs T2 (0.999984), and the Redmi passes both rounds and keeps T0
2026-09-30 10:21:46 -04:00
swung0x48
648800a2da
[Docs] (P8): close the phase - ruling ID-P8-19 (the exit device check and the P12 cross-host rerun), the P8 README and PLAN, the roadmap row and header, MEASUREMENTS row 19, the status page and the last debt
2026-09-30 08:25:38 -04:00
swung0x48
b4bee9dd38
[Docs] (P8): CONTRACT-P8 (the rules P8 landed, each with its code anchor and its test), rulings ID-P8-14..18 (MD + MF and the create-indirect fixture's alignment, SE, SV, the dev merge, the wave 2 integration gate) and the debts wave 2 hands on
2026-09-30 07:55:50 -04:00
swung0x48
494305381e
[Merge] (P8): integrate wave 2 package MF - the push flush ladder gets dev's Adreno 830 queued-ring-copy guard (FlushPendingRangesFrom, create-instancing x Espryt x monolith 0.870 -> 0.99998 on the Redmi), and both G5 scripts pin the two reviewed ladder bodies under ID-P8-14
2026-09-30 07:12:50 -04:00
swung0x48
fb106a682e
[Docs] (P8-MF): the package note - the push-ladder mirror of dev f973008c, create-instancing Espryt monolith 0.870 -> 0.99998 on the Redmi with spawn unchanged, why spawn was unaffected (the same two partial maps behind queued ring copies, the copy already submitted by the server's intervening whole-buffer maps), the red-onces and the gate
2026-09-30 07:09:28 -04:00
swung0x48
c8c4397475
[Merge] (P8): integrate wave 2 package SV - Magma's 3D native mip blit uses one layer, the depth/stencil mip decline gets its tally row, 1D depth mips decline by name, and the wire arm issues glDispatchComputeIndirect natively
...
# Conflicts:
# MobileGL/MG_IntegrationTest/CMakeLists.txt
2026-09-30 06:11:04 -04:00