swung0x48
|
4e055e4686
|
Reword the permanent client-window refusal text and drop the stale P12 tag.
|
2026-10-09 14:23:32 -04:00 |
|
swung0x48
|
9f61016776
|
Add an end-user guide under userguide/.
|
2026-10-09 13:36:15 -04:00 |
|
swung0x48
|
9f4d9095a9
|
Docs (P15): windowed out-of-process smoke of the LTO plugin passes on both backends; aux-socket shared-image send error noted.
|
2026-10-09 12:54:30 -04:00 |
|
swung0x48
|
6ffd2084fb
|
Docs (P15): open queue puts the CI fix and the user guide first, plus the clock-restore and stale surface-message follow-ups.
|
2026-10-09 12:54:29 -04:00 |
|
swung0x48
|
c0ea142955
|
Docs (P15): hand-off of the running m2ab job (2a/2b A/B) and the LTO server-link check.
|
2026-10-09 12:54:28 -04:00 |
|
swung0x48
|
fe748773f3
|
Docs (P15): hand-off for the next agents (LTO GL CPU Magma 2.52 -> 2.36, Espryt 2.99 -> 2.90; levers table; WIP branches; harness rules).
|
2026-10-09 12:54:27 -04:00 |
|
swung0x48
|
1b2e817a97
|
Magma: wire-store rename spares 4 -> 12 with one fence question per rename, and a 50 us quiet window on unsignaled fence polls (FCL monolith GL CPU 2.44 -> 2.38 ms, 272 -> 278 fps at cpuhunt).
|
2026-10-09 12:54:27 -04:00 |
|
swung0x48
|
c4032d2022
|
Bench: freqcheck judges clocks over the measurement windows and thermal signals over the whole run (BSL's idle-GPU warmup sample no longer invalidates a pinned run).
|
2026-10-09 12:54:25 -04:00 |
|
swung0x48
|
09ae776836
|
Docs (P15): BSL 3 reps (1c +3.4 % fps on the GPU-bound scene; Magma ~0.99 of MobileGlues, whose runs fail only an out-of-window clock sample).
|
2026-10-09 12:54:24 -04:00 |
|
swung0x48
|
2b8c04373d
|
Gradle builds the library with LTO by default, and the LTO block adds probed ICF, gc and interposition flags per toolchain.
|
2026-10-09 12:54:24 -04:00 |
|
swung0x48
|
fcf5ae5659
|
Magma: an enabled scissor test over a never-written box clips nothing instead of everything (DefaultScissorFollowsSurfaceScenario runs on DirectVulkan instead of skipping).
|
2026-10-09 12:54:23 -04:00 |
|
swung0x48
|
2bbb67e528
|
DirectGLES: emulate a same-image glBlitFramebuffer through a scratch copy (red-once: without it ATextureBlittedWithinItselfIsSampledByTheNextDraw fails on DirectGLES and DirectGLES.Split).
|
2026-10-09 12:54:22 -04:00 |
|
swung0x48
|
db346f2844
|
Docs (P15): fbm2 row (pipe batch: Magma GL CPU 2.68 -> 2.62, Espryt 3.03 -> 3.00) and BSL check note.
|
2026-10-09 07:42:24 -04:00 |
|
swung0x48
|
c85c9439a5
|
Magma: the pipeline, program and sampler hashes read their thread_local state once per hash (GetOrCreatePipeline 0.026 -> 0.013 ms/frame).
|
2026-10-09 07:42:03 -04:00 |
|
swung0x48
|
485dff1421
|
Pipe: per-framebuffer state memo, object-held handle hints, per-buffer handle reuse and a cached per-verb gate (ValidateForVerb 0.328 -> 0.282 ms/frame; FCL GL CPU Magma 2.68 -> 2.62, Espryt 3.03 -> 3.00; red-once per piece in its unit case).
|
2026-10-09 07:42:03 -04:00 |
|
swung0x48
|
9ff97c2e7e
|
CI: the control smoke test's stub ctest follows E1 to ApplierReset as well.
|
2026-10-09 06:52:45 -04:00 |
|
swung0x48
|
afcc313d9f
|
Docs (P15): fbm row (first FB-state memo within noise, per-target entry misses on A/B/A) and handoff; BSL gpuhunt shows no GPU regression from 1c (53.8 -> 55.7 fps).
|
2026-10-09 06:41:45 -04:00 |
|
swung0x48
|
9eed5a27d7
|
CI: the E1 wait-boundary control follows its unit case to ApplierReset (GenerateMipmap went kWaitNone in 2fbcc224), and ScenarioIsolationScenario's four verify-split entries are listed as reaching no verb.
|
2026-10-09 06:41:45 -04:00 |
|
swung0x48
|
8941eae008
|
Docs (P15): 1c rows (Magma inproc +5.0 % fps), PARITY-AUDIT M1 cross-FBO deferral, Espryt attrib-format split parked.
|
2026-10-09 04:50:18 -04:00 |
|
swung0x48
|
533a256482
|
Magma: wire clears defer into the next pass's load op and pass-begin barriers coalesce (passes 11.5 -> 4.3, barriers 15.5 -> 9.0 per frame; inproc apply 1.41 -> 1.24 ms; red-once: no materialize fails 4 ClearOrder cases, a dropped fold fails 2).
|
2026-10-09 04:50:17 -04:00 |
|
swung0x48
|
65d4b808c1
|
Espryt: the surface size is memoized per session until a swap or a draw-surface change (FCL monolith CPU 3.18 -> 3.05 ms/frame; red-once: an uninvalidated memo fails DefaultScissorFollowsSurfaceScenario).
|
2026-10-09 04:10:20 -04:00 |
|
swung0x48
|
98b2c37384
|
Docs (P15): monolith diff vs dev and H2 rows; Magma records 12.6 passes and 27.5 barriers/frame against dev's 4.1 and 3.4.
|
2026-10-09 04:10:18 -04:00 |
|
swung0x48
|
d2acb75766
|
Test: UploadOrderScenario checks a texture upload lands where the app issued it (red-once: hoisting it past recorded uses fails all 4 Magma cases).
|
2026-10-09 04:10:17 -04:00 |
|
swung0x48
|
6933228d59
|
Docs (P15): scoreboard with the fixed dev reference and harness H2 (pinned A720, SF frame source; spread 9.3% -> 1.2-2.9%).
|
2026-10-09 04:10:16 -04:00 |
|
swung0x48
|
d786f1c072
|
Magma: the shader blit keeps its views and framebuffer across frames (two views + one VkFramebuffer created and retired per blit before, ~0.03 ms/frame).
|
2026-10-09 04:10:15 -04:00 |
|
swung0x48
|
79b6deacaf
|
CI: ScenarioIsolationScenario is exempt from split coverage as a mechanism case (its pair only means something run back to back in one process).
|
2026-10-09 04:09:48 -04:00 |
|
swung0x48
|
262c8985a9
|
Merge the integration-test scenario isolation fix.
|
2026-10-08 23:10:12 -04:00 |
|
swung0x48
|
e5ab9d4f06
|
CI: barriered-validate wrapper builds without the transport, and the field-ownership self-test expects CopyTexImage2D unbarriered since P15.
|
2026-10-08 23:04:48 -04:00 |
|
swung0x48
|
129355961e
|
[Fix] (MG_IntegrationTest): each scenario starts with no program current and no GL error pending, so a case deleting its current program no longer breaks the next one in the same process.
|
2026-10-08 21:54:10 -04:00 |
|
swung0x48
|
6cecfcd22f
|
Docs (P15): handoff for the async default and frames in flight.
|
2026-10-08 19:49:55 -04:00 |
|
swung0x48
|
16867c5c64
|
Docs (P15): final wait-class verdicts.
|
2026-10-08 19:49:06 -04:00 |
|
swung0x48
|
0b96a3efbf
|
MOBILEGL_FRAMES_IN_FLIGHT drives both backends and derives the split present credit (default 3 keeps credit 1; the Magma name stays as an alias).
|
2026-10-08 19:49:05 -04:00 |
|
swung0x48
|
2fbcc22410
|
Pipe: fire-and-forget is async - mipmap, copies, XFB span and storage-block rows to kWaitNone, inproc creates and PBO readbacks stop waiting, and the default dual block lets a barriered verb cost one wait (FCL BSL: ~40 sync points/frame).
|
2026-10-08 19:49:04 -04:00 |
|
swung0x48
|
1771381057
|
Docs (P15): wait-class audit for review and the inproc census and credit results.
|
2026-10-08 18:46:44 -04:00 |
|
swung0x48
|
2a1f1df6d1
|
Docs (P15): handoff notes on the inproc serialization and the anland root cause.
|
2026-10-08 18:02:05 -04:00 |
|
swung0x48
|
cc5a4c0a60
|
Bench session retries a slow service restart for up to 30 s before reporting it not restored.
|
2026-10-08 18:02:04 -04:00 |
|
swung0x48
|
7acf3ea8e1
|
Transport: MOBILEGL_IPC_WAIT_STATS logs the run-ahead client's waits per frame by record op, quiesce reason and barriered verb; the per-frame P65ClientPace line drops to debug.
|
2026-10-08 18:02:03 -04:00 |
|
swung0x48
|
db915f76f0
|
Transport: a client parked on the present credit is rung only by the credit, not by every retired drain batch (apply-thread futex wakes 0.056 ms/frame on FCL inproc).
|
2026-10-08 18:02:03 -04:00 |
|
swung0x48
|
657722ff57
|
Pipe: a buffer-only glBindVertexBuffer no longer rebuilds and compares the vertex-elements blob (VAO elements version; red-once: BindVertexBufferSwitchesAndOffsets fails on both backends).
|
2026-10-08 18:02:02 -04:00 |
|
swung0x48
|
58a97bb7b8
|
Bench session stops the anland app at start and relaunches it at stop, so FCL keeps the foreground.
|
2026-10-08 18:02:01 -04:00 |
|
swung0x48
|
e00db8e64f
|
Pipe: every verb names its record op in a verb-indexed table (static_assert: one row per verb), so a verb syncs only when its record does; the barriered fallback that quiesced the applier once per frame at the blit is gone (FCL inproc GL-thread wait 1.65 ms/frame; red-once: blit row removed aborts the run-ahead blit test, missing row fails to compile).
|
2026-10-08 18:02:01 -04:00 |
|
swung0x48
|
19a96929aa
|
[Docs] (P15): handoff with the cpuhunt/gpuhunt references, the apply-thread breakdown and the open guilty-check decision.
|
2026-10-08 15:26:52 -04:00 |
|
swung0x48
|
500b63ea58
|
[Perf] (Magma): a renamed wire store reuses its retired buffers once their submissions complete (FCL inproc apply thread 1.74 -> 1.61 ms/frame at cpuhunt).
|
2026-10-08 15:26:24 -04:00 |
|
swung0x48
|
c8a5abe581
|
[Perf] (pipe): a vertex-elements record identical to the one its VAO already published is not re-created (FCL Espryt, shadow off: host calls 3724 -> 1228/frame).
|
2026-10-08 12:31:57 -04:00 |
|
swung0x48
|
49c6394dfd
|
[Tools] (config): debug.mobilegl.env sets MOBILEGL_* knobs in an app-hosted Android process, and the device-state line carries them.
|
2026-10-08 10:59:10 -04:00 |
|
swung0x48
|
b4e209e12b
|
[Perf] (Espryt): a shadow of each driver VAO's attribute state makes the vertex walk emit only differences (FCL host GLES calls 3717 -> 850/frame, CPU 2.78 -> 2.67 ms at cpuhunt).
|
2026-10-08 10:49:29 -04:00 |
|
swung0x48
|
6985e47025
|
[Tools] (bench): push the frequency sampler with CRs stripped, so a CRLF checkout still runs on the device.
|
2026-10-08 09:32:52 -04:00 |
|
swung0x48
|
3c61689dac
|
[Docs] (P15): two-level CPU target, clock profiles and the measurement-validity rule.
|
2026-10-08 09:31:27 -04:00 |
|
swung0x48
|
efa415b00c
|
[Tools] (bench): clock profiles, bench sessions that release the perf stack's frequency caps, and a per-run frequency/thermal validity line.
|
2026-10-08 09:31:26 -04:00 |
|
swung0x48
|
4e27342e81
|
[Test] (trace): FCL MC 1.21.5 vanilla fixture, a 252-frame window with a dev DirectGLES golden that both backends match (ci:false).
|
2026-10-08 09:31:25 -04:00 |
|
swung0x48
|
4a8ecf9aaf
|
[Docs] (P15): S0 handoff, parity audit corrections and the bsl workload in matrix_p14.
|
2026-10-08 06:59:56 -04:00 |
|
swung0x48
|
748ffc31c5
|
[Perf] (Magma): small busy wire buffers are renamed from a host shadow instead of a staged copy that ends the pass (FCL WriteWireBuffer 0.100 -> 0.077 ms/frame).
|
2026-10-08 06:59:40 -04:00 |
|
swung0x48
|
855b3b5009
|
[Perf] (Magma): converted wire vertex streams are cached across frames and default-framebuffer clears stay standalone (BSL Magma 19.5 -> 77.2 fps, MobileGlues 78.2).
|
2026-10-08 06:59:39 -04:00 |
|
swung0x48
|
4984da923f
|
[Perf] (Magma): wire clears record inside the draw pass, draw passes are cached across frames and blit sets come from per-frame pools (FCL Magma CPU 3.29 -> 2.37 ms/frame).
|
2026-10-08 06:59:38 -04:00 |
|
swung0x48
|
c7360b47e2
|
[CI] Apt install steps get 45-minute timeouts; 15 cut off a slow-mirror install.
|
2026-10-08 05:40:20 -04:00 |
|
swung0x48
|
91f04ebc7c
|
[CI] Network setup steps get 15-minute step timeouts and one retry (Vulkan SDK, Android SDK), and the NDK download retries three times.
|
2026-10-08 03:09:04 -04:00 |
|
swung0x48
|
84ec06f3fc
|
[Docs] (P15): swap-interval stage, user decisions, and the FCL probe tools.
|
2026-10-08 00:22:22 -04:00 |
|
swung0x48
|
408b9fcade
|
[Docs] (P15): plan, FCL wait diagnosis and parity-audit seed.
|
2026-10-08 00:22:22 -04:00 |
|
swung0x48
|
ddfbdab0e8
|
[Fix] (MG_Test): the guilty-reset case waits for the held drain, not for an ack the hold delays, and the supervisor's refusal line is waited for in its log.
|
2026-10-07 23:25:09 -04:00 |
|
swung0x48
|
80c6aa39da
|
[Fix] (CI): the spawn-lane parity gate sanctions the inproc-only .SyncValidation. tail, as it does .Mip3DValidation.
|
2026-10-07 22:20:45 -04:00 |
|
swung0x48
|
92da2486c5
|
[Fix] (CI): the latch-site gate's DrainRing pattern accepts the drain's poll-head parameter.
|
2026-10-07 22:13:20 -04:00 |
|
swung0x48
|
a0f4aa830e
|
[Docs] (P14): close-out bench, README, next-phase draw-packet sketch, DEBTS rows and handoff (rd12 monolith Espryt 69.8 -> 91.1, Magma 45.4 -> 83.8 fps).
|
2026-10-07 21:20:11 -04:00 |
|
swung0x48
|
781a7446c4
|
[CI] (Magma): the run-ahead and cache sync-validation gates turn on submit-time validation, without which a cross-submission hazard is never reported (a broken upload barrier now reds the run-ahead gate).
|
2026-10-07 19:49:33 -04:00 |
|
swung0x48
|
86ab28355c
|
[Fix] (MG_IntegrationTest): the upload-between-draws entries get one private log per case and the sync-validation entry is inproc only, as the split gates require.
|
2026-10-07 19:23:10 -04:00 |
|
swung0x48
|
e058a4507a
|
[Perf] (MG_Remote): the apply loop hands its poll's ring head to the drain, so a woken drain does not poll the GPU-fault verdict twice (Espryt rd12 inproc apply thread 1.34 -> 0.78 ms/frame).
|
2026-10-07 18:21:12 -04:00 |
|
swung0x48
|
ec973fba84
|
[Fix] (Magma): a hang-watch marker slot is reused once its submission's fence completed, not once the host read its event.
|
2026-10-07 17:53:39 -04:00 |
|
swung0x48
|
67f4f311d3
|
[Test] (MG_IntegrationTest): texels uploaded between two in-flight draws of one frame, every arm plus Magma monolith/inproc under submit-time synchronization validation (red on a broken upload barrier).
|
2026-10-07 17:53:38 -04:00 |
|
swung0x48
|
c24b3428d6
|
[Fix] (MG_Remote): the apply drain polls the GPU-fault verdict before a record its last poll could not have seen, so a guilty reset stops the next record again (549a34bb regression; the test now holds that window open).
|
2026-10-07 17:53:37 -04:00 |
|
swung0x48
|
553eb86d31
|
[Perf] (Magma): texture level uploads stop waiting for the GPU to drain; queue order and the upload barrier already order them (rd12 monolith 70.4 -> 83.4, openra 367 -> 745 fps).
|
2026-10-07 16:26:07 -04:00 |
|
swung0x48
|
785df78d77
|
[Perf] (P14): one UBO-ring lookup per draw, split residual copy/stamp loops, one context read for GPU-write marks, Magma slice stamps from the owner's counter (rd12 monolith Espryt 88.8 -> 90.3, Magma 69.8 -> 70.3 fps).
|
2026-10-07 16:06:02 -04:00 |
|
swung0x48
|
0bd0abf652
|
[Docs] (P14): handoff names the dispatched CI runs.
|
2026-10-07 15:25:15 -04:00 |
|
swung0x48
|
ff53ba3b2b
|
[Docs] (P14): checkpoint handoff.
|
2026-10-07 15:24:42 -04:00 |
|
swung0x48
|
94705adccd
|
[Perf] (MG_Pipe): inline process applier, a precomputed residual-fill walk, word-wise uniform spans and memo-answered draw bindings (rd12 monolith Espryt 83.5 -> 88.6, Magma 67.0 -> 69.5 fps).
|
2026-10-07 15:21:58 -04:00 |
|
swung0x48
|
81bdfb1f80
|
[Perf] (Espryt): twin lookups skip the bucket SharedPtr copy and the native-context state is one thread-local block (rd12 monolith 81.0 -> 84.1 fps).
|
2026-10-07 15:21:57 -04:00 |
|
swung0x48
|
4fe2edb6fa
|
[Tools] (P14): profile_p14.sh profiles the tcp arm too.
|
2026-10-07 14:58:23 -04:00 |
|
swung0x48
|
032dcd240e
|
[Perf] (Magma): the wire vertex-input layout is kept on its vertex-elements record and buffer handles resolve through a slot-indexed front.
|
2026-10-07 14:58:22 -04:00 |
|
swung0x48
|
c1497bb83e
|
[Perf] (MG_Pipe): a vertex array keeps its buffer and index bindings on the server, a small uniform change crosses as a span, and unchanged context values skip their record (rd12 split arms +5-10%).
|
2026-10-07 14:58:21 -04:00 |
|
swung0x48
|
114bd70122
|
[Tools] (P14): FCL restore deletes the two properties instead of setting them empty.
|
2026-10-07 13:21:25 -04:00 |
|
swung0x48
|
0158a115de
|
[Perf] (Magma): a wire draw that provably continues the open pass skips the attachment resolve and pass-key walk (rd12 monolith 63.2 -> 65.5, inproc 89.8 -> 92.6 fps).
|
2026-10-07 13:21:24 -04:00 |
|
swung0x48
|
8883e496bd
|
[Perf] (MG_Pipe): the residual fill keeps unchanged object pins and a memoised vertex-buffer set keeps its hash (rd12 Espryt monolith +1%).
|
2026-10-07 13:21:23 -04:00 |
|
swung0x48
|
0cc54748f0
|
[Tools] (P14): layers.py can list the entries into one layer.
|
2026-10-07 12:32:18 -04:00 |
|
swung0x48
|
80dc9d45d9
|
[Perf] (MG_Pipe): a per-VAO memo keeps the emitters' handles and buffer set across draws, and an unchanged context-value record skips its hash (rd12 Espryt monolith +1%).
|
2026-10-07 12:32:05 -04:00 |
|
swung0x48
|
d07ec0255b
|
[Tools] (P14): benchmark runs default to no per-frame glFinish, plus FCL and layer-split helpers.
|
2026-10-07 12:15:12 -04:00 |
|
swung0x48
|
4f4297f347
|
[Tools] (P14): opt-in fps log at swap (debug.mobilegl.fps_log) and a debug.mobilegl.transport override for app-hosted libraries.
|
2026-10-07 12:15:11 -04:00 |
|
swung0x48
|
5788a6023e
|
[Perf] (Magma): a wire draw whose image descriptors cannot have moved rebinds its descriptor set with fresh buffer offsets (rd12 monolith 60.5 -> 63.3, inproc 83.7 -> 89.7 fps).
|
2026-10-07 12:15:10 -04:00 |
|
swung0x48
|
afcf8d96f9
|
[Perf] (Espryt): a VAO twin adopts an unchanged buffer set and element buffer instead of re-emitting them (rd12 monolith 75.2 -> 80.5 fps).
|
2026-10-07 12:15:10 -04:00 |
|
swung0x48
|
e6281b26de
|
[Perf] (Magma): wire texture and buffer lookups get direct-mapped fronts and a continued pass stops re-marking its attachments (rd12 monolith 59.6 -> 60.5 fps).
|
2026-10-07 11:25:02 -04:00 |
|
swung0x48
|
eafe1179b3
|
[Tools] (P14): the profiler records the whole run and the analysis cuts the steady tail.
|
2026-10-07 10:50:39 -04:00 |
|
swung0x48
|
4ef9705ee0
|
[Perf] (Magma): wire draws memoise each unit's sampler and skip rebinding an unchanged pipeline, vertex or index binding (rd12 monolith 57.9 -> 60.3 fps).
|
2026-10-07 10:50:38 -04:00 |
|
swung0x48
|
b556ec3134
|
[Perf] (Espryt): a clean framebuffer attachment skips its per-draw resync behind the unit list's gate (rd12 monolith 74.5 -> 77.0 fps).
|
2026-10-07 10:50:37 -04:00 |
|
swung0x48
|
0b0089e599
|
[Tools] (P14): the sampler and profiler find spawn and tcp server processes by their install path, plus a per-component profile split.
|
2026-10-07 10:27:01 -04:00 |
|
swung0x48
|
8346d80999
|
[Perf] (MG_Pipe): lifetime-id slot lookups get a direct-mapped front and buffer binding slots are indexed (rd12 monolith +1.5%).
|
2026-10-07 10:27:00 -04:00 |
|
swung0x48
|
549a34bb1a
|
[Perf] (MG_Remote): the apply loop asks the GPU-fault verdict every 256 records and at each present, not per record (Espryt rd12 inproc 55.5 -> 60.2 fps).
|
2026-10-07 10:26:59 -04:00 |
|
swung0x48
|
2b0857b016
|
[Tools] (P14): sampler sees server processes and GPU busy every tick, arms can name a second build, and a simpleperf profile helper.
|
2026-10-07 10:07:44 -04:00 |
|
swung0x48
|
a9108e1a0b
|
[Perf] (Espryt): a VAO twin whose buffer set alone moved re-points enabled arrays without the 32-slot enable walk (rd12 monolith 70.3 -> 73.5 fps).
|
2026-10-07 10:07:43 -04:00 |
|
swung0x48
|
267211e8b4
|
[Perf] (Magma): wire draws stop rehashing program SPIR-V and stop allocating per draw (rd12 monolith 45.7 -> 56.7 fps).
|
2026-10-07 10:07:42 -04:00 |
|
swung0x48
|
51c1411696
|
[Docs] (P14): code-based perf estimate for every arm, written before the benchmark.
|
2026-10-07 09:18:22 -04:00 |
|
swung0x48
|
d56179d876
|
[Tools] (P14): pinned-clock perf matrix with a per-thread CPU and GPU-busy sampler.
|
2026-10-07 09:18:21 -04:00 |
|
swung0x48
|
f8a9466b93
|
[Fix] (CI): retrace exit detection tolerates a single failed pidof, and artifact cleanup lists jobs in pages the API serves.
|
2026-10-07 02:19:59 -04:00 |
|
swung0x48
|
242663c9ae
|
[Docs] (P13): P13 closes - exit gates, device smoke and the deferred device list are recorded, and the roadmap moves to P14.
|
2026-10-06 22:33:02 -04:00 |
|