Commit Graph

  • 7a2e256133 [Build] (Android): let the trace APK be built in the push shape for the paired A/B swung0x48 2026-09-07 23:38:49 -04:00
  • bb2a236d5f [Fix] (Pipe): drop the emitter arm for set_pixel_pack_state that spans retired swung0x48 2026-09-07 23:38:10 -04:00
  • 13d7e32b7b [Fix] (Tooling): restore the executable bit on the two device_bench entry points swung0x48 2026-09-06 12:45:58 -04:00
  • b1c37699b1 [Fix] (Bench, Trace, CI): let only the profile answer for itself, name an unreadable profile, and describe the CI step by the mechanism the tree has swung0x48 2026-09-06 10:20:44 -04:00
  • e5603f9a46 [Fix] (Test, Pipe): probe every arm by content, and let the G7 control's exit status carry what it already knows swung0x48 2026-09-06 10:16:15 -04:00
  • 08d14d85ef [Fix] (Bench): make the blend-toggle gate go red when the case it names stops running swung0x48 2026-09-06 10:09:49 -04:00
  • af20dba6db [Fix] (Trace, Bench, CI): compute p50 by the device's own median rule, fail the profile guard closed, and give the new control step its sibling's environment swung0x48 2026-09-06 09:08:04 -04:00
  • a5d1136c02 [Fix] (Test, Pipe): ask the BUILD, not the source tree, whether a control's arm exists, and probe the CSO emitter by content swung0x48 2026-09-06 09:05:57 -04:00
  • d704401a56 [Test] (Pipe): one case per CSO lane, because two of them would race on the lane's log swung0x48 2026-09-06 08:36:02 -04:00
  • ce9f44a24c [CI] (Pipe): make the dirty-surface report a gate and run the push-only unit tests on the verify runtime swung0x48 2026-09-06 08:20:35 -04:00
  • 1a012f2820 [Test] (Pipe): register the CSO control in the pull build too, so pull and push name the same tests swung0x48 2026-09-06 08:20:35 -04:00
  • b9c137e146 [Feat] (Bench, Pipe): run the blend-toggle case in CI, give G7 a negative control, and record the two campaign devices swung0x48 2026-09-06 08:14:35 -04:00
  • e9499d38bd [Feat] (Trace): record per-frame thread CPU time beside wall time so a paired A/B can be read as CPU cost swung0x48 2026-09-06 08:09:34 -04:00
  • f1780b9000 [Test] (Pipe): reproduce the handle ABA through public GL and pin the CSO content-addressing switch swung0x48 2026-09-06 08:04:54 -04:00
  • e5c032c89e [Fix] (Magma): log the mint's high-water at a level a shipped build keeps swung0x48 2026-09-06 11:29:34 -04:00
  • a174a06c79 [Fix] (Magma): size the {slot, gen} mint by the live working set instead of by a capacity, and give it to the renderer that uses it swung0x48 2026-09-06 11:16:25 -04:00
  • 46841ac706 [Fix] (Magma): assert rather than assume that a handle indexed into a per-slot table is non-null swung0x48 2026-09-06 10:00:59 -04:00
  • 01179c54d2 [Fix] (Magma): make the legacy-memo lever a startup gate for Magma's own bit, bound the {slot, gen} mint, and keep the all-pull arm free of push-only cost swung0x48 2026-09-06 09:59:00 -04:00
  • 3594f03c4e [Refactor] (State, Magma): take the backend's raw pointers out of the frontend VAO - the hash and state memos become the factory's own per-slot fields swung0x48 2026-09-06 08:31:13 -04:00
  • 43f8b47088 [Refactor] (Magma): key the vertex-input cache and the VAO draw memo on {slot, gen} instead of a lifetime id and a heap address swung0x48 2026-09-06 08:16:42 -04:00
  • c74c4819fb [Refactor] (Magma): drive the dynamic tail from the pushed dynamic version and make the chunk table check DynamicTailKey's inventory swung0x48 2026-09-06 08:08:33 -04:00
  • 96c544514e [Refactor] (Magma): key the pipeline memo on the render-state CSO handle and stop recomputing a hash the client already computed swung0x48 2026-09-06 08:06:22 -04:00
  • 59191cd296 [Fix] (Pipe, DirtySurface): resolve both sides of the dirty-surface derivation to member+field, follow reference and pointer aliases, and turn every write the analysis cannot place into an UNDECIDED answer instead of a verdict swung0x48 2026-09-07 22:43:44 -04:00
  • 8d0ed5b82c [Fix] (Pipe, DirtySurface): read the writes that go through a member's field and the ones the preprocessor pastes together, and decline the rows the write analysis cannot answer - its "UNDER-FIRING" verdicts were an absence proof it did not have, and one of them put a false answer in the map for a bit P2 already ships swung0x48 2026-09-06 13:06:01 -04:00
  • f15b0fdf4b [Fix] (Pipe): derive the dirty-surface map's object-class and value-class answers too, and correct the two rows that named a shutter their mutator never moves swung0x48 2026-09-06 11:49:31 -04:00
  • 8f66c374aa [Fix] (Pipe): re-arm the residual block on any render-state move and republish every vertex-attribute default on a fresh context swung0x48 2026-09-06 11:42:11 -04:00
  • 067b186677 [Docs] (Pipe): say what actually fails to publish a program, a pipeline and a shader dying, instead of naming a scope swung0x48 2026-09-06 10:28:06 -04:00
  • 5d4d91fe7e [Fix] (Pipe): carry the class a vertex-attribute default was written through, and stop the applier's lossy write from being observable swung0x48 2026-09-06 10:25:25 -04:00
  • bb781df527 [Fix] (Pipe): count the render-state CSO binds the cache has always declared and never incremented swung0x48 2026-09-06 10:25:25 -04:00
  • c574043c13 [Fix] (Pipe): derive the render-state answers of the dirty-surface map from RenderState.cpp instead of believing them, and correct the two rows that named a publisher which does not always fire swung0x48 2026-09-06 10:08:11 -04:00
  • 3ab394e2b8 [Test] (Pipe): give the pull build the same ctest names as the push build so a push-only case skips instead of vanishing swung0x48 2026-09-06 08:56:41 -04:00
  • 43bf97cc87 [Test] (Pipe): pin the tracker's shutters and the CSO cache's content addressing, including the collision the memcmp exists to stop swung0x48 2026-09-06 08:53:24 -04:00
  • 3302ee82b5 [Feat] (Pipe): map every frontend mutator onto the aggregate generation that publishes it, and make the dirty-surface scanner a gate swung0x48 2026-09-06 08:49:21 -04:00
  • 7dec32a574 [Feat] (Pipe): carry what has no call of its own in the residual value block and abort when it disagrees with the assembled state swung0x48 2026-09-06 08:44:58 -04:00
  • dcfa5ad311 [Feat] (Pipe): push pixel-pack, patch and vertex-attribute-default state as their own calls, the last one behind the set-hash suppressor swung0x48 2026-09-06 08:34:38 -04:00
  • aa64c91052 [Feat] (Pipe): mint render-state CSOs on the pipeline subset and send only the dynamic chunks that moved - the steady-state cost of the whole render-state family is now two Uint16 compares swung0x48 2026-09-06 08:28:25 -04:00
  • fcd4ad3799 [Feat] (Pipe): compute the per-verb dirty mask at the validate point and count how often each bit fires swung0x48 2026-09-06 08:15:38 -04:00
  • de532f55a9 [Feat] (State): give the frontend six aggregate generations so a tracker can answer "did any bound texture, buffer, attachment or attribute move" with one Uint64 compare swung0x48 2026-09-06 08:06:12 -04:00
  • 3d1a866e82 [Test] (Espryt): pin that the armless cases put the operator's log path and MG_Config::Features back as they found them swung0x48 2026-09-07 22:46:02 -04:00
  • df784c6752 [Fix, Test] (Espryt): deliver a death notice to every holder of a kind, retire the twin table's last sweep, and pin the bring-up call site under the armless knob pair swung0x48 2026-09-07 22:28:58 -04:00
  • c9dd173201 [Fix] (Espryt): close four review minors on the twin table - a walk that can outlive its vector, a null call that is not arm-equivalent, and two comments that claimed more than the code does swung0x48 2026-09-06 13:21:07 -04:00
  • f5bd1a0412 [Test] (Espryt): drive the acquire / look up / delete / re-acquire walk through the real registry for all six re-keyed kinds swung0x48 2026-09-06 13:12:59 -04:00
  • 6cb7d1b83b [Fix] (Espryt, State): let the last four object classes announce their own death and delete the twin table's garbage collector swung0x48 2026-09-06 13:11:14 -04:00
  • 7c97fcfee3 [Fix] (Espryt): stop the armless knob pair inside the test that needs an arm, not inside the EGL bring-up a forked pre-flight swallows swung0x48 2026-09-06 13:03:10 -04:00
  • caa0a7221b [Fix] (Espryt): pick the unit-bindings debounce by the runtime arm, and stop two slot cases sharing one kind swung0x48 2026-09-06 11:02:29 -04:00
  • eb81705130 [Fix] (Espryt): tell the backend when a frontend object dies instead of discovering it in a garbage sweep swung0x48 2026-09-06 11:02:12 -04:00
  • e10f5d6750 [Test] (Espryt): run the sanity binary on the twin arm it was compiled for, and pin that it does swung0x48 2026-09-06 11:01:18 -04:00
  • 5a3c0616b7 [Test] (Espryt): pin the churn-driven sweep cadence, the null tolerance, and the one slot per object the two Track H slices share swung0x48 2026-09-06 09:36:21 -04:00
  • 9a8369296e [Fix] (Espryt): sweep the twin table on object churn again, refuse to run an arm the operator disabled, and give the hot lookups back their array probe swung0x48 2026-09-06 09:36:08 -04:00
  • 149e26a79a [Fix] (Espryt): do not return a reference through a null slot pointer, and stop a comment claiming a memo that is no longer there Swung0x48 2026-09-06 08:23:57 -04:00
  • 3160c4b85b [Test] (Espryt): pin the twin table identity contract - a reclaimed slot is a new handle and the stale one resolves to nothing Swung0x48 2026-09-06 08:12:45 -04:00
  • bd2092f4eb [Refactor] (Espryt): key every backend twin on {slot, gen} instead of the frontend object heap address Swung0x48 2026-09-06 08:11:03 -04:00
  • f4dbea2300 [Feat] (Espryt): give the backend a dense {slot, gen} twin table beside the address-keyed registry Swung0x48 2026-09-06 08:02:18 -04:00
  • 9eae98581f [Test] (SelfTest, POST): probe upload/draw ordering in persistently mapped vertex arenas - native GLES controls distinguish mapped destination corruption from staging and synchronization failures swung0x48 2026-09-07 00:44:08 -04:00
  • d7655247f7 [Fix, Test] (DirectGLES, Integration): rebind VAOs when an adopted buffer is respecified - the immediate retire path forgot the buffer-id generation, so cached vertex and element bindings kept the deleted store swung0x48 2026-09-06 22:55:06 -04:00
  • 842af23331 [Chore] (Pipe): drop the executable bit from MGPipeRenderStateSpans.cpp swung0x48 2026-09-06 09:51:14 -04:00
  • d1a7c5f159 [Fix] (Pipe): stop claiming set_pixel_pack_state supplies a field it only half writes, and fold the chunk boundaries into the subset hash's seed swung0x48 2026-09-06 09:51:14 -04:00
  • ce370a3e84 [Test] (Pipe): drive both redundancy trip wires and the four apply entry points nothing in any build reached, and finish the setter walk's stencil faces and hint targets swung0x48 2026-09-06 09:51:14 -04:00
  • bee07c3273 [Fix] (Pipe): arm both applier trip wires off the applier's own scatter ledger instead of off a bound handle, and stop leaving a mixed CSO or a malformed attribute tail to a DEBUG-only assertion swung0x48 2026-09-06 09:51:14 -04:00
  • 7c2c1456f8 [Test] (Pipe): make the slot allocator's ABA case prove its claim without waiting for the heap, and narrow the DEBUG skip to the arm that needs it swung0x48 2026-09-06 09:00:04 -04:00
  • ad1238bd6f [Test] (Pipe): require a named pipeline member to be WHOLLY pipeline, drive every indexed setter at index 0, and walk the incremental chunk path swung0x48 2026-09-06 09:00:04 -04:00
  • a9bb99a46a [Fix] (Pipe): scope the derivation to the chunks a scatter moved, and give the patch trio and the residual block trip wires that do not depend on call order swung0x48 2026-09-06 09:00:04 -04:00
  • 02b970e9c1 [Test] (Pipe): pin the slot allocator's identity contract - gen moves only on reuse and a recycled address never reproduces a handle swung0x48 2026-09-06 08:16:53 -04:00
  • eec92cd221 [Test] (Pipe): walk every RenderState setter and assert the pipeline-subset hash moves exactly when the pipeline version does swung0x48 2026-09-06 08:16:53 -04:00
  • 810850b13a [Feat] (Pipe): derive every render-state PipeInputs field from the assembled working block instead of pulling it again from GLContext swung0x48 2026-09-06 07:58:53 -04:00
  • 9c6a8a25d8 [Feat] (Pipe): land the P2 contract - real storage for the three swallowed capabilities, the render-state chunk table and its subset hash, the in-process applier, the slot allocator, the subsystem bitmask and the residual ratchet down to 8 swung0x48 2026-09-06 07:45:07 -04:00
  • 4826806881 [CI] (Workflows): run the test and apk lanes on every push to feat/disaggregated swung0x48 2026-09-06 06:32:37 -04:00
  • e7a6a72f6a [Docs] (Disaggregated): record the P1 landing and what its verify lane found swung0x48 2026-09-06 06:17:12 -04:00
  • 62a7786184 [Fix] (Pipe, Purity): end a declared verb honestly, and gate the header MG_State now includes swung0x48 2026-09-06 06:14:10 -04:00
  • ef6227e19b [Test] (Pipe): let a test that drives a backend helper directly declare the verb it stands in swung0x48 2026-09-06 05:11:06 -04:00
  • 9bd6d39403 [Test] (Pipe): pin the push-on-mutation shape - a frontend write inside a verb refreshes the pushed field, and only its value swung0x48 2026-09-06 05:32:25 -04:00
  • 6b681c4a63 [Fix] (Pipe, State): refresh a pushed PipeInputs field when the frontend moves it inside a verb swung0x48 2026-09-06 05:32:13 -04:00
  • 80a6b39003 [Fix] (Pipe): fill the capability set on a texture op and a dispatch, and the shader blit's viewport, provoking vertex and buffer bindings swung0x48 2026-09-06 05:31:50 -04:00
  • 97b997d5da [CI] (Pipe): read the verify library's static symtab, grep only the arming lane's log, and stop the two retrace lanes overwriting each other's evidence swung0x48 2026-09-06 02:39:10 -04:00
  • 7d80c9678e [Test] (Retrace): scan a verify retrace's log for the third MGPipe Fatal too swung0x48 2026-09-06 02:39:10 -04:00
  • 72aa9191b4 [Fix] (Tooling): gate symbol_report on all four buckets and on a .text that moved in either direction swung0x48 2026-09-06 02:38:49 -04:00
  • 1e3a74686f [Test] (Pipe): give the arming assertion a lane and a log of its own, and stop the poison child calling a sequence it never ran a success swung0x48 2026-09-06 02:38:38 -04:00
  • 0fe7bf82d2 [CI] (Pipe): the third CI mode - a verify build, its integration and retrace lanes, and the two negative controls as always-on steps swung0x48 2026-09-06 02:07:03 -04:00
  • 416cd23c28 [Feat] (Tooling): give symbol_report.py the two hard gates G1 needs, with the report written first swung0x48 2026-09-06 02:01:22 -04:00
  • 5f8e8db1b9 [Test] (Retrace): make a retrace under MOBILEGL_PIPE_VERIFY prove it armed, and give the lane a label swung0x48 2026-09-06 01:59:39 -04:00
  • bdf05514c3 [Test] (Pipe): the integration-verify lanes and their two always-on negative controls swung0x48 2026-09-06 01:57:05 -04:00
  • bf8b39a867 [Refactor] (Magma): route every frontend read through MGB_CTX - 164 arrow sites sed'd, 49 non-arrow lines converted (43 asserts keep their meaning as MGB_CTX_LIVE); pull build byte-identical swung0x48 2026-09-06 01:46:50 -04:00
  • d4504e30f8 [Refactor] (Espryt): route every frontend read through MGB_CTX - 113 arrow sites sed'd, 9 non-arrow lines converted (the fb-slot cache keys on MGB_CTX_IDENTITY); pull build byte-identical swung0x48 2026-09-06 01:51:40 -04:00
  • 9087f13308 [Fix] (Pipe): let a readback fill the transform-feedback state its emulation reads swung0x48 2026-09-06 04:41:15 -04:00
  • 44ffafb2dc [Test] (Pipe): pin the pre-fill window - every stamp of 0 is stale at serial 0, a read before any fill aborts naming "<none>", and the FATAL=0 child leaves through std::exit so the teardown summary is observed swung0x48 2026-09-06 02:55:17 -04:00
  • 12b57055b7 [Docs] (Pipe): record why the forwarders carry no poison check, the InHook re-entry guard, and the Index slot no FillPoints.def row can fill swung0x48 2026-09-06 02:55:17 -04:00
  • d0ff647581 [Fix] (Pipe): re-arm the verify comparator when any of its three knobs changes, not only when PipeVerify does swung0x48 2026-09-06 02:55:17 -04:00
  • 30d72c5b4e [Fix] (Pipe): refuse a stamp of 0 as fresh on both branches - a read before the first fill is Fatal{UnmigratedPipeInput, "<Field>@<none>"}, not default storage swung0x48 2026-09-06 02:55:17 -04:00
  • d9f4698d98 [Test] (Pipe): give every PipeInputsTest process its own log file, and cover the compare-at-read arm, the three knob parsers and VERIFY_FATAL=0 with forked children swung0x48 2026-09-06 02:31:56 -04:00
  • 878db2c405 [Fix] (Pipe): re-parse the POISON_OMIT and VERIFY knobs when their Features value changes, not once per process swung0x48 2026-09-06 02:31:56 -04:00
  • 77ecde1524 [Fix] (Pipe): refuse an eighth sticky row at compile time - the forwarded count equals the generated sticky count swung0x48 2026-09-06 02:31:56 -04:00
  • 510ecd9293 [Fix] (Impl): move the DeleteSync fill of the orphan sweep inside its null-entry guard swung0x48 2026-09-06 02:31:56 -04:00
  • 440d3c5253 [Test] (Pipe): pin the P1 poison and verify shapes - 63 fields, 69 verbs, the seven sticky fields, an omitted GenerateMipmap field leaves exactly that field stale, a corrupted snapshot names its field, reading an unfilled field aborts with SIGABRT swung0x48 2026-09-06 02:06:37 -04:00
  • 83b16561c2 [Feat] (Pipe): give the six value structs G4 field lists and assert the lists cover their members - the memcmp fallback is now a compile error, floats in vector types compare bitwise swung0x48 2026-09-06 02:02:07 -04:00
  • 275dd3edb4 [Feat] (Pipe): the MOBILEGL_PIPE_VERIFY shadow comparator - a per-verb entry compare over the fill set and a compare-at-read in every accessor, first differing field and verb serial, fatal by default swung0x48 2026-09-06 01:56:44 -04:00
  • a196ada4c1 [Feat] (Impl): call MGP_FILL before every GLFunctionsTable entry - 83 statements over 69 verbs, a no-op in the pull build swung0x48 2026-09-06 01:51:16 -04:00
  • 3aa4d8af1f [Feat] (Pipe): fill PipeInputs per verb class from GLContext and stamp per-verb generations - a read of a field the verb did not fill is Fatal{UnmigratedPipeInput} swung0x48 2026-09-06 01:48:23 -04:00
  • bf86b1ede6 [Feat] (Pipe): land the P1 contract - PipeInputsSwitch.h with MGB_CTX, the 63-field PipeInputs block with type-identical accessors, FillPoints.def and its G5b generator, the MOBILEGL_PIPE_PUSH/VERIFY options and the three verify knobs; pull build unchanged swung0x48 2026-09-06 01:35:45 -04:00
  • 087685d19b [CI] (Purity): install libx11-dev for the include-graph-check job swung0x48 2026-09-05 23:27:10 -04:00
  • 5635e33ffe [Docs] (Disaggregated): record the P0.5 landing swung0x48 2026-09-05 23:22:15 -04:00