swung0x48
|
a79a0af69d
|
[Docs] (Disaggregated): consolidate the five documents at the P5b close - drop superseded narrative, the -O0 device tables and process history, renumber MEASUREMENTS by phase, correct the catalogue and emit-table counts to the head, and record the Redmi pin profile
|
2026-09-16 23:08:39 -04:00 |
|
swung0x48
|
ea34bccb63
|
[Docs] (Disaggregated): close out P5b - record the completed host gate and merged census at 348d22a4, the review addendum's pinned results, and the Redmi exit at 82683d4a (correctness 8/8, first barrier-tax measurement, iris-bsl fixture-limit supplement); next is P6 spawn transport
|
2026-09-16 22:24:56 -04:00 |
|
swung0x48
|
c77831e0fa
|
[Docs] (Disaggregated): rewrite the staged-progress log as a concise current-state document and link it from the roadmap's status line
|
2026-09-16 20:45:35 -04:00 |
|
swung0x48
|
ef35ea0ce5
|
[Docs] (Disaggregated): move the integrator's running progress log into the tree as CURRENT_STAGED_PROGRESS.md
|
2026-09-16 20:43:56 -04:00 |
|
swung0x48
|
7cb29d460b
|
[Fix, Test] (MG_Test/Wire): empty the log before each forked child and read it whole - the library truncates its log per process, so a case that forks three times to drive one refusal through the encoder, the decoder and the sink read the second and third child's diagnostic from an offset past the end and saw nothing
|
2026-09-16 20:33:38 -04:00 |
|
swung0x48
|
171f186741
|
[Merge] (Docs, P5b): land the P5b documentation
|
2026-09-16 20:24:09 -04:00 |
|
swung0x48
|
696acce5d7
|
[Docs] (Disaggregated): record the P5b inproc verb migration - the class-C census, the five package families and what each removed, and the first Minecraft traces to render on the apply thread
|
2026-09-16 20:24:08 -04:00 |
|
swung0x48
|
82683d4a83
|
[Fix] (Remote): honor fence wait budgets and reject invalid readback status
|
2026-09-16 14:12:14 -04:00 |
|
swung0x48
|
a021e3cc5d
|
[Fix] (MG_Remote): bound user-index draws by the declared span
|
2026-09-16 14:08:49 -04:00 |
|
swung0x48
|
348d22a4b9
|
[Fix] (DirectGLES): verify generated mip storage from pushed descriptors
|
2026-09-16 13:56:55 -04:00 |
|
swung0x48
|
f018c0ef05
|
[Feat] (MG_Remote, P5b sync): migrate fence lifecycle and wait replies to the apply thread
|
2026-09-16 13:46:49 -04:00 |
|
swung0x48
|
56c6e49d1d
|
[Feat] (MG_Remote): lower named framebuffer blits through scoped wire bindings
|
2026-09-16 13:44:35 -04:00 |
|
swung0x48
|
12905a7eb8
|
[Merge] (P5b): land r1 core fixes with multi-tail command-ring retry
|
2026-09-16 13:41:40 -04:00 |
|
swung0x48
|
db8b347952
|
[Fix] (Remote): preserve server ownership and wait for ring retirement
|
2026-09-16 13:39:50 -04:00 |
|
swung0x48
|
cc0d56e464
|
[Docs] (Disaggregated): record P5 final gate stop and scoped control evidence
|
2026-09-16 13:39:46 -04:00 |
|
swung0x48
|
9606466ab6
|
[Merge] (MG_Remote, P5b): combine d1 draw migration with f1 i1 t2 and r2
|
2026-09-16 13:30:01 -04:00 |
|
swung0x48
|
5443bced9a
|
[Merge] (P5b): integrate t2 and reconcile all migrated emitter families
|
2026-09-16 13:27:15 -04:00 |
|
swung0x48
|
2deca994b2
|
[Merge] (P5b): integrate i1 alongside f1 and r2, preserving the combined slot partition
|
2026-09-16 13:25:44 -04:00 |
|
swung0x48
|
a523d6195a
|
Merge branch 'p5b/r2' into p5b/integrate-codex
|
2026-09-16 13:24:41 -04:00 |
|
swung0x48
|
d50183cb1a
|
[Fix] (IntegrationTest): assert actual staging backpressure in the small ring lane
|
2026-09-16 12:34:33 -04:00 |
|
swung0x48
|
6fa6a925bd
|
[Fix] (CI): make split controls mandatory and isolate runner evidence
|
2026-09-16 12:34:33 -04:00 |
|
swung0x48
|
fc5b52e456
|
[Merge] (P5b, t2): merge feat/disaggregated at 37fc4fdb (x2 via x2m, ID-65) into p5b/t2
|
2026-09-16 12:24:02 -04:00 |
|
swung0x48
|
c831ab0390
|
[Test] (MG_Test, MG_IntegrationTest, P5b/t2): pin the span order and the accounting fields, the six flipped slots by name, and run the tessellation-capture and buffer-reuse scenarios under inproc
|
2026-09-16 12:23:57 -04:00 |
|
swung0x48
|
dd293203ca
|
[Feat] (MG_Remote, P5b/t2): emit the four stream-output span rows, the XFB object bind and the patch parameter, and give each ServerVerbSink body its backend call
|
2026-09-16 12:23:57 -04:00 |
|
swung0x48
|
c240557fe0
|
[Feat] (MG_Pipe, MG_Remote, P5b/t2): add kCapBackendOwnsXfbCapture, publish it from the server table EndTransformFeedback slot, and answer the capture-ownership probe from it
|
2026-09-16 12:23:57 -04:00 |
|
swung0x48
|
fbe17d06d6
|
[Test] (MG_IntegrationTest, P5b d1): keep GuiBatchScenario out of the d1 split lists - past its draws it stops at Fatal{UnmigratedVerb, "MemoryBarrier"}, which is i1's slot to flip and register
|
2026-09-16 12:23:35 -04:00 |
|
swung0x48
|
e564939615
|
[Feat] (MG_Remote, P5b d1): flip the nineteen indexed / instanced / multi-draw / indirect draw slots to class B on draw_vbo - the emitters plan the record from the GL call and the bound element / indirect / parameter buffers, stage a client index array as the kDrawHasUserIndices span, refuse +CLIENT_INDICES / +CLIENT_COMMANDS / +INDEX_OFFSET by name, and the sink dispatches every shape to the backend slot the monolith calls (a base vertex of 0 is DrawElements, never DrawElementsBaseVertex with 0: ANGLE has no glDrawElementsBaseVertex)
|
2026-09-16 12:10:38 -04:00 |
|
swung0x48
|
e352e9a6c9
|
[Merge] (P5b, i1): merge feat/disaggregated at 37fc4fdb (x2 via x2m, ID-65) into p5b/i1
|
2026-09-16 12:10:25 -04:00 |
|
swung0x48
|
a72a96d85f
|
[Test] (MG_Test, MG_IntegrationTest, P5b): pin i1 seven class-B slots and the served compute program, and arm 24 inproc lane entries whose results only exist if the records crossed
|
2026-09-16 12:10:09 -04:00 |
|
swung0x48
|
b82c63a9ec
|
[Feat] (MG_Pipe, DirectGLES, P5b): move GetProgramForDispatch FATAL to BARRIER_PULLED now that compute crosses, and skip the copy-image shadow mirror under a non-monolith transport
|
2026-09-16 12:10:01 -04:00 |
|
swung0x48
|
734287ac56
|
[Feat] (MG_Remote, P5b): emit i1 seven image/compute/barrier/copy-image/storage-block slots as class B and give each ServerVerbSink body the backend call the contract names
|
2026-09-16 12:09:55 -04:00 |
|
swung0x48
|
fe5ac006f8
|
[Merge] (Remote): bring f1 up to the integrated P5 wire ledger
|
2026-09-16 11:50:00 -04:00 |
|
swung0x48
|
7ffa4998ab
|
[Feat] (Remote): migrate f1 clear copy and mipmap verbs under inproc
|
2026-09-16 11:49:41 -04:00 |
|
swung0x48
|
37fc4fdb0f
|
[Merge] (MGPipe, P5): land x2 via x2m - the E2 draw-drop control, R-10 maxrec, the small-ring wrap counters (ID-65)
|
2026-09-16 11:32:23 -04:00 |
|
swung0x48
|
bd11ab189f
|
[Merge] (MGPipe, P5): land x2 - the E2 draw-drop control, R-10 maxrec and the small-ring wrap counters, resolved against j0 (ID-65)
|
2026-09-16 11:30:12 -04:00 |
|
swung0x48
|
94ce2ee778
|
[CI] (apk): pin cmdline-tools and drop the removed 'tools' package so Setup Android SDK stops failing before the build
|
2026-09-16 11:28:37 -04:00 |
|
swung0x48
|
f567610339
|
[Merge] (P5b, c0b): merge feat/disaggregated at f5614995 (v1 round 3, ID-62/ID-67) into p5b/c0b
|
2026-09-16 11:16:09 -04:00 |
|
swung0x48
|
538c3c19ee
|
[Docs] (MG_Remote): CONTRACT-P5B.md - the wire records, sinks, refusals and rulings for the 25 measured class-C slots
|
2026-09-16 11:15:45 -04:00 |
|
swung0x48
|
02972f70b6
|
[Test] (MG_Test, P5b): pin the 76-row catalogue, the 18 stamp rows and the 77 verify payloads, and round-trip each P5b row once through the codec
|
2026-09-16 11:15:45 -04:00 |
|
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
|
f561499519
|
[Merge] (MGPipe, P5): land v1 round 3 - the review residue closed, bind-once per tuple, the R-11 and coverage gates (ID-62, ID-67)
|
2026-09-16 11:14:27 -04:00 |
|
swung0x48
|
579118a1b3
|
[Test, CI] (scripts/ci, workflows): E2's draw-drop control requires the SSIM red AND the library's dropped-record count, E3(a) requires its private-log line as well as the pixels, and the smoke red-check finally perturbs the split control (ID-65)
|
2026-09-16 11:09:21 -04:00 |
|
swung0x48
|
a7b43cbbcd
|
[Test] (MG_IntegrationTest): exit gate E3(e) drives the small ring past its own capacity and asserts the wrap, and both split arms of TriangleScenario publish R-10's maximum record bytes against the ring's cap (ID-65)
|
2026-09-16 11:09:15 -04:00 |
|
swung0x48
|
9f52878313
|
[Feat] (MG_Remote, MG_Util): the wire ledger - maxrec/maxcap/ringwraps/ringpads/ringwaits on the MGPipe stats line and at session teardown, MOBILEGL_IPC_E2_DROP_DRAW beside the clear drop, and E3(a)'s named persistent-map-push-disabled line (ID-65)
|
2026-09-16 11:09:09 -04:00 |
|
swung0x48
|
b13f2b0283
|
[Fix, Test] (DirectGLES/BackendObject, MG_Test/Wire): G1 - the two Create*Surface pull arms are the original return statements byte for byte again (the ID-67 note lives in the #if MOBILEGL_BUILD_DISAGGREGATED arm; the first cut resized both symbols by 2 bytes); the park case names the POSTER thread as the caller now that N-9 posts from a helper, so control-runs-on-caller is red for its own reason again; the two C6 null-check gates use RGB8_SNORM, the format the fallback's three-channel widening actually applies to (with RGB8 both arms agreed and the runner caught it)
|
2026-09-16 10:58:33 -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
|
74060e8b5d
|
[Fix, Test] (DirectGLES/BackendObject, MG_Remote/Server, MG_Test/Wire): ID-67 - the native skip in BackendObject_DirectGLES::MakeEGLCurrent is keyed on the VIRTUAL (dpy, draw, read, ctx) tuple, not the surface: the surface's own creation bind is adopted by the first tuple, an identical tuple is a native no-op and publishes no caps snapshot (the client's mirror generation does not move), and a DIFFERENT tuple onto the same surface binds natively again (DirectGLES's invalidations describe the frontend context that changed) and republishes (R-12 arm (a)); ServerLoop tallies MakeCurrentRepublishCount and the control asserts 1 bind + 1 republish for a different tuple and 0 + 0 for a repeat at the EGL table and the tally; the EGL fixture gives the session its backend so the republish is real
|
2026-09-16 10:43:33 -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
|
1646049ac9
|
[Fix, Test] (DirectGLES/Managers, MG_Test/Wire): M-3's two whole-store refusals key on the DESCRIPTOR's HasDefinedContent - content the application supplied (glBufferData(size, data)) must be fully staged by the draw, a gap is a missing record and Fatal{StageSnapshotTooNarrow} by name; a store the application orphaned (glBufferData(size, NULL)) has undefined bytes by its own declaration, so the streaming idiom (orphan, partial glBufferSubData, draw) uploads the staged bytes plus zero-fill exactly as the monolith arm uploads MappedData(); round 2 refused both shapes and aborted six LargeArenaAdoption / ResourceSubsystemControl joint entries by name (hidden under c1 round 2's BlobMissing abort until c1 round 3); two positive gates run the idiom end to end in a forked child through each reader and red on their own string when the refusal is made unconditional again
|
2026-09-16 10:31:29 -04:00 |
|
swung0x48
|
13043e3ff4
|
[Test] (MG_Test/Wire): ServerLoopTest round 3 - an EGL fixture brings the server's REAL DirectGLES backend up on the apply thread through the twelve forwarders alone and counts native eglMakeCurrent at the EGL function table; the review-v2 N-5 gates each red on their own string: C7 one native bind / zero native releases / owner unchanged, N-3 destroy-recreate with the same handle values binds again, ID-49 the reply is the tight extent whatever DstSize the client sent, M-3 sparse shadow through pool-reuse and through respecify dies by name, M-1 a queued range outside the staged coverage dies by name at the drain, m-5 a twin surviving context loss drops its freed base, M-2 the ensure uploads the server shadow not MappedData (item 10), M-6 ShutdownSplitRoles after an early Start failure drops the backend, codex-11 the effective mask via an absent cpu, C6 the seven reads answered by two objects; N-9 the park case bounds its own post and the tally case names its tally
|
2026-09-16 10:17:29 -04:00 |
|
swung0x48
|
49fecc1686
|
[Fix] (DirectGLES/Managers, MG_Backend/Init, MG_Remote/Server): N-7 m-5's freed-base null is transport-guarded like the other two split hunks so monolith transport in a split build changes nothing by construction; N-8 the second consumer-mask check compares MGPipeGetResourceOps() against the table step 2 saw and refuses a replaced table as Fatal{ConsumerMaskLie, resource ops table replaced} (the re-run alone could not see a client-registered table); ServerVerbSink::ReadbackScratchBytes for ID-49's tight-size gate
|
2026-09-16 10:17:29 -04:00 |
|
swung0x48
|
a838c7879d
|
[Fix] (MG_Remote/Server, DirectGLES/BackendObject): ID-54 bind-once at the native layer - under an active transport BackendObject_DirectGLES skips the native eglMakeCurrent for a surface already current on the apply thread (its own creation bound it; measured 2 -> 1 native binds per process, 0 native releases, owner unchanged), and N-3 the held (dpy, draw, read, ctx) tuple is FORGOTTEN on ReleaseEGLResources, ReleaseEGLSurface of a surface it names, surface (re)creation and backend destruction so a recycled handle value after a destroy is a real bind again; ServerLoop.h's ownership prose states what is measured rather than what was hoped (review v2 item 10, N-3)
|
2026-09-16 10:17:29 -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
|
ca92308bc0
|
Merge branch 'feat/disaggregated' into p5/v1
# Conflicts:
# MobileGL/MG_Test/Wire/CMakeLists.txt
|
2026-09-16 09:27:25 -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 |
|