swung0x48
d8576a2ed3
[Fix] (DirectVulkan, ShaderTranspiler, MG_IntegrationTest, SelfTest, TraceReplay): use native subgroups and patch iterationRP's under-declared scratch
...
iterationRP's Program 203 declares shared vec2 prefixSumCache[32] for a
512-invocation workgroup indexed by gl_SubgroupID; any device narrower
than 16 lanes partitions into more than 32 subgroups and the pack writes
shared memory out of bounds (heap corruption on lavapipe's CPU
rasterizer, ssim 0.028 on the CI retrace). Fix it where the fault lies -
in the fixture - and keep the GL contract sound everywhere else:
- FixIterationRPSubgroupScratchPass: fingerprint-gated SPIR-V pass that
grows exactly that array to ceil(invocations/width) entries on sub-16-lane devices; every other module passes through byte-identical.
- DeriveNumSubgroupsPass stays default-on for the Adreno topology bug
and is made spec-sound: pipelines request REQUIRE_FULL_SUBGROUPS
whenever the workgroup shape makes the flag legal (computeFullSubgroups
enabled, local_size_x a multiple of the native width, subgroup count
within maxComputeWorkgroupSubgroups).
- EmulateSubgroupsPass: 32-lane virtual-subgroup lowering kept in-tree
as a last resort, enabled only by MOBILEGL_MAGMA_EMULATE_SUBGROUP=1 on
devices with no native subgroup support; fails closed on extended
subgroup instructions and on modules whose added scratch would exceed
maxComputeSharedMemorySize.
- IterationRPFirstReductionScenario skips gracefully outside the pack's
16..256-lane source domain; the new IterationRPScratchFixScenario runs
the fixture-shaped reduction on any width and asserts the exact
width-independent total. DriverPost keeps reporting FAIL on
out-of-domain devices.
- Program203 -> IterationRP rename throughout; the per-trace
num_subgroups_quirk plumbing is removed from the trace replayer, JNI
chain, and CI workflows.
2026-08-19 09:48:11 -04:00
swung0x48
2b6c2b561c
[Fix, Test] (DirectVulkan, ShaderTranspiler, TraceReplay): derive NumSubgroups behind opt-in quirk
2026-08-18 22:31:57 -04:00
swung0x48 and Claude Fable 5
12c94111b5
[Fix, Test] (DirectVulkan, SelfTest, MG_IntegrationTest, TraceReplay): snapshot sampler/image feedback and add Program 203 diagnostics
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-08-18 03:04:09 -04:00
swung0x48
7769156cfc
[Fix, Test] (ShaderTranspiler, WGL, TraceReplay): remove subgroup pack quirks and tune iterationRP
2026-08-17 01:55:17 -04:00
swung0x48
0ecfdff4e7
[Fix, Test] (MG_State, MG_Util, DirectVulkan, MG_Test): replay narrow-subgroup reductions correctly
2026-08-16 13:33:01 -04:00
swung0x48
6df5a6137f
[CI] (trace-replay): run iterationRP only on DirectVulkan
2026-08-16 11:09:56 -04:00
swung0x48
b3794f4e6a
[Feat] (MG_Impl, MG_State, MG_Util, DirectGLES, DirectVulkan, MG_Test): implement ARB_clear_buffer_object correctly
2026-08-16 01:12:28 -04:00
swung0x48
14d3901d30
[Chore, Test] (MG_State, MG_Util, DirectGLES, DirectVulkan): make SPIR-V validation task-local
2026-08-15 22:58:28 -04:00
swung0x48
d4766513e4
[Fix, Test] (DirectVulkan): replay Photon descriptor pressure correctly
2026-08-15 22:35:39 -04:00
swung0x48
72dc7aa6aa
[Chore] (MG_Config, MG_State, MG_Util): gate SPIR-V validation at startup
2026-08-15 22:35:39 -04:00
swung0x48
9d1b280375
[Fix, Test] (MG_Util, MG_Test): rename Photon-conflicting MSL identifiers
2026-08-15 09:40:13 -04:00
swung0x48
8acd885594
[Fix, Test] (DirectVulkan): preserve viewport-index program metadata
2026-08-15 09:40:13 -04:00
swung0x48
10ff5e2b18
[Fix, Test] (DirectGLES, DirectVulkan): advertise indirect draw capabilities accurately
...
- advertise GL_ARB_draw_indirect when supported
- gate GL_ARB_base_instance on complete non-zero firstInstance semantics
- synchronize Driver POST reporting
- add capability and extension-advertisement regression tests
2026-08-15 06:30:44 -04:00
swung0x48
a6e52476f3
[Chore] (CMake): skip embedded SPIRV-Tools executables
2026-08-15 05:48:41 -04:00
swung0x48
0deff52a1b
[Fix, Test] (DirectVulkan, trace-replay): replay quarter-turn surfaces correctly
2026-08-13 06:45:28 -04:00
swung0x48
50fefca959
Merge branch "feat/cts-viewport-array" into dev
2026-08-13 04:57:40 -04:00
swung0x48
42ad62b54c
[Fix, Test] (MG_Util, MG_IntegrationTest): advertise the GL 4.3 VIEWPORT_BOUNDS_RANGE floor on a GLES driver that has no such query, instead of a range admitting no origin
2026-08-13 04:44:23 -04:00
swung0x48
f41403e227
[Feat, Test] (MG_Backend/DirectVulkan, MG_Test, MG_IntegrationTest): rasterize the viewport gl_ViewportIndex selects, instead of collapsing all sixteen onto viewport 0
2026-08-13 04:44:23 -04:00
swung0x48
5fbb17f6b9
[Feat, Fix, Test] (MG_State, MG_Impl, MG_Backend, MG_Test): give ARB_viewport_array real 16-element indexed state instead of eight stubs and a viewport-0 echo
2026-08-13 04:44:23 -04:00
swung0x48
92d8f7269b
[Fix] (MG_IntegrationTest): drop the executable bit a copied-in scenario file carried
2026-08-13 04:29:23 -04:00
swung0x48
822e405c77
Merge branch "feat/vk-barrier-layer-ranges" into dev
2026-08-13 04:28:57 -04:00
swung0x48
b8233f9c4e
[Fix, Test] (MG_Backend/DirectVulkan, MG_IntegrationTest): the barrier before every attachment transfer only ever moved layer 0, so a copy off a non-zero layer read a layout nothing had transitioned
2026-08-13 04:01:20 -04:00
Swung0x48
91475a7b6f
Merge branch feat/cts-copyimage-frontend into dev
2026-08-13 03:59:16 -04:00
Swung0x48
cee17025a0
[Test] (MG_Test): pin the plain mutable-texture copy every new validator rule is a new way to reject
2026-08-13 03:17:27 -04:00
Swung0x48
9642ae4d20
[Fix, Test] (MG_Impl/Texture, MG_Backend, MG_Test): copy_image compatibility is texel-block size, and neither backend was told which slice to copy
2026-08-13 03:17:27 -04:00
swung0x48
595d140036
Merge branch "feat/cts-copyimage-magma-layers" into dev
2026-08-13 03:11:21 -04:00
swung0x48
b62d1f2078
[Fix, Test] (MG_Backend/DirectVulkan, MG_IntegrationTest): map a layered CopyImageSubData onto the axis each endpoint keeps its slices on, instead of copying slice 0 and calling it done
2026-08-13 02:49:57 -04:00
swung0x48
5e82ff968a
Merge branch "feat/cts-rgb9e5-raw-transfer" into dev
2026-08-13 02:47:18 -04:00
swung0x48
6a80a82dd3
[Fix, Test] (MG_Util, MG_Backend/DirectGLES, MG_Backend/DirectVulkan, MG_Test): a packed texel whose client type already spells its storage word must cross glGetTexImage unencoded, or the RGB9_E5 shared exponent gets canonicalized
2026-08-13 02:41:37 -04:00
swung0x48
f9182a5ca3
Merge branch "fix/cts-copyimage-level-validation" into dev
2026-08-13 02:38:43 -04:00
swung0x48
f37b511fca
[Fix, Test] (MG_Impl/GLImpl, MG_Backend/DirectVulkan, MG_Backend/DirectGLES, MG_Test, MG_IntegrationTest): a glCopyImageSubData to a mipmap level the texture never had is INVALID_VALUE, not a subresource handed to the driver
2026-08-13 02:28:55 -04:00
swung0x48
38027d21f8
Merge branch "feat/log-level-semantics" into dev
2026-08-13 02:19:26 -04:00
Swung0x48
dd2a62228f
[Fix, Feat, Test] (MG_Util, MG_Backend, MG_Impl, MG_State): correct the log severity ordering and unwind the diagnostics it silenced
2026-08-13 02:02:49 -04:00
swung0x48
373aa44dd7
Merge branch "fix/cts-tess-ssbo-crash" into dev
2026-08-13 01:38:58 -04:00
swung0x48
96646df12e
[Fix] (MG_Backend/DirectVulkan): review round - failure diagnostics take MGLOG_E, the once-per-patch-size success note takes MGLOG_D, and the per-draw refusal stays latched
2026-08-13 01:34:57 -04:00
swung0x48
f20b20e643
[Fix, Feat, Test] (MG_Backend/DirectVulkan, MG_Test): synthesize the pass-through tessellation control stage GL gives an evaluation-only program, and refuse the half-tessellated pipeline Mali dereferences null inside
2026-08-13 01:28:35 -04:00
swung0x48
2587814970
Merge branch "feat/cts-image-format-qualifier" into dev
2026-08-12 19:23:51 -04:00
swung0x48
43398e33e8
[Fix, Test] (MG_Util, MG_IntegrationTest): review round - anchor a clone only behind a real definition, decline the atomic-image shape, and say what the software lanes cannot falsify
2026-08-12 19:12:39 -04:00
swung0x48
b7557d6615
[Feat, Fix, Test] (MG_Util, MG_Backend/DirectGLES, MG_IntegrationTest): bake the bound image format into the ESSL a format-less image declaration needs
2026-08-12 18:56:31 -04:00
swung0x48
bce34d7fac
Merge branch "feat/cts-followup-fp64-ds-imgbuf" into dev
2026-08-12 17:56:13 -04:00
swung0x48
f91857266f
[Fix, Test] (MG_Backend/DirectGLES, MG_Test): the tessellation stages never got the flat qualifier an ES linker compares across both sides of every integer interface
2026-08-12 17:50:31 -04:00
swung0x48
49cb1be0fd
[Fix, Test] (MG_Backend/DirectGLES, MG_IntegrationTest): a shader writing a buffer texture through an image unit left the CPU shadow stale, so every map and readback after it saw the old bytes
2026-08-12 17:50:31 -04:00
swung0x48
a51c68bb2c
[Fix, Test] (MG_Util, MG_IntegrationTest): a 64-bit float constant was read as 32 bits, so every comparison against a round double became an epsilon test against zero
2026-08-12 17:50:25 -04:00
swung0x48
1c723a6cfc
Merge branch "feat/cts-image-targets" into dev
2026-08-12 16:52:34 -04:00
swung0x48
44805bfa07
[Fix, Test] (MG_Util, MG_Backend/DirectVulkan, MG_IntegrationTest): adversarial review - the rewritten 1D-array image collided with a module's own 2D-array one and left an invalid duplicate type; pin the component order, keep the subject kinds in a truncated matrix
2026-08-12 16:49:59 -04:00
swung0x48
257fcbfd0b
[Fix, Test] (MG_Util, MG_Backend/DirectVulkan, MG_IntegrationTest): review round - one module parse for the shaders with no 1D-array image, per-kind values the combined case can name, and the invariants two shared buffers rest on
2026-08-12 16:43:29 -04:00
swung0x48
2b46a3db96
[Fix, Test] (MG_Util, MG_Backend/DirectGLES, MG_Backend/DirectVulkan): the two image target kinds a compute dispatch could not read - 1D-array on ES, imageBuffer on Vulkan
2026-08-12 16:11:10 -04:00
swung0x48
0b36621069
Merge branch "feat/cts-diag-wave" into dev
2026-08-12 15:33:43 -04:00
swung0x48
9ee2e0a1db
[Fix] (MG_Backend/DirectGLES): re-push the texture parameters a regenerated driver texture has lost, instead of trusting caches that outlived it
2026-08-12 15:22:39 -04:00
swung0x48
6b6623ae72
[Fix, Test] (MG_Backend, MG_Impl, MG_State): advertise the uniform-block and stencil-texturing strings a 4.0 context hides behind, forward DEPTH_STENCIL_TEXTURE_MODE to both backends, and stop a reserved transform feedback name passing for an object
2026-08-12 15:12:01 -04:00