swung0x48
|
2a1920adce
|
[Fix] (Espryt): redeclare clip/cull distance outputs inside gl_PerVertex for ESSL
|
2026-10-12 03:55:46 -04:00 |
|
swung0x48
|
2afeec95cd
|
[Fix] (Magma): readback before the first acquire no longer submits a signaled slot fence
|
2026-10-11 07:48:04 -04:00 |
|
swung0x48
|
a2801f9da4
|
[Fix] (Build): restore the MSVC Windows build of the opengl32 drop-in
|
2026-10-11 07:48:03 -04:00 |
|
swung0x48
|
e4aab8d0bc
|
[Fix] (Remote): offer inproc no shared images and refuse them on its server
|
2026-10-10 23:23:36 -04:00 |
|
swung0x48
|
745f59bc3f
|
[Feat] (Remote): give inproc T0 the server's own store and never an AHB
|
2026-10-10 22:32:19 -04:00 |
|
swung0x48
|
166f47f115
|
[Fix] (Test): TrackerShareGroup uses Take() for the context slot
|
2026-10-10 05:25:51 -04:00 |
|
swung0x48
|
71e442de02
|
[Feat] (Magma): MOBILEGL_MAGMA_EXTRA_SWAPCHAIN_IMAGES knob
|
2026-10-10 04:14:42 -04:00 |
|
swung0x48
|
fa56e1c671
|
[Test] (Espryt, Magma): WindowPassGateScenario
|
2026-10-10 04:14:41 -04:00 |
|
swung0x48
|
2175ee08cf
|
[Perf] (Espryt): flush once per frame before the window pass
|
2026-10-10 04:14:41 -04:00 |
|
swung0x48
|
add15f0a17
|
[Perf] (Magma): submit off-screen work ahead of the swapchain acquire wait
|
2026-10-10 04:14:40 -04:00 |
|
swung0x48
|
f4f2bec711
|
[Perf] (Espryt): drain small partial writes as a whole-store orphan map
|
2026-10-10 04:14:25 -04:00 |
|
swung0x48
|
a6028ff38a
|
[Fix] (TLS): drop the context reference before clearing the slot at thread exit
|
2026-10-10 04:14:14 -04:00 |
|
swung0x48
|
3b01067a9b
|
[Perf] (TLS): Espryt context serial and lookup cache share one thread_local block
|
2026-10-10 04:14:13 -04:00 |
|
swung0x48
|
b5f9ab51ca
|
[Perf] (TLS): inline Magma session and built-slot lookups
|
2026-10-10 04:14:12 -04:00 |
|
swung0x48
|
f7550322d4
|
[Perf] (TLS): applier lookup cache in one thread_local block
|
2026-10-10 04:14:10 -04:00 |
|
swung0x48
|
575be3532d
|
[Perf] (TLS): pGLContext and gPipeInputs become pointer slots
|
2026-10-10 04:14:09 -04:00 |
|
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 |
|