swung0x48
277940f39f
[MG_Remote, MG_Test] (P12 review): a session asking for the window's own size after a fixed-size session waits for the layout's size instead of leasing the stale fixed one
...
AcquireFor(0, 0) granted the lease at once, at whatever the window reported - and right after a session that fixed the size, that is still the fixed size: setSizeFromLayout answers asynchronously, like setFixedSize. ServerDisplay now remembers the geometry last requested and the layout's last reported extent; a 0/0 request that follows a fixed one waits (within the geometry grace) for the layout's extent, or for any report after the request that is not the old fixed size. ServerDisplayTest.TheWindowsOwnSizeAfterAFixedSizeIsTheLayoutsNotTheStaleFixedOne.
2026-09-24 14:03:46 +00:00
swung0x48
8f2a084354
[MG_Remote, MG_Test] (P12 review): a lost server window is answered before every ring record, and a stopping in-process server leaves a streaming client's queue unapplied
...
- Major: the window-lost release was picked up only between drain batches (PumpControlRequest), and a client streaming frames keeps the command ring from emptying for seconds - surfaceDestroyed waited out its 3 s bound on the UI thread, answered TimedOut, and the session kept presenting into the destroyed window. DrainRing now checks the request after its latch check, before every pop. ServerLoopLatchTest.ALostServerWindowIsReleasedMidBatchWhileTheClientStreams streams a 4 s batch under Detach.
- Stop while streaming: mobilegl_server_stop_inprocess ended the session through loop.Stop(), whose batch and final drain of a ring the client keeps refilling could outlast the bounded join (Fatal{ApplyThreadJoinTimeout} aborts the display Activity's process). RunSession now calls ServerLoop::AbandonQueuedRecords() first when the server is stopping: the drain stops after the record in hand and the exit path declines the rest, as a ReverseChannelForfeit does. ServerLoopTest.StoppingTheServerUnderAStreamingClientLeavesTheQueueAndJoinsPromptly.
2026-09-24 14:03:46 +00:00
swung0x48
cb0404f2b9
[Docs] (P12): the on-screen server window's plan, audit, harness and device evidence move into the tree, and the status page says what this line is and what it still owes - CURRENT_STAGE_STATUS records that the P12 subset is implemented but NOT handed off (both exit gates unrun: no cross-machine TCP, no FCL + kill-server device-lost), the ROADMAP P12 row stops reading "待排", and notes/p12 carries the brief, the four read-only audits, the gate and device harness, and the curated device evidence (check transcripts, replay verdicts, on-screen captures; logcat left out per notes/README.md's evidence-data rule)
2026-09-24 07:44:40 -04:00
swung0x48
29b7b284b9
[tools] (P12): trace_replay README - the two device servers, tcp_device_server.py --surface window, and the headless client's MOBILEGL_IPC_SURFACE=server --window-surface replay
2026-09-24 00:51:13 -04:00
swung0x48
e7486f8a4c
[android-plugin] (P12): MobileGLServerService logs its supervisor's closed output as the service stopping, not as a failure with a stack trace, when the display Activity stops it
2026-09-24 00:51:13 -04:00
swung0x48
06dad59dbd
[MG_Remote] (P12): the in-process pin line names the pin it records - MOBILEGL_BACKEND_TYPE when the environment set it, the first session's otherwise
2026-09-24 00:51:13 -04:00
swung0x48
a4a940db2b
[MG_Remote] (P12): the display geometry up-call attaches the apply thread to the JVM under its own name, so the rest of the session is not logged as the up-call's thread
2026-09-24 00:40:35 -04:00
swung0x48
c2758abdf9
[MG_Backend, MG_Test] (P12): the server backend's destruction drops every Espryt twin under a transport, so the in-process display server's next session no longer adopts the ended session's programs, VAOs and buffers (split build only; the pull build is unchanged, G1)
2026-09-24 00:40:35 -04:00
swung0x48
984db45576
[tools, scripts] (P12): tcp_device_server.py --surface window|pbuffer (default pbuffer, unchanged) starts the on-screen display Activity on a lit screen, and --backend pins either server
2026-09-24 00:20:11 -04:00
swung0x48
3726b1f7e5
[android-plugin, tools] (P12): MobileGLDisplayActivity - the on-screen display server in :mglwin (software window, fullscreen SurfaceView, aspect-fit geometry, env applied before the library loads), one shared server environment with MobileGLServerService, and one server at a time (the Activity stops the service, the service kills :mglwin)
2026-09-24 00:20:11 -04:00
swung0x48
02801c2acb
[MG_Remote] (P12): the in-process display server's JNI - install the display with ANativeWindow hooks and a JVM-attached geometry up-call, serve/stop on a Java thread, attach from surfaceCreated/Changed and a blocking detach from surfaceDestroyed (Android split build only)
2026-09-24 00:20:11 -04:00
swung0x48
37b53152cc
[MG_Test] (P12): host proofs - the in-process server entry on a thread (sequential sessions, latch reset, Busy, backend pin, stop), a forked session child's parent-death signal, and a MOBILEGL_IPC_SURFACE=server client refused by name on both sides by a display-less server
2026-09-23 23:55:23 -04:00
swung0x48
4fb5aadfa2
[tools] (P12): Linux glws creates a headless window surface for MOBILEGL_TRACE_SURFACE=window - the MobileGL server's window under MOBILEGL_IPC_SURFACE=server, refused by name otherwise
2026-09-23 23:55:23 -04:00
swung0x48
2fa4714fc9
[MG_Backend] (P12): Espryt publishes a remote session's window-surface extent with its default-framebuffer format (split build only; the pull build is unchanged, G1)
2026-09-23 23:55:23 -04:00
swung0x48
826584d265
[MG_Remote] (P12): the in-process display server - RunSession returns its exit code, TcpSupervisor hands authenticated sessions to threads (Busy, ResetSessionLatch between sessions, the backend pinned for the process, a non-blocking stop), and forked session children die with their supervisor (PR_SET_PDEATHSIG)
2026-09-23 23:55:23 -04:00
swung0x48
d481393f8f
[MG_Remote, MG_Impl, MG_State, Config] (P12): MOBILEGL_IPC_SURFACE=server - headless window surfaces (NULL accepted), one ServerOwned CreateWindowSurface and no SetWindowHandle, the server's geometry into the EGL state before the create returns, and every refusal named on the client
2026-09-23 23:55:23 -04:00
swung0x48
844b217661
[MG_Remote, MG_Test, scripts] (P12): the server's own window - ServerDisplay (an opaque window with hooks, a lease, a bounded Detach), the ServerOwned arm with the one-mode-per-session latch and the named no-display refusal, the lost-window release on the apply thread and the ServerWindowLost family
2026-09-23 23:55:23 -04:00
swung0x48
457aebe7f0
[MG_Remote, MG_Test, scripts] (P12): WindowKind::ServerOwned on the wire - control revision 3 with SurfaceRefusal and SurfaceReply width/height/refusal, the codec's ServerOwned rules (creation only, token 0, SetWindowHandle a named refusal) on a frame-local marker, and the non-zero-token latch row
2026-09-23 23:55:23 -04:00
swung0x48
9f669e5215
[docs] (P7): ID-P7-63 - P7 closes: the final device window reads gate 3 36/36 and gate 5 PASS, and the handoff records the end state
2026-09-23 20:51:30 -04:00
swung0x48
78e71f2b01
[docs] (P7): ID-P7-60/61/62 - the codex closeout fixes, the spawn cold-start heartbeat, and gate 3's nondeterministic-monolith ruling; window 2 reads gate 5 PASS
2026-09-23 19:34:55 -04:00
swung0x48
990bc649a6
[docs] (P7): CONTRACT-P7 7.2 and the window-2 RUNBOOK record the ID-P7-62 final ruling (1.5 x Delta_mm + 8, monolith x5), its simulated pass rates, gate 3's x5 timing and the window-2 re-reductions at 36/36
2026-09-23 19:34:03 -04:00
swung0x48
5662901100
[tools] (P7): ID-P7-62 final ruling: clause (2) bounds the nearest-monolith delta at 1.5 x Delta_mm + 8, and 30-gate3.sh runs the monolith x5 whatever --repeat
2026-09-23 19:34:03 -04:00
swung0x48
b44a1c3df3
[docs] (P7): CONTRACT-P7 7.2 and the window-2 RUNBOOK record the nearest-monolith form of ID-P7-62, its window-2 re-reductions and the simulated monolith x3 pass rates
2026-09-23 19:34:03 -04:00
swung0x48
b98dc9f890
[tools] (P7): ID-P7-62 clause (2) holds every split pass to its nearest monolith pass within 1.25 x D_mm + 32 px and Delta_mm + 1, and 30-gate3.sh / window.sh are executable again
2026-09-23 19:34:03 -04:00
swung0x48
2fafe1f438
[docs] (P7): CONTRACT-P7 7.2 records the ID-P7-62 nondeterministic-monolith amendment, and the window-2 RUNBOOK its ruling, re-reductions and bliss's pass rate under monolith x3
2026-09-23 19:34:03 -04:00
swung0x48
9d026e1ab6
[tools] (P7): gate 3 runs the monolith x3 and 60-reduce.py judges a case whose same-session monolith is not bit-identical by the ID-P7-62 distributional check
2026-09-23 19:34:03 -04:00
swung0x48
74636c8432
[MG_Backend, MG_Test] (P7): the wire arm's shader colour blit samples an unscaled blit through its nearest sampler, so a 1:1 GL_LINEAR glBlitFramebuffer into the default framebuffer is an exact copy
2026-09-23 18:59:20 -04:00
swung0x48
cfe830cf44
[MG_Remote, MG_Test, MG_IntegrationTest, scripts] (P7): a spawned server reports SurfaceProgress while its apply thread runs a surface op, so the client's reply budget bounds silence and a cold bring-up past 20 s is waited for
2026-09-23 18:17:02 -04:00
swung0x48
dd415408dd
[docs] (P7): CONTRACT-P7 §10.7 and §12 and the ROADMAP Ph row record the int3 follow-ups: the narrowed latch window, null-or-unit-private image units and five new debts
2026-09-23 17:49:47 -04:00
swung0x48
2069887874
[tools] (P7): the window-2 reducer takes an adjudicated lost CTS case out of its block's rate on both sides and prints it ADJUDICATED
2026-09-23 17:48:25 -04:00
swung0x48
a23ae93753
[MG_Remote, MG_Test, scripts] (P7): the latch comments say the check before every pop narrows the control-thread window to check-to-pop and the session ends at the next check
2026-09-23 17:45:57 -04:00
swung0x48
9eb798a60e
[MG_Backend, MG_Test, MG_IntegrationTest, scripts] (P7): a private image placeholder is keyed by (shape, unit) and capped, and the depth-resolve identity is built by a tested helper
2026-09-23 17:45:57 -04:00
swung0x48
8f3d179ced
[tools] (P7): window-2 reducers enforce the contract's repeats, arms and case set, and gate Pass-to-NotSupported losses
2026-09-23 17:04:14 -04:00
swung0x48
02db0e4d9d
[scripts] (P7): spawn_lane_parity names the two ImageUnitPrivate knob entries by one tail each
2026-09-23 17:04:14 -04:00
swung0x48
e1b47dc2f6
[MG_Backend, MG_Test] (P7): the depth/stencil resolve probe's verdict is memoized per device identity (vendor, device, driver version, pipeline-cache UUID), not once per process
2026-09-23 17:04:13 -04:00
swung0x48
a7848f0a03
[MG_Backend, MG_IntegrationTest, scripts] (P7): an invalid or empty image unit on the wire arm binds a null storage descriptor (VK_EXT_robustness2 nullDescriptor), else a placeholder private to its (binding, unit)
2026-09-23 17:04:13 -04:00
swung0x48
03bcf5e7fb
[MG_Remote, MG_Test, scripts] (P7): DrainRing checks the session latch immediately before every pop, so a latch the control thread stores between two records stops the next one
2026-09-23 17:04:13 -04:00
swung0x48
1052b13a1a
[MG_State, MG_Test] (P7): PH-5 bounds a vector count by its element's minimum encoded size, so compact archives the codec writes decode again
2026-09-23 17:04:13 -04:00
swung0x48
6afa077f96
[docs] (P7): ID-P7-57/58/59 - F2 finishes the Ph items, gate 5's three inproc CTS defects are fixed, and device window 2 is tooled
2026-09-23 15:52:33 -04:00
swung0x48
431bda67dc
[MG_Backend, MG_IntegrationTest] (P7): a real-probe negative control proves the depth-resolve measurement can see a broken render-pass arm on the host
2026-09-23 15:20:17 -04:00
swung0x48
33f3133920
[docs] (P7): record g5-msprobe, the device-probed depth/stencil resolve arm order, with its evidence and closed debts
2026-09-23 15:13:45 -04:00
swung0x48
564602b71d
[MG_Util, MG_Test] (P7): list the no-draw depth/stencil render-pass resolve in the Vulkan POST's Known Driver Bugs as FIXED
2026-09-23 15:13:45 -04:00
swung0x48
e83581c3c4
[MG_Backend, MG_Test, MG_IntegrationTest, scripts] (P7): choose the multisample depth/stencil resolve arm by a device probe with a shader-arm control instead of the Qualcomm vendor id
2026-09-23 15:13:44 -04:00
swung0x48
f7f0b41847
[docs] (P7): record g5-msrbo root cause, evidence and debts
2026-09-23 15:13:44 -04:00
swung0x48
fca8e9b21e
[MG_Backend] (P7): widen wire image barriers to both aspects for D16_UNORM_S8_UINT
2026-09-23 15:13:44 -04:00
swung0x48
23be55e477
[MG_Backend, MG_IntegrationTest, scripts] (P7): pin the Qualcomm depth/stencil resolve arm order on the split and spawn arms
2026-09-23 15:13:44 -04:00
swung0x48
53397e6e1e
[MG_Backend, MG_Test] (P7): resolve multisample depth/stencil with the shader arm first on Qualcomm
2026-09-23 15:13:44 -04:00
swung0x48
b1f9ea39f1
[MG_Backend, MG_IntegrationTest] (P7): copy 1:1 single-sample depth/stencil blits on the Magma wire arm
2026-09-23 15:13:44 -04:00
swung0x48
32cc68fa59
[tools, docs] (P7): window 2 holds the shared device lock and marks a CTS block done only when it is a complete reading
2026-09-23 14:39:40 -04:00
swung0x48
5a844b1e50
[tools] (P7): window-2 reducer never passes an empty, unrateable or subset reading, and its rate gate is tested
2026-09-23 14:39:40 -04:00