swung0x48
6c742eba8a
[Build] (Config): bump the version to 26.10
2026-10-02 19:43:47 -04:00
swung0x48
69e96f5b8d
[Feature] (Client): read a system config file and decline EGL/GLX/GBM when no server answers
2026-10-02 19:36:38 -04:00
swung0x48
d24abe9287
[Fix] (Espryt): make window buffer age opt-in
2026-10-02 18:34:23 -04:00
swung0x48
d6d75c9951
[Fix] (Espryt): copy whole frames into shared images
2026-10-02 17:38:55 -04:00
swung0x48
bb4e3e0ec6
[Fix] (Espryt): query buffer age only after a damage region is declared
2026-10-02 17:11:31 -04:00
swung0x48
233e2f8ced
[Fix] (Espryt): swap a pbuffer without damage rectangles
2026-10-02 16:27:16 -04:00
swung0x48
74919a3bc1
[Feature] (Present): buffer age and swap damage end to end on Espryt and Magma
2026-10-02 15:19:39 -04:00
swung0x48
7090e31dee
[Feature] (Damage): damage-region and buffer-age bookkeeping with host tests
2026-10-02 14:51:48 -04:00
swung0x48
5accb0985c
[Fix] (glslang): keep samplers of anonymous uniform structs out of the default uniform block, which made Adreno page-fault into device loss on Shadertoy
2026-10-02 14:20:36 -04:00
swung0x48
58685bc116
[Fix] (Server): wait out an apply thread that is busy in a GPU stall at Stop() instead of aborting every session
2026-10-02 13:54:26 -04:00
swung0x48
34090097a1
[Fix] (Client): make a readback on a lost device a no-op instead of a Fatal that kills the client
2026-10-02 13:43:51 -04:00
swung0x48
58c3d9bde5
[Fix] (P14): latch a lost GPU device per session on Magma and Espryt instead of aborting the whole server
2026-10-02 13:37:58 -04:00
swung0x48
d03fe4c9dd
[Fix] (Client): drop the late reply of a timed-out surface op instead of reading it as the next op's
2026-10-02 13:34:17 -04:00
swung0x48
239fc228fc
[Fix] (DirectVulkan): retype gl_FragCoord access chains to Private when the y-flip pass redirects them to its copy
2026-10-02 13:34:16 -04:00
swung0x48
8da082f805
[Fix] (State): start the clear colour at GL's (0, 0, 0, 0), not opaque black
2026-10-02 12:50:36 -04:00
swung0x48
258b946086
[Fix] (P12): publish the server window's extent from the display on every resize, at once, and let eglQuerySurface take it in
2026-10-02 12:03:52 -04:00
swung0x48
16b07cf4b5
[Fix] (DirectVulkan): build offscreen targets of a window-created renderer through AImageReader instead of a null headless entry point
2026-10-02 11:42:14 -04:00
swung0x48
51c37bcbc9
[Fix] (Sampler): convert sampler parameters set through the other scalar type
2026-10-02 11:22:00 -04:00
swung0x48
5a7b23f661
[Feature] (P12): suspend the on-screen session when the server window goes, resume it on the next, and republish a resized window's extent
2026-10-02 11:14:27 -04:00
swung0x48
15f9b27a42
[Fix] (P14): publish a cached sampler CSO into each share group that names it
2026-10-02 10:35:44 -04:00
swung0x48
82d96a63c9
[Docs] (Anland): runbook and skill for bringing up MobileGL with anland and KDE Plasma
2026-10-02 10:31:35 -04:00
swung0x48
7520e53b5e
[Feature] (SharedImage): GPU-side fences between sessions on Espryt and Magma, no CPU wait at present
2026-10-02 10:31:34 -04:00
swung0x48
b5cab44100
[Feature] (SharedImage): sync_file write/read fences per image, so sessions order their access without CPU waits
2026-10-02 09:40:12 -04:00
swung0x48
672261764e
[Fix] (SharedImage): allocate and import ARGB8888/XRGB8888 images so KWin's offscreen Quick views get buffers
2026-10-02 09:37:17 -04:00
swung0x48
0e314f645e
Remove a stray build log
2026-10-02 09:18:20 -04:00
swung0x48
350fc699a1
[Fix] (SharedImage): create dma-buf wl_buffers without create_immed, drain the ring before teardown ops, and decline Magma records after the renderer is gone
2026-10-02 09:18:05 -04:00
swung0x48
3d17e8c10b
[Feature] (SharedImage): zero-copy Wayland windows via linux-dmabuf, EGL dma-buf import, GBM backend, and Espryt/Magma AHB present and texture binding
2026-10-02 08:39:59 -04:00
swung0x48
38842985f8
[Feature] (SharedImage): server-allocated AHB images over a shared_image pipe verb, with dma-buf fds on the aux socket
2026-10-02 07:52:25 -04:00
swung0x48
e06aabe812
[Docs] (Anland): plan for zero-copy windows via server-allocated AHB dma-bufs
2026-10-02 07:34:45 -04:00
swung0x48
67a97065b8
[Fix] (DirectVulkan): transpose quarter-turn viewports and scissors, rebuild a resized pbuffer's target, and leave out-of-range default-framebuffer reads unfilled
2026-10-02 07:15:47 -04:00
swung0x48
ec084959fa
[Docs] (Anland): record the Magma bring-up to Espryt parity
2026-10-02 06:36:20 -04:00
swung0x48
4b388950e3
[Fix] (DirectVulkan): decline draws from storeless buffers and sample with defaults when a texture's sampler CSO is gone, as DirectGLES does
2026-10-02 06:33:53 -04:00
swung0x48
7e76a98d36
[Fix] (DirectVulkan): keep one renderer per session across its surfaces, follow bind_context to each context's surface, and keep the wire resource ops registered while any session lives
2026-10-02 06:24:13 -04:00
swung0x48
15dbe78ce6
[Fix] (DirectVulkan): give each served session its own renderer and Magma state
2026-10-02 05:52:38 -04:00
swung0x48
168808d1a7
[Fix] (DirectVulkan): advertise the GLSL 1.00-era ARB strings KWin gates on, and let a debug property pick the Android backend
2026-10-02 05:42:14 -04:00
swung0x48
75e1da4d1b
[Docs] (Anland): record the lock-screen corruption root cause
2026-10-02 05:07:59 -04:00
swung0x48
cd610934d7
[Fix] (DirectGLES): scope object deaths to their session, and keep container objects and staging rings per native context
2026-10-02 05:07:59 -04:00
swung0x48
335637af38
[Docs] (Anland): record the GLX, Chrome and server-config fixes
2026-10-02 03:09:18 -04:00
swung0x48
4236b42a57
[Fix] (Server+Transpiler): configure the server once per process, and enable blend_func_extended for index-1 outputs
2026-10-02 03:09:17 -04:00
swung0x48
0b6842ac8b
[Fix] (EGL+GL): let ANGLE's GL backend run on MobileGL (GBM displays, foreign wl_display, precision query, ES-free GL_VERSION)
2026-10-02 02:58:55 -04:00
swung0x48
47db68d557
[Feature] (GLX): serve as a glvnd GLX vendor and present remote X windows
2026-10-02 02:11:36 -04:00
swung0x48
ce11c9accd
[Docs] (Anland): record the Chrome/dma-buf feedback fix
2026-10-02 01:45:03 -04:00
swung0x48
7bb9d9829f
[Docs] (Anland): record the Plasma desktop milestone and the remaining issues
2026-10-02 01:38:57 -04:00
swung0x48
ccf8eb6571
[Fix] (Client): serialize multi-threaded GL streams, follow Wayland window resizes, export the KHR image aliases
2026-10-02 01:38:21 -04:00
swung0x48
0b314ddae7
[Fix] (P14): serialize sessions on one backend turn and give each client surface its own native surface
2026-10-02 01:38:20 -04:00
swung0x48
d5acece005
[Docs] (Anland): record the Plasma bring-up state after the P14 server-state fixes
2026-10-02 00:04:01 -04:00
swung0x48
30fef23d52
[Fix] (P14): scope the server staged stores and the context-live flag to the calling session
2026-10-02 00:04:00 -04:00
swung0x48
cbb87b968a
[Docs] (Anland): drop the stale-glslang note and record d554c87c and the landed tooling
2026-10-01 23:36:27 -04:00
swung0x48
d554c87c45
[Fix] (Loader+Texture): tolerate drivers without EXT swap-with-damage, and pair stencil-only storage correctly
...
- eglSwapBuffersWithDamageEXT is an extension entry point that Android's
framework libEGL does not export through dlsym; requiring it was a
bring-up FATAL on TB321FU. Resolve EXT, fall back to the KHR spelling
(same function, interchangeable signature), then to plain
eglSwapBuffers (a zero-rectangle damage call is defined to be exactly
that). The GLES dlsym fallback gains a self-reference guard for
MobileGL installed under a GLES soname, where dlsym would otherwise
hand the backend the frontend's own entry points and recurse forever.
- NormalizePixelFormat maps GL_STENCIL_INDEX8/GL_STENCIL_INDEX to
GL_STENCIL_INDEX/GL_UNSIGNED_BYTE instead of falling through to
RGBA/UBYTE, which no driver can pair with stencil-only storage.
- Tests pin the EXT->KHR->none preference order and the stencil pair.
- The anland handoff is rewritten to the post-P14 landed state: device
evidence (win-smoke green screen, Konsole on screen, eglinfo/glxinfo),
the remote-only recovery procedure, and the known gaps (Plasma session
bring-up, cursor scale, the no-CPU-blit requirement, resize/surface
loss, AVC audit).
2026-10-01 23:16:33 -04:00
swung0x48
7a48521d37
[Fix] (DirectGLES): destroy stale window surfaces before creating a new one
...
A session that dies without its teardown (crash, SIGKILLed client) leaks
its native window surface; the server-owned display window is one
ANativeWindow for the process's lifetime, and Adreno refuses a second
eglCreateWindowSurface on it with EGL_BAD_NATIVE_WINDOW - on TB321FU this
made every session after the first die with 'MobileGL could not acquire
the app Surface 300b'. InitWindowSurface now finds and destroys any
surface still bound to the window it is about to use, and the session
registry records the window with each surface to make that possible.
2026-10-01 22:32:53 -04:00