swung0x48
|
26de2b60fc
|
[Docs] (P11): rulings ID-P11-1..9 with the integration gate, A-DEVICE (T0 is GO from the app domain on both backends; adoption buys RSS not frame time on the Adreno; split T2 costs RSS and p99), the debts the dev merge closes and the ones P11 hands on, and W2-REMINT marking the monolith re-mint fixed
|
2026-09-29 08:03:09 -04:00 |
|
swung0x48
|
82467823ef
|
[Docs] (P11 C): the contract's A1/A2 sections, Config.h's GPU-ordered landing, Init.cpp's DirectVulkan resource table, and the stream refusal CONTRACT-P6 / design 06 / 07 claimed now cites its code
|
2026-09-29 07:23:41 -04:00 |
|
swung0x48
|
2a902cbd79
|
[Test] (P11 A1/A2): LargeArenaAdoptionScenario asserts the tier its arena landed in and reads the tcp AdoptTier0 refusal; registered on Split/Spawn/Tcp for both backends (Espryt through the split-arms macro, Magma's Arena. block and Buffers lane), the monolith lanes declare adopted
|
2026-09-29 07:23:41 -04:00 |
|
swung0x48
|
3c72e5c637
|
[Fix] (P11 A1): settle MOBILEGL_IPC_ADOPT_TIER at the handshake from the data plane - a stream refuses T0/T1 by name and runs T2 on either side, a client over shared segments dies by name before any record, the at-use check trusts the settlement; unit gates on a real tcp session and a real inproc handshake
|
2026-09-29 07:23:41 -04:00 |
|
swung0x48
|
1797db0070
|
[Docs] (P11): B0 drives the cross-app client first as a retrace executable run from adb shell, then re-checks the connection and fd passing from a retrace client inside an app, the domain a Termux-style client really runs in
|
2026-09-29 07:23:41 -04:00 |
|
swung0x48
|
01a33dfc58
|
[Docs] (P11): B0 tests the cross-app client as a retrace client in one app against a render server in another - no Termux route; the fallback channel is a bound Service in the server app handing over a socketpair end
|
2026-09-29 07:23:41 -04:00 |
|
swung0x48
|
93a72678ca
|
[Docs] (P11): B is scheduled - the consumer is a GL program started from another app on the same device (Termux and the like); B0 probes a cross-app fd channel, B1 moves such a client onto shared-memory segments, B2 adds the T0 import
|
2026-09-29 07:23:41 -04:00 |
|
swung0x48
|
3cb3e32b87
|
[Test] (P11 M): ImageBindableRemintScenario pins a barrier before its imageLoad copy - the kept-allocation case read the pre-clear upload once on push-monolith under load, the ID-P9-11 shape
|
2026-09-29 06:47:11 -04:00 |
|
swung0x48
|
89f1e6cfba
|
[Test] (P11 M): P4aFinalFixScenario expects no re-mint count on the monolith arm either - dev's 568090f0 keeps an immutable, unwidened allocation there as the server already did
|
2026-09-29 06:47:10 -04:00 |
|
swung0x48
|
2c7d99d5e8
|
[Test] (P11 M): the server half of a split eglSwapInterval - Magma's backend object carries the request into its table's SetSwapInterval (null before dev@c60639db)
|
2026-09-29 06:33:36 -04:00 |
|
swung0x48
|
9cde08064c
|
[Test] (P11 M): dev's ImageBindableRemint and PartialUploadOverGpuContent scenarios on the Split/Spawn/Tcp arms of both backends, three scattered-upload cases for the handle arm's carried layout, and TextureRemintPullScenario's monolith Espryt skip retired
|
2026-09-29 06:30:54 -04:00 |
|
swung0x48
|
48a306025d
|
[Fix] (Espryt, P11 M): the push builds' monolith re-mint merges the applier's pending boxes over the GPU readback - the client clears its dirty flags at emission there, so a pending glTexSubImage was read back over and lost
|
2026-09-29 06:30:54 -04:00 |
|
swung0x48
|
e0102bad8c
|
[Merge] (P11): dev@c60639db - the Espryt image-bindable re-mint reads GPU levels back on the monolith arm too, partial writes into converted or reshaped levels upload only their region on every arm, Magma orders an upload after the recording's writes and queued clears, and Magma's eglSwapInterval reaches the swapchain
|
2026-09-29 06:15:56 -04:00 |
|
swung0x48
|
ffeed0da3a
|
[Docs] (P11): the re-scoped plan - each roadmap item against the tree at 74ae652e; A makes the adopt tier honest (client-side verdict, the Stream refusal, a tier assertion, three arms) and re-runs open question 3 and the baseline on the device, B (T0) is conditional, C closes by docs
|
2026-09-29 05:52:51 -04:00 |
|
swung0x48
|
c60639db1d
|
[Fix] (Magma): eglSwapInterval reaches the swapchain - 0 picks IMMEDIATE, else MAILBOX, else FIFO; >= 1 FIFO; < 0 FIFO_RELAXED, else FIFO; rebuilt after the next present when the mode changes (MC 26.3 vsync on: 190-290 fps -> 120)
|
2026-09-29 05:51:18 -04:00 |
|
swung0x48
|
74ae652ecd
|
[Docs] (P10): close the phase - CONTRACT-P10 sections 2-3, rulings ID-P10-1..14 with the integration gate, C-MEASUREMENTS (device fence bench, loopback credit 1/2/3, the retrace round-trip census), the roadmap row, the debts P10 hands on, design/09, the phase README and the status page
|
2026-09-29 05:29:00 -04:00 |
|
swung0x48
|
414dd09bda
|
[Test] (P10): the fence bench comment - the replay corpus does carry timed fence waits (improved-transparency-minecraft-26.3), the bench isolates the shape
|
2026-09-29 05:29:00 -04:00 |
|
swung0x48
|
47bbf5e6fd
|
[Docs] (P10 A): CONTRACT-P10 section 1 - the fence-report protocol, the present-time report, the gates and red-once - with the re-scoped plan and A-FENCE-POLL, the paired host bench and the llvmpipe finding
|
2026-09-29 04:34:16 -04:00 |
|
swung0x48
|
73089cf2b3
|
[Test] (P10 B): the caps mirror's parallel-shader-compile entry is the client's switch in both directions - the extension-list read-back case pins compilation inline, and a new case holds the reconcile (red once with it removed)
|
2026-09-29 04:34:02 -04:00 |
|
swung0x48
|
80d205c401
|
[Refactor] (Remote, P10 B): the emit table's SetSwapInterval slot is the server forwarder - SetSwapInterval_Unmigrated and the BackendObject_Remote override deleted, class C empty (69 emitted / 0 unmigrated), and a unit control that the slot crosses as one control frame
|
2026-09-29 04:34:02 -04:00 |
|
swung0x48
|
4373964443
|
[Test] (P10 B): AsyncCompileScenario (AsyncOn/AsyncOff/OptimisticShaderStatus), XfbPrimitiveQueryScenario and PrimitivesGeneratedNoXfbScenario on the split arms of both backends - Espryt Split/Spawn/Tcp, Magma Split/Spawn/Tcp gated, PrimGenReroute split+spawn only
|
2026-09-29 04:34:02 -04:00 |
|
swung0x48
|
2271f6c1ec
|
[Fix] (Remote, P10 B): GL_KHR_parallel_shader_compile follows the client's compile switch - the caps mirror re-derives it on adoption, so a tcp server started with another MOBILEGL_ASYNC_SHADER_COMPILE no longer decides the client's string
|
2026-09-29 04:34:02 -04:00 |
|
swung0x48
|
8d0a1b6ca5
|
[Test] (P10 A): PacedFrameFenceWaitsBench - the per-frame timed wait on an older frame's fence as an opt-in measurement (MGITEST_FENCE_PACE_BENCH, _LAG) on both backends
|
2026-09-29 04:29:49 -04:00 |
|
swung0x48
|
625f4db47d
|
[Feat] (MG_Remote, P10 A): a present reports the fences finished so far before it returns the credit, so the client the credit releases finds the fence of a frame ago already known
|
2026-09-29 04:29:49 -04:00 |
|
swung0x48
|
b1d60523e4
|
[Fix] (Magma): an upload into an image the open recording already wrote, or that still has a queued clear, is submitted after that work - a glTexSubImage after a clear or a draw into the level no longer ends up under it
|
2026-09-29 04:28:55 -04:00 |
|
swung0x48
|
8966d5c294
|
[Fix] (Espryt, Magma): a partial write into a level whose upload is converted (widened RGB formats, Magma's RGB->RGBA expansion) or reshaped (Espryt 1D arrays) uploads only its dirty region - the rest of the stale shadow no longer lands over GPU-drawn texels
|
2026-09-29 04:28:22 -04:00 |
|
swung0x48
|
bcff9b00cc
|
[Feat] (MG_Remote): fence polls are answered from the server's reports - the apply thread posts kEventFenceSignaled as the GPU finishes each client fence (and submits and re-checks while idle), glClientWaitSync(0) / glGetSynciv answer locally, and only every MOBILEGL_IPC_POLL_ESCALATE-th unanswered poll crosses
|
2026-09-29 03:59:44 -04:00 |
|
swung0x48
|
de33d40173
|
[Docs] (P9): close the phase - the contract's remint section and invariants, rulings ID-P9-11..12 with the integration gate, the roadmap row, the debts P9 hands on, the phase README and the status page
|
2026-09-29 03:36:45 -04:00 |
|
swung0x48
|
7aa00761f8
|
[Docs] (P9 W2): W2-REMINT - no pull protocol, the census, the coverage matrix and the red-once record; design/04 8.4, the P5c/P5e contract amendments, open question 2 and the P7 census attribution
|
2026-09-29 03:24:03 -04:00 |
|
swung0x48
|
aa0c242b51
|
[Test] (P9 W2): TextureRemintPullScenario - fourteen re-mint cases on both backends x monolith/Split/Spawn/Tcp, and the forced-readback-failure fallback entries
|
2026-09-29 03:23:54 -04:00 |
|
swung0x48
|
6c2f8a560c
|
[Fix] (Espryt, P9 W2): a texture re-mint never needs the client - read back only levels the driver holds, replay the staged level when the readback is refused, count trp on the server path, and retire the texture-remint-pull markers and OnTexturePullRequest (callbacks 9 -> 8)
|
2026-09-29 03:23:54 -04:00 |
|
swung0x48
|
568090f09f
|
[Fix] (Espryt): the image-bindable re-mint reads every level back from the driver texture before replaying it, so GPU-written levels survive the first glBindImageTexture - iris-derivative SSIM 0.996196552 -> 0.996376198
|
2026-09-29 03:06:45 -04:00 |
|
swung0x48
|
738b29f3e4
|
[Docs] (P9): the contract's first three sections (pack-buffer readback, graded log forwarding, the glGetError observation point), both fault injections, the W1 note with its red-once evidence, and rulings ID-P9-1..10
|
2026-09-29 03:03:03 -04:00 |
|
swung0x48
|
a7a82ffee5
|
[Test] (MG_Remote): P9 W3 - LogForwardTest leaves no role logs in /tmp on a green run
|
2026-09-29 02:42:20 -04:00 |
|
swung0x48
|
24560ffe81
|
[Fix] (MG_Remote): P9 W3 - a FATAL forward waits once per stall rather than once per line (MGLOG_F also marks survivable conditions), and F2 proves the flood got through on a live connection, inside TCP_USER_TIMEOUT
|
2026-09-29 02:42:20 -04:00 |
|
swung0x48
|
6bcfb1fba1
|
[Feat] (MG_Remote): P9 W3 - the server's log forward carries each line's level and never blocks a logging thread (<=WARN dropped and counted, >=ERROR lossless and paced, FATAL a bounded flush), fault injection F2, and the producerless OnLog callback deleted (9 -> 8)
|
2026-09-29 02:42:20 -04:00 |
|
swung0x48
|
362daafeed
|
[Fix] (MG_Remote): the pack-buffer readbacks check their whole shape before the read and refuse it at one latch site per sink, each with a raw-peer control, and a verb counts as statically barriered only when every op that stamps it waits
|
2026-09-29 02:21:36 -04:00 |
|
swung0x48
|
6485ae1dc0
|
[Feat] (MG_Remote): a read into a pixel pack buffer crosses as read_pixels_to_buffer / get_texture_image_to_buffer and waits for nothing - the server lands the rows through the buffer-write gate on both backends, the client marks the buffer GPU-written, and a device lost with the write still owed ends in Fatal{ReadbackDeclined, "buffer-writeback"}
|
2026-09-29 02:02:29 -04:00 |
|
swung0x48
|
ad705a7392
|
[Docs] (P9): the implementation hand-off - the roadmap row checked against the tree (half of it is done, one design premise changed), five work packages and two fault injections
|
2026-09-29 01:23:58 -04:00 |
|
swung0x48
|
acfd367852
|
[Docs] (P12): the FCL fork's keep-running setting is committed and pushed
|
2026-09-29 01:10:19 -04:00 |
|
swung0x48
|
743f4e8e6e
|
[Docs] (P12): close the phase - the contract, the disposition of every leftover item, a G1 line that only compares same-machine builds, and the doc citation the docs reshuffle broke
|
2026-09-29 01:05:45 -04:00 |
|
swung0x48
|
6e35ea2c02
|
[Docs] (P12): the portrait-window clipping was the 0x0 window request, not Magma - root cause, fix and evidence
|
2026-09-29 00:54:46 -04:00 |
|
swung0x48
|
c932af7f3c
|
[Fix] (EGLImpl): a server-owned window surface with no EGL_WIDTH/HEIGHT asks for the native window's size, so a landscape game is no longer clipped in a portrait server window
|
2026-09-29 00:54:46 -04:00 |
|
swung0x48
|
8a71ea5954
|
[Docs] (P12): exit gate (a) passes - FCL's Minecraft renders into the render server window on both backends and killing the server latches device-lost in tens of milliseconds
|
2026-09-29 00:27:29 -04:00 |
|
swung0x48
|
984e2b69f4
|
[Feat] (tools): the FCL exit-gate driver - Minecraft renders into the render server window, then the server is killed
|
2026-09-29 00:27:28 -04:00 |
|
swung0x48
|
f2ad2fae9b
|
[Fix] (MG_Remote): once the device-lost latch has spoken, declined verbs no longer log one ERROR line each - an FCL game wrote 113,080 of them in 48 s
|
2026-09-29 00:27:28 -04:00 |
|
swung0x48
|
27cbc53241
|
[Docs] (P12): exit gate (b) passes - a WSL client replays the in-world trace over Wi-Fi TCP at ssim 0.999883; the load frame is bandwidth-bound, the steady state is latency-bound
|
2026-09-28 23:22:06 -04:00 |
|
swung0x48
|
b60da6729d
|
[Feat] (tools): the cross-host acceptance driver and its report reducer, and a note that netbench's nc sink understates the link
|
2026-09-28 23:22:05 -04:00 |
|
swung0x48
|
b4f0c53426
|
[Docs] (Disaggregated): the cross-host eglMakeCurrent hang was the host's xray TUN proxy stalling its relay, not MobileGL; direct Wi-Fi runs pass and are bandwidth-bound
|
2026-09-28 22:57:20 -04:00 |
|
swung0x48
|
429b4472bb
|
[Fix] (tools): cross-host runs first prove the WSL -> phone TCP path is end to end, and netbench's pkill no longer kills its own shell
|
2026-09-28 22:57:20 -04:00 |
|