swung0x48
|
cc23ed3c7e
|
[Fix] (Shader): reject a location qualifier on an atomic counter instead of dropping it with a warning
|
2026-10-12 08:32:47 -04:00 |
|
swung0x48
|
4cb65bdfdc
|
[Fix] (Shader): place relaxed-rule atomic counters on their binding's offset cursor and reject unsized, unbound and overlapping counters at compile
|
2026-10-12 08:32:46 -04:00 |
|
swung0x48
|
c2dbcbee19
|
[Fix] (GL): report GL_SAMPLE_POSITION from the backend's sample locations and check the index against the draw framebuffer's GL_SAMPLES
|
2026-10-12 08:32:44 -04:00 |
|
swung0x48
|
45f5bae8b3
|
[Fix] (GL): answer one for the name-length program queries of a program linked from SPIR-V
|
2026-10-12 08:32:44 -04:00 |
|
swung0x48
|
b4da0e1a87
|
[Fix] (GL): raise INVALID_VALUE/INVALID_ENUM from glGetStringi for an index past the list or an unindexed name
|
2026-10-12 08:32:43 -04:00 |
|
swung0x48
|
049c8a421c
|
[Fix] (GL): implement glGetCompressedTextureSubImage over the compressed block shadow
|
2026-10-12 08:22:18 -04:00 |
|
swung0x48
|
60ba52bfe4
|
[Fix] (GL): validate the glGetTextureSubImage region with INVALID_VALUE before refusing a partial read
|
2026-10-12 08:22:17 -04:00 |
|
swung0x48
|
b7d42faac0
|
[Fix] (GL): answer GL_TEXTURE_BUFFER_DATA_STORE_BINDING in glGetTexLevelParameter
|
2026-10-12 08:22:16 -04:00 |
|
swung0x48
|
2f312262ea
|
[Fix] (GL): keep TEXTURE_BASE_LEVEL/MAX_LEVEL as set on immutable textures and clamp only the effective range
|
2026-10-12 08:22:16 -04:00 |
|
swung0x48
|
4b5c315ea5
|
[Fix] (GL): report FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS and treat an attached layer past the last one as an incomplete attachment
|
2026-10-12 08:22:15 -04:00 |
|
swung0x48
|
d4501e0c23
|
[Fix] (GL): raise INVALID_OPERATION from glTextureParameter* for sampler state on a multisample texture
|
2026-10-12 08:22:14 -04:00 |
|
swung0x48
|
6e43ff8ccc
|
[Feat] (GL): apply glClipControl on both backends and advertise ARB_clip_control
|
2026-10-12 08:11:18 -04:00 |
|
swung0x48
|
82ef0053ea
|
[Fix] (DirectVulkan): express polygon facing as the pipeline front face
|
2026-10-12 08:10:50 -04:00 |
|
swung0x48
|
c83d27a668
|
[Feat] (GL): advertise ARB_cull_distance where the backend has cull distances
|
2026-10-12 08:10:50 -04:00 |
|
swung0x48
|
454083bf57
|
[Fix] (DirectGLES): redeclare input gl_PerVertex with the producer's clip/cull sizes
|
2026-10-12 08:10:04 -04:00 |
|
swung0x48
|
b22c37f763
|
[Fix] (GL): resolve attribute array elements in glGetAttribLocation
|
2026-10-12 08:10:04 -04:00 |
|
swung0x48
|
4c9ce56124
|
[Feat] (GL): advertise the 4.x-core extension batch and ARB_tessellation_shader where the device has tessellation
|
2026-10-12 08:09:24 -04:00 |
|
swung0x48
|
2eae028938
|
[Fix] (GL): report tessellation-stage image uniform limits from the backend and enforce them at link
|
2026-10-12 08:08:58 -04:00 |
|
swung0x48
|
c881bc2396
|
[Feat] (Magma): pipeline and primitive fragment shading rate via VK_KHR_fragment_shading_rate
|
2026-10-12 08:03:31 -04:00 |
|
swung0x48
|
db23b9d551
|
[Feat] (Espryt): forward fragment shading rate to the driver extension
|
2026-10-12 08:03:29 -04:00 |
|
swung0x48
|
6d27499f3c
|
[Feat] (ShaderTranspiler): carry shading-rate built-ins through the ESSL leg
|
2026-10-12 08:03:28 -04:00 |
|
swung0x48
|
7e544c2b78
|
[Feat] (Frontend): add GL_EXT_fragment_shading_rate state, entry points and getters
|
2026-10-12 08:03:27 -04:00 |
|
swung0x48
|
ba6db60c09
|
[Fix] (GL): fail the link when a stage exceeds its uniform or storage block limits
|
2026-10-12 06:46:05 -04:00 |
|
swung0x48
|
106190e2ff
|
[Fix] (Shader): make demoted double varyings flat on every stage so both sides of the interface agree
|
2026-10-12 06:46:04 -04:00 |
|
swung0x48
|
bc3c4fbb6c
|
[Fix] (Remote): order buffer writebacks by producing seq so a stale capture writeback cannot retire a newer GPU-write mark
|
2026-10-12 06:46:04 -04:00 |
|
swung0x48
|
9b5e15dfc8
|
[Fix] (Espryt): swizzle GL_BGRA vertex arrays into RGBA streams instead of disabling them
|
2026-10-12 05:59:29 -04:00 |
|
swung0x48
|
363fce247f
|
[Fix] (Espryt): order a dispatch after unbarriered storage-buffer writes so adjacent components survive
|
2026-10-12 05:59:28 -04:00 |
|
swung0x48
|
c639e17514
|
[Fix] (Espryt): barrier re-uploads into image-accessed textures ahead of the dispatch that reads them
|
2026-10-12 05:59:27 -04:00 |
|
swung0x48
|
84b0c20512
|
[Test] (Espryt): upload into an image-only texture lands before the draw that stores over it
|
2026-10-12 04:29:44 -04:00 |
|
swung0x48
|
14617a57df
|
[Fix] (Espryt): re-sync image units when a bound image texture's content serial moves
|
2026-10-12 04:29:43 -04:00 |
|
swung0x48
|
8800c6b068
|
[Fix] (Shader): keep subroutine type declarations as prototypes so reserved type names are rejected
|
2026-10-12 03:55:51 -04:00 |
|
swung0x48
|
7abc581551
|
[Test] (GL): image_external names stay off strict desktop contexts
|
2026-10-12 03:55:50 -04:00 |
|
swung0x48
|
a566342eed
|
[Test] (Texture): unsized depth formats resolve to sized storage
|
2026-10-12 03:55:49 -04:00 |
|
swung0x48
|
ef3178a98f
|
[Fix] (GL): keep ES-only image_external and ARB_robustness names off the wrong context kinds
|
2026-10-12 03:55:49 -04:00 |
|
swung0x48
|
03aa1528a8
|
[Fix] (GL): accept GL_SRC_ALPHA_SATURATE as a source and destination blend factor
|
2026-10-12 03:55:48 -04:00 |
|
swung0x48
|
e7cd3a3290
|
[Fix] (Texture): size unsized GL_DEPTH_COMPONENT/GL_DEPTH_STENCIL textures so depth readback can stage them
|
2026-10-12 03:55:48 -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
|
2a1920adce
|
[Fix] (Espryt): redeclare clip/cull distance outputs inside gl_PerVertex for ESSL
|
2026-10-12 03:55:46 -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
|
cef575916e
|
[Feat] (Video): add the paper-cutout intro and hype reel sources
|
2026-10-11 12:18:32 -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
|
5f9c3d6947
|
[Docs] (Performance): anland glmark2 before/after
|
2026-10-10 08:18:17 -04:00 |
|
swung0x48
|
79afd8a8e0
|
[Docs] (pwait): levers, timeline and latency effect
|
2026-10-10 08:18:16 -04:00 |
|
swung0x48
|
b733eed45c
|
[CI] (census): drop the partial-SubData case from the magma-buffers baseline
|
2026-10-10 08:18:16 -04:00 |
|
swung0x48
|
166f47f115
|
[Fix] (Test): TrackerShareGroup uses Take() for the context slot
|
2026-10-10 05:25:51 -04:00 |
|
swung0x48
|
96037fc502
|
[Docs] (P15): pwab device A/B results
|
2026-10-10 04:14:57 -04:00 |
|
swung0x48
|
2b277b01d4
|
[Docs] (P15): present-wait levers handoff
|
2026-10-10 04:14:56 -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
|
f66d31c881
|
[Docs] (P15): TLS cut device A/B
|
2026-10-10 04:14:24 -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
|
0a206b0963
|
[Docs] (P15): queue the pwait latency trace
|
2026-10-10 04:14:08 -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
|
9a1d3062cb
|
[Docs] (P15): present-wait timeline
|
2026-10-10 04:14:02 -04:00 |
|
swung0x48
|
a759b4b72d
|
Docs (P15): present-wait analysis uses the existing traces.
|
2026-10-09 21:58:06 -04:00 |
|
swung0x48
|
4d3626215f
|
Docs (P15): Perfetto timeline rule.
|
2026-10-09 21:53:01 -04:00 |
|
swung0x48
|
e0b8053e28
|
Docs (P15): queue the present-wait Perfetto trace.
|
2026-10-09 21:49:53 -04:00 |
|
swung0x48
|
a44a877080
|
Docs (P15): dirty mask parked; C8 approved separately.
|
2026-10-09 21:30:48 -04:00 |
|
swung0x48
|
d5ff64ded8
|
Docs (P15): per-context pipe dirty mask plan.
|
2026-10-09 21:28:39 -04:00 |
|
swung0x48
|
b48f55edfd
|
Docs (P15): egc row, global-constants key cuts EmitGlobalConstants 0.022 to 0.014 ms/frame.
|
2026-10-09 20:27:55 -04:00 |
|
swung0x48
|
1accc7f421
|
Docs (P15): API 29 vs API 26 A/B, native TLS gives no TLS saving in a dlopen'ed lib.
|
2026-10-09 20:27:55 -04:00 |
|
swung0x48
|
dce02ae80e
|
Build: -Pmobilegl.androidApi=29 builds a separate API 29 library and plugin; the default stays 26.
|
2026-10-09 20:27:53 -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
|
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.
|
2026-10-09 18:26:42 -04:00 |
|
swung0x48
|
cee9178e22
|
Bench: bench_session stop restores the pinned clocks.
|
2026-10-09 18:26:41 -04:00 |
|
swung0x48
|
0650608ddc
|
User guide: env fallback now read consistently.
|
2026-10-09 14:29:53 -04:00 |
|
swung0x48
|
0b536de3fb
|
Plugin build: honour the MOBILEGL_BUILD_DISAGGREGATED env fallbacks.
|
2026-10-09 14:25:56 -04:00 |
|
swung0x48
|
e072176c24
|
Plugin manifest: add the relaxed-semantics title meta-data.
|
2026-10-09 14:24:56 -04:00 |
|
swung0x48
|
d4688d0037
|
README: document MOBILEGL_ENABLE_LTO and FRAMES_IN_FLIGHT, link the user guide.
|
2026-10-09 14:24:35 -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
|
9f61016776
|
Add an end-user guide under userguide/.
|
2026-10-09 13:36:15 -04:00 |
|
swung0x48
|
9f4d9095a9
|
Docs (P15): windowed out-of-process smoke of the LTO plugin passes on both backends; aux-socket shared-image send error noted.
|
2026-10-09 12:54:30 -04:00 |
|
swung0x48
|
6ffd2084fb
|
Docs (P15): open queue puts the CI fix and the user guide first, plus the clock-restore and stale surface-message follow-ups.
|
2026-10-09 12:54:29 -04:00 |
|
swung0x48
|
c0ea142955
|
Docs (P15): hand-off of the running m2ab job (2a/2b A/B) and the LTO server-link check.
|
2026-10-09 12:54:28 -04:00 |
|
swung0x48
|
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).
|
2026-10-09 12:54:27 -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
|
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
|
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).
|
2026-10-09 12:54:24 -04:00 |
|
swung0x48
|
2b8c04373d
|
Gradle builds the library with LTO by default, and the LTO block adds probed ICF, gc and interposition flags per toolchain.
|
2026-10-09 12:54:24 -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
|
db346f2844
|
Docs (P15): fbm2 row (pipe batch: Magma GL CPU 2.68 -> 2.62, Espryt 3.03 -> 3.00) and BSL check note.
|
2026-10-09 07:42:24 -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
|
9ff97c2e7e
|
CI: the control smoke test's stub ctest follows E1 to ApplierReset as well.
|
2026-10-09 06:52:45 -04:00 |
|
swung0x48
|
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).
|
2026-10-09 06:41:45 -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
|
8941eae008
|
Docs (P15): 1c rows (Magma inproc +5.0 % fps), PARITY-AUDIT M1 cross-FBO deferral, Espryt attrib-format split parked.
|
2026-10-09 04:50:18 -04:00 |
|