Repository navigation
Description
Summary
PRAGMATA (version 01.200.000) still stops during shader preparation with a wave64 pixel lane-63 refusal after applying #6180. I captured the failing compiler request and reproduced the same failure with the CPU-only agc_shader_replay tool, without running the title.
Related: #5398 and #6180. This is an additional failing capture from PRAGMATA; I have not established whether it exhausts the 2048-step proof budget or fails a different proof condition. I am not claiming that #6180 introduced the failure.
Tested tree and environment
- Base
main:44df21632125dbe3113a19173e7ebb879da53003. - Applied fix(shader): budget pixel lane proof for NHL 26 replay #6180 head:
99500f9d4508e1d8bed7222e204c0db8d0eb4c7f. - The base already includes fix(libSceConvertKeycode): ignore the state bit 0x4000000 RE Engine titles pass #5776; the previous keycode exception does not occur.
- Build-only prerequisite: test(agc): align the indirect arguments block at run time #6452 at
4fe92c9c23c7bd861d63664d4efde3033b6226f6, which changes the alignment setup in one GPU test fixture. It adds no production runtime change. - Windows 11 Pro 10.0.26300, AMD Ryzen 9 7900X, NVIDIA GeForce RTX 4070 Ti SUPER, driver
32.0.16.1714; the game selected this GPU with subgroup size 32. - WinLibs MinGW-w64 GCC 15.2.0 r7, Ninja, Release (
-O3),BUILD_TESTING=ON,ANYPS5_ENABLE_SPIRV_TOOLS=OFF.
Observed result
One visible game run with a fresh isolated shader-cache directory ended after about 41 seconds with exit 0xC0000409 / SIGABRT, before reaching the menu. No frame dump was produced. The relevant error was:
shader 0x211190d400 stage 5 (shader_211190d400.req): ShaderRecompiler::Recompile: SPIR-V emission failed: hash=0x142028624896 stage=2 opcode=ReadLane reason=v_readlane_b32 of lane 63 is outside the 32-lane host subgroup that runs this wave64 program at one lane per invocation
The separate replay of the captured request exits with code 1:
shader_211190d400.req: 9536 code words, 4 user data, 2 memory regions, wave64
recompile failed: ShaderRecompiler::Recompile: SPIR-V emission failed: hash=0x142028624896 stage=2 opcode=ReadLane reason=v_readlane_b32 of lane 63 is outside the 32-lane host subgroup that runs this wave64 program at one lane per invocation
Validation
The full Windows build passed. These six CTest registrations passed, with no failures or skips:
agc_shader_entry_lane_pixel_replay(the supplied NHL 26 capture from fix(shader): budget pixel lane proof for NHL 26 replay #6180)agc_shader_memoryagc_driver_pixel_wave_reductionagc_driver_gpu_indirect_arguments_misaligned_writer_aheadguest_convert_keycodepatched_libraries
The GPU tests ran on the RTX 4070 Ti SUPER with ANYPS5_REQUIRE_VULKAN=1 and ANYPS5_NO_SHADER_CACHE=1. The import audit of the converted title reported zero absent imports and zero provider mismatches. The failing PRAGMATA capture above is separate from the passing NHL 26 regression test.
Not tested: this capture on the same base without #6180, Linux, other GPUs, or pixel-output correctness. The earlier title run on main 4808d9c2 plus #5776 also failed with this error class, but I have not established that it was the same shader.
Local standalone replay evidence
I retained the complete serialized request locally and reproduced the failure with the existing CPU-only replay tool:
ANYPS5_NO_SHADER_CACHE=1 agc_shader_replay shader_211190d400.req
On Windows, the unpatched library directory was prepended to PATH as documented. The replay reported 9536 code words, 4 user-data entries, 2 memory regions, wave64, and exited with code 1 with the same lane-63 refusal. It does not require running the game or executing a GPU pipeline.
The full captured request is 104,024 bytes; SHA-256:
a9f1f0318f46c97929ccebfffcfd8d9bebc8cbcfab132cabd4369bcc52f4a82e
The captured shader payload is retained locally and is not included in this public report. The cause of the remaining refusal needs investigation; I have not tested a larger budget or a changed proof algorithm.
AI-assisted testing and report: yes (Codex).
Activity
[-]PRAGMATA (PPSA02530): captured wave64 pixel shader still fails lane 63 with #6180[/-][+]PRAGMATA: captured wave64 pixel shader still fails lane 63 with #6180[/+]MarcZX10 commentedon Oct 15, 2026
I checked the currently open work before considering a separate change. The report says the captured request is retained locally and does not establish whether the 2048-step budget is exhausted or another proof condition refuses it, so I cannot yet identify a safe fix or a regression input from the public details alone. Could you share the replay’s proof termination reason and counters (especially whether it reaches the budget, and the last lane/state being analyzed), or a small synthetic request that reproduces the same condition without title data? That would distinguish a budget increase from a separate proof-logic issue.
Ondra97 commentedon Oct 15, 2026
Thanks, I measured the proof termination locally without publishing the captured request.
Tested tree:
main44df21632125dbe3113a19173e7ebb879da53003+ #618099500f9d4508e1d8bed7222e204c0db8d0eb4c7f, with the same test-only #6452 prerequisite recorded in the issue. Windows 11 Pro 26300, WinLibs GCC 15.2 r7, Release. This was CPU-onlyagc_shader_replaywith shader caching disabled and the same request SHA-256 as the issue (a9f1f0318f46c97929ccebfffcfd8d9bebc8cbcfab132cabd4369bcc52f4a82e).I temporarily instrumented
EntryLaneWalk::SpendandIncoming, preserving the existing checks, short-circuit order and active-Phi cycle handling. A state was counted as(IR value, proof kind, mask half); distinct counts include attempted calls rejected after the budget reached zero. Phi cycle revisits count active-stack hits, not completed-proof cache hits.The observed walks exhaust the budget. There are four walks: lane 31 wide/narrow, then lane 63 wide/narrow. Within each budget variant, all four produced the same counters:
Each attempt returned false with zero budget remaining. The root in this instrumented IR was
ZeroBit, node62168, opcodeLogicalAnd.For the requested last lane/state details (the same state details occurred in the lane-31 and lane-63, wide and narrow attempts):
SpendwasWord, mask half 1, node229516, opcodePhi.Word, half 0, node15779, opcodeBitwiseAnd32.ZeroBit, node229122, opcodePhi.ZeroBit, node62166, opcodeINotEqual32in all three variants. The lane-63 narrow attempt then ends with the reported emission refusal.All three complete replays exited with code 1 and the same lane-63 message. This demonstrates budget exhaustion in these attempts; it does not establish whether an unbounded/completed proof would accept the shader, nor does it validate a caching algorithm or pixel output. The repeated traversal of a small set of states appears relevant to the completed-proof-cache follow-up discussed on #6180, but I have not tested that implementation.
I restored the original source byte for byte and rebuilt the original replay and shader-memory test executable.
agc_shader_memoryandagc_shader_entry_lane_pixel_replaystill pass (2/2, no skips); the restored PRAGMATA replay reproduces the original refusal. No higher budget or diagnostic code was installed in the game runtime, and no new game run was performed for these measurements.AI-assisted diagnostics and report: yes (Codex).
MarcZX10 commentedon Oct 15, 2026
Thanks, this answers the termination question: all four walks hit the 2,048-step budget, so #6180’s cap is the immediate refusal. The measurements do not yet show that a larger budget completes the proof; even 65,536 steps still exhausts it, while the walks visit only about 60 distinct nodes/states and repeatedly expand Phi nodes. That makes a completed-proof cache a plausible separate follow-up, but it needs to demonstrate that the captured replay completes and remains correct around active Phi cycles. I’ll keep that separate from the focused budget change in #6180.
cookie42073-cmd commentedon Oct 15, 2026
Hey @Ondra97, those counters are useful. The completed-proof-cache candidate discussed here is already available in this patch and test-log package, with a later same-base comparison against #6180. It keeps a 512-step budget and avoids retaining provisional results from active Phi cycles.
Would you be willing to try that candidate in CPU-only replay against the request you have retained (
a9f1f0318f46c97929ccebfffcfd8d9bebc8cbcfab132cabd4369bcc52f4a82e)? Please keep the candidate's 512-step budget, without the diagnostic budget increases or other proof changes. The useful result would be the exact tested revision/applied diff, success or the remaining refusal, and the proof counters if available. No need to publish the captured payload or run the game for this check.The attached patch predates your base and #6180, so it may need a mechanical rebase; any adaptation should be included in the tested diff. If it does not apply cleanly, let me know rather than resolving non-mechanical conflicts for this test. Its earlier passing NHL26 capture and synthetic loop results do not establish that it handles this PRAGMATA capture. I'll keep the investigation separate from #6180, as Marc requested.
AI-assisted investigation and write-up, independently reviewed.
Ondra97 commentedon Oct 16, 2026
Thanks, I tried your
9456e863e4cd4bb88ac77aa6871e86ad23a7349fcandidate from the linked package. It passes the supplied CPU controls, but this retained PRAGMATA request still fails at the 512-step budget.Exact tested sources
main44df21632125dbe3113a19173e7ebb879da53003(already includes fix(shader): read lane 63 of half-wave reductions whose keys exclude helper lanes #5189).99500f9dNHL26 test/fixture additions, but removed its production budget increase (2048back to512) before this comparison. The existing test-only test(agc): align the indirect arguments block at run time #6452 prerequisite remained unchanged.0fe3ccbd5d8d44ed05167d72edc98bfa84677f316c2edb230b7b3106fa4e921b.git apply --checkaccepted all four files cleanly after restoring the 512 budget. I applied the patch unchanged, including all three test files; no manual conflict resolution or semantic adaptation was needed.Windows 11 Pro 26300, WinLibs MinGW GCC 15.2 r7, Release,
ANYPS5_NO_SHADER_CACHE=1. I explicitly rebuilt bothagc_shader_replayandagc_shader_memory_testsin each phase. The baseline and candidate used identical test additions. The retained request is unchanged: SHA-256a9f1f0318f46c97929ccebfffcfd8d9bebc8cbcfab132cabd4369bcc52f4a82e.CPU-only before / after
agc_shader_entry_lane_pixel_replay(NHL26)agc_shader_memory, including the added loop/negative casesThe candidate's selected CTest run was 2/2 passed, zero skips. The uninstrumented PRAGMATA replay still reports:
Separate counters-only build of the candidate
I then added temporary counters without changing its proof decisions or its 512 budget. All four walks (lane 31 and 63, wide and narrow) returned false with identical counters:
provecallsThe first budget refusal was
NotHelper, node63793, opcodeLogicalAnd. The last attempted state wasZeroBit, node62166, opcodeINotEqual32. State counts include attempted calls refused after exhaustion; the 470 count means successful checks for which the candidate's existing cache-retention condition was false. I did not relax that guard or test another proof algorithm.The uninstrumented result and these counters confirm that the candidate was exercised, including cache hits, but did not complete this capture's proof within 512 steps.
Exact applied production diff on the tested base, after reverting the #6180 budget increase
The test-file additions are unchanged from your public patch package. This is only the applied C++ production diff; it contains no title capture data.
After the comparison I restored all affected source files byte for byte and rebuilt the original CPU tools. The two original CPU controls pass again; the original PRAGMATA refusal is reproduced. The installed game runtime was not modified. No game, GPU, Linux, or full application build was run for this candidate check;
ANYPS5_ENABLE_SPIRV_TOOLSwas OFF, so I am not claiming SPIR-V validation or image correctness.The request payload remains private. AI-assisted testing and report: yes (Codex).
cookie42073-cmd commentedon Oct 16, 2026
Thanks @Ondra97 for running the exact patch and recording the before/after results. That confirms the cache is being used while the PRAGMATA request still runs out of steps.
Could you try one more CPU-only diagnostic: keep the same cached-proof implementation, capture, base and test additions, and change only
EntryLaneWalk's budget from 512 to 2,048? Please leave the cycle guard and all proof decisions unchanged. The original uncached 2,048 run failed, but this cached-plus-2,048 comparison hasn't been reported yet.Please record the exact tested diff, replay exit/result, and whether it completes, reaches a different refusal, or exhausts the budget again. Please rerun the same two CPU controls, including the helper-inclusive negative cases. The existing step/cache/Phi counters would help if convenient. This is a diagnostic comparison; it doesn't establish a game or rendering fix. Please restore the source and original CPU tools afterward as you did for the previous run.
I've also linked your result on #6645 so we can coordinate the overlapping work. If this comparison still doesn't finish, a small synthetic reproducer or a reduced proof-dependency graph around the repeated Phi states would let us investigate locally while you keep the captured payload private.
AI-assisted investigation and write-up, independently reviewed.
Ondra97 commentedon Oct 16, 2026
Thanks, I ran the requested cached proof at 2,048 steps. The uninstrumented replay still fails with exit 1 and the same lane-63 refusal. A separate counters-only build confirms that all four walks exhaust 2,048 steps. Both CPU controls pass, including the helper-inclusive and asymmetric-half negative cases in the unchanged candidate test additions.
Exact comparison
I kept the same
mainbase44df21632125dbe3113a19173e7ebb879da53003, retained #6180's99500f9dNHL26 fixture/test additions and the existing test-only #6452 prerequisite, and reused your exact9456e863e4cd4bb88ac77aa6871e86ad23a7349fpatch sources from the previous 512-step comparison. I verified the three candidate test files byte for byte. The only source change from that uninstrumented candidate is:The cycle guard, cache-retention condition, proof decisions and capture are unchanged. Request SHA-256:
a9f1f0318f46c97929ccebfffcfd8d9bebc8cbcfab132cabd4369bcc52f4a82e. Uninstrumented candidateSpirvAluEmitterMath.cppSHA-256:f2a002a019872b4a39e8d6b7694c2a111ebc905b3775e64e8aec8b9eefc04aeb. Applied production diff SHA-256:862312e5f728ee3b8d62f99a4e482dc9a4569191770ff64a046b1dbb59fb5e8e; its complete contents are below.Windows 11 Pro build 26300, WinLibs MinGW GCC 15.2 r7, Release,
ANYPS5_NO_SHADER_CACHE=1. I explicitly rebuilt bothagc_shader_replayandagc_shader_memory_testsbefore replay and CTest.agc_shader_entry_lane_pixel_replay(NHL26)agc_shader_memory, with the unchanged loop and negative additionsSelected CTest result: 2/2 passed, zero skips, 0.30 s. The replay reports:
Counters from a separate instrumentation build
The following values are per walk and identical for lane 31/63, wide/narrow:
provecallsFirst budget refusal:
ZeroBit, node63789, opcodeINotEqual32. Last attempted state:ZeroBit, node62166, opcodeINotEqual32. Attempted-state counts include calls refused after exhaustion. As before, the unretained-success counter means that the existing retention condition was false; I did not relax it.Reduced graph around repeated Phi states
I also recorded structural parent-to-child proof-call edges, without dumping shader words, constants, memory contents or the request. One repeatedly visited fragment consists of four
HighWord/Phistates:229516240961240962230930Observed edges within that fragment, aggregated over one walk:
This shows the observed call cycles
A -> B -> D -> AandA -> B -> C -> D -> A. Other incoming/outgoing calls are omitted, and all counts stop at the 2,048-step cutoff. This is a reduced structural trace for further investigation, not a standalone synthetic reproducer or a claim that these states can safely be cached.Complete uninstrumented production diff against the original uncached 2,048-step source
The three candidate test files are unchanged from your public patch package and the previous comparison. This is C++ source only.
Afterward I restored all affected source files byte for byte and verified the original Git diff and prerequisite files against the pre-test snapshot. I explicitly rebuilt the original CPU tools; their two original controls passed again (2/2, zero skips), and the original PRAGMATA refusal was reproduced. The private request and installed game runtime hashes are unchanged.
No game, GPU, Linux or full application build was run for this diagnostic.
ANYPS5_ENABLE_SPIRV_TOOLSremains OFF. This comparison does not establish a game/rendering fix; the captured payload remains private.AI-assisted testing and report: yes (Codex).
overlordxrz-source commentedon Oct 16, 2026
@Ondra97 @cookie42073-cmd I think I know why the cached candidate still runs out of steps on this request, and I have a patch to try on the retained request.
#6645 (and the earlier candidate) caches a true result only if no cycle was hit while proving it. A loop header always reaches itself through its back edge, so the header's own result is never cached, and false results aren't cached at all. So every outer path into a loop proves the loop again, and with saved EXEC masks in nested loops the walk grows about 4x per level. That fits your counters: about 60 states, and the budget runs out at every size you tried.
The patch evaluates each
(value, proof)pair once:The budget stays at 512. On a standalone model of the walk (the same proof rules over a mock IR), a nest of n loops takes 8n+4 steps.
maintakes 49, 257, 1153, 4865, ... steps for 1 to 4 levels, and #6645 takes 40, 232, 1096, 4744, .... On 400k random cyclic graphs the result matches the exact fixed point of the proof.Branch: overlordxrz-source@b76d8d3 (one commit on
main93e54ce).Could you run the same CPU-only replay of
a9f1f031...on that commit, without #6180 or #6645, and post the exit code and both CPU controls? If it compiles the request, I'll open it as a PR, or fold it into #6645 if @DangerChamp prefers.AI-assisted: yes (Claude). I haven't run the title or a GPU.
Ondra97 commentedon Oct 16, 2026
@overlordxrz-source Yes: your exact
b76d8d31bf4cf97d53ec52f45b0dc3937fac5532compiles the retained PRAGMATA request at the unchanged 512-step budget. Replay exits 0 and produces 553,844 SPIR-V words. Both CPU controls pass, including the helper-inclusive and asymmetric-half negatives.I also ran a same-base control using its parent
93e54cedd3dd49eabf1c589f020b54758e0b6461, with identical test additions:agc_shader_entry_lane_pixel_replay(NHL26)agc_shader_memory+ saved-EXEC loop/negative cases93e54cedd, budget 512b76d8d31, budget 512Both selected CTest cases passed with zero skips. After the parent control I restored the candidate, explicitly rebuilt both CPU targets, and repeated the green result (2/2, zero skips, 0.30 s).
Request SHA-256 remains
a9f1f0318f46c97929ccebfffcfd8d9bebc8cbcfab132cabd4369bcc52f4a82e.Exact source and test setup
10e4baf422516704748773bd95fcbf423eb3ef7808c6e2e8f2e9242e6d3d8adb.BUILD_TESTING=ON,ANYPS5_NO_SHADER_CACHE=1. Bothagc_shader_replayandagc_shader_memory_testswere explicitly built for each production variant.agc_shader_memorycontrol also passed. The earlier worktree/build and the installed game runtime were not changed.ANYPS5_ENABLE_SPIRV_TOOLSwas OFF, matching the earlier runs. This establishes successful CPU compilation of this retained request and the selected controls; I have not validated this generated SPIR-V with SPIRV-Tools or tested game startup/rendering/GPU execution. The captured payload remains private.Exact test-only harness diff (SHA-256 0c2baf07303c947c38884f7b2baeba2340ebdbcb7287d772c17415b9e99821a9)
The fixture payload is omitted; it is the same public NHL26 fixture used previously. This diff contains test source and CTest registration only.
AI-assisted testing and report: yes (Codex).
oneandonlydean commentedon Oct 17, 2026
@overlordxrz-source thanks for b76d8d3. It now has two independent confirmations at the unchanged 512-step budget: Ondra97's PRAGMATA replay above, and cookie42073-cmd's NHL 26 rerun on main 6a32550 in #6180.
We're deciding between raising the budget (#6180), your proof cache, or both. Since b76d8d3 sits directly on main rather than on #6645, could you open it as its own PR? Or, if you and @DangerChamp prefer, it could replace the cache in #6645. Either works for us; we'd just like one PR to review and test.
Ondra97 commentedon Oct 17, 2026
@cookie42073-cmd Update after refreshing main and repeating the live test (2026-10-17): the retained shader request passes on main plus the b76 proof-cache helper, but I still cannot confirm a working PRAGMATA menu or scene. The new run ended because of host memory pressure, not a spontaneous crash.
Refreshed main comparison
The pinned main is
ca82d7d882b0ac17d955f6e107fe2eb0cae244af, which already includes #6180 and its 2048-state budget. I compared it with the same main plusEntryLaneWalkand its<map>include fromb76d8d31bf4cf97d53ec52f45b0dc3937fac5532. I retained main's budget of 2048 and all code outside that helper, including the currentstate.spannedWavereduction guard. This is a new integration test; it is separate from the exact-b76/512 result preserved below.Both builds used SPIRV-Tools ON and the same retained request and public CPU test additions:
ca82d7d, budget 2048agc_shader_memoryfailThe request SHA-256 remains
a9f1f0318f46c97929ccebfffcfd8d9bebc8cbcfab132cabd4369bcc52f4a82e. The new optimized output SHA-256 is3ab7d4f43b8ee11e3e4e5b0df3526a0e985b801c11e27f4225167825f02ab43e. These results show that the merged budget increase alone still does not handle this retained request. The request and generated SPIR-V remain private.The matching full Windows Release build passed. The title and its bundled guest libc were freshly converted, import/provider audit passed, and all 6/6 preflight tests passed, zero skips:
patched_libraries,agc_shader_entry_lane_proof_budget,agc_shader_memory, nativeagc_driver_pixel_wave_reduction,agc_spirv_optimizer, andguest_convert_keycode. I verified all 131 installed runtime files and the converted executable/module against the prepared outputs before launching.Live test of main + cache
SPIRV-Tools ON, default optimization, shader cache disabled,
APS5_SPANNED_WAVEunset; same host and title package as the earlier runs below.-1is from that intervention; the launcher's timeout flag is false. This is not a spontaneous-crash result or a completed startup benchmark.WAIT_REG_MEM_64timeout. They contain no original lane-63 refusal, SPIR-V emission failure, or SPIR-V validation failure. This does not establish that every previously failing shader was reached live.The GPU wait diagnostic is:
The preceding packets were
SET_SH_REG,SET_UCONFIG_REG, then this wait. I have not established whether the table fallback, GPU wait, or memory growth causes the empty image. I am reporting these as observations for follow-up, not claiming a title unblock or attributing the allocations to a specific subsystem.The test process and launcher have exited. All six shared archives were protected by verified read-only sharing leases for the process lifetime; original eboot/libc hashes are unchanged. The main-plus-cache runtime remains installed and its source diff/test additions are retained locally. No new commit or PR was created.
Earlier exact-b76/512 validation and live results, before refreshing main
@cookie42073-cmd I completed the requested SPIRV-Tools ON check. The retained PRAGMATA request passes validation before and after optimization on exact
b76d8d31bf4cf97d53ec52f45b0dc3937fac5532, with the budget still 512. Replay exits 0 and returns 535,172 SPIR-V words.agc_shader_entry_lane_pixel_replayandagc_shader_memory, with the same saved-EXEC/helper/asymmetric-half testsRequest SHA-256 is unchanged:
a9f1f0318f46c97929ccebfffcfd8d9bebc8cbcfab132cabd4369bcc52f4a82e. The optimized output SHA-256 is784f30e0dbc068057ddc22a97106e9a9dd39b28ddd5a073039d87e51acc1ea9d. The payload and generated module remain private.I used the original b76 base
93e54cedd3dd49eabf1c589f020b54758e0b6461, not the newer main integration.EntryLaneWalkis unchanged from b76 (production Git blob9f59064e2e08a50a71fe77f10c9a08309cf9d4e9); no #6180 budget change, #6645 production code or proof instrumentation was added. The CPU test additions are identical to my previous comparison. I applied only the f1905053 replay-tool API fix needed to compileDisassemble(data(), size(), ...)with SPIRV-Tools ON. Both CPU targets were explicitly rebuilt in a separate Release build, shader cache disabled,APS5_SPIRV_OPTunset for the validation above.Separate live-game attempt
At the user's request I also built and installed a matching full Windows runtime and visibly launched the title twice. The full default build passed with the same replay-tool fix and the merged #6452 test-alignment prerequisite. Import audit found zero absent imports/provider mismatches and no missing libraries.
patched_libraries,guest_convert_keycodeand the nativeagc_driver_pixel_wave_reductiontest passed 3/3, zero skips.Host: Ryzen 9 7900X, 32 GB RAM, RTX 4070 Ti SUPER, Windows 11 Pro 26300, NVIDIA Windows driver
32.0.16.1742, MinGW GCC 15.2. Same candidate/runtime, input package and disabled shader cache in both live attempts:APS5_SPIRV_OPT=noneI stopped both manually after the visual checks and memory pressure; normal window close did not finish, so I terminated my test processes. The recorded
-1exit codes come from that intervention and are not spontaneous-crash results. Private committed memory at termination was approximately 15.1 GiB and 22.3 GiB respectively. Free physical memory fell to about 675 MiB during the first run.Both logs repeatedly report
shader library prebuild skipped: image table snapshot disagrees with the static tables. They also logWAIT_REG_MEM_64timeouts on queue0x20(reference0x63, observed value0x1): 1 warning with default optimization and 11 with optimization disabled. These are observations for follow-up; I have not established the cause of the empty image, and the FPS counter does not demonstrate correct rendering. Neither live run logged the original lane-63 refusal, but I am not claiming a title unblock or that the live runs reached every previously failing shader.The previous runtime was backed up, all six shared game archives were protected by verified read-only sharing leases, and original title inputs remain unchanged. Temporary test/tool source additions are restored; the candidate checkout is clean. The new runtime remains installed for follow-up.
AI-assisted testing and report: yes (Codex).