swung0x48
|
950968044c
|
[Fix] (MG_Impl, PipeFill): make buffer_subdata_resident declare the live-host-writes bit - ApplyBufferWrite assigns it, so a silent content record writes false over a live write map
|
2026-09-11 15:48:28 -04:00 |
|
swung0x48
|
3a5e26215d
|
[Fix] (MG_State, BufferObject): publish the live-host-writes bit on the RISING edge too - the only content record a coherent persistent map emits is the push, and a draw-clean answer skips the ensure the push lives in and then latches it
|
2026-09-11 15:48:28 -04:00 |
|
swung0x48
|
6e858fa3f6
|
[Docs] (MG_Remote): record R-16 and R-17 - the fourteen reply-slot rows and why the barrier makes them cost no block, and the two flag spaces being disjoint by translation
|
2026-09-11 15:44:24 -04:00 |
|
swung0x48
|
ab112eb0ed
|
[Fix, Test] (gen_pipe, Wire): stop the generated header comment inviting a stamp of the call flags into the ring's framing flags - three of the six bits mean something else there, and only one of the three is masked on one path
|
2026-09-11 15:44:24 -04:00 |
|
swung0x48
|
d55e37337b
|
[Fix] (MG_Pipe): give the four acceptance calls the kReplySlot their applier entry points have always answered through, so the flags table is the single thing that sizes the reply pool and the decoder posts against
|
2026-09-11 15:44:24 -04:00 |
|
swung0x48
|
f33e5d6090
|
[Fix] (MG_Remote, Transport, Client): SEG_STAGE is w1's encoder-local linear allocator and not a ring - drop the stage RingProducer and its power-of-two rounding, pin the stage cursor triple dead, require a wrap filler to carry kind kRingPadRecordKind as well as the flag it shares with kVarTail, and name every kRecBorrowSlot sighting
|
2026-09-11 15:41:56 -04:00 |
|
swung0x48
|
949ed1f037
|
[Test, CI] (tools/trace_replay, workflows): give retrace-split the negative control it was cloned without, match ConfigLoader's whole INFO sentence rather than a KEY=VALUE an env dump also prints, read the three-arm names file the identity step was writing and discarding, and refuse an unknown manifest key that silently empties a CI matrix
|
2026-09-11 15:30:17 -04:00 |
|
swung0x48
|
8b425a9718
|
[Test] (MG_IntegrationTest): arm the split lanes from the running process - MG_Config::Transport, ClientSession::Active() and ImplementedVerbCount() - instead of from a grep over c0's stub messages, which a one-word rename disarmed into eight green monolith runs, and require the encoder's record ordinal to move before any split case may pass
|
2026-09-11 15:30:17 -04:00 |
|
swung0x48
|
79b7866511
|
[Fix] (MG_Remote, Wire): close R-2 arm 4 over MGHostSpan, stop the producer writing SEG_STAGEs consumer cursors, bound the stage-mark queue, and answer a reply slot only for rows the catalogue flags kReplySlot
|
2026-09-11 15:20:15 -04:00 |
|
swung0x48
|
3f1eaee787
|
[Test] (MG_Test, Wire): pin the seven findings of fix round one - the frozen CapsSnapshot field ids, the verifiable frame with a null union, the borrowed slot that is not handed back, the peer's own mapping, the backwards-watermark abort, the lagging watermark and the refused reply geometry
|
2026-09-11 15:04:54 -04:00 |
|
swung0x48
|
8024dab9f4
|
[Fix] (MG_Remote, Client): fold the null union payload into both handshake guards, close the server session on every Start failure that ran after Accept succeeded, and drain teardown against the producer's own published seq rather than a watermark the ring lets lag
|
2026-09-11 15:04:54 -04:00 |
|
swung0x48
|
da8f030459
|
[Fix] (MG_Remote, Transport): the knob names the ring and the segment adds a control page, a backwards watermark is Fatal rather than a permanent hang, RetireThrough stops at a borrowed slot, the inproc peer gets a real second mapping through dup and Adopt, and the producer remembers its own published seq
|
2026-09-11 15:04:54 -04:00 |
|
swung0x48
|
ed60c06b98
|
[Fix] (MG_Remote, Protocol): mark CapsSnapshot's four retired fields deprecated instead of deleting them - a deletion FREES the vtable slot, so callMask took slot 14 from an [int] vector as an 8-byte ulong with no ABI-major bump and a fingerprint that mixes struct sizes rather than the schema
|
2026-09-11 15:04:54 -04:00 |
|
swung0x48
|
c5c12b489a
|
[Fix] (MG_Remote, Server): delete CallMask's two derived defaults and make an unset mask Fatal{UnsetCallMask} - the consumer default read MGPipeGetResourceOps, a process-wide global, so under inproc the server answered R-8's client-side gate with the client's own registration and under spawn it collapsed to P2's mask, dropping five P4a families with the dirty flags cleared anyway and the lane green
|
2026-09-11 15:04:54 -04:00 |
|
swung0x48
|
3aa48bccdc
|
[Test] (CI): run the field-ownership generator's --check and --self-test in pipe-gates - R-7.1 rests on a generated table that nothing in CI diffed, and the build assertion only catches an unclassified row
|
2026-09-11 14:53:39 -04:00 |
|
swung0x48
|
126bd9aa62
|
[Test] (MG_Test, Pipe): pin the applier's own clear on the path a spawned server takes, and four named fields the stamp case must not re-derive from the table it is testing
|
2026-09-11 14:53:39 -04:00 |
|
swung0x48
|
3cb2c4aa9a
|
[Fix] (MGPipe): make the applier's own verb-boundary clear mandatory rather than inherited from the client's fill, and name the argument in an argument-narrowed abort so the two halves of the pixel store do not print the same line
|
2026-09-11 14:53:39 -04:00 |
|
swung0x48
|
c16411aa33
|
[Feat] (MG_Pipe, scripts): refuse an OMITTED stamp row and not only a typo - every verb-shaped call now has a row or a named exemption, because a record with no stamp point applies under the previous verb's serial, mask and name
|
2026-09-11 14:53:39 -04:00 |
|
swung0x48
|
fb70704e74
|
[Fix] (scripts): assert every field-ownership negative control against its OWN message - one of the eleven was a silent duplicate of another because the harness asked only whether something exited, and the harness now has a control of its own
|
2026-09-11 14:53:39 -04:00 |
|
swung0x48
|
7ad0ff3c33
|
[Test] (MG_IntegrationTest): assert which persistent-map arm the scenario landed in through a peek at IsBackendPersistentMapped, not by inferring it from the push byte counter - "the push was never wired" and "the store was adopted" are different defects with different owners and the counter reads the same for both
|
2026-09-11 14:40:30 -04:00 |
|
swung0x48
|
31de23142f
|
[Test] (MG_Test, Wire): assert a payload crosses byte for byte including the bytes spelled Pad - a codec that normalised one would silently delete the fields P5 and b1 have just put there
|
2026-09-11 14:37:43 -04:00 |
|
swung0x48
|
db1a5dbc27
|
[Test] (MG_Test): one case per GPU-write row, the lifted live-host-writes pin from both sides, the widened INVALIDATE_RANGE edge and a non-zero persistent-map-push
|
2026-09-11 14:31:46 -04:00 |
|
swung0x48
|
0b847d462a
|
[Feat] (GLImpl): mark the pack PBO after a glReadPixels and the capture targets at glEndTransformFeedback, in place of a stall and an unbounded fence wait
|
2026-09-11 14:31:46 -04:00 |
|
swung0x48
|
d9ade1e7cd
|
[Feat, Docs] (PipeStats, MEASUREMENTS): wire persistent-map-push to the bytes the client ships, rewrite the inventory line that called it unwired, and correct the persistent-map census from 20 to 21
|
2026-09-11 14:31:46 -04:00 |
|
swung0x48
|
142bf921d4
|
[Fix] (DirectGLES): retire the probe's last frontend read under split and refuse tier 1 of the flush ladder when the map and the queued range disagree in either direction
|
2026-09-11 14:31:46 -04:00 |
|
swung0x48
|
13827e376f
|
[Feat] (MG_Pipe): give HasLiveHostWrites its producer, decline every persistent-map acquisition under split, and retire the verify pin that was waiting for exactly this
|
2026-09-11 14:31:46 -04:00 |
|
swung0x48
|
feca3994d1
|
[Feat] (MG_State, BufferObject): under split cut the mapped span into blocks, publish the live-host-writes edge, and let the writeback rather than the request clear a GPU write
|
2026-09-11 14:31:46 -04:00 |
|
swung0x48
|
851a0b6f76
|
[Feat] (MG_Remote, Client): the conservative GPU-write set and the persistent-map block tracker, on the client, where the decision SyncGpuWrites makes synchronously actually lives
|
2026-09-11 14:31:46 -04:00 |
|
swung0x48
|
eaf2b28b8c
|
[Feat] (MG_Pipe): give MGPSubData's pad byte to HasLiveHostWrites - the live-host-writer fact is content-shaped, and MGPResourceDesc's only carrier costs a buffer a spurious reallocation on every map
|
2026-09-11 14:31:46 -04:00 |
|
swung0x48
|
76140c33eb
|
[Fix] (MG_Remote, Wire): stop the decoder writing RingControl - appliedSeq has exactly one writer and it is the session, so the decoder keeps its own tally and the two are compared instead
|
2026-09-11 14:28:34 -04:00 |
|
swung0x48
|
75c0bcae80
|
[Docs] (MG_Remote): correct the sparse-caps comment - 13 targets by 77 internal formats is ~16 KiB of dense table, not half a megabyte
|
2026-09-11 14:28:34 -04:00 |
|
swung0x48
|
1f953c09ea
|
[Test] (MG_Test, Wire): pin the session pair - twenty thousand records across two real threads, one case per watermark rule, the kRecPad rule against the session's own counter, the reply slot's seq stamp and a shutdown whose join is bounded at five seconds so a lost wakeup fails red
|
2026-09-11 14:13:20 -04:00 |
|
swung0x48
|
558fb210dc
|
[Feat] (MG_Remote, Client, Server): the Hello/Welcome/CapsSnapshot handshake and both sessions' construction and teardown - the ABI assertion runs in Accept before a record is decoded and is Fatal{AbiMismatch} rather than a downgrade, and the two doorbell accessors live on the session rather than on ITransport
|
2026-09-11 14:13:20 -04:00 |
|
swung0x48
|
7c25130d5a
|
[Feat] (MG_Remote, Protocol): delete CapsSnapshot's four redundant trailing fields and give CallMask, the server's backend type and the ABI fingerprint the carriers they never had - tableSlotMask could not address the 69-slot table its comment named and the two compute limits already ride inside dynamicParameters
|
2026-09-11 14:13:20 -04:00 |
|
swung0x48
|
817e1c40cf
|
[Feat] (MG_Remote, Transport): the ring-owning session pair over ShmSegment - four segments, the five watermarks with their first real writers, the SEG_REPLY slot pool and the SEG_EVENT reverse channel, with the doorbell pair taken from the transport and the ring capacity derived as the largest power of two left after the control page
|
2026-09-11 14:13:07 -04:00 |
|
swung0x48
|
97df377381
|
[Docs] (Disaggregated): record the field-ownership generator and correct the two stale 61-field lines - the generated assertion has said 63 since P1
|
2026-09-11 14:12:32 -04:00 |
|
swung0x48
|
96cc6a14af
|
[Test] (MG_Test, Pipe): pin table 2 at runtime - the stamp rule, the four-way read verdict, rsp, the strict abort and the cancelled sticky exemption
|
2026-09-11 14:12:32 -04:00 |
|
swung0x48
|
bc55da75fb
|
[Feat] (MG_Pipe): give MGPipeUnmigratedEmulation teeth under a real transport - one function body arms five call sites, and the arm is the transport rather than the build so a split build's own monolith lanes stay green
|
2026-09-11 14:12:32 -04:00 |
|
swung0x48
|
d709ef3ee9
|
[Feat] (MGPipe, MG_Util): stamp the poison generations at the server's verb boundary and withdraw what only the client can answer, so a barrier-pulled read is counted as rsp instead of reading fresh by accident
|
2026-09-11 14:12:32 -04:00 |
|
swung0x48
|
bb6848c8d1
|
[Feat] (MG_Pipe, scripts): generate the PipeInputs field-ownership table - 63 fields plus the seven sticky forwards in exactly one of four classes, RECORD-SUPPLIED derived from the emitted list rather than asserted, and a field in none of them stops the generator
|
2026-09-11 14:12:32 -04:00 |
|
swung0x48
|
f265f0a8e1
|
[CI] (workflows): add build-linux-split, integration-split and retrace-split - the first configurations in this workflow that compile MG_Remote at all, each asserting by nm that the option really took
|
2026-09-11 14:00:14 -04:00 |
|
swung0x48
|
55ed1c8784
|
[Test, Tools] (tools/trace_replay): give the retrace harness a SPLIT variant whose output and artifact directories carry the variant too, and assert the transport resolved - a pull library under MOBILEGL_TRANSPORT=inproc replays OpenRA at ssim 1.000, so the picture cannot be the gate
|
2026-09-11 14:00:14 -04:00 |
|
swung0x48
|
eafa47ea46
|
[Test] (MG_IntegrationTest): add the Triangle and PersistentCoherentMap scenarios and the DirectGLES.Split. lanes - the split family skips naming c0's remaining signature stubs rather than going green against the monolith path it would otherwise run
|
2026-09-11 14:00:14 -04:00 |
|
swung0x48
|
91d0c6b06f
|
[Fix] (MG_Remote, Wire): let an encoder caller omit a tail whose own count is zero - Count == 0 is a legal record for every kVarTail row and a required placeholder entry would be a trap
|
2026-09-11 13:59:51 -04:00 |
|
swung0x48
|
1af5e31f3b
|
[Test] (MG_Test, Wire): drive encoder to ring to decoder to applier for every flag class, both double-tailed rows, DrawVbos conditional tail and each R-2 Fatal arm
|
2026-09-11 13:58:06 -04:00 |
|
swung0x48
|
d17c6c225c
|
[Feat] (MG_Remote): MGPCapss two blob serializers and the ABI fingerprint - sparse format-capability tables, length-prefixed renderer strings, every decoder refusing truncation and trailing bytes
|
2026-09-11 13:58:06 -04:00 |
|
swung0x48
|
713d1b51ac
|
[Feat] (tools/gen_pipe, MG_Pipe): hand MGPipeApplyWireRecord to the installed decoder once its generated per-opcode bounds gate has passed, behind MOBILEGL_BUILD_DISAGGREGATED so the pull build gains no symbol
|
2026-09-11 13:58:06 -04:00 |
|
swung0x48
|
aa263d2169
|
[Feat] (MG_Remote): the G3 record codec - encoder, decoder, SEG_STAGE allocator and R-2s honesty arms, with the per-opcode tail cross-check MGP_WIRE_CHECK_BOUNDS cannot see
|
2026-09-11 13:58:06 -04:00 |
|
swung0x48
|
ff2994d9a8
|
[Docs] (MG_Remote): record R-15 and split the emit table's 71 slots into answered-locally, emitted and Fatal, with the forty-one null checks that are really capability probes
|
2026-09-11 13:23:46 -04:00 |
|
swung0x48
|
38f34c13b8
|
[Feat] (MG_Pipe): give resource_respecify's redefinition scope a wire carrier in the descriptor's two existing pad fields, so a per-level glTexImage cannot cross as a whole-resource redefinition and eat every other level's pending upload
|
2026-09-11 13:23:46 -04:00 |
|