Repository navigation
Conversation
ef71662 to
be736b2
Compare
✅ NVIDIA GPU test: passedPR head
Unstable on main (1, 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)Validated but not compared (1, not in the main baseline's validation pass)Validation IDs already present on main (8 IDs in 532 tests)Skipped (50)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. |
✅ AMD GPU test: passedPR head
Unstable on main (1, these also failed in recent main runs on this machine; not counted against this PR)Failing on main too (7, not counted against this PR)Validated but not compared (1, not in the main baseline's validation pass)Validation IDs already present on main (8 IDs in 532 tests)Skipped (60)ReproduceAutomated build and test on a contributor's AMD machine; it does not replace upstream CI. A new comment is posted for each new push. Full logs. |
|
Combined native smoke on Linux/RADV, 2026-11-06: private main
Limits: profiling/capture changes timing; the range cap drops samples and the top-list truncates groups. No FPS gain, isolated-stage cost, gameplay or audio claim. Requests deduplicate by code address, so exact specialization equality with every timed variant is not established. Format 53 also omits some target fields (including robustness settings; tracked by existing #15458 and #9508). Thus these offline counts/validation results are not proof of the native variant’s exact generated SPIR-V. A fidelity-preserving private capture is needed for that comparison. Compact settings and result receipt, SHA-256 Follow-up fidelity check: a fresh private integration The captured native target has |
What
The existing per-draw GPU report groups a draw by its fragment variant. Different vertex/geometry programs using the same fragment variant therefore collapse into one timing group, including draws using the built-in null pixel program.
Add opt-in
APS5_PROFILE_GPU_DRAW_STAGESalongsideAPS5_PROFILE_GPU=1 APS5_PROFILE_GPU_DRAWS=1. Recorded draws use a canonical complete shader-stage/64-bit-variant set as their timing key.[drawstages] drawset 0xN stage:0xvariant ...maps each process-local key once;[gputime]reportsdrawset 0xN. Stage order does not affect identity, and distinct programs/stages do not collapse. The previous labels/grouping remain the default. This measures whole draws, not individual shader-stage execution time. Existing timestamp-range caps and top-twelve reporting limits still apply.This is developer instrumentation, with no title fix or FPS improvement claimed.
Tested
Linux x86-64, GCC 16.2.1 Release. Current production head
be736b2f0a22750a38807bf9aa91943169de8f3bis one commit on main086c0686c8adff3ee648fdbe34e0b0b647e1d511. The rebase retains the identical stable patch ID. The following host and focused GPU checks were rebuilt and repeated on that main/change pair:shared fragment collapsed distinct vertex programs.ANYPS5_REQUIRE_VULKAN=1,ANYPS5_NO_SHADER_CACHE=1, the Khronos validation layer, and all three profiling flags enabled: 15/15 each, zero skips and zero VUIDs. Layer insertion and RX 6650 XT selection confirmed; sources and loaded unpatched library hashes unchanged during each arm. These cases exercise real GPU work but do not activate the recorded-draw stage mapping path; the separate native diagnostic below covers that path.Outer Wilds PPSA08102 recorded-draw diagnostic: immutable integration
616721c3ac514955c26ebe537836c957142b25decombines this change with the same #15436/#15487 stack/mapped-copy prerequisites used by the prior control. Reused extracted assets; independent 406-module SDK, source snapshot, and caches; fresh save; Wake Up at 140 s, outdoor scene at 170 s and after the trace. The 320 s scheduled close exited normally (native 0), no remaining process, SDK/generated files unchanged, save locations and shared kernel setting restored. 594 stage-set mappings and 30 GPU timing reports were captured. The built-inNullPixelCodefragment variant was resolved through its loaded ELF mapping and symbol, and split into 22 distinct complete stage sets. Compositor/X11 captures agree after the trace. This verifies actual instrumentation, not FPS improvement, console-equivalent graphics, audio or a full playthrough.Patch, raw qualification logs, native metadata/captures and stage mappings, SHA-256
3d0f5189dd1a76791b2d034f4d70c6f6c6ddd63ab5f42422ebb52364728d0b5c(internal manifest and GitHub upload digest verified).Current-main stage-profiling follow-up (2026-11-04): private integration
b7c979652829c8cb10de87eb7328ac96b4ef380bis mainb611e634f7fc024f0c13e342d96de744448ef1d9plus the unchanged #15572 patch (stable patch IDs match). Same focused real-Vulkan/VVL/cache-off gate: main 5/5, change 7/7, no failures/skips/VUID messages, frozen SDK/source integrity retained.The first separately staged native run crashed during startup (exit 139, 14.5 s). A fresh independent runtime with a first-fault-only debugger then reached Wake at 137.75 s, the outdoor scene, and its scheduled ordinary close (native/debugger exit 0, 279.1 s); the debugger saw no fault, changed no guest state and bypassed no failing execution. The earlier startup crash remains unexplained; no crash fix is claimed. Both runs and cleanup receipts are retained.
The successful diagnostic emitted 594 complete stage mappings and 26 GPU timing reports. Eleven safely post-Wake report intervals cover 1,292 presents with zero dropped ranges and no missing stage keys. Four complete draw sets sharing the built-in
NullPixelCodefragment account for at least 39.89 ms/present in the logged top-twelve program costs; draw-class timing totals 69.33 ms/present. Their vertex variants are distinct (0x82,0x96,0x91,0x83in this process). Fragment identity is proven from[drawvariant], the captured loaded-driver mapping and the frozen ELF symbol, rather than assumed from an old process ID.This identifies costly whole draws, not isolated vertex/fragment execution. Top-twelve reporting makes aggregates lower bounds. Profiling/debugger overhead, animated sky/lighting and fixed upward camera prevent a matched FPS comparison. Reviewed captures show the opening trees/tower/tutorial; audio, reference rendering and full gameplay remain unverified.
Raw paired gates, normal/failure accounting, native logs, mappings, timing analysis, trace and captures, SHA-256
174c5997ea489550dc173298e092c082ad9c19dcec88385bd8f60d9d04364cbc(public download verified). No provider module bytes, game assets/saves or shader request/SPIR-V payloads included.Overlap: official scan checked 1,777 open PRs. Its 85 failed-closed shared-file branches were compared separately from their own merge bases; no duplicate timing-key/grouping implementation was identified. #11566 covers mocked fixture profiling, #13417 fixes parsing of unlisted timing keys, and #15548 changes mesh-compute render-pass sharing; none supplies this stage-set grouping or is required by it.
Current-main086 refreshed build/test logs, hashes and rebase proof, SHA-256
aa95fffcdef446bd723804063e52b95442b87fff6459ee42b06418340394b7a3(internal manifest and GitHub digest verified): host 3/3; same 15/15 Vulkan cases on main and change, actual validation layer, zero VUIDs/skips, sources/libraries unchanged. That earlier archive retains its main1e/integration616721 pins; the following diagnostic is separate current-main evidence.Additional current-main native proof: integration
129d0b19805f160b605451c8ac00171042c0ae78combines main086c068, this headbe736b2f, and the #15487 mapped-copy prerequisite. The first fixed-input attempt remained at the title screen and is retained as menu-only evidence. The retry recognized Start/Expedition/Wake Up prompts, reached the outdoor trees/tower/tutorial scene in both reviewed capture channels, and closed normally at 227 s with SDK/generated files unchanged and saves/kernel restored. It emitted 594 stage-set mappings, including 22 combinations sharing the null fragment variant. Profiling, shader dumps and OCR navigation were enabled; this is instrumentation/scene proof, not a performance comparison. Raw logs, provenance, input records and captures, SHA-256a08959bc587af92f60faaf5099c75d4ac423330212c1d03a1f930a9785052d78(manifest and GitHub digest verified). Private game request/SPIR-V payloads, saves, binaries and assets are excluded.Conventions and whitespace checks pass. No Windows/macOS result is claimed.
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)