Repository navigation
Conversation
✅ NVIDIA GPU test: passedPR head
Unstable on main (2, these also failed in recent main runs on this machine; not counted against this PR)Failing on main too (3, not counted against this PR)Validation IDs already present on main (9 IDs in 588 tests)Skipped (52)ReproduceAutomated build and test on a contributor's NVIDIA machine; it does not replace upstream CI. A new comment is posted for each new push. Full logs. |
|
Independent Dusk Diver 2 / PPSA06565 check of exact head Correctness and applicability: the same six focused NaN/denormal/RVE cases pass on both arms with required Vulkan, disabled shader caches and the real KHR validation layer (RX 6650 XT, RADV Mesa 26.2.6, Linux 7.2.11). Zero skips or VUIDs. All 42 private captured requests replay; 9 offline SPIR-V outputs change and 33 remain byte-identical. Total words 1276377→1274402; heavy shader 0x200f940000 is 66654→66519. Format 53's missing robustness target flags still limit offline/native equivalence, so those counts alone are not a native cost measurement. No demonstrated Dusk speedup. The two observed pairs reverse sign:
FPS is Both builds ran the same title-menu save-icon notice, 3840×2160 output, 974×548 window on the same monitor, separate private copied warmed caches/fresh save state, no FAST_F32. All other SDK components/relinker are pinned main; only the AGC driver and source-proof file differ. Before/after images were reviewed and match. No input or readback during capture; source/bank/cache/input integrity and kernel/mount cleanup checks pass. Protocol disclosure: both arms additionally use documented All four timing traces/digests, summaries, screenshots, focused test logs/JUnit, exact pins, protocols and attempt records, SHA-256 The main bundle includes all four measured traces and the failed pre-capture attempt. Its broad “all native attempt records” wording also requires this baseline warm-up record addendum, SHA-256 The complete repeat's unmodified summary lines: {"commit":"7264864185f8","dirty":false,"env":{"APS5_HOST_IMPORT_MIB":"16384","APS5_PAD_INPUT_FILE":"<path>","APS5_PLAYGO_UNLISTED_CHUNKS":"installed","APS5_TRACE_SECONDS":"10:10","APS5_TRACE_TRIGGER_FILE":"<path>"},"gpu":"AMD Radeon RX 6650 XT (RADV NAVI23)","driver":"radv Mesa 26.2.6-arch1.1","os":"Linux 7.2.11-arch1-1","cpu":"AMD Ryzen 9 7950X 16-Core Processor","cpu_threads":32,"memory_mib":127901,"title_id":"PPSA06565","title":"Dusk Diver 2","content_version":"01.000.000","resolution":"3840x2160","window":{"spec":"seconds 10:10","first_present":2370,"ms":10017.907},"presents":143,"frame_ms":{"p50":69.559,"p90":74.634,"p99":80.77,"max":88.68},"gpu_busy_ms_per_present":59.612,"worker_busy_pct":{"queue worker 0x0":98.833,"queue worker 0x20":99.26},"top_phases_ms_per_frame":{"Driver.Packet":138.058,"Driver.Packet.memory_wait":62.902,"Recorder.Sync":35.662,"Driver.Packet.draw":16.752,"Driver.Draw":16.676,"Graphics.Draw":15.312,"Graphics.Draw.draw_and_resource_release":13.451,"Driver.Packet.dispatch":10.982},"trace_dropped":false,"trace":"aps5-trace-7264864185f8-1288353.json.gz"}
{"commit":"e672a3846354","dirty":false,"env":{"APS5_HOST_IMPORT_MIB":"16384","APS5_PAD_INPUT_FILE":"<path>","APS5_PLAYGO_UNLISTED_CHUNKS":"installed","APS5_TRACE_SECONDS":"10:10","APS5_TRACE_TRIGGER_FILE":"<path>"},"gpu":"AMD Radeon RX 6650 XT (RADV NAVI23)","driver":"radv Mesa 26.2.6-arch1.1","os":"Linux 7.2.11-arch1-1","cpu":"AMD Ryzen 9 7950X 16-Core Processor","cpu_threads":32,"memory_mib":127901,"title_id":"PPSA06565","title":"Dusk Diver 2","content_version":"01.000.000","resolution":"3840x2160","window":{"spec":"seconds 10:10","first_present":1293,"ms":10034.615},"presents":114,"frame_ms":{"p50":87.036,"p90":97.678,"p99":105.614,"max":117.946},"gpu_busy_ms_per_present":67.319,"worker_busy_pct":{"queue worker 0x0":98.948,"queue worker 0x20":99.235},"top_phases_ms_per_frame":{"Driver.Packet":173.648,"Driver.Packet.memory_wait":81.737,"Driver.Packet.draw":37.85,"Driver.Draw":37.766,"Graphics.Draw":35.326,"Graphics.Draw.draw_and_resource_release":33.31,"Recorder.Sync":31.6,"Driver.Draw.draw_enqueued":24.958},"trace_dropped":false,"trace":"aps5-trace-e672a3846354-1402523.json.gz"}AI-assisted: yes (Codex). |
What
Multiplication by a normal finite constant preserves its input's NaN classification once the existing source repair is applied. Later operations still recompute that classification from the repaired product, adding redundant GPU work.
For a NaN input, the selected raw or quieted source remains NaN. For every other input, a normal finite nonzero factor cannot create an invalid zero-times-infinity product; overflow, underflow and denormal flushing cannot create NaN. The direct multiply and matching guard are required. This retains the existing normal-factor source repair and its payload behavior. Integer NaN checks remain in use.
The overlap tool could not merge #12324 for its shared-file comparison. Manual comparison found only its disjoint metadata
replaced(info.exec)addition at the end ofEliminate; it does not implement this rule and creates no dependency.Tested
Matched main/candidate Radeon checks cover arithmetic NaN payloads, quieting, add/multiply denormal modes, constant comparisons and denormal flushing, with the actual Khronos validation layer loaded and no new validation errors or skipped fixtures. The focused IR regression fails on main and passes with this change.
Sons of Sparta, same saved camp, 1920x1080 requested/render extent, journal enabled, immediate presentation, exact arithmetic and optimized GPL/LTO. The predeclared primary is GPU timestamped command-span milliseconds per delivered present over whole 1s intervals inside first-present+50..110s. Two separate prospective studies:
All 20 timed runs are valid, with none excluded or replaced. These are run-level pairs, not independent frames. This is a small command-span efficiency result while gameplay remains near 60 FPS; energy, uncapped FPS and a stutter improvement were not established. Frame tails and every valid slow run are retained.
Complete timing-only evidence, protocols, all full
trace_digest.pyoutputs and hash/reproduction verifier. Both arms used the same disclosed minimal readiness/screenshot-request hook; private cost probes were disabled. Game data, shaders and screenshots remain private.The required original 12s detailed-trace summaries from the first predeclared pair follow. These captures end before the primary 60s windows used above; all 20 full original traces and frame benches are in the linked bundle.
Main:
{"commit":"0eba5db30d8a","dirty":true,"env":{"APS5_NO_PAD_INPUT":"1","APS5_PAD_INPUT_FILE":"<path>","APS5_TRACE_BENCH":"1","APS5_TRACE_DIR":"<path>","APS5_TRACE_EVENTS":"524288","APS5_TRACE_SECONDS":"30:12","APS5_TRACE_SUMMARY_EVERY":"1"},"gpu":"AMD Radeon 760M (RADV PHOENIX)","driver":"radv Mesa 25.0.7-2+deb13u1","os":"Linux 7.2.12-x64v3-xanmod1","cpu":"AMD Ryzen 5 7640HS w/ Radeon 760M Graphics","cpu_threads":12,"memory_mib":23820,"title_id":"PPSA28997","title":"God of War Sons of Sparta","content_version":"01.008.001","resolution":"1920x1080","window":{"spec":"seconds 30:12","first_present":1458,"ms":12011.993},"presents":720,"frame_ms":{"p50":16.684,"p90":16.692,"p99":16.701,"max":16.708},"gpu_busy_ms_per_present":9.978,"worker_busy_pct":{"queue worker 0x0":65.056},"top_phases_ms_per_frame":{"VideoOut.Flip":16.653,"VideoOut.Flip.vblank_wait":14.832,"Driver.Packet":10.775,"Driver.Packet.draw":8.955,"Driver.Draw":8.923,"Driver.Draw.device_setup":3.329,"Graphics.Draw":3.291,"Driver.Draw.draw_enqueued":2.985},"trace_dropped":false,"trace":"aps5-trace-0eba5db30d8a-2970427.json.gz"}Change:
{"commit":"9c518277b4e2","dirty":true,"env":{"APS5_NO_PAD_INPUT":"1","APS5_PAD_INPUT_FILE":"<path>","APS5_TRACE_BENCH":"1","APS5_TRACE_DIR":"<path>","APS5_TRACE_EVENTS":"524288","APS5_TRACE_SECONDS":"30:12","APS5_TRACE_SUMMARY_EVERY":"1"},"gpu":"AMD Radeon 760M (RADV PHOENIX)","driver":"radv Mesa 25.0.7-2+deb13u1","os":"Linux 7.2.12-x64v3-xanmod1","cpu":"AMD Ryzen 5 7640HS w/ Radeon 760M Graphics","cpu_threads":12,"memory_mib":23820,"title_id":"PPSA28997","title":"God of War Sons of Sparta","content_version":"01.008.001","resolution":"1920x1080","window":{"spec":"seconds 30:12","first_present":1460,"ms":12011.999},"presents":720,"frame_ms":{"p50":16.683,"p90":16.692,"p99":16.700,"max":16.707},"gpu_busy_ms_per_present":9.957,"worker_busy_pct":{"queue worker 0x0":66.046},"top_phases_ms_per_frame":{"VideoOut.Flip":16.653,"VideoOut.Flip.vblank_wait":14.901,"Driver.Packet":10.944,"Driver.Packet.draw":9.098,"Driver.Draw":9.069,"Driver.Draw.device_setup":3.380,"Graphics.Draw":3.320,"Driver.Draw.draw_enqueued":2.903},"trace_dropped":false,"trace":"aps5-trace-9c518277b4e2-2971618.json.gz"}Checklist
main; no other open PR implements the same functionsNotImplemented_nid_no_patch); silent stubs are listed under Silent stubs in their library's technical debt file.mdfiles or images added to the repository (attach them to this PR)