swung0x48
|
dca3eb868e
|
[Feat] (Pipe): apply sampler states, sampler views and the three unit sets into the server's own working state
|
2026-09-08 15:07:23 -04:00 |
|
swung0x48
|
7408bad9fd
|
[Feat] (Pipe): apply the framebuffer record per bound target and the texture and renderbuffer resource calls into their own slot-indexed records
|
2026-09-08 15:07:23 -04:00 |
|
swung0x48
|
e8502a6100
|
[Fix] (Pipe): key the framebuffer record to the object it names - a fourth Target value for every DSA entry point that hands a framebuffer over by name, and the metadata-only respecify the sticky bind mask needs
|
2026-09-08 14:50:30 -04:00 |
|
swung0x48
|
9ea44389e7
|
[Fix, Test] (Pipe): widen the two shutters that cannot see their own subject rather than gate their emitters on a second bit - glBindSampler moves only bit 12's generation, and GetCurrentProgram() is null for the whole life of a bound separable pipeline, so bind_sampler_states and the entire program family under-fired
|
2026-09-08 14:30:03 -04:00 |
|
swung0x48
|
17db759891
|
[Fix] (Pipe): state the four seam encodings the packages were each inventing - the sub-data target packing, the depth-stencil aspect numbers, the surface kind constants and the texture target the surface record grew where its padding was
|
2026-09-08 13:51:39 -04:00 |
|
swung0x48
|
2cb44039b5
|
[Fix] (Pipe): stop the include-closure gate going green on a compiler it could not find or on a probe count nobody asked for
|
2026-09-08 13:13:21 -04:00 |
|
swung0x48
|
32033d6993
|
[Fix] (Pipe): land the birth half of the P4a client API behind a publication latch both halves read, gate every emitter on its family's wired constant, raise the sampler view's death notice and count the shader composite band apart from the ordinary slots
|
2026-09-08 13:13:21 -04:00 |
|
swung0x48
|
08192d7266
|
[Feat] (Pipe): land the P4a contract - the resource target enum, the framebuffer target byte, the texture params' builtin sampler, the sampler-parameter field table, four subsystem bits, seven dirty arms and the program archive codec
|
2026-09-08 12:18:29 -04:00 |
|
swung0x48
|
37da3c3a07
|
[Docs] (Disaggregated): record the P3a landing - the five-part gate on the finished tree, the three seam defects the real-path round found, the Track H census, the two-device three-arm A/B on Release APKs (pull / P2-only 0x7f / P3a) with the P2 -O0 erratum, DriverBench T1/T2 against the 0x7f arm, the exit-order UAF closure, and the rulings (ID-13/15/17)
|
2026-09-08 10:23:59 -04:00 |
|
swung0x48
|
fde5fda3b5
|
[Fix] (MG_Impl): never destroy the four remaining MGPipe singletons - the vertex-input emitter is on ~VertexArrayObject own death path since C-1 and answered RecordIsPublished out of a freed latch vector
|
2026-09-08 08:20:55 -04:00 |
|
swung0x48
|
6515c8e6ae
|
[Fix] (MG_Backend, MG_Impl): give the MGPipe input blocks leak-at-exit storage - gPipeInputs and the two verify blocks held the last SharedPtr to a deleted-but-bound vertex array, so __run_exit_handlers ran ~VertexArrayObject and ~BufferObject into a pipe and a backend that were already torn down
|
2026-09-08 08:20:55 -04:00 |
|
Swung0x48
|
d54ec57a5d
|
[Fix] (MG_Impl, MG_Pipe): outlive the exit handlers - a frontend object destroyed by __run_exit_handlers reached the slot allocator, the resource tracker and the applier after their own destructors had run
|
2026-09-08 07:33:16 -04:00 |
|
swung0x48
|
c20e2f2b67
|
[Fix] (scripts): attribute G7 trip over the failing assertion BLOCKS - gtest prints the field name among the compared expressions, so a per-line match calls a real trip inconclusive
|
2026-09-08 07:21:19 -04:00 |
|
swung0x48
|
680ea63360
|
[Test] (MG_IntegrationTest): baseline the CSO slot leak case after two warm-up rounds so it measures growth with the churn, not the first draws one-off slots
|
2026-09-08 07:09:25 -04:00 |
|
swung0x48
|
959ca30810
|
[Test] (MG_Test): declare the new respecify-repair case in ResourceEmitTest pull-skip list so the pull and push ctest name sets stay identical (G2)
|
2026-09-08 07:09:25 -04:00 |
|
swung0x48
|
0bff6875b3
|
[Fix] (MG_Impl, DirectGLES, scripts): take the cheap review minors - the stale validate-point comment, G7's whole-log trip grep and missing INT/TERM traps, G5's CRLF stdout, and the dangling-twin invariant at its member
|
2026-09-08 07:04:20 -04:00 |
|
swung0x48
|
707bced438
|
[Fix] (MG_Impl, MG_Pipe, MG_IntegrationTest): close the four cross-package rows nobody claimed - symmetric vertex-input pairing asserts, the counter G10 reads, and the buffer ABA's Magma-only evidence
|
2026-09-08 07:04:19 -04:00 |
|
swung0x48
|
83c8101a9b
|
[Fix] (DirectGLES): record the fp64 narrowing's dropped SyncGpuWrites as a ruled P3a deviation at the site, with its blast radius
|
2026-09-08 07:00:28 -04:00 |
|
swung0x48
|
2a5e0195b8
|
[Fix] (DirectGLES): stop on an armless P3a subsystem verdict now that every LEGACY_MEMOS=0 lane pins an explicit 0x1ff arm - warning and continuing drew through an unconfigured driver VAO
|
2026-09-08 07:00:28 -04:00 |
|
swung0x48
|
afda613bd9
|
[Fix] (DirectGLES): publish GLESBufferResource::hostBytes under pendingMutex - it was the one member the off-thread SubData/FlushRange arm wrote with neither a lock nor an atomic
|
2026-09-08 07:00:28 -04:00 |
|
swung0x48
|
433f51a065
|
[Fix] (MG_Impl, MG_Test): publish the create a respecify's handle never got - a buffer born while the resource op table was unregistered had every later respecify refused and drew through id 0 with no diagnostic
|
2026-09-08 07:00:06 -04:00 |
|
swung0x48
|
9ba5d7ba1e
|
[CI] (scripts, test.yml, DirectGLES): hash FlushPendingRangesFrom as G5's eleventh row - a push build compiles no FlushPendingRangesNow, so the tenth row protected text the shipping build never sees
|
2026-09-08 06:54:25 -04:00 |
|
swung0x48
|
f0beefa85c
|
[Test] (MG_Test, MG_IntegrationTest): assert a destroyed vertex array returns its CSO slot, on the client allocator and on the DirectVulkan lane where it leaked
|
2026-09-08 06:49:59 -04:00 |
|
swung0x48
|
78ff014547
|
[Fix] (MG_Impl, MG_State, DirectGLES): give the vertex-elements CSO a backend-neutral death path - the client minted every VAO's slot and only Espryt ever freed one, so under Magma each VAO leaked a slot and a 1.3 KB applier record for the life of the process
|
2026-09-08 06:49:59 -04:00 |
|
swung0x48
|
3e298c9ad1
|
[CI] (Pipe): add FlushPendingRangesNow's three-tier drain to G5's byte-identical set
|
2026-09-08 06:02:36 -04:00 |
|
swung0x48
|
fd6b5bdbf2
|
[Fix] (Pipe): restore and rebuild on every exit path of the vertex-input negative control, and keep its logs out of the repository
|
2026-09-08 06:02:36 -04:00 |
|
swung0x48
|
8d3cd67b94
|
[CI] (Pipe): select the P3a subsystem and map-persistent lanes in the only job that unpacks a push build
|
2026-09-08 06:02:36 -04:00 |
|
swung0x48
|
f6c7dcd1b6
|
[Fix] (Pipe): raise the four CSO stats lanes to the P3a subsystem mask so they stop asserting on a configuration nothing ships
|
2026-09-08 06:02:36 -04:00 |
|
swung0x48
|
4ad88214cd
|
[Test] (Pipe): count the map-persistent round trips over a re-specified adopted arena in both arms, now that the VAO rebind fix is in the branch
|
2026-09-08 06:02:36 -04:00 |
|
swung0x48
|
4412cef00c
|
[CI] (Pipe): gate that the buffer pool, the deferred-release drain and the three rings did not move
|
2026-09-08 06:02:36 -04:00 |
|
swung0x48
|
6e9943b36e
|
[Test] (Pipe): assert a regrown adopted store costs one map-persistent round trip per storage definition, not one per draw
|
2026-09-08 06:02:36 -04:00 |
|
swung0x48
|
0cb46fe2bd
|
[Test] (Pipe): reproduce the buffer handle ABA through public GL and prove the pre-rekey guards are what stops it
|
2026-09-08 06:02:36 -04:00 |
|
swung0x48
|
83302ca247
|
[Test] (MG_Test): scope the pipe resource op table in BufferTest's fixture the way it scopes BufferBackendOps - a push build installs both at bring-up, and these 86 cases are the BufferBackendOps arm's
|
2026-09-08 06:00:46 -04:00 |
|
swung0x48
|
3c55e02797
|
[Fix] (Espryt): republish the live shadow base on the ensure path so a lazily twinned store is not left with none for the readers that hold no frontend object
|
2026-09-08 05:27:19 -04:00 |
|
swung0x48
|
75ea7ee2df
|
[Fix] (Espryt): ask the frontend object whether the shadow the ensure path is about to upload holds bytes, instead of a descriptor no content call refreshes
|
2026-09-08 05:27:03 -04:00 |
|
swung0x48
|
13b380feda
|
[Fix] (Espryt): resolve an attribute's pushed vertex buffer by its attribute index, not by the GL binding point the wire attribute carries
|
2026-09-08 05:26:48 -04:00 |
|
swung0x48
|
ed83424c75
|
[Fix, Test] (Espryt): pin that a live host map keeps the handle arm's draw probe dirty and that a backwards generation is refused
|
2026-09-08 04:52:15 -04:00 |
|
swung0x48
|
df055eab13
|
[Fix] (Espryt): treat an unbound vertex-elements record as a memo miss and record the applier-reset serial rule the twin's gate depends on
|
2026-09-08 04:52:15 -04:00 |
|
swung0x48
|
511b3752c0
|
[Fix] (Espryt): make the vertex-input bit require the resource bit and give both new subsystems a named verdict when the knobs leave no arm
|
2026-09-08 04:52:15 -04:00 |
|
swung0x48
|
b28058f37c
|
[Fix] (Espryt): walk all 32 attribute slots so a vertex-elements record that shrinks still disables the arrays it dropped
|
2026-09-08 04:52:15 -04:00 |
|
swung0x48
|
14137bc9a6
|
[Fix] (Espryt): refuse a backwards generation and an out-of-range slot in the handle-keyed GetOrCreate instead of adopting them
|
2026-09-08 04:52:15 -04:00 |
|
swung0x48
|
39933613ae
|
[Fix] (Espryt): re-read the client's shadow base at every use and forget it at the two events that free the allocation it names
|
2026-09-08 04:52:15 -04:00 |
|
swung0x48
|
816373ffd9
|
[Fix] (Espryt): keep the live-map question in the handle arm's draw-clean probe instead of a record field P3a pins false
|
2026-09-08 04:52:15 -04:00 |
|
swung0x48
|
7047331a41
|
[Fix] (Espryt): clamp the handle readback to the backend store past its offset, memoise the buffer handle lookup, and write down the two contracts the ops owed their callers
|
2026-09-08 04:52:15 -04:00 |
|
swung0x48
|
7ef8cb93fc
|
[Fix] (Espryt): leave FlushPendingRangesNow as this file's only definition and call the one shared range ladder from both arms
|
2026-09-08 04:52:15 -04:00 |
|
swung0x48
|
b97a228cea
|
[Fix] (Espryt): carry the adopted-store respecify's buffer-id generation bump into the handle arm as well
|
2026-09-08 04:52:15 -04:00 |
|
swung0x48
|
3840cf734b
|
[Test] (Espryt): extend the slot-table suite to the buffer kind and pin that its death crosses as resource_destroy
|
2026-09-08 04:52:15 -04:00 |
|
swung0x48
|
68db6db7f8
|
[Refactor] (Espryt): key the narrowed fp64 vertex stream on the buffer's handle instead of its lifetime id
|
2026-09-08 04:52:15 -04:00 |
|
swung0x48
|
cd05de504e
|
[Refactor] (Espryt): drive the driver VAO from the pushed vertex-elements record and retire the wrapping index-slot version and its identity patch
|
2026-09-08 04:52:15 -04:00 |
|
swung0x48
|
ce24e2a734
|
[Refactor] (Espryt): answer a readback through the reverse channel and bump the mutation epoch after it, never before
|
2026-09-08 04:52:15 -04:00 |
|