swung0x48
|
a164113029
|
[Feat] (MG_Remote, P5b): decode every P5b row to a WireVerbSink method, stub each ServerVerbSink body with a named UnmigratedVerb Fatal, and partition the emit table class-C list per migration package
|
2026-09-16 11:15:45 -04:00 |
|
swung0x48
|
4dd4027e80
|
[Feat] (MG_Pipe, P5b): append the five P5b verb rows at opcodes 72..76, arm draw_vbo with the kDrawIsIndirect second tail, give resource_copy_region its two GL names and the clear discriminants one spelling, and stamp every P5b verb boundary
|
2026-09-16 11:15:45 -04:00 |
|
swung0x48
|
c9878d69f3
|
[Test] (MG_Test, Client): align make-current caps controls with ID-67
|
2026-09-16 10:47:42 -04:00 |
|
swung0x48
|
edcdf771db
|
[Merge] (Docs, P5): land the P5 sections of README, ROADMAP, ARCHITECTURE and MEASUREMENTS
|
2026-09-16 10:36:11 -04:00 |
|
swung0x48
|
a48bc46ec1
|
[Docs] (Disaggregated): document the landed P5 inproc milestone
|
2026-09-16 10:32:58 -04:00 |
|
swung0x48
|
fbeea876b3
|
[Merge] (MGPipe, P5): land c1f - the client's missing gates and controls (ID-64)
|
2026-09-16 10:31:33 -04:00 |
|
swung0x48
|
6d86f9d9be
|
[Fix] (Client): share teardown refusal and gate live wire producers
|
2026-09-16 10:16:11 -04:00 |
|
swung0x48
|
eec0e836c6
|
[Build] (Android): map mobilegl.buildDisaggregated and mobilegl.buildDisaggregatedInproc to the CMake options so the trace APK has a split flavour beside pull and push
|
2026-09-16 10:15:58 -04:00 |
|
swung0x48
|
fa924d34fb
|
[Merge] (MGPipe, P5): land j0 rounds 2-3 - the split-lane private logs wired into CI and the skipped-selection control failure (ID-62)
|
2026-09-16 10:15:58 -04:00 |
|
swung0x48
|
cc20de37da
|
[Fix] (IntegrationTest): reject skipped split control selections
|
2026-09-16 09:31:39 -04:00 |
|
swung0x48
|
68d8ef9f34
|
[Fix] (IntegrationTest): gate private split logs and repair control red-checks
|
2026-09-16 09:23:27 -04:00 |
|
swung0x48
|
e61d00123c
|
[Feat] (MG_Backend, MG_Remote/Server): construct BackendObject_Remote directly in the split hook and bracket PipeApplier::ApplyOne with ScopedApplierEntry - the two merge-time hunks (ID-59)
|
2026-09-16 09:18:10 -04:00 |
|
swung0x48
|
65a403284c
|
[Merge] (MGPipe, P5): joint - v1@c9d84e33c5e51075e9c6ec7374740fb314cc755c
|
2026-09-16 09:17:01 -04:00 |
|
swung0x48
|
2536ffb920
|
[Merge] (MGPipe, P5): joint - c1@5682f429d0c877ae5d50ad723b76253b182c98f6
|
2026-09-16 09:17:01 -04:00 |
|
swung0x48
|
5682f429d0
|
[Fix, Test] (MG_Remote/Client, MG_Impl/Pipe): c1 round 3 - route the five by-address delete sites (B1); observe the client arm (B3); readback requires Status=OK and the exact extent and refuses a pack-PBO read by name (M2/M8/codex11/ID-57); one ERROR->Fatal{ReplyError} rule across the two escapes and an honest ShutDown decline (M4/codex5); InitialBytesNotCarried is role-aware (M5); a routed call during teardown refuses by name not runs the applier (codex4); caps adopted on every make-current (codex12); set_dynamic_state carries an optional blob; PACK_SKIP_IMAGES ignored for a 2-D read (codex6); one tight-size function for production and test (M3/codex10); redcheck 9/9 red each on its own string (M6)
|
2026-09-16 09:11:47 -04:00 |
|
swung0x48
|
b2dcae713f
|
[Fix] (IntegrationTest): give Split entries private diagnostic logs
|
2026-09-16 08:48:30 -04:00 |
|
swung0x48
|
c9d84e33c5
|
[Fix] (DirectGLES/Managers): under an active transport a resource_subdata that finds no twin MINTS one (GetOrCreateBufferResourceForHandle) so its bytes reach the server StagedShadowStore - the twin is otherwise lazy until the first draw (D-A2) and the reduced-path VBO bytes were lost, so the milestone frame rendered a shifted store; monolith keeps the lazy twin (R-11/ID-52 item 3)
|
2026-09-16 08:11:05 -04:00 |
|
swung0x48
|
f280baf2b3
|
Merge branch 'feat/disaggregated' into p5/c1
|
2026-09-16 08:07:59 -04:00 |
|
swung0x48
|
455b475c5d
|
[Fix] (DirectGLES/Managers, MG_Remote/Server): m-5 nulls a stale hostBytes only when its server shadow is actually gone (StagedShadowStore::HasShadow), not on a twins first-ensure generation sync - the unguarded null dropped a subdatas freshly staged base and made the reduced-path VBO read shifted; HasShadow unit control added
|
2026-09-16 08:03:52 -04:00 |
|
swung0x48
|
a85aa95401
|
[Test] (MG_Test/Wire): ServerLoopTest - the R-11 production gate through the real ops table (M-1), the C2/M-6/M-7/C6/C7 controls, actual-blocked-park arming (C10), an explicit-mask affinity case (M-4), and the coverage death control naming SIGABRT (m-2)
|
2026-09-16 07:45:29 -04:00 |
|
swung0x48
|
05bcb73477
|
[Fix] (MGPipe): resource_flush_range carries no companion bytes under an active transport - the consumer reads the server-owned StagedShadowStore instead of faulting the null carrier as corruption (item-12, R-13.2/ID-37)
|
2026-09-16 07:45:29 -04:00 |
|
swung0x48
|
61d6cd8e30
|
[Fix] (MG_Remote/Server): OnReadPixels reads with neutral pack state into a tight w*h*bpp reply so a server-visible pack state cannot overflow the slot (ID-49); the present<->swap 1:1 is a convention not structural (m-1); the reply-ordering invariant is documented against ReplySlot.h (m-7)
|
2026-09-16 07:45:29 -04:00 |
|
swung0x48
|
7a925b3259
|
[Fix] (DirectGLES): the seven backend format-capability reads use the server-private cache via ActiveBackendFormatCaps under split, not pActiveBackendObject (C6); guarded so the pull build is byte-identical
|
2026-09-16 07:45:29 -04:00 |
|
swung0x48
|
0fde95357c
|
[Fix] (DirectGLES/Managers): under an active transport the server staged copy is the only base - liveHostBase no longer falls back to the client object (M-2); the pool-reuse and whole-store respecify readers go through RequireCoverage (M-3); a twin surviving DropAll has its freed hostBytes nulled (m-5)
|
2026-09-16 07:45:29 -04:00 |
|
swung0x48
|
0244fc4a50
|
[Fix] (MG_Backend/Init): ShutdownSplitRoles stops the apply thread and drops the server backend on the early ClientSession::Start-failure path (M-6), and the consumer-mask cross-check re-runs after the client object exists (m-6)
|
2026-09-16 07:45:29 -04:00 |
|
swung0x48
|
e7fe3b9770
|
[Fix] (MG_Remote/Server): ServerLoop - clear m_running under m_controlMutex and re-check before publishing (C2); a backend with no thread is Fatal{ApplyThreadNotRunning} not an inline app-thread fallback (M-7); ApplyAffinity logs the effective sched_getaffinity mask (M-4/codex-11); ServerMakeEGLCurrent binds once per tuple and records a client release without unbinding (C7/ID-54); Start resets its own diagnostics (m-3); doorbell Fatal text corrected (m-4)
|
2026-09-16 07:45:29 -04:00 |
|
swung0x48
|
41992649c9
|
Merge branch 'feat/disaggregated' into p5/c1
# Conflicts:
# MobileGL/MG_Remote/Client/ClientSession.cpp
# MobileGL/MG_Test/Wire/CMakeLists.txt
|
2026-09-16 07:23:35 -04:00 |
|
swung0x48
|
c3e736a343
|
[Docs] (Disaggregated): SEG_REPLY is 16 MiB in eight 2 MiB slots (ID-47) - the segment table still said 8 MiB with 4 KiB slots
|
2026-09-16 07:14:26 -04:00 |
|
swung0x48
|
02f15bb675
|
[Feat] (MG_Pipe, MG_Remote/Client, MG_Impl/Pipe): R-17 - install the two generated MGPipe tables over the 37 apply entry points, 40 call sites onto the thunks, 37 wire emitters, the reply mailbox, and ID-47/ID-49 readback
|
2026-09-16 07:10:51 -04:00 |
|
swung0x48
|
39292958e0
|
[Merge] (MGPipe, P5): integrate package s1, round 3 - ID-47 and ID-48 findings 5, 6, 7, 10, ID-51
|
2026-09-16 07:07:11 -04:00 |
|
swung0x48
|
949ba509f3
|
[Fix, Test] (MG_Remote, MG_Test, CONTRACT): wave 1.5 s1 - ID-47 SEG_REPLY is 16 MiB / 8 slots of 2 MiB and ReplySlotPool::CanHold+RequireReadPixelsFits refuse an oversize ReadPixels at the CLIENT by name (ProtocolSmokeTest pin, CONTRACT row 23); CapsAbiFingerprint IS MixAbiFingerprint over CapsAbiFingerprintInputs and the sensitivity case drives it; the null-union Hello/Welcome frames go THROUGH Accept/StartOverTransportPair; the pad-bit case stamps the bit past Reserve; both death controls name their diagnostic via WireLogFatal (stderr echo); the RSS ledger reads /proc once and keeps its own running peak (GitHub run 35079459114)
|
2026-09-16 07:04:08 -04:00 |
|
swung0x48
|
129969c327
|
[Merge] (MGPipe, P5): integrate package t1, round 2 - ID-48 finding 8
|
2026-09-16 07:01:45 -04:00 |
|
swung0x48
|
0a22f363ff
|
[Doc] (workflows): correct the two G5 self-test descriptions to b1 round 2 - the eleventh row is pinned in the script at 3dadd4c1 and compared against the reviewed body, p3a runs eight canned controls and p4a nine negative ones
|
2026-09-16 06:58:58 -04:00 |
|
swung0x48
|
2e2b41ab49
|
[Fix, Test] (workflows, scripts/ci): make the three CI negative controls assert their own failure reason instead of accepting any non-zero ctest exit, count the arming baseline by PASSED rather than by not-skipped, and put both control bodies in files a smoke test can drive against a stubbed ctest
|
2026-09-16 06:58:34 -04:00 |
|
swung0x48
|
cd2079ec8f
|
[Merge] (MGPipe, P5): integrate package w1, round 2 - ID-48 findings 1, 3, 4
|
2026-09-16 06:44:37 -04:00 |
|
swung0x48
|
aa7ad670c4
|
Merge branch 'p5/v1' into p5/c1
# Conflicts:
# MobileGL/MG_Test/Wire/CMakeLists.txt
|
2026-09-16 06:43:30 -04:00 |
|
swung0x48
|
3fb97cc536
|
Merge branch 'feat/disaggregated' into p5/v1
|
2026-09-16 06:42:04 -04:00 |
|
swung0x48
|
bb6ba28241
|
[Fix] (MG_Remote, Wire): send the codec's MapPersistent arm through the same adoption-tier gate the applier uses, so MOBILEGL_IPC_ADOPT_TIER=0/1 die on their named diagnostic
|
2026-09-16 06:41:01 -04:00 |
|
swung0x48
|
ba6dc4f7f1
|
[Fix] (MG_Remote, Wire): require every client-server content blob to declare SEG_STAGE and refuse any other carrier by name, which also puts the audit's run bookkeeping out of reach
|
2026-09-16 06:41:00 -04:00 |
|
swung0x48
|
1a06b40a58
|
[Fix] (MG_Remote, Wire): let an empty SEG_STAGE take a blob that fits by rebasing its cursors to zero, so the wrap skip is only ever charged against bytes still in flight
|
2026-09-16 06:40:55 -04:00 |
|
swung0x48
|
7110cdb61a
|
[Fix] (scripts): make gen_pipe.py's expect_trip require the tripped guard's own message and a non-zero exit code, with an R-16 meta-control that an unrelated SystemExit or sys.exit(0) cannot pass as a trip - the any-SystemExit defect fb70704e fixed in the field-ownership generator, confirmed still present here by codex review finding 9
|
2026-09-16 06:33:07 -04:00 |
|
swung0x48
|
ce53553c79
|
[Merge] (MGPipe, P5): integrate package b1, round 2 - ID-41 and ID-42
|
2026-09-16 06:12:53 -04:00 |
|
swung0x48
|
6cabc6b070
|
[Fix, Test] (MG_IntegrationTest, MG_Test): make the persistent-map membership expectation a function of the arm the map landed in, and pin the arm-independent half on IsLivePersistentMap where both answers can be produced
|
2026-09-16 06:03:52 -04:00 |
|
swung0x48
|
f63c9483de
|
[Fix] (scripts): compare G5's eleventh row against its pin ALWAYS and re-pin it on the reviewed P5 body, with a negative control that the pin itself can fail
|
2026-09-16 05:56:08 -04:00 |
|
swung0x48
|
571cbabb53
|
[Fix] (MobileGL/Init, MG_Backend): ShutdownSplitRoles exists only under MOBILEGL_BUILD_DISAGGREGATED - G1 admits no new pull symbol and the unconditional call moved DestroyImpl by 32 bytes
|
2026-09-16 05:54:33 -04:00 |
|
swung0x48
|
7ea3b1d1f1
|
[Test] (MG_Test/Wire): ServerLoopTest - the apply thread, the control mailbox, the verb stamp, the audit poison, the bounded shutdown, and StagedShadowTest
|
2026-09-16 05:45:15 -04:00 |
|
swung0x48
|
d623118485
|
[Feat] (MG_Backend, MobileGL/Init): the single split hook in MG_Backend::Init - server backend, CallMask halves, ClientSession::Start, remote object - and ShutdownSplitRoles at the top of Destroy
|
2026-09-16 05:45:15 -04:00 |
|
swung0x48
|
23c0468775
|
[Feat] (MG_Remote/Server): ServerLoop - the mgl-srv-apply thread, its affinity mask, the three-way park predicate, the blocking control mailbox, the bounded Stop, and the twelve EGL forwarders
|
2026-09-16 05:45:15 -04:00 |
|
swung0x48
|
8dbe230ae3
|
[Feat] (MG_Remote/Server): PipeApplier - attach the decoder on the apply thread, stamp/apply/clear per record, and ServerVerbSink for the five class-B verbs
|
2026-09-16 05:45:15 -04:00 |
|
swung0x48
|
377356f8ca
|
[Feat] (DirectGLES/Managers, MG_Remote/Server): R-11 - copy staged bytes into a server-owned StagedShadowStore with exact coverage; Fatal{StageSnapshotTooNarrow} before the flush drain instead of a widened INVALIDATE_RANGE
|
2026-09-16 05:45:15 -04:00 |
|