swung0x48
d7655247f7
[Fix, Test] (DirectGLES, Integration): rebind VAOs when an adopted buffer is respecified - the immediate retire path forgot the buffer-id generation, so cached vertex and element bindings kept the deleted store
...
Advance the buffer-id generation when Ops_Respecify retires immutable storage on the context thread, matching the existing adoption and deferred-retirement paths.
Add pixel regression coverage for unchanged VBO/IBO attachments across same-size redefinition, growth and shrinkage, including bound and unbound VAOs sharing a vertex arena and an index arena returning to shadow storage.
2026-09-06 22:55:06 -04:00
swung0x48
50fb13430f
[Merge] (MG_State, ShaderTranspiler, tools/cts): land the write-map landing and open-ended fp64 storage block fixes that take KHR-Single-GL45.subgroups to 100% on Magma
2026-09-05 05:43:34 -04:00
swung0x48
d4f8adcf6d
[Tools, Test] (tools/cts, MG_Test): make the CTS runner's chunk timeout idle-based so a healthy 20-minute invocation is no longer killed and its in-flight case mis-recorded as a crash, and link MSVC test executables with /WHOLEARCHIVE so the dllimport gl* references in GetProcAddress.cpp resolve
2026-09-05 05:36:50 -04:00
swung0x48
795e08f7e6
[Fix, Test] (ShaderTranspiler): flatten fp64 storage blocks whose last member is a runtime array - the pass declined them, so the fp64 demotion re-derived ArrayStride 4 over the application's 8/16/32-byte double buffer and every double/dvecN data[] SSBO read raw words
2026-09-05 05:36:49 -04:00
swung0x48
1e7ecab4db
[Fix, Test] (MG_State, BufferObject): land a non-persistent write map's staged bytes into a GPU-resident store at unmap and explicit flush instead of dropping them - SSBO binding and large-store adoption make resident stores reachable through glMapBufferRange, so every per-draw re-initialisation was silently lost
2026-09-05 05:36:48 -04:00
swung0x48
81b17c0b75
[Test] (ShaderTranspiler, Integration): pin the five reworked shapes - the read-only capture stage through the real link, the seeded carrier's ESSL declaration, the metadata-driven block redeclaration and its decline, the control-stage-less evaluation decline, and a carrier clearing an i64vec4
2026-08-28 06:22:12 -04:00
swung0x48
d1edf765f5
[Fix] (Link, Async): carry the resolved gl_PointSize capture request into the SPIR-V handoff and let a deferred verdict name its own severity - the demotion read the request off a reflection slice phase A never fills it into, so its forced carrier was dead code, and its decline reason replayed at a level no shipped build keeps
2026-08-28 06:22:12 -04:00
swung0x48
97e07190ac
[Fix] (ShaderTranspiler): seed a forced point-size carrier nothing writes and decline a control stage whose live clip/cull distance would still print gl_PointSize - an ES front end deletes a never-written output, and SPIRV-Cross redeclares that block from member decorations rather than access
2026-08-28 06:22:11 -04:00
swung0x48
a4dcdf989e
[Fix] (ShaderTranspiler): stop the point-size carrier landing on a location a live varying owns, and decline the evaluation stage a synthesized pass-through control stage cannot feed - an i64vec4 counted as one location, and a located input carrier trips both backends' pass-through guard
2026-08-28 06:22:11 -04:00
swung0x48
1c113e4b26
[Fix] (ShaderTranspiler): count a 64-bit integer vector as two locations in the XFB flattener's LocationSpan - it read 64-bitness off the element's float type alone, so an i64vec3/4 member packed the members after it onto locations it already owns
2026-08-28 06:22:11 -04:00
swung0x48
bf9cfb3079
[Test] (Integration): PointSizeDemotionScenario - the demoted value chain is client-invisible in both configurations, with pinned per-backend lanes and a log-latch arming guard
2026-08-28 06:22:10 -04:00
swung0x48
e1818d497a
[Test] (ShaderTranspiler): pin the point-size demotion's shapes - capability stripped, carriers named and located past the program's varyings, byte-identical no-ops, whole-struct-copy decline, and the two new L1 key bits
2026-08-28 06:21:31 -04:00
swung0x48
d7f66722d1
[Fix] (ShaderTranspiler, Link, DirectGLES, DirectVulkan): demote tessellation/geometry gl_PointSize to an ordinary varying where the device cannot host the built-in - the value survives for gl_in reads and by-name capture, both backends' declines stay for shapes the pass refuses, and the verdict rides the L1 key
2026-08-28 06:21:30 -04:00
swung0x48
92dc41ebf9
[Test] (DirectVulkan, SelfTest): pin the probe's fence-timeout teardown against a fake driver, the never-worse arming refusal, and paused-span patch/instanced counting against an unpaused control
2026-08-28 06:19:41 -04:00
swung0x48
feea131d8b
[Fix] (DirectVulkan, SelfTest): honour the primitives-generated probe's leak-on-timeout contract in both of its callers, count paused-span draws the frontend cannot price, refuse a substitute measured worse than the stream query, and derive the POST row's failure clause from the measurement
2026-08-28 06:19:40 -04:00
swung0x48
19f4402fbf
[Test] (DirectVulkan): pin the primitives-generated probe's verdict and override mapping, and hold the reroute's GL answers and arming observable on the integration lane
2026-08-28 06:19:40 -04:00
swung0x48
1350031368
[Fix] (DirectVulkan): count GL_PRIMITIVES_GENERATED for transform-feedback-inactive draws - a bring-up probe measures the silent stream query and reroutes such draws through the dedicated primitives-generated query or a clipping-statistics pool, reported from the Vulkan POST
2026-08-28 06:19:39 -04:00
swung0x48
0ee3384b22
[Fix] (Espryt): land a SubData into an adopted store as a GPU-ordered copy - the in-place coherent write tore the frames still reading the old section bytes
2026-08-28 04:50:07 -04:00
swung0x48
ba3f8d6774
[Test] (Integration): pin the adopted mesh-arena store - cross-frame SubData visibility, readback identity, and the GPU-written readback
2026-08-28 04:19:11 -04:00
swung0x48
3327784fd0
[Fix] (Espryt): adopt mesh-arena-sized stores into coherent persistent maps at definition, and stop the flush tiers from re-synchronizing them
2026-08-28 04:19:11 -04:00
swung0x48
ff426da3a9
[Fix, Test] (MG_State, DirectVulkan): order host writes to an adopted store after recorded GPU work - a SubData issued after a dispatch landed in coherent memory before the deferred dispatch executed, so its increments overwrote the newer bytes; un-skip the DirectVulkan half of the SubData-after-dispatch scenario
2026-08-28 03:01:15 -04:00
swung0x48
08419a1fe6
[Chore] (Config): point the two stale comments at the renamed feature fields
2026-08-28 00:47:35 -04:00
swung0x48
5d51372c44
[Chore] (Config): triage backend-scoped env toggles under MOBILEGL_ESPRYT_ and MOBILEGL_MAGMA_ prefixes
2026-08-28 00:38:17 -04:00
swung0x48
7fd4550968
[Fix] (Espryt): copy before any FBO attach in the packed16 probe - attaching the array relayouts it to the plain order and was neutralizing the subject
2026-08-28 00:22:16 -04:00
swung0x48
971537058e
[Fix] (Espryt): probe every allocation recipe of the packed16 shape - the Mali layout heuristic inverts between contexts, so one recipe cannot speak for the storage
2026-08-28 00:22:16 -04:00
swung0x48
dd98c450ad
[Test] (SelfTest): model the params-before-upload escape so a params-first probe regression reads as a red test
2026-08-28 00:22:15 -04:00
swung0x48
5dbbbbd7eb
[Fix] (Espryt): allocate the packed16 probe's textures uploads-first, the order a minted backend texture performs and the one the Mali layout choice keys on
2026-08-28 00:22:15 -04:00
swung0x48
5d140a41ce
[Fix] (Espryt): re-arm the packed16 probe on the allocation-scoped mirror the device actually has and let any mirrored level trigger the widening
2026-08-28 00:22:15 -04:00
swung0x48
bf376b230f
[CI] (Integration): rerun the buffer scenarios with the map flush disabled so the upload-ring tier keeps coverage
2026-08-28 00:15:15 -04:00
swung0x48
29599dcf90
[Fix] (DirectGLES): flush queued buffer ranges through a range-invalidating map first, so a partial write into a busy store is priced by the range
2026-08-27 23:54:19 -04:00
swung0x48
734fab9f90
[Test] (Integration): scope the SubData-after-dispatch readback case to DirectGLES, naming the DirectVulkan upload-ordering gap it exposed
2026-08-27 23:04:52 -04:00
swung0x48
2cd1809c29
[Fix] (Review): rebuild the packed16 probe on the CTS's three-level chains and let the POST row answer for the widening knob actually in force
2026-08-27 22:46:13 -04:00
swung0x48
faed498476
[Test] (IntegrationTest): shield the packed16 renderbuffer clear from an inherited scissor
2026-08-27 22:46:13 -04:00
swung0x48
8282eecbfa
[Fix] (Espryt): store RGB565/RGB5_A1/RGBA4 as 8-bit channels where a POST probe measures the Mali packed16 array-mip field-order mirror
2026-08-27 22:46:12 -04:00
swung0x48
f4f3afb0b6
[Test] (Integration): pin that a queued SubData survives an immediate readback of a GPU-written buffer
2026-08-27 22:19:45 -04:00
swung0x48
a28da07641
[Fix] (DirectGLES): queue app buffer updates and flush them through a staged-copy upload ring instead of stalling in glBufferSubData
2026-08-27 22:19:44 -04:00
swung0x48
200c21336f
[Fix] (Readback): size a cube-face pack buffer by one face, and give a cube view's face its owner layer
2026-08-27 22:05:23 -04:00
swung0x48
2c3fc583d5
[Test] (Readback): pin the one-face pixel pack buffer and a cube view's per-face layers
2026-08-27 21:58:51 -04:00
swung0x48
645a12d8bc
[Fix] (Readback): read the cube face a readback names, and let glGetTextureSubImage name one
2026-08-27 21:54:47 -04:00
swung0x48
8e6acc5528
[Test] (Readback): pin that a cube map's readback answers the face it was asked for
2026-08-27 21:54:46 -04:00
swung0x48
525ffe0f14
[Test] (Review): pin the inverted override mapping, the probe's controls, and that the pinned-on lane is really armed
2026-08-27 21:06:01 -04:00
swung0x48
ad28d2b744
[Fix, Test] (Review): strip a block's member-level locations too, restore the probe's colour mask, and let the POST verdict follow the override
2026-08-27 20:15:31 -04:00
swung0x48
eab622388f
[Test] (TranslationCache): pin the two interface-block location-strip flags as L2 key material
2026-08-27 20:07:49 -04:00
swung0x48
75e573c923
[Fix] (SelfTest): give the located-interface-block probe its own entry-point gate instead of the storage probe's
2026-08-27 19:56:26 -04:00
swung0x48
0d0ef13619
[Fix] (DirectGLES): run the interface-block location strip last, where its deliberately Vulkan-invalid module reaches no validator
2026-08-27 19:44:18 -04:00
swung0x48
23565fcacd
[Fix, Test] (DirectGLES, SelfTest, MG_Test): probe the located-interface-block defect with its controls and cover the strip in both gates
2026-08-27 19:38:39 -04:00
swung0x48
5dc26e3e2c
[Fix] (DirectGLES, ShaderTranspiler): drop the location qualifier from inter-stage interface blocks on a driver that loses their payload
2026-08-27 19:18:35 -04:00
swung0x48
90564aa82e
[Test] (Review): give the geometry point-size case its own capability probe
2026-08-27 15:42:04 -04:00
swung0x48
7520607d47
[Fix] (Review): decline a point-size program the device cannot run, bound the compile-failure source dump, and correct the pass-through rationale
2026-08-27 15:42:04 -04:00
swung0x48
57635a9198
[Test] (Tessellation): unit and headless-GPU coverage for capturing a patch draw's per-vertex payload
2026-08-27 15:06:02 -04:00