swung0x48
|
748ffc31c5
|
[Perf] (Magma): small busy wire buffers are renamed from a host shadow instead of a staged copy that ends the pass (FCL WriteWireBuffer 0.100 -> 0.077 ms/frame).
|
2026-10-08 06:59:40 -04:00 |
|
swung0x48
|
855b3b5009
|
[Perf] (Magma): converted wire vertex streams are cached across frames and default-framebuffer clears stay standalone (BSL Magma 19.5 -> 77.2 fps, MobileGlues 78.2).
|
2026-10-08 06:59:39 -04:00 |
|
swung0x48
|
ec973fba84
|
[Fix] (Magma): a hang-watch marker slot is reused once its submission's fence completed, not once the host read its event.
|
2026-10-07 17:53:39 -04:00 |
|
swung0x48
|
785df78d77
|
[Perf] (P14): one UBO-ring lookup per draw, split residual copy/stamp loops, one context read for GPU-write marks, Magma slice stamps from the owner's counter (rd12 monolith Espryt 88.8 -> 90.3, Magma 69.8 -> 70.3 fps).
|
2026-10-07 16:06:02 -04:00 |
|
swung0x48
|
4ef9705ee0
|
[Perf] (Magma): wire draws memoise each unit's sampler and skip rebinding an unchanged pipeline, vertex or index binding (rd12 monolith 57.9 -> 60.3 fps).
|
2026-10-07 10:50:38 -04:00 |
|
swung0x48
|
de6ab16756
|
[Refactor] (P13): the legacy BufferBackendOps table, Magma's never-populated texture/render-pass/renderbuffer caches and VkClearManager go, and the buffer mock tests drive the resource op table instead (ratchet 36 -> 27).
|
2026-10-06 21:39:39 -04:00 |
|
swung0x48
|
fa77b1874f
|
[Refactor] (P13): Espryt's frontend-keyed slot-table entries and the apply-thread refusals go, death notices release twins by handle, and the link ratchet refuses any '# P13' line (49 -> 36 symbols).
|
2026-10-06 20:55:16 -04:00 |
|
swung0x48
|
922507f8f8
|
[Refactor] (P13 W6f): Magma's pipeline build reads the draw framebuffer record only, and the frontend texture sync behind it goes; link ratchet 58 -> 49.
|
2026-10-06 19:31:02 -04:00 |
|
swung0x48
|
dab827d54f
|
[Refactor] (P13 W6e): the backends' frontend-framebuffer clear, blit and readback entries go - the verb port owns those slots in every mode - with Magma's frontend render-pass, pending-clear and renderbuffer halves.
|
2026-10-06 18:57:15 -04:00 |
|
swung0x48
|
dc1e95b4c3
|
[Refactor] (P13 W6c): Magma's frontend arm goes - the frontend program source, sampled-set walk, placeholder textures, VAO draw memos, identity tables and fast path - leaving the record arm.
|
2026-10-06 17:55:44 -04:00 |
|
swung0x48
|
e0113503af
|
[Refactor] (P13 W6b): the frontend-arm code after each record-arm return goes, and the transform-feedback state keeps one role.
|
2026-10-06 16:46:09 -04:00 |
|
swung0x48
|
742d43aeb4
|
[Refactor] (P13 W6b): the data-arm predicate folds out of every backend branch; frontend-arm unit cases go, three adapted, and two GL sampling rules move to an integration scenario.
|
2026-10-06 16:39:52 -04:00 |
|
swung0x48
|
7fb18840dc
|
[Refactor] (P13 W5 S8): MOBILEGL_BUILD_RECORD_ARM is folded away - the record arm is unconditional - and retired_switches keeps it from coming back.
|
2026-10-06 15:03:11 -04:00 |
|
swung0x48
|
1cd35d3922
|
[Refactor] (P13 W5 S7): Magma's wire-object collection, wire-store teardown, depth-resolve entry point and the fast-rebind destroy epoch follow the record-arm guard.
|
2026-10-06 13:57:26 -04:00 |
|
swung0x48
|
cb81610b2b
|
[Refactor] (P13 W5 S3): the record arm's definitions and its depth-resolve probe source follow the record-arm guard.
|
2026-10-06 11:58:18 -04:00 |
|
swung0x48
|
1956d6cd6f
|
[Refactor] (P13 W5 S3): transport-only hooks get no-op twins where the record arm calls them, and their guards return to the transport.
|
2026-10-06 11:56:18 -04:00 |
|
swung0x48
|
d00d5c9416
|
[Refactor] (P13 W5 S3): the record stores' includes and the slot tables' refusals follow the record-arm guard.
|
2026-10-06 11:50:26 -04:00 |
|
swung0x48
|
73a185f6d1
|
[Refactor] (P13 W5 S4): the staged stores move to MG_Backend/Record as MG_Record and die through the record fail seam.
|
2026-10-06 11:35:24 -04:00 |
|
swung0x48
|
22739a033c
|
[Refactor] (P13 W5 S2): MG_Backend/DirectVulkan's record-arm guards name MOBILEGL_BUILD_RECORD_ARM.
|
2026-10-06 10:51:26 -04:00 |
|
swung0x48
|
f3a2fd9308
|
[Feat] (P13 W4): Magma monolith takes the record arm in one flip, with in-process persistent-map donation
|
2026-10-06 08:59:53 -04:00 |
|
swung0x48
|
a0bff7cee1
|
[Refactor] (P13 W3b): backends read MG_Pipe::gPipeInputs directly, MGB_CTX and its switch header are gone
|
2026-10-06 04:04:46 -04:00 |
|
swung0x48
|
943aac6afb
|
[Refactor] (P13 W3b): strip the push/legacy-memo guards from both backends
|
2026-10-06 04:04:44 -04:00 |
|
swung0x48
|
4fb75f4e00
|
[Fix] (DirectVulkan): prepare image copy recording after uploads and share texture usage checks
|
2026-10-05 00:19:21 -04:00 |
|
Swung0x48
|
eb71b669b3
|
[Fix] (Build): make the pull and verify builds compile again
|
2026-10-04 06:30:24 -04:00 |
|
swung0x48
|
bb31f374a3
|
[Perf] (DirectVulkan): keep the wire draw's render pass open across draws to the same attachments, closing it only for work that cannot sit inside one
|
2026-10-04 06:18:35 -04:00 |
|
swung0x48
|
7218bacb49
|
[Feature] (SharedImage): sample NV12/P010 dma-bufs through GL_OES_EGL_image_external on both backends, copying foreign buffers into server YUV images
|
2026-10-03 22:46:00 -04:00 |
|
swung0x48
|
287e1df8dc
|
[Fix] (Server, Magma, Espryt): end the session whose GPU work hangs the GPU so it cannot stall the desktop again.
|
2026-10-03 12:28:39 -04:00 |
|
swung0x48
|
316ffe02d0
|
[Fix] (X11): never open an X connection to a display this process serves
|
2026-10-03 01:50:58 -04:00 |
|
swung0x48
|
9f30fc500f
|
[Fix] (Magma): log how many SPIR-V modules the driver screen validated at renderer shutdown.
|
2026-10-03 00:10:58 -04:00 |
|
swung0x48
|
bfa7987ca6
|
[Fix] (Magma): decline programs whose final SPIR-V fails validation instead of handing the module to the driver
|
2026-10-02 23:09:58 -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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
fc415aee76
|
[Fix] (Magma, P8-SV): the wire arm's 3D native mip blit uses one layer with the depth in its z offsets, the depth/stencil mip decline gets its WireDeclineTally row (MipmapDepthStencilAspect), the depth shader mip refuses 1D/1D-array/3D view types before the chain grows, and glDispatchComputeIndirect is issued as vkCmdDispatchIndirect from the wire store (P8-D's barrier rule, wdsp counter, two named declines)
|
2026-09-30 03:44:03 -04:00 |
|
swung0x48
|
d639e54616
|
[Perf] (P8-D, Magma): the wire arm issues glDraw*Indirect / glMultiDraw*Indirect[Count] as vkCmdDraw*Indirect[Count] from the wire store instead of expanding them on the CPU behind a GPU-idle wait (create-indirect split: 321 waits / ~8 s -> 0), with an INDIRECT_COMMAND_READ barrier once per shader write; windr[] PipeStats counters, WireIndirectDrawScenario on both backends x every arm, notes/p8/D.md
|
2026-09-29 22:32:49 -04:00 |
|
swung0x48
|
7cde55b1c1
|
[Feat] (Magma, P11 B2): import a T0 store through VK_ANDROID_external_memory_android_hardware_buffer as a wire buffer (external VkBufferObject), serial-gated release, done-no-bytes readback, and the sustained-lock POST on the renderer's device
|
2026-09-29 17:50:50 -04:00 |
|
swung0x48
|
c371599811
|
[Merge] (P11): dev@c14283ee - scattered sub-image writes upload exactly their texels, Magma submits a frame's recording every 16384 draws with backpressure, and Magma grows descriptor pools geometrically and trims a quiet slot whole; the handle arm notes driver-side writes by handle and the wire arm splits recordings and keeps the trim's epoch peak across descriptor rewinds
|
2026-09-29 12:11:37 -04:00 |
|
swung0x48
|
d20c2d01ae
|
[Fix] (Magma): a frame's recording is submitted every 16384 draws/dispatches and continues on a fresh command buffer, with at most frames-in-flight + 1 submissions outstanding - rd12's 981k-draw loading frame no longer grows one command buffer until Adreno's 16 KiB driver mappings exhaust vm.max_map_count (MOBILEGL_MAGMA_MAX_DRAWS_PER_COMMAND_BUFFER, 0 = unbounded)
|
2026-09-29 09:44:58 -04:00 |
|
swung0x48
|
e0102bad8c
|
[Merge] (P11): dev@c60639db - the Espryt image-bindable re-mint reads GPU levels back on the monolith arm too, partial writes into converted or reshaped levels upload only their region on every arm, Magma orders an upload after the recording's writes and queued clears, and Magma's eglSwapInterval reaches the swapchain
|
2026-09-29 06:15:56 -04:00 |
|
swung0x48
|
c60639db1d
|
[Fix] (Magma): eglSwapInterval reaches the swapchain - 0 picks IMMEDIATE, else MAILBOX, else FIFO; >= 1 FIFO; < 0 FIFO_RELAXED, else FIFO; rebuilt after the next present when the mode changes (MC 26.3 vsync on: 190-290 fps -> 120)
|
2026-09-29 05:51:18 -04:00 |
|
swung0x48
|
b1d60523e4
|
[Fix] (Magma): an upload into an image the open recording already wrote, or that still has a queued clear, is submitted after that work - a glTexSubImage after a clear or a draw into the level no longer ends up under it
|
2026-09-29 04:28:55 -04:00 |
|
swung0x48
|
74636c8432
|
[MG_Backend, MG_Test] (P7): the wire arm's shader colour blit samples an unscaled blit through its nearest sampler, so a 1:1 GL_LINEAR glBlitFramebuffer into the default framebuffer is an exact copy
|
2026-09-23 18:59:20 -04:00 |
|
swung0x48
|
9eb798a60e
|
[MG_Backend, MG_Test, MG_IntegrationTest, scripts] (P7): a private image placeholder is keyed by (shape, unit) and capped, and the depth-resolve identity is built by a tested helper
|
2026-09-23 17:45:57 -04:00 |
|