swung0x48
f4994ee36e
[Chore] (MG_Backend, MG_Backend/DirectGLES, MG_Backend/DirectVulkan, MG_Backend/MGPipe, MG_Backend/Record, MG_Benchmark/Buffer, MG_Benchmark/Container, MG_Benchmark/Driver, MG_Benchmark/Program, MG_Benchmark/ShaderCache, MG_Benchmark/Transpile, MG_Gbm, MG_Impl, MG_Impl/CGLImpl, MG_Impl/DyldInterpose, MG_Impl/EGLImpl, MG_Impl/GLImpl, MG_Impl/GLXImpl, MG_Impl/NSOpenGLImpl, MG_Impl/Pipe, MG_Impl/WGLImpl, MG_IntegrationTest, MG_IntegrationTest/Harness, MG_IntegrationTest/Scenarios, MG_Pipe, MG_Remote, MG_Remote/Client, MG_Remote/Protocol, MG_Remote/Server, MG_Remote/Transport, MG_Remote/Wire, MG_State/EGLState, MG_State/GLState, MG_Test, MG_Test/Backend, MG_Test/BackendLoader, MG_Test/Buffer, MG_Test/EGLState, MG_Test/Framebuffer, MG_Test/Gbm, MG_Test/Pipe, MG_Test/Pipeline, MG_Test/Program, MG_Test/Query, MG_Test/SelfTest, MG_Test/ShaderTranspiler, MG_Test/State, MG_Test/Swapchain, MG_Test/Texture, MG_Test/Util, MG_Test/VertexArray, MG_Test/Wire, MG_Util/Async, MG_Util/BackendLoaders, MG_Util/Converters, MG_Util/Damage, MG_Util/Debug, MG_Util/Math, MG_Util/Metrics, MG_Util/SelfTest, MG_Util/ShaderTranspiler, MG_Util/Texture, MG_Util/X11, MobileGL, scripts/data, tools/cts, tools/device_bench, tools/spikes, tools/trace_replay, tools/wgl-smoke): clang-format every C and C++ source
...
- Layout only: token streams match up to split literals, continuations and using order
- The size totals fall, so the structure baseline is lowered
2026-10-16 06:30:38 -04:00
swung0x48
aabca3c171
[Docs] (.claude/skills, .github/workflows, CMakeLists.txt, docs/archive, docs/Disaggregated, docs/MobileVA, docs/Performance, MG_Backend, MG_Backend/DirectGLES, MG_Backend/DirectVulkan, MG_Backend/Record, MG_Gbm, MG_Impl, MG_Impl/EGLImpl, MG_Impl/GLImpl, MG_Impl/GLXImpl, MG_Impl/Pipe, MG_IntegrationTest, MG_IntegrationTest/Harness, MG_IntegrationTest/Scenarios, MG_Pipe, MG_Pipe/generated, MG_Remote, MG_Remote/Client, MG_Remote/Server, MG_Remote/Transport, MG_Remote/Wire, MG_State/GLState, MG_Test/Pipe, MG_Test/Util, MG_Test/Wire, MobileGL, scripts, scripts/data, tools/device_bench, userguide): archive the planning notes and agent contracts under docs/archive
...
- DEBTS.md and OPEN-QUESTIONS.md stay maintained, now in docs/Disaggregated.
2026-10-15 20:01:45 -04:00
swung0x48
73d4511bc1
[Chore] (MG_Backend/DirectVulkan, MG_Benchmark, MG_Benchmark/Buffer, MG_Benchmark/Container, MG_Benchmark/Driver, MG_Benchmark/Program, MG_Benchmark/ShaderCache, MG_Benchmark/Transpile, MG_Gbm, MG_IntegrationTest, MG_IntegrationTest/Harness, MG_Test, MG_Test/Backend, MG_Test/BackendLoader, MG_Test/Buffer, MG_Test/EGLState, MG_Test/Framebuffer, MG_Test/Gbm, MG_Test/Pipe, MG_Test/Pipeline, MG_Test/Program, MG_Test/Purity, MG_Test/Query, MG_Test/SelfTest, MG_Test/ShaderTranspiler, MG_Test/State, MG_Test/Swapchain, MG_Test/Texture, MG_Test/Util, MG_Test/VertexArray, MG_Test/Wire, scripts, scripts/ci, tools/cts, tools/device_bench, tools/spikes, tools/trace_replay): extend license headers to shell, CMake, Java and GLSL
2026-10-15 10:15:40 -04:00
swung0x48
5370d917d0
[Docs] (.github/workflows, MG_Backend/DirectGLES, MG_Backend/DirectVulkan, MG_Benchmark/Driver, MG_Impl/EGLImpl, MG_Impl/Pipe, MG_IntegrationTest, MG_IntegrationTest/Harness, MG_IntegrationTest/Scenarios, MG_Pipe, MG_State/GLState, MG_Test, MG_Test/Pipe, MG_Test/Program, MG_Test/SelfTest, MG_Test/ShaderTranspiler, MG_Test/Swapchain, MG_Test/Wire, MG_Util/Async, MG_Util/BackendLoaders, MG_Util/SelfTest, MG_Util/ShaderTranspiler, MobileGL, scripts/ci, tools/spikes, tools/trace_replay): name drivers and techniques instead of external projects
2026-10-15 10:15:37 -04:00
swung0x48
506ab1541d
[Docs] (.github/workflows, CMakeLists.txt, MG_Backend, MG_Backend/DirectGLES, MG_Backend/DirectVulkan, MG_Backend/MGPipe, MG_Backend/Record, MG_Impl/Pipe, MG_IntegrationTest, MG_IntegrationTest/Harness, MG_IntegrationTest/Scenarios, MG_Pipe, MG_Remote, MG_Remote/Client, MG_Remote/Server, MG_Remote/Transport, MG_Remote/Wire, MG_State/GLState, MG_Test, MG_Test/Buffer, MG_Test/Purity, MG_Test/Util, MG_Test/Wire, MG_Util/Metrics, MobileGL, scripts, tools/trace_replay): replace stale line-number citations with sections and symbols
2026-10-15 10:15:35 -04:00
swung0x48
c4fb9397cb
[Chore] (MG_Backend/DirectGLES, MG_Backend/DirectVulkan, MG_Impl/EGLImpl, MG_Impl/Pipe, MG_IntegrationTest/Harness, MG_IntegrationTest/Scenarios, MG_Pipe, MG_Remote, MG_Remote/Client, MG_Remote/Server, MG_Remote/Transport, MG_Test/Backend, MG_Test/EGLState, MG_Test/Wire, scripts, scripts/ci, tools/cts, tools/device_bench, tools/spikes, tools/trace_replay, tools/wgl-smoke): add the license header where it is missing
2026-10-15 10:15:34 -04:00
swung0x48
d6b0eba8fe
[Feat] (Subgroups): use native subgroups or emulate them on both backends
2026-10-13 06:03:57 -04:00
swung0x48
53877cfb6b
[Docs] (cts): ReadBuffer waiver names GL_INVALID_OPERATION, not GL_INVALID_ENUM
2026-10-12 03:55:47 -04:00
swung0x48
b4f35cd67d
[Fix] (cts): run_cts_local.py times out on qpa log idleness, not chunk wall time
2026-10-12 03:32:57 -04:00
swung0x48
cee9178e22
Bench: bench_session stop restores the pinned clocks.
2026-10-09 18:26:41 -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
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
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
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
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
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
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
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
84ec06f3fc
[Docs] (P15): swap-interval stage, user decisions, and the FCL probe tools.
2026-10-08 00:22:22 -04:00
swung0x48
4fe2edb6fa
[Tools] (P14): profile_p14.sh profiles the tcp arm too.
2026-10-07 14:58:23 -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
0cc54748f0
[Tools] (P14): layers.py can list the entries into one layer.
2026-10-07 12:32:18 -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
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
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
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
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
9fa61b84a5
[Build] (P13 W7): the library links from module OBJECT targets along the ratchet's partition, and a server-only link check target must link without the frontend modules.
2026-10-06 19:50:31 -04:00
swung0x48
30ebae4346
[Feat] (P13 W3b): subsystem bits 0-13 are fixed on and refused by name at startup, the legacy-memo and texel-retain knobs are gone
2026-10-06 04:04:48 -04:00
swung0x48
ee9919ba39
[Fix] (CI): merge Arch WSL runner and prefer it over hosted runners
2026-10-05 09:16:06 -04:00
swung0x48
710beefd02
[Docs] (Performance): glmark2 optimization handoff with the landed fixes, current numbers, remaining work and the bench scripts
2026-10-04 06:44:49 -04:00
swung0x48
4633ca223c
[Fix] (Server): log the per-frame P65ServerFrame line only when MOBILEGL_SERVER_FRAME_STATS asks for it
2026-10-03 14:20:11 -04:00
swung0x48
028cf4eb62
[Merge] (trace): take dev's create-indirect-in-world-align1024 fixture (a derived trace replacing the original create-indirect capture) and register its documentation-only derived_from key
2026-09-30 10:21:46 -04:00
swung0x48
08124c99f1
[Test] (trace): replace the create-indirect fixture with minecraft-1.21.1-neoforge-create-indirect-in-world-align1024, a derived trace and not the original capture - the desktop capture bound Flywheel's scatter lists at 16-byte SSBO offsets that Adreno 830 and Mali's Vulkan driver (64) reject, and fixture_tools/realign_buffer_ranges.cpp moves the 1,270 binds off a 1024-byte boundary onto 1024-aligned slots (3,812 calls inserted, target call 504631 -> 508443, host SSIM unchanged to 9 digits on both backends)
2026-09-30 10:00:26 -04:00
swung0x48
17f1c0b59b
[Tool] (P11 B2): extmem probe --hold-ms - the T0S child keeps its AHardwareBuffer locked while the parent holds both imports, for the dmabuf memory calibration
2026-09-29 17:50:50 -04:00
swung0x48
b57276b88a
[Tool] (extmem_probe, P11 B2): route mode - the probe serves in the render server's place (-Pmobilegl.extmemProbeAsServer) and --route-client sends a held-lock AHB over B1's fd: pair, directly on aux and through a socketpair hop
2026-09-29 16:44:37 -04:00
swung0x48
ac25e3323a
[Tool] (extmem_probe): build inside the API-26 trace APK - memfd_create through syscall() below API 30, the two Vulkan 1.1 calls through vkGetInstanceProcAddr below API 28
2026-09-29 16:31:52 -04:00
swung0x48
16ea23c927
[Tool] (extmem_probe): marker/args-file mode for the trace APK exec hook, --regions-at-end, and the T0S sustained-lock rows (Vulkan copy/fill + GL compute on a never-unlocked client AHB)
2026-09-29 16:31:52 -04:00
swung0x48
7ccb920ad2
[Feat] (Plugin, P11 B1): the broker presents the PairBind pair at hand-off (PairBindFrames, the encoder's bytes) and answers v2 with that flag and the apply core its supervisor announced; the helper passes MOBILEGL_IPC_FD_PAIRED=1 on, and Java no longer re-derives the reserved core
2026-09-29 15:03:52 -04:00
swung0x48
54e7c92cf4
[Feat] (Plugin, P11 B1): the broker hands the helper the core the server reserves for the session's apply thread and the helper execs the program through taskset on every other core (--keep-affinity opts out), so a client the scheduler would put there is not starved
2026-09-29 14:47:31 -04:00
swung0x48
6e35ea2c02
[Docs] (P12): the portrait-window clipping was the 0x0 window request, not Magma - root cause, fix and evidence
2026-09-29 00:54:46 -04:00
swung0x48
984e2b69f4
[Feat] (tools): the FCL exit-gate driver - Minecraft renders into the render server window, then the server is killed
2026-09-29 00:27:28 -04:00
swung0x48
b60da6729d
[Feat] (tools): the cross-host acceptance driver and its report reducer, and a note that netbench's nc sink understates the link
2026-09-28 23:22:05 -04:00
swung0x48
429b4472bb
[Fix] (tools): cross-host runs first prove the WSL -> phone TCP path is end to end, and netbench's pkill no longer kills its own shell
2026-09-28 22:57:20 -04:00
swung0x48
1987bdff5c
[Feat] (Android): the render server screen and binary ship in the plugin APK too, not just trace
2026-09-28 22:10:56 -04:00
swung0x48
141227e8ba
[Feat] (tools): add the disaggregated-mode device perf matrix and profiling harness
...
run_matrix.sh drives interleaved monolith/inproc/spawn+shm/spawn+tcp
benchmark rounds on an adb device with per-run arm-marker verification;
profile_matrix.sh layers simpleperf, ftrace wakeup capture and a /proc
sampler on top; make_report.py aggregates runs into REPORT.md. The wifi
kit carries the cross-host control-plane hang repro and phone-side
strace/fd-reconcile helpers. .trace-work/ (run output) is now ignored.
2026-09-28 19:36:30 -04:00
swung0x48
e3e890ed5d
[Feat] (Trace): the replay runner builds as an adb-shell executable for Android, and unix endpoints carry a headless window
...
MOBILEGL_BUILD_TRACE_REPLAY now also produces mobilegl_trace_replay on
ANDROID: the same CLI as desktop, linked against the APK runner's
glws/glproc glue. On the device it dials a render server with no
Activity at all - MOBILEGL_IPC_CONTROL=unix:@name with shm data to the
offscreen supervisor (a cross-uid abstract connect needs root or an
SELinux waiver; loopback TCP works from plain adb shell), or
tcp:// with MOBILEGL_IPC_SURFACE=server to the on-screen display server.
glws_android grows the desktop glws_egl's server-owned null-window
createWindowSurface, gated on MOBILEGL_TRACE_SURFACE=window so the APK's
pbuffer mode keeps its old answer, and the config carries EGL_WINDOW_BIT
for it. The control screen refuses unix endpoints in on-screen mode:
the in-process display server serves tcp:// only.
Verified on-device with an OpenRA retrace, ssim=1.0 both ways:
offscreen service on @mgl-cli with the CLI as root, and the display
Activity on tcp://127.0.0.1:40613 with the replay's frames on the
phone's screen.
2026-09-27 06:28:00 -04:00