Commit Graph

  • bc3c4fbb6c [Fix] (Remote): order buffer writebacks by producing seq so a stale capture writeback cannot retire a newer GPU-write mark swung0x48 2026-10-12 06:17:37 -04:00
  • 9b5e15dfc8 [Fix] (Espryt): swizzle GL_BGRA vertex arrays into RGBA streams instead of disabling them swung0x48 2026-10-12 05:51:52 -04:00
  • 363fce247f [Fix] (Espryt): order a dispatch after unbarriered storage-buffer writes so adjacent components survive swung0x48 2026-10-12 05:51:34 -04:00
  • c639e17514 [Fix] (Espryt): barrier re-uploads into image-accessed textures ahead of the dispatch that reads them swung0x48 2026-10-12 05:51:14 -04:00
  • 84b0c20512 [Test] (Espryt): upload into an image-only texture lands before the draw that stores over it swung0x48 2026-10-12 04:29:25 -04:00
  • 14617a57df [Fix] (Espryt): re-sync image units when a bound image texture's content serial moves swung0x48 2026-10-12 04:29:24 -04:00
  • 8800c6b068 [Fix] (Shader): keep subroutine type declarations as prototypes so reserved type names are rejected swung0x48 2026-10-12 03:52:34 -04:00
  • 7abc581551 [Test] (GL): image_external names stay off strict desktop contexts swung0x48 2026-10-12 03:55:16 -04:00
  • a566342eed [Test] (Texture): unsized depth formats resolve to sized storage swung0x48 2026-10-12 03:55:14 -04:00
  • ef3178a98f [Fix] (GL): keep ES-only image_external and ARB_robustness names off the wrong context kinds swung0x48 2026-10-12 03:55:04 -04:00
  • 03aa1528a8 [Fix] (GL): accept GL_SRC_ALPHA_SATURATE as a source and destination blend factor swung0x48 2026-10-12 03:55:03 -04:00
  • e7cd3a3290 [Fix] (Texture): size unsized GL_DEPTH_COMPONENT/GL_DEPTH_STENCIL textures so depth readback can stage them swung0x48 2026-10-12 03:55:03 -04:00
  • 53877cfb6b [Docs] (cts): ReadBuffer waiver names GL_INVALID_OPERATION, not GL_INVALID_ENUM swung0x48 2026-10-12 03:51:59 -04:00
  • 2a1920adce [Fix] (Espryt): redeclare clip/cull distance outputs inside gl_PerVertex for ESSL swung0x48 2026-10-12 03:50:17 -04:00
  • b4f35cd67d [Fix] (cts): run_cts_local.py times out on qpa log idleness, not chunk wall time swung0x48 2026-10-12 03:32:57 -04:00
  • e3fac5e9fa [Fix]: Add Task/Mesh shader enum mapping nv_mesh_shader HH45137 2026-10-12 00:41:40 +08:00
  • 3823fe528c [Feat, Test]: Add NV mesh shader support HH45137 2026-10-12 00:20:53 +08:00
  • cef575916e [Feat] (Video): add the paper-cutout intro and hype reel sources swung0x48 2026-10-11 12:18:32 -04:00
  • 2afeec95cd [Fix] (Magma): readback before the first acquire no longer submits a signaled slot fence swung0x48 2026-10-11 07:48:04 -04:00
  • a2801f9da4 [Fix] (Build): restore the MSVC Windows build of the opengl32 drop-in swung0x48 2026-10-11 07:48:03 -04:00
  • e4aab8d0bc [Fix] (Remote): offer inproc no shared images and refuse them on its server swung0x48 2026-10-10 23:23:36 -04:00
  • 745f59bc3f [Feat] (Remote): give inproc T0 the server's own store and never an AHB swung0x48 2026-10-10 22:32:19 -04:00
  • 5f9c3d6947 [Docs] (Performance): anland glmark2 before/after swung0x48 2026-10-10 07:18:09 -04:00
  • 79afd8a8e0 [Docs] (pwait): levers, timeline and latency effect swung0x48 2026-10-10 04:32:48 -04:00
  • b733eed45c [CI] (census): drop the partial-SubData case from the magma-buffers baseline swung0x48 2026-10-10 08:18:16 -04:00
  • 166f47f115 [Fix] (Test): TrackerShareGroup uses Take() for the context slot swung0x48 2026-10-10 05:25:51 -04:00
  • 96037fc502 [Docs] (P15): pwab device A/B results swung0x48 2026-10-10 04:11:26 -04:00
  • 2b277b01d4 [Docs] (P15): present-wait levers handoff swung0x48 2026-10-09 23:58:43 -04:00
  • 71e442de02 [Feat] (Magma): MOBILEGL_MAGMA_EXTRA_SWAPCHAIN_IMAGES knob swung0x48 2026-10-09 23:36:28 -04:00
  • fa56e1c671 [Test] (Espryt, Magma): WindowPassGateScenario swung0x48 2026-10-09 23:36:27 -04:00
  • 2175ee08cf [Perf] (Espryt): flush once per frame before the window pass swung0x48 2026-10-09 23:36:26 -04:00
  • add15f0a17 [Perf] (Magma): submit off-screen work ahead of the swapchain acquire wait swung0x48 2026-10-09 23:36:25 -04:00
  • f4f2bec711 [Perf] (Espryt): drain small partial writes as a whole-store orphan map swung0x48 2026-10-09 23:39:55 -04:00
  • f66d31c881 [Docs] (P15): TLS cut device A/B swung0x48 2026-10-10 00:12:40 -04:00
  • a6028ff38a [Fix] (TLS): drop the context reference before clearing the slot at thread exit swung0x48 2026-10-09 21:14:43 -04:00
  • 3b01067a9b [Perf] (TLS): Espryt context serial and lookup cache share one thread_local block swung0x48 2026-10-09 20:59:10 -04:00
  • b5f9ab51ca [Perf] (TLS): inline Magma session and built-slot lookups swung0x48 2026-10-09 20:59:09 -04:00
  • f7550322d4 [Perf] (TLS): applier lookup cache in one thread_local block swung0x48 2026-10-09 20:59:08 -04:00
  • 575be3532d [Perf] (TLS): pGLContext and gPipeInputs become pointer slots swung0x48 2026-10-09 20:54:32 -04:00
  • 0a206b0963 [Docs] (P15): queue the pwait latency trace swung0x48 2026-10-10 01:07:41 -04:00
  • 8ebb69d895 [Fix] (Pipe): share-group clocks fire dirty bits 11-14 for sibling-context changes swung0x48 2026-10-09 22:33:47 -04:00
  • 9a1d3062cb [Docs] (P15): present-wait timeline swung0x48 2026-10-09 22:40:27 -04:00
  • a759b4b72d Docs (P15): present-wait analysis uses the existing traces. swung0x48 2026-10-09 21:58:06 -04:00
  • 4d3626215f Docs (P15): Perfetto timeline rule. swung0x48 2026-10-09 21:53:01 -04:00
  • e0b8053e28 Docs (P15): queue the present-wait Perfetto trace. swung0x48 2026-10-09 21:49:53 -04:00
  • a44a877080 Docs (P15): dirty mask parked; C8 approved separately. swung0x48 2026-10-09 21:30:48 -04:00
  • d5ff64ded8 Docs (P15): per-context pipe dirty mask plan. swung0x48 2026-10-09 21:28:39 -04:00
  • b48f55edfd Docs (P15): egc row, global-constants key cuts EmitGlobalConstants 0.022 to 0.014 ms/frame. swung0x48 2026-10-09 20:27:05 -04:00
  • 1accc7f421 Docs (P15): API 29 vs API 26 A/B, native TLS gives no TLS saving in a dlopen'ed lib. swung0x48 2026-10-09 19:22:34 -04:00
  • dce02ae80e Build: -Pmobilegl.androidApi=29 builds a separate API 29 library and plugin; the default stays 26. swung0x48 2026-10-09 10:15:38 -04:00
  • e70925d35b Pipe: per-program global-constants key and frontend-written spans replace the client shadow diff. swung0x48 2026-10-09 18:03:51 -04:00
  • e9201891f5 Docs (P15): Espryt BSL depth-copy and attachment-shadow items measured on device, no gain (x 51.4 vs b 51.9 fps, MobileGlues 55.8); not landed. swung0x48 2026-10-09 16:57:20 -04:00
  • cee9178e22 Bench: bench_session stop restores the pinned clocks. swung0x48 2026-10-09 14:29:56 -04:00
  • 0650608ddc User guide: env fallback now read consistently. swung0x48 2026-10-09 14:29:53 -04:00
  • 0b536de3fb Plugin build: honour the MOBILEGL_BUILD_DISAGGREGATED env fallbacks. swung0x48 2026-10-09 14:25:56 -04:00
  • e072176c24 Plugin manifest: add the relaxed-semantics title meta-data. swung0x48 2026-10-09 14:24:56 -04:00
  • d4688d0037 README: document MOBILEGL_ENABLE_LTO and FRAMES_IN_FLIGHT, link the user guide. swung0x48 2026-10-09 14:24:35 -04:00
  • 13e8e095b4 Fix the unix:/pipe: transport comment in ConfigLoader. swung0x48 2026-10-09 14:24:19 -04:00
  • 286e4af582 Docs: MobileGL no longer steps aside for LIBGL_ALWAYS_SOFTWARE. swung0x48 2026-10-09 14:23:56 -04:00
  • 4e055e4686 Reword the permanent client-window refusal text and drop the stale P12 tag. swung0x48 2026-10-09 14:23:32 -04:00
  • 9f61016776 Add an end-user guide under userguide/. swung0x48 2026-10-09 13:36:15 -04:00
  • 9f4d9095a9 Docs (P15): windowed out-of-process smoke of the LTO plugin passes on both backends; aux-socket shared-image send error noted. swung0x48 2026-10-09 12:17:18 -04:00
  • 6ffd2084fb Docs (P15): open queue puts the CI fix and the user guide first, plus the clock-restore and stale surface-message follow-ups. swung0x48 2026-10-09 11:57:50 -04:00
  • c0ea142955 Docs (P15): hand-off of the running m2ab job (2a/2b A/B) and the LTO server-link check. swung0x48 2026-10-09 11:06:42 -04:00
  • 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). swung0x48 2026-10-09 10:17:27 -04:00
  • 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). swung0x48 2026-10-09 10:15:28 -04:00
  • 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). swung0x48 2026-10-09 08:29:43 -04:00
  • 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). swung0x48 2026-10-09 08:19:04 -04:00
  • 2b8c04373d Gradle builds the library with LTO by default, and the LTO block adds probed ICF, gc and interposition flags per toolchain. swung0x48 2026-10-09 08:36:28 -04:00
  • fcf5ae5659 Magma: an enabled scissor test over a never-written box clips nothing instead of everything (DefaultScissorFollowsSurfaceScenario runs on DirectVulkan instead of skipping). swung0x48 2026-10-09 12:29:14 -04:00
  • 2bbb67e528 DirectGLES: emulate a same-image glBlitFramebuffer through a scratch copy (red-once: without it ATextureBlittedWithinItselfIsSampledByTheNextDraw fails on DirectGLES and DirectGLES.Split). swung0x48 2026-10-09 12:12:08 -04:00
  • db346f2844 Docs (P15): fbm2 row (pipe batch: Magma GL CPU 2.68 -> 2.62, Espryt 3.03 -> 3.00) and BSL check note. swung0x48 2026-10-09 07:42:24 -04:00
  • c85c9439a5 Magma: the pipeline, program and sampler hashes read their thread_local state once per hash (GetOrCreatePipeline 0.026 -> 0.013 ms/frame). swung0x48 2026-10-09 07:42:03 -04:00
  • 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). swung0x48 2026-10-09 07:42:03 -04:00
  • 9ff97c2e7e CI: the control smoke test's stub ctest follows E1 to ApplierReset as well. swung0x48 2026-10-09 06:52:45 -04:00
  • 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). swung0x48 2026-10-09 06:41:45 -04:00
  • 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. swung0x48 2026-10-09 06:41:45 -04:00
  • 8941eae008 Docs (P15): 1c rows (Magma inproc +5.0 % fps), PARITY-AUDIT M1 cross-FBO deferral, Espryt attrib-format split parked. swung0x48 2026-10-09 04:50:18 -04:00
  • 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). swung0x48 2026-10-09 04:50:17 -04:00
  • 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). swung0x48 2026-10-09 03:16:51 -04:00
  • 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. swung0x48 2026-10-09 01:14:52 -04:00
  • 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). swung0x48 2026-10-09 01:14:52 -04:00
  • 6933228d59 Docs (P15): scoreboard with the fixed dev reference and harness H2 (pinned A720, SF frame source; spread 9.3% -> 1.2-2.9%). swung0x48 2026-10-08 23:16:02 -04:00
  • 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). swung0x48 2026-10-08 20:03:32 -04:00
  • 79b6deacaf CI: ScenarioIsolationScenario is exempt from split coverage as a mechanism case (its pair only means something run back to back in one process). swung0x48 2026-10-09 04:09:48 -04:00
  • 262c8985a9 Merge the integration-test scenario isolation fix. swung0x48 2026-10-08 23:10:12 -04:00
  • e5ab9d4f06 CI: barriered-validate wrapper builds without the transport, and the field-ownership self-test expects CopyTexImage2D unbarriered since P15. swung0x48 2026-10-08 23:04:39 -04:00
  • 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. swung0x48 2026-10-08 21:54:10 -04:00
  • 6cecfcd22f Docs (P15): handoff for the async default and frames in flight. swung0x48 2026-10-08 19:49:55 -04:00
  • 16867c5c64 Docs (P15): final wait-class verdicts. swung0x48 2026-10-08 19:49:06 -04:00
  • 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). swung0x48 2026-10-08 19:49:05 -04:00
  • 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). swung0x48 2026-10-08 19:49:04 -04:00
  • 1771381057 Docs (P15): wait-class audit for review and the inproc census and credit results. swung0x48 2026-10-08 18:46:44 -04:00
  • 2a1f1df6d1 Docs (P15): handoff notes on the inproc serialization and the anland root cause. swung0x48 2026-10-08 18:01:52 -04:00
  • cc5a4c0a60 Bench session retries a slow service restart for up to 30 s before reporting it not restored. swung0x48 2026-10-08 18:01:51 -04:00
  • 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. swung0x48 2026-10-08 18:01:50 -04:00
  • 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). swung0x48 2026-10-08 16:52:03 -04:00
  • 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). swung0x48 2026-10-08 16:11:11 -04:00
  • 58a97bb7b8 Bench session stops the anland app at start and relaunches it at stop, so FCL keeps the foreground. swung0x48 2026-10-08 16:05:01 -04:00
  • 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). swung0x48 2026-10-08 15:53:42 -04:00