Commit Graph
100 Commits
Author SHA1 Message Date
swung0x48 1e9f8bb0ff [Refactor] (docs/ci, MG_Impl/Pipe, MG_Remote/Client, MG_Test/Wire, scripts/data): drop the E2 drop knobs
- MOBILEGL_IPC_E2_DROP_DRAW and MOBILEGL_IPC_E2_DROP_CLEAR leave the shipped emitter with their per-draw and per-clear branches, setters, counters and per-frame evidence line; nothing sets them since the dropped-draws control left CI
- the wire-volume assertion on the OpenRA split legs replaces the control (758 DrawVbo records and 758/788 server draws locally, both backends, inproc and spawn)
- retire the unit case RemoteEmitTable.TheE2DropSwitchStartsDisarmed, which only toggled the clear setter; skip census: removed from junit-integration-split-strict/unit-strict (test/unit and unit-split borrow that list)
2026-10-17 15:59:52 -04:00
swung0x48 75edebdab7 [CI] (.github/workflows, docs/ci, scripts/ci, tools/trace_replay): drop the retrace-split reruns
- retrace-split loses its two negative controls, which re-ran every leg (~68 runner-min per run), and its dependency on the monolith-control artifact; the in-test evidence check from the previous commit replaces them
- build-linux-monolith-control keeps its zero-MG_Remote proof and its upload; on the disaggregation branches the new retrace-shipped job replays OpenRA on both backends through that library (elsewhere the retrace job's library has that shape), so the shipped shape is still replayed on every branch
- delete retrace_transport_control.sh, retrace_drop_draw_control.sh, their smoke cases and stub modes, and the uncalled redcheck_control_smoke_test.sh
- control-runtime/build-push-control leaves the eleven metadata loops; remove-artifact-clutter waits for retrace-shipped
2026-10-17 15:59:51 -04:00
swung0x48 bc0111c99e [Test] (.github/workflows, scripts/ci, tools/trace_replay): assert each split leg's transport in-test
- run_trace_case.cmake writes output/split-evidence.txt only after its transport assertions pass
- MGTRACE_WIRE_EVIDENCE (a harness name) turns on the library's counters and requires DrawVbo records on the wire and draws on the server role
- retrace-split's OpenRA legs ask for wire evidence; every split leg, and every inproc retrace row, checks its evidence file with retrace_split_evidence.py
- test_run_trace_case.py runs the real script on canned logs: each assertion goes red on its bad log, and pipe-gates runs it
2026-10-17 14:08:15 -04:00
swung0x48 ca5411cdf6 [CI] (.github/actions, .github/workflows): compress cores so death tests cannot fill the disk
- the first ubuntu-26.04 unit run failed 41 log-reading cases: 239 raw cores from intentional aborts filled /tmp, and the library's log writes then failed silently
- setup-test-runner pipes cores through a zstd handler that keeps honouring each process's RLIMIT_CORE; steps keep their ulimit -c and lose their own core_pattern lines
- the unit job prints free disk space and the core count after its run
2026-10-17 12:37:17 -04:00
swung0x48 fb73bca3e9 [Test] (MG_Test/Program, MG_Util/ShaderTranspiler, MobileGL): probe the prewarm by its log line
- test hooks stay out of production code: ShaderCompiler::BuiltinsPrewarmed() existed only for ShaderPrewarmTest and is gone
- Initialize() logs at INFO whether it prewarmed the built-in tables or skipped them for MOBILEGL_DISABLE_SHADER_PREWARM; the test reads that line from a private log file
- still red with the knob's gate removed and with Destroy's latch reset removed; passes on the split and monolith builds
2026-10-17 11:44:23 -04:00
swung0x48 32772ca4da [CI] (.github/workflows): run every job on ubuntu-26.04
- ubuntu-latest moves to 26.04 job by job from 2026-10-19 to 11-19; a build on one image and its tests on the other would fail on glibc, so all 32 jobs move together now, pinned
- the ccache keys say ubuntu26: the 24.04 compiler's objects would not hit anyway
2026-10-17 11:22:39 -04:00
swung0x48 d27a619f95 [CI] (.github/workflows): skip the shader prewarm in the ctest lanes
- the unit and integration lanes set MOBILEGL_DISABLE_SHADER_PREWARM=1: every entry is its own process and none compiles enough to repay ~100 ms of table building
- the retrace legs and the benchmark keep the prewarm; they replay or measure real application startup
- locally the unit suite took 71 s with it set against 101 s without, all 3114 entries passing both ways
2026-10-17 10:53:19 -04:00
swung0x48 b44805eb68 [Feat] (MobileGL, MG_Test/Program, MG_Util/ShaderTranspiler): add MOBILEGL_DISABLE_SHADER_PREWARM
- Initialize() still prewarms glslang's built-in tables by default; a truthy MOBILEGL_DISABLE_SHADER_PREWARM skips it, for short-lived processes that never repay the ~100 ms
- ShaderPrewarmTest covers the default, a truthy and a falsy value, and the latch Destroy clears; red with the gate removed and with the reset removed
- the prewarm comments said both parses share one table; glslang picks it from each shader's own #version, so they build 460 core and 330 core
2026-10-17 10:53:07 -04:00
swung0x48 8063c63931 [CI] (.github/workflows): pack the test runtimes with zstd, not gzip
- the four runtime tarballs (0.5-0.8 GB each) took 65-100 s to pack with single-threaded gzip, two of them on the critical path, and every consumer spent about 16 s unpacking
2026-10-17 08:07:10 -04:00
swung0x48 4b1aba24b7 [CI] (.github/actions, .github/workflows): run serial lanes at -j, retrace on the library alone
- unit, integration and integration-verify ctest run at -j nproc; the same labels already run at -j in the split lanes, with the same names and results
- build-linux, -split and -verify also publish the library (and the server image) alone; the retrace legs load nothing else, yet downloaded and unpacked the 0.5-0.8 GB test runtime
- build-retrace no longer waits for build-linux: it fetched the runtime only to test -f a path configure does not read
- every branch saves its own rolling ccache entry, deleting only its own old one (--ref); only dev saved, and dev has not run since the key rename, so every build was cold
- !cancelled() replaces job-level always() on the retrace, summary and skip-census jobs: a superseded run kept starting its pending legs and held the next run in the concurrency group for up to 154 minutes
- retrace and retrace-split run 8 legs at a time, not 4; the cap dates from per-leg LFS checkouts
- apt requests time out after 30 s and retry 3 times; install steps time out at 15 minutes, not 45
- the APK trace case matrix no longer waits for the build, which it does not read
- retrace-split prepares its metadata once, after the split library is unpacked
2026-10-17 08:03:27 -04:00
swung0x48 4f34da0ef1 [Test] (scripts/ci): keep the TCP lane controls' errors out of annotations
- the red controls ran spawn_lane_parity and junit_tally main() uncaptured, so every passing run showed their ::error:: line as a failure annotation on the pipe-gates job
- quiet_main captures a gate's output; each red control now also asserts the reason it printed
2026-10-17 07:50:08 -04:00
swung0x48 53e4c423ee [Test] (MG_Test/Wire, scripts/data): wait for events, not deadlines, in the guilty-reset latch test
- ServerLoopEglLatchTest.AGuiltyReset... failed 8 times in CI under load (exit 8): d1b3a332 fixed the race, but its waits still had 2 s deadlines a slow runner could reach
- every wait now ends on its event and is bounded by 10 s, which only a failing run reaches
- "the GUILTY record is never applied" is no longer a 2 s wait for a record that must not come: the test waits for the latched apply thread to leave its loop, joins it, then reads the applied seq; the case takes about 40 ms instead of 2 s
- still red as its comment says: no LatchIfGpuFaulted in the apply loop exits 6, an INNOCENT reset that latches sets bit 1
2026-10-17 07:39:47 -04:00
swung0x48 ca5470ce74 [Fix] (MG_Pipe, MG_Test/Wire, scripts/data): aim the session-loss knob after the target is ready, not after 100 ms
- MOBILEGL_DEBUG_INJECT_DEVICE_LOST_PID=file:<path> takes the pid from a file read at every ask, so a running server can be aimed, as the Android property already can
- CompositorRecovery and ClientRecovery's pid-targeted case aim it once their target says it got there (its first frame; current): under load the 100 ms clock lost the compositor inside its first make-current
- the knob's comment no longer promises an ordering a clock cannot keep
- FatalFunnelSeam.TheSessionLossKnobTakesAPidOrAFileThatHoldsOne covers both forms
- the file-size baseline drops by the 83 lines the previous commit moved out of PipeApply.cpp
2026-10-17 07:20:38 -04:00
swung0x48 2793e46c8b [Refactor] (CMakeLists.txt, MG_Pipe): move the device-loss debug knobs out of PipeApply.cpp
- PipeDeviceLossKnobs.cpp holds MGPipeDebugDeviceLossDue and MGPipeDebugSessionLossDue as they were; PipeApply.cpp keeps the session-fail seam its comment places there
2026-10-17 07:03:03 -04:00
swung0x48 7de09a673d [Refactor] (CMakeLists.txt, MG_Backend, MG_Backend/DirectGLES, MG_Backend/DirectVulkan, MG_Remote/Client, MG_Remote/Protocol, MG_Remote/Server, MG_Test/Backend, scripts/data): move BackendObject's EGL bookkeeping into EGLSurfaceRegistry
- EGLSurfaceRegistry owns the display, the surface records, the active surface, each thread's binding and the one recursive lock; BackendObject holds one and is its hooks, so the EGL virtuals keep their signatures and their defaults
- the backends reach it through EGLRegistry(): lookups return copies, and the steps they compose (adopting an already-bound surface, a window's surfaces, a window's new extent) are named operations instead of writes to protected fields
- WindowBackend and WindowHandle move with it
- BackendObjectEglStateTest only re-points its accessors; the same 235 mutants, carried over, get the same verdicts except three that need a kind-None record, which no call can make, and one that cannot be written against the registry
- comments that cited BackendObject.cpp line numbers name the function
2026-10-17 03:55:28 -04:00
swung0x48 a87732511b [Test] (MG_Test, MG_Test/Backend): pin BackendObject's EGL surface bookkeeping before it moves
- BackendObjectEglStateTest: 90 cases over the display, the surface records, the active surface, each thread's binding, the capability probe, the deferred destroy and the locking, driven through a double with no device; every hook is logged with its thread and the state it saw from inside
- the double reads the base's state only in a few accessors, so moving the bookkeeping re-points them and no case
- checked against 235 hand-made mutants of the bookkeeping: every one is caught except those that cannot change an outcome, one that is undefined behaviour and three that only drop an outer lock
2026-10-17 02:57:00 -04:00
swung0x48 1aa5cf63a6 [Refactor] (MG_Backend, MG_Backend/DirectGLES, MG_Backend/DirectVulkan, MG_Impl, MG_Impl/EGLImpl, MG_Impl/GLImpl, MG_Impl/GLXImpl, MG_Pipe, MG_Remote/Client, MG_Remote/Server, MG_Test/Wire): split the server-only and client-only hooks out of BackendObject
- ServerHooks and ClientHooks (BackendRoles.h) hold the virtuals that only the server, or only a client of a remote server, calls, with the defaults they had; BackendObject::AsServer and AsClient return them, or null for a backend without the role
- DirectGLES and DirectVulkan implement ServerHooks, BackendObject_Remote implements ClientHooks, and the test doubles that run as a server's backend take the server role
- every call site keeps its answer: where no backend and a backend without the role answered differently, the backend check stays and the role check gives the old default
- ServerLoop::BackendHooks is the server's accessor, asked at each use
- comments that placed the function table in BackendObject.h name BackendFunctions.h
2026-10-17 00:10:31 -04:00
swung0x48 55fa9cdfdc [Refactor] (CMakeLists.txt, MG_Backend, MG_Backend/DirectVulkan, MG_Impl/GLImpl, MG_Impl/Pipe, MG_IntegrationTest/Scenarios, MG_Pipe/generated, MG_Remote/Client, MG_Test/Query, MG_Test/Texture, scripts, scripts/data): move the function table and shared-image types out of BackendObject.h
- BackendFunctions.h holds GLFunctionsTable, GlobalBackendFunctionsTable, CopyImageEndpoint, the sync and query handles and the present damage; files that only call through the table include it instead of the backend object
- SharedImageTypes.h holds the shared-image structs
- FormatCapabilities.cpp holds the BackendCaps.h helpers that BackendObject.cpp defined
- gen_pipe.py reads the table from its new header
- two comments that cited a BackendObject.cpp line name the function instead
2026-10-16 23:30:20 -04:00
swung0x48 ad7340921e [Fix] (MG_Impl/GLImpl, MG_State/GLState, MG_Test/Texture, scripts/data): keep GENERATE_MIPMAP on the texture, not keyed by GL name
- A process-wide map keyed by GL name gave a deleted texture's flag to the
  next texture created under the recycled name.
- The flag is now texture object state, so it dies with its texture.
2026-10-16 16:52:59 -04:00
swung0x48 095cf2643b [CI] (scripts/data): expect the new F1 scenarios to skip on the monolith lanes 2026-10-16 16:04:48 -04:00
swung0x48 230a90a439 [Fix] (MG_Impl/GLImpl, MG_IntegrationTest, MG_IntegrationTest/Scenarios, MG_Remote/Client, MG_Test/Texture, scripts/data): make by-name texture calls act on the named texture
- The 19 calls that bound their texture first now share object cores with the target forms
- GL 4.6 rules the binding hid: cube maps in TextureSubImage3D and level queries, named target errors
2026-10-16 14:47:50 -04:00
swung0x48 28bf0c1653 [Refactor] (MG_Backend, MG_Impl/Pipe, MG_IntegrationTest/Harness, MG_Pipe, MG_Pipe/generated, MG_Remote/Client, MG_Test/Pipe, MG_Test/Wire, scripts/data): add by-name mipmap and copy slots that name their texture
- GenerateTextureMipmap and CopyTextureSubImage2D emit the records their target slots emit
- RemoteEmitTable.TheThreeClassesPartitionAllSeventyOneSlots is renamed ...PartitionEverySlot
2026-10-16 14:47:40 -04:00
swung0x48 7dbe0e5c78 [Docs] (.git-blame-ignore-revs, CONTRIBUTING.md): list the reformat for git blame and update the format rules 2026-10-16 06:30:59 -04:00
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 76b10cc35b [CI] (scripts): read the dirty-bit name table in any line layout 2026-10-16 06:26:09 -04:00
swung0x48 58c727f74e [Tools] (scripts): format exactly the files the format check covers
- Skip MG_Impl/GLImpl/Exporting/Definitions.cpp, whose table clang-format cannot wrap
2026-10-16 06:26:07 -04:00
swung0x48 351bb35a96 [CI] (scripts/data): lower the baselines after the BackendCaps.h move 2026-10-16 05:47:58 -04:00
swung0x48 f7e065aedb [Docs] (MG_Backend/Record, MG_Impl/GLImpl, MG_Impl/Pipe, MG_Remote, MG_Remote/Client): cite BackendObject.h symbols, not lines 2026-10-16 05:47:43 -04:00
swung0x48 778014c013 [Refactor] (MG_Backend, MG_Backend/DirectVulkan, MG_Pipe, MG_Remote/Client, MG_State/GLState, MG_Test/Pipe, MG_Util/SelfTest, MG_Util/ShaderTranspiler, MobileGL, scripts): move the backend capability types into BackendCaps.h
- Config.h includes only BackendCaps.h, no longer both backends; pActiveBackendObject is declared with the interface
2026-10-16 05:47:42 -04:00
swung0x48 cf1b7f6ed8 [CI] (scripts/ci, scripts/data): lower the baselines after the DirectGLES split 2026-10-16 05:17:25 -04:00
swung0x48 91294a19f8 [Docs] (MG_Backend/DirectGLES, MG_Backend/DirectVulkan, MG_Backend/Record, MG_Impl/Pipe, MG_IntegrationTest/Scenarios, MG_Pipe, MG_Remote/Client, MG_Remote/Server, MG_State/GLState, MG_Test, MG_Test/Backend, MG_Test/Buffer, MG_Test/Pipe, MG_Test/Wire, scripts, scripts/ci): cite symbols, not lines, in the split backend files 2026-10-16 05:16:51 -04:00
swung0x48 d1f220c1a2 [Refactor] (CMakeLists.txt, MG_Backend/DirectGLES): split Managers.cpp by object kind
- helpers and state several files share lose `static`; ManagersInternal.h declares them
2026-10-16 05:10:03 -04:00
swung0x48 b0f73e3795 [Refactor] (CMakeLists.txt, MG_Backend/DirectGLES): split DirectGLES.cpp by area
- helpers and state several files share lose `static`; DirectGLESInternal.h declares them
2026-10-16 05:09:31 -04:00
swung0x48 1ec54d876f [CI] (scripts/ci): read every DirectGLES source in the memo purity gate 2026-10-16 04:47:34 -04:00
swung0x48 5973bf353b [CI] (scripts/data): lower the hygiene and structure baselines after the renderer split 2026-10-16 04:30:51 -04:00
swung0x48 16994dc994 [Docs] (MG_Backend/Record, MG_IntegrationTest/Scenarios): cite symbols the split left past their files' ends 2026-10-16 04:30:26 -04:00
swung0x48 7f7c596213 [Docs] (docs/Disaggregated, docs/MobileVA, docs/Performance, MG_Impl/Pipe, MG_IntegrationTest/Scenarios, MG_State/GLState, MG_Test/Buffer, MG_Test/Wire, scripts/ci): name the renderer's new files 2026-10-16 04:28:53 -04:00
swung0x48 98c8e8833c [Refactor] (CMakeLists.txt, MG_Backend/DirectVulkan): split VulkanRenderer.cpp and its fragments by area
- code moves unchanged; helpers several files use are in VulkanRendererInternal.h
2026-10-16 04:28:47 -04:00
swung0x48 b0e229f2a3 [Refactor] (MG_Backend/DirectVulkan): make the renderer's two file-scope singletons inline 2026-10-16 04:20:26 -04:00
swung0x48 01f80b0a0a [Refactor] (CMakeLists.txt, MG_Backend, MG_Backend/DirectGLES, MG_Backend/DirectVulkan, MG_Backend/MGPipe, MG_Test/Framebuffer, MG_Test/Texture): move the client readback packing out of DirectGLES 2026-10-16 04:20:19 -04:00
swung0x48 deae0fc4c1 [Refactor] (MG_Backend/DirectGLES): drop the readback stores' pack-buffer branch, which never runs 2026-10-16 04:05:43 -04:00
swung0x48 f90537c3cb [CI] (.github/workflows, CONTRIBUTING.md, scripts, scripts/data): add the layering and size ratchets 2026-10-16 04:01:29 -04:00
swung0x48 26a30ecd02 [CI] (CONTRIBUTING.md, scripts): skip moved lines in the changed-lines format check 2026-10-16 04:01:27 -04:00
swung0x48 37cb446bda [CI] (scripts/data): lower the text hygiene baseline after the comment cleanup 2026-10-15 23:16:52 -04:00
swung0x48 7bb5a9ccbe [Docs] (.github/workflows, docs/Disaggregated, MG_IntegrationTest): shorten the long comments in the integration lanes and test workflow 2026-10-15 23:16:45 -04:00
swung0x48 1161d489e2 [Build] (MG_IntegrationTest): register each integration lane with one mgl_itest_lane call
- The generated test registrations are identical in the monolith, verify and split builds.
2026-10-15 22:41:35 -04:00
swung0x48 92f1b9b231 [CI] (scripts/data): lower the text hygiene baseline after the comment cleanup 2026-10-15 22:29:04 -04:00
swung0x48 265966a15d [Docs] (MG_Backend/DirectGLES, MG_Backend/MGPipe, MG_Backend/Record, 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/Wire, MG_Util/Metrics, MobileGL, scripts, scripts/ci): cite symbols, not line numbers, in the shortened files 2026-10-15 22:27:15 -04:00
swung0x48 23ee8bdb49 [Docs] (docs/Disaggregated, MG_Remote, MG_Remote/Client, MG_Remote/Protocol, MG_Remote/Server, MG_Remote/Transport, MG_Remote/Wire): shorten long comments and move their design arguments into docs 2026-10-15 21:53:39 -04:00
swung0x48 37ecba200b [Docs] (docs/Disaggregated, MG_Impl/Pipe, MG_Remote/Client): shorten long comments and move their design arguments into docs 2026-10-15 21:18:49 -04:00
swung0x48 7ec1448f03 [Docs] (docs/Disaggregated, MG_Backend/MGPipe, MG_IntegrationTest/Harness, MG_Pipe): shorten long comments and move their design arguments into docs 2026-10-15 20:48:58 -04:00
swung0x48 211ca08b0c [Docs] (docs/Disaggregated): point the indexes' prose at docs/archive 2026-10-15 20:06:45 -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 0e3e2b7761 [CI, Docs] (CONTRIBUTING.md, scripts): freeze docs/archive and treat moved files as moves 2026-10-15 19:55:42 -04:00
swung0x48 174a428e81 [Test] (MG_Test/Util): give each log level test process its own log file 2026-10-15 12:22:36 -04:00
swung0x48 d3c10f15c3 [Fix, Test] (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): drain shader compile workers before a test's main returns
- On MSVC the atexit drain deadlocked with a worker registering a static's
  destructor, hanging the shader tests on Windows.
2026-10-15 12:12:24 -04:00
swung0x48 66ef4076c8 [Fix] (scripts, scripts/data): count comment lines the same on CRLF checkouts 2026-10-15 10:24:19 -04:00
swung0x48 67c4864ea1 [CI] (.github/workflows, scripts, scripts/data): check commit messages, comment text and formatting 2026-10-15 10:17:32 -04:00
swung0x48 b1f36a71b5 [Docs] (MG_Backend, MG_Backend/DirectGLES, MG_Impl/Pipe, MG_IntegrationTest/Scenarios, MG_State/GLState, MG_Test/Buffer, MG_Test/Util, MG_Util/Metrics): correct comments about retired switches and moved code 2026-10-15 10:15:41 -04:00
swung0x48 725a73e2b5 [Docs] (.claude/skills): point the anland skill's commit rule at CONTRIBUTING.md 2026-10-15 10:15:41 -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 b808b68fd2 [Chore] (MG_Backend/DirectVulkan): remove an empty source file nothing builds 2026-10-15 10:15:39 -04:00
swung0x48 eb0830dfeb [Fix] (MG_IntegrationTest/Scenarios): re-encode a GBK section sign as UTF-8 2026-10-15 10:15:38 -04:00
swung0x48 f9c5e0adbc [Docs] (docs/Disaggregated, docs/Performance, MG_Pipe, MG_Remote/Client, MobileGL): correct a stale default, stub banners, a call count and a status line
- the create-window measurements move from Config.h to docs/Performance
2026-10-15 10:15:38 -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 35c7b589f4 [Chore] (scripts): add license headers only where missing, covering .inc and Python 2026-10-15 10:15:32 -04:00
swung0x48 f0cd9b2c84 [Chore] (MG_Client, MG_Protocol, MG_Protocol/gen): remove generated wire code nothing builds or includes 2026-10-15 10:15:30 -04:00
swung0x48 bc38b0f735 [Docs] (AGENTS.md, CLAUDE.md, CONTRIBUTING.md): add rules for commits, comments and files 2026-10-15 10:15:30 -04:00
swung0x48 37d07cd38c [CI] (.github/workflows): run CI on cleanup as on feat/disaggregated 2026-10-15 08:28:43 -04:00
swung0x48 652e7cd3fc [Merge] (Anland): take fix-d1100-mali - the damage-swap fallback and extent-and-format shared-image naming on kernels with one dma-buf identity 2026-10-14 20:40:21 -04:00
swung0x48 fdb93e9e65 [Fix] (CI): treat a process that exits mid-read of its /proc stat as gone in the TCP server fixture 2026-10-14 18:59:27 -04:00
swung0x48 d1b3a3325f [Test] (ServerLoop): arm the guilty-reset drain hold by the healthy record's seq so the previous drain cannot take it 2026-10-14 14:59:47 -04:00
swung0x48 28f937d539 [Fix] (Espryt): keep the invalid-image placeholder on ANGLE instead of probing an empty unit it faults on 2026-10-14 10:30:17 -04:00
swung0x48 2afbcaaf4f [CI] (Census): retire the renamed subgroup sanity case and Magma's split T0 fallback, admit the split-only writeback skip 2026-10-13 12:47:31 -04:00
swung0x48 e8dafacb1c [Fix] (Magma): leave the fragment stage out of rasterizer-discard pipelines 2026-10-13 12:47:30 -04:00
swung0x48 6336943b87 [Test] (Coverage): register ClipControlScenario on the gated split arms 2026-10-13 10:28:38 -04:00
swung0x48 a31eabd12b [Test] (IterationRP): accept the driver's dot() rounding within one ulp in the sampled first-reduction probe 2026-10-13 10:28:37 -04:00
swung0x48 b9f940ac63 [Test] (Pipe): re-pin the pipeline member count and the clear-blit recorder golden 2026-10-13 08:02:37 -04:00
swung0x48 5980349b33 [Fix] (CI): the parity gate sanctions Magma's spawn-only AdoptTier0 fallback case 2026-10-13 08:02:36 -04:00
swung0x48 fdb747b06d [Fix] (Remote): stop the adoption's falling edge from overwriting writes made through the adopted map 2026-10-13 08:02:35 -04:00
swung0x48 8ecab66567 [Fix] (Espryt): probe empty image units and keep invalid units empty on drivers that read them as zero 2026-10-13 08:02: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 cfbaffd757 [Fix] (Espryt): defer geometry emits behind memory writes on drivers that drop them 2026-10-12 23:57:48 -04:00
swung0x48 735b705397 [Fix] (Espryt): invalid image units read zero through a shaped placeholder 2026-10-12 23:13:18 -04:00
swung0x48 cd9f67763e [Fix] (Magma): re-emit dynamic state after rasterizer-discard draws 2026-10-12 22:32:28 -04:00
swung0x48 8c2d5019c2 [Fix] (Magma): convert 32-bit int and packed 2_10_10_10 float attributes on the CPU 2026-10-12 21:13:30 -04:00
swung0x48 4e0989b99a [Fix] (Magma): read unbacked depth levels back from the CPU shadow 2026-10-12 21:03:54 -04:00
swung0x48 4eb0dbc8a9 [Fix] (Magma): probe and work around Adreno E5 transfer reads and cross-format slice copies 2026-10-12 21:00:18 -04:00
swung0x48 065d1582ba [Fix] (Magma): ignore shader gl_SampleMask without multisample fragment ops 2026-10-12 19:37:25 -04:00
swung0x48 05d58a566a [Fix] (Espryt): sample cube-array shadow textures at LOD 0 with texture() outside the fragment stage 2026-10-12 19:05:33 -04:00
swung0x48 702f937ca9 [Fix] (Pipe): avalanche the composite shutter mix so dirty bits stop colliding 2026-10-12 18:55:51 -04:00
swung0x48 6129d6e463 [Fix] (Magma): zero gl_Layer in draws into a non-layered framebuffer 2026-10-12 18:28:13 -04:00
swung0x48 53f3b7a9af [Fix] (GL): leave the injected default fragment stage out of program pipeline validation 2026-10-12 18:28:03 -04:00
swung0x48 47601cbbb8 [Fix] (Buffer): refresh persistent read maps at a client-mapped buffer barrier 2026-10-12 18:00:16 -04:00
swung0x48 cd26f508df [Fix] (Pipe): skip the location tables a failed relink cleared when emitting program bindings 2026-10-12 15:30:33 -04:00
swung0x48 da6b172d08 [Fix] (Magma): lower pixel_center_integer gl_FragCoord so Vulkan validation stops refusing the program 2026-10-12 15:06:42 -04:00
swung0x48 171eed9ac0 [Fix] (CI): re-baseline the link ratchet for the seq-ordered buffer writeback signature 2026-10-12 08:40:52 -04:00
swung0x48 09b315197b [Fix] (Espryt): bound usampler2DMS fetches by the bound texture's real sample count 2026-10-12 08:39:26 -04:00