swung0x48
|
8ebb69d895
|
[Fix] (Pipe): share-group clocks fire dirty bits 11-14 for sibling-context changes
|
2026-10-10 04:14:07 -04:00 |
|
swung0x48
|
e70925d35b
|
Pipe: per-program global-constants key and frontend-written spans replace the client shadow diff.
|
2026-10-09 18:26:43 -04:00 |
|
swung0x48
|
13e8e095b4
|
Fix the unix:/pipe: transport comment in ConfigLoader.
|
2026-10-09 14:24:19 -04:00 |
|
swung0x48
|
286e4af582
|
Docs: MobileGL no longer steps aside for LIBGL_ALWAYS_SOFTWARE.
|
2026-10-09 14:23:56 -04:00 |
|
swung0x48
|
4e055e4686
|
Reword the permanent client-window refusal text and drop the stale P12 tag.
|
2026-10-09 14:23:32 -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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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 |
|