Skip to content

perf(shader): simplify accuracy-series distance checks - #13855

Merged
oneandonlydean merged 1 commit into
boykopovar:mainfrom
Filip722:perf/series-distance-range-20261031
Nov 2, 2026
Merged

oneandonlydean merged 1 commit into
boykopovar:mainfrom
Filip722:perf/series-distance-range-20261031

Conversation

@Filip722

Copy link
Copy Markdown
Contributor

What

The trig and log accuracy selectors calculate both unsigned differences and their minimum only to decide whether the native result is more than four bit-pattern units from the exact series. Replace that calculation with one biased unsigned interval check.

  • Compute (valueBits - seriesBits) + 4 and select the series when it exceeds 8.
  • Apply the same exact predicate to trig selection and the existing conditional near-one log correction.
  • Keep every coefficient, floating-point operation, FP mode, special-value fixup and accuracy threshold unchanged.

Let d = a-b modulo 2^32. min(d,-d) <= 4 iff d is in [0,4] or [2^32-4,2^32-1], exactly iff (d+4) mod 2^32 <= 8. Complementing gives the unchanged far predicate for every pair of bit patterns, including wraparound, signed zero, infinities and NaNs. Eight is the biased interval width, not a relaxed error tolerance. SPIR-V OpIAdd/OpISub define low-order N-bit results. This preserves the corrections introduced by #3770 and #2880 and the near-one guard from #10336; no new arithmetic approximation or lane/memory behavior is introduced.

Tested

Main c5e389a12647 versus candidate 2237678f369c, God of War Sons of Sparta PPSA28997 v01.008.001, saved camp after Continue, 1920×1080 guest output, Wayland/mailbox. AMD Ryzen 5 7640HS / Radeon 760M integrated GPU with shared system memory, RADV Mesa 25.0.7-2+deb13u1, Debian 13.7 / Linux 7.2.12-x64v3-xanmod1.

Mean frame time 45.719473 → 45.638076 ms. Four paired percentage reductions average 0.178032%, two-sided 95% Student-t CI [0.056473%, 0.299591%], df=3. Mean run FPS separately: 21.872518 → 21.911536.

Pair Main mean ms Candidate mean ms Reduction
1 45.719247 45.627186 0.201363%
2 45.722601 45.603837 0.259748%
3 45.722384 45.642673 0.174337%
4 45.713662 45.678608 0.076680%

Within-arm ranges: main 0.008939 ms, candidate 0.074771 ms; sample SDs 0.004167 and 0.031384 ms. Fixed primary metric: window duration / presents per run. Fixed order warm A, warm B, A1, B1, B2, A2, B3, A3, A4, B4; all ten attempts valid, no exclusions, replacements or appended runs. Acceptance required positive paired mean and lower confidence bound, with no minimum percentage. Frames are not independent repetitions. This is a small measured improvement on one setup/scene with four pairs; no universal or combined-patch gain is claimed.

All eight traces, unchanged summaries, complete trace_digest reports, protocol, provenance hashes and measurement-hook source. Same save, scene/input route, resolution, focus/window geometry and separate warmed per-arm cache seeds; unchanged manifests through every window. 51 native libraries and nine unique guest modules, audited as full-path lists with duplicate detection and namespace hashes, plus actual loaded RADV ICD. The native count increased from historical50 because upstream Audio3d now links libkernel_sys; the complete dependency closure is checked and identical between arms. No drops or validation/profiling during timing; stdout remained a pseudo-terminal. Identical readiness-only hooks operate outside timed windows and are excluded from production; VideoOut differs only in revision text. Trace dirty:null reflects dependency-symlink status failure; exact source/patch/binary provenance is retained.

Matched main/candidate/final hook-free SinCosReduction, SinCosNearZero, Vop1FloatUnary and LogNearOne fixtures pass with verbose CTest, required Vulkan, shader cache disabled and Khronos instance/device layers. Four Radeon selections per arm, zero skips, missing-layer warnings or VUIDs. The retained trig differential helper with fresh libraries gives 29,184 bit-identical outputs across supported FP/fused settings and unchanged errors for the two unsupported denormal modes. Existing committed fixtures cover f32/f16, near-one boundaries, cardinal values, signed zero, subnormals and NaNs/infinities; no duplicate framework is added.

Actual warmed production modules compiled with the same retained fragment-GPL inspector change 6,483 → 6,433 and 6,501 → 6,461 instructions, both 48 → 40 VGPRs, with unchanged 128 SGPRs, 56 branches and zero spills. This is compiler-only evidence from serialized game modules, not loaded LTO-code or occupancy measurement. A private exact-transform falsifier also shrinks a log module 3,966 → 3,952 instructions at unchanged allocation. The elapsed cohort above independently establishes the scene-level result; no game-derived shader or ISA is published. Other GPUs were not tested locally, and historical full-game vertex/index-binding VUIDs remain unrelated; no clean full-game validation claim.

Conventions pass. Full overlap scan covers 1,621 open PRs and 11 shared-file branches. Stale #5021 and #12324 require manual review; their shared patches are identical to the reviewed lane/NaN and wave-scan changes, with no distance-predicate overlap. #13268, #13826 and #13841 change independent cosine/cardinal/sine mechanisms; no required dependency. Upstream advanced to c3c45d73abd3 during final review, including unrelated AGC draw-relocation/runtime changes. This PR retains its exact measured base/head; timing is not transferred to that later runtime baseline. The full scan's merge preview is clean.

Main/candidate summary lines and trace_digest excerpts (all runs in the bundle)
{"commit":"c5e389a12647","dirty":null,"env":{"APS5_NO_PAD_INPUT":"1","APS5_PAD_INPUT_FILE":"<path>","APS5_TRACE_DIR":"<path>","APS5_TRACE_SECONDS":"30:12"},"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":669,"ms":12024.162},"presents":263,"frame_ms":{"p50":45.672,"p90":46.222,"p99":46.803,"max":51.92},"gpu_busy_ms_per_present":42.543,"worker_busy_pct":{"queue worker 0x0":78.331},"top_phases_ms_per_frame":{"Driver.Packet":35.683,"Driver.Packet.draw":33.211,"Driver.Draw":33.174,"Driver.Draw.draw_enqueued":29.579,"Recorder.Sync":28.565,"VideoOut.Flip":9.023,"Driver.Present":9.013,"VideoOut.Flip.present":8.986},"trace_dropped":false,"trace":"aps5-trace-c5e389a12647-244393.json.gz"}
{"commit":"2237678f369c","dirty":null,"env":{"APS5_NO_PAD_INPUT":"1","APS5_PAD_INPUT_FILE":"<path>","APS5_TRACE_DIR":"<path>","APS5_TRACE_SECONDS":"30:12"},"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":657,"ms":12045.577},"presents":264,"frame_ms":{"p50":45.553,"p90":46.168,"p99":47.429,"max":48.194},"gpu_busy_ms_per_present":42.494,"worker_busy_pct":{"queue worker 0x0":78.31},"top_phases_ms_per_frame":{"Driver.Packet":35.603,"Driver.Packet.draw":33.094,"Driver.Draw":33.054,"Driver.Draw.draw_enqueued":29.297,"Recorder.Sync":28.279,"VideoOut.Flip":9.026,"Driver.Present":9.017,"VideoOut.Flip.present":8.99},"trace_dropped":false,"trace":"aps5-trace-2237678f369c-245198.json.gz"}

seconds 30:12 from present 669: 263 presents, frame p50 45.7 / p90 46.2 / p99 46.8 / max 51.9 ms, GPU busy 42.5 ms per present
AMD Radeon 760M (RADV PHOENIX), radv Mesa 25.0.7-2+deb13u1, Linux 7.2.12-x64v3-xanmod1, 1920x1080, commit c5e389a, dropped: no

seconds 30:12 from present 657: 264 presents, frame p50 45.6 / p90 46.2 / p99 47.4 / max 48.2 ms, GPU busy 42.5 ms per present
AMD Radeon 760M (RADV PHOENIX), radv Mesa 25.0.7-2+deb13u1, Linux 7.2.12-x64v3-xanmod1, 1920x1080, commit 2237678, dropped: no

Checklist

  • Based on current main; no other open PR implements the same functions
  • One topic per PR; follow-ups go in a new PR
  • No comments in code except technical debt
  • Unimplemented paths throw (NotImplemented_nid_no_patch); silent stubs are listed under Silent stubs in their library's technical debt file
  • No notes, investigation .md files or images added to the repository (attach them to this PR)
  • New third-party code is a submodule built from source
  • Generic behaviour, not specific to one title
  • Depends on: none
  • Fixes: none
  • Unblocks: none
  • GPUs tested: AMD Radeon 760M, RADV Mesa 25.0.7-2+deb13u1, Debian 13.7 / Linux 7.2.12-x64v3-xanmod1
  • AI-assisted: yes (Codex)

@github-actions github-actions Bot added the perf Performance change label Oct 31, 2026

@MarcZX10 MarcZX10 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed — looks good

The biased unsigned comparison preserves the original four-bit-pattern threshold, and the paired capture calculations and all eight published trace digests reproduce.

What I ran

Reviewed head 2237678f369c8a67a605ab15e3fb74e4ef6cc52a against PR base c3c45d73abd34dca81da6bad87cb6d36ea437a66; the current-main merge preview was clean. The measured pair is based on c5e389a12647ae98b21b55dc522ab4d6d3d0943b and candidate 2237678f369c8a67a605ab15e3fb74e4ef6cc52a; the PR explicitly limits the timing result to that pair. Environment: Linux x86-64, Python 3.11.2; no compiler or build was run.

python3 tools/pr_precheck.py --repo boykopovar/AnyPS5 --pr 13855
python3 tools/pr_stack_check.py 13855 --repo boykopovar/AnyPS5 --output-dir /tmp/anyps5-pr-13855-stack
python3 tools/trace_digest.py /tmp/anyps5-13855-trace-audit/aps5-trace-c5e389a12647-244393.json.gz --summary /tmp/anyps5-13855-trace-audit/A1-aps5-summary.jsonl
python3 tools/performance_compare.py /tmp/anyps5-13855-trace-audit/A1-aps5-summary.jsonl /tmp/anyps5-13855-trace-audit/B1-aps5-summary.jsonl --baseline-trace aps5-trace-c5e389a12647-244393.json.gz --candidate-trace aps5-trace-2237678f369c-245198.json.gz --json

The trace-digest and comparison commands were repeated for all eight captures and four pairs, respectively.

Results

Check Result
Diff and conventions Passed
Current-main merge preview Clean; the branch's measured base is older, and the report does not claim the timing transfers to current main
Trace digest All 8 regenerated outputs exactly matched the linked digest files
Paired performance comparison All four reductions exactly matched the linked comparison record
Strict context comparison All four pairs were rejected because window.first_present differs (A/B: 669/657, 625/673, 639/633, 649/668); the other recorded machine, title, resolution, and fixed seconds 30:12 window fields match
Hosted CI Linux and Windows jobs skipped; platform-specific jobs were queued at refresh
Local build/tests Not run
Unedited trace and comparison audit output
A1: summary_commit=c5e389a12647 summary_trace_match=True posted_digest_exact=True
A2: summary_commit=c5e389a12647 summary_trace_match=True posted_digest_exact=True
A3: summary_commit=c5e389a12647 summary_trace_match=True posted_digest_exact=True
A4: summary_commit=c5e389a12647 summary_trace_match=True posted_digest_exact=True
B1: summary_commit=2237678f369c summary_trace_match=True posted_digest_exact=True
B2: summary_commit=2237678f369c summary_trace_match=True posted_digest_exact=True
B3: summary_commit=2237678f369c summary_trace_match=True posted_digest_exact=True
B4: summary_commit=2237678f369c summary_trace_match=True posted_digest_exact=True
A1/B1: paired reduction 0.201362769448% matches posted 0.201362769448%: True
A2/B2: paired reduction 0.259748214819% matches posted 0.259748214819%: True
A3/B3: paired reduction 0.174336986809% matches posted 0.174336986809%: True
A4/B4: paired reduction 0.076679991746% matches posted 0.076679991746%: True
performance_compare.py --require-matching-context: recorded configuration differs: window.first_present (all four pairs)

Sources

The changed selector logic is in SpirvAluEmitterMath.cpp. The immutable paired comparison record and measurement notes identify the exact measured revisions and limits.

Not verified

I did not run the reported Vulkan CTest fixtures or differential helper locally, build the project, verify the physical GPU/scene, or test on another GPU or console. The author reports those tests on the measured baseline/candidate pair; the timing result is limited to that pair and setup.

@github-actions

github-actions Bot commented Oct 31, 2026 •

Copy link
Copy Markdown

Some comparisons could not be completed because a pull request conflicts with the base branch. Review these shared files manually before concluding that there is no overlap.

Pull request Shared files not compared
PR 5021 core/shader/recompiler/SpirvBackend/src/SpirvAlu/SpirvAluEmitterMath.cpp
PR 7410 core/shader/recompiler/SpirvBackend/src/SpirvAlu/SpirvAluEmitterMath.cpp
PR 11351 core/shader/recompiler/SpirvBackend/src/SpirvAlu/SpirvAluEmitterMath.cpp
PR 12324 core/shader/recompiler/SpirvBackend/src/SpirvAlu/SpirvAluEmitterMath.cpp

@github-actions github-actions Bot added the shader core/shader label Oct 31, 2026
@JJenkx

JJenkx commented Oct 31, 2026

Copy link
Copy Markdown
Contributor

Windows GPU run of head 2237678f36, merged onto main c3c45d73ab (clean merge, local only). Setup: Windows 11 Enterprise 10.0.22621, Ryzen 9 5950X, Radeon RX 6700 XT with AMD proprietary driver 26.10.1 (Vulkan 1.4.315), WinLibs GCC 15.2.0 UCRT r7, Ninja, Release, BUILD_TESTING=ON. Every test ran with the Khronos validation layer 1.4.363 (VK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation), ANYPS5_NO_SHADER_CACHE=1 and ANYPS5_REQUIRE_VULKAN=1.

This PR changes no test files, so I picked the existing GPU execution tests that run the code it changes:

  • Tests: agc_driver_sin_cos_reduction, agc_driver_sin_cos_near_zero, agc_driver_gcn_sin_near_zero, agc_driver_vop1_float_unary, agc_driver_f16_denormal_flush and agc_driver_log_near_one (for the near-one log correction).
  • Result: each passes 3 of 3 runs (--repeat until-fail:3), with no failures and no skips. The validation layer was inserted 18 times across the runs and reported no VUIDs.
  • Not done: no negative control. These tests pass on main as well, so this run shows only that the change keeps their results on this GPU.

AI-assisted: yes (Claude Code).

@jacknieland

Copy link
Copy Markdown
Contributor

NVIDIA and Intel on Windows, for head 2237678f36 merged into main 73f4f7e06e (clean merge). The runs so far are AMD.

Host: Windows 11 Pro 26200, i7-9750H, WinLibs GCC 15.2.0 (x86_64-ucrt-posix-seh, r7), Release, BUILD_TESTING=ON, Vulkan SDK 1.4.363.0 validation layer. Two GPUs, selected with ANYPS5_GPU: NVIDIA GeForce GTX 1650 (Turing, driver 566.41) and Intel UHD Graphics 630.

agc_driver_sin_cos_reduction, agc_driver_sin_cos_near_zero, agc_driver_gcn_sin_near_zero, agc_driver_vop1_float_unary, agc_driver_f16_denormal_flush, agc_driver_log_near_one and agc_driver_runtime_images, on main and on the merge, with ANYPS5_REQUIRE_VULKAN=1, ANYPS5_NO_SHADER_CACHE=1 and VK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation:

  • All 7 pass on both GPUs, on main and on this PR, with no skips.
  • Every log has 0 VUID- lines, and none contains was not found but was requested by env var VK_INSTANCE_LAYERS.

Only these test targets were built, not the full suite, and no title was run. AI-assisted.

@TechLevelZero

Copy link
Copy Markdown
Contributor

✅ NVIDIA GPU test: passed

PR head 2237678 merged onto main 73f4f7e · tested 2026-10-31 16:44 UTC · 21 min

GPU NVIDIA RTX 2000 Ada Generation, driver 595.99.02, Vulkan 1.4.329
Host Ubuntu 26.04.1 LTS, kernel 7.0.0-38-generic, container ubuntu:24.04
Logs build and test logs for this run
Build ✅ passed (Release, -DANYPS5_ENABLE_SPIRV_TOOLS=ON)
Tests ✅ 2,338 passed · 2 failed (0 new, 2 also fail on main) · 48 skipped (ANYPS5_REQUIRE_VULKAN=1)
Test setup CPU-only tests without a GPU; GPU tests (and any CPU-only test that failed or skipped without one) once on the GPU with VK_LAYER_KHRONOS_validation and ANYPS5_NO_SHADER_CACHE=1; main ran the same way
Test selection 2,388 of 3,072 tests run: the ones this change can reach, chosen by tools/select_tests.py from main's build graph
Vulkan validation ✅ no new validation IDs vs main (878 tests run on the GPU)
Slow tests (>30 s, GPU tests timed with validation layers) ⚠️ agc_driver_bda_device 33.5 s, ⚠️ agc_driver_graphics_maps_fallback 30.5 s, ⚠️ agc_driver_graphics 30.5 s
Failing on main too (2, not counted against this PR)
guest_mmap_executable
guest_socket_options_multicast
Validation IDs already present on main (3 IDs in 387 tests)
VUID-VkDeviceCreateInfo-pNext-pNext (387 tests): agc_compute_pipeline_replay, agc_driver, agc_driver_address_passes, agc_driver_address_passes_draw_transitions, agc_driver_address_passes_targets_split, agc_driver_alias_copy_label, agc_driver_alpha_to_coverage, agc_driver_array_layer_target, and 379 more
VUID-vkCmdCopyImage-srcImage-01548 (12 tests): agc_driver_depth_clear_hle, agc_driver_depth_plane_buffer_memory, agc_driver_depth_plane_cpu_write_after_memo, agc_driver_depth_plane_cpu_write_after_page_unwatch, agc_driver_depth_plane_cpu_write_after_partial_unwatch, agc_driver_depth_plane_partial_store, agc_driver_depth_plane_partial_store_unimported, agc_driver_depth_plane_sampling, and 4 more
VUID-vkCmdCopyImage-srcImage-01551 (12 tests): agc_driver_depth_clear_hle, agc_driver_depth_plane_buffer_memory, agc_driver_depth_plane_cpu_write_after_memo, agc_driver_depth_plane_cpu_write_after_page_unwatch, agc_driver_depth_plane_cpu_write_after_partial_unwatch, agc_driver_depth_plane_partial_store, agc_driver_depth_plane_partial_store_unimported, agc_driver_depth_plane_sampling, and 4 more
Skipped (48)
agc_driver_bda_reads_shadowed_results: skipped, the device reports watched host memory written when it imports or reads it
agc_driver_bda_reads_shadowed_results_per_build: skipped, the device reports watched host memory written when it imports or reads it
agc_driver_msaa_dcc_compared_import_2: skipped, the device reports host imports that keep write protection, so the write-watch probe compares none of them
agc_driver_msaa_dcc_compared_import_4: skipped, the device reports host imports that keep write protection, so the write-watch probe compares none of them
agc_driver_msaa_dcc_compared_import_8: skipped, the device reports host imports that keep write protection, so the write-watch probe compares none of them
agc_driver_sample_order_grid_reference: skipped, the device does not keep depth drawn at custom sample locations at those locations, even after a transition that names them: the composite of uniform renders holds the guest's depth in 0 of 3005 sloped samples, so no path can be compared with it bit for bit
agc_driver_vertex_elected_atomic_max: skipped, the device runs vertex programs in subgroups, so they keep their cross-lane reductions
agc_host_import_sparse: skipped, host imports are unavailable: /dev/udmabuf is not accessible
agc_import_settle_initial_dcc: skipped, the device has no deferred settle of host imports: imports under 1 MiB wait for one only on Windows
agc_unit_shadow_completion_store: skipped, the device reports watched host memory written when it imports or reads it
guest_http_uri_locale: 
guest_net_ctl: skipped, the host has no IPv4 address
guest_video_out_color_space: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_hdr: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_high_frame_rate: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_output_mode: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_resolution_status: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
guest_video_out_wqhd_detection: skipped, no display or Vulkan device: SDL_InitSubSystem(VIDEO | GAMECONTROLLER) failed: wayland,x11 not available
video_out_flip_aftergpu: skipped, no display or Vulkan device: DisplayWindow: Vulkan support is either not configured in SDL or not available in current SDL video driver (offscreen) or platform
video_out_flip_backtoback: skipped, no display or Vulkan device: DisplayWindow: Vulkan support is either not configured in SDL or not available in current SDL video driver (offscreen) or platform
video_out_flip_controls: skipped, no display or Vulkan device: DisplayWindow: Vulkan support is either not configured in SDL or not available in current SDL video driver (offscreen) or platform
video_out_flip_cpuflip: skipped, no display or Vulkan device: DisplayWindow: Vulkan support is either not configured in SDL or not available in current SDL video driver (offscreen) or platform
video_out_flip_cpuflip_in_order: skipped, no display or Vulkan device: DisplayWindow: Vulkan support is either not configured in SDL or not available in current SDL video driver (offscreen) or platform
video_out_flip_dcc: skipped, no display or Vulkan device: DisplayWindow: Vulkan support is either not configured in SDL or not available in current SDL video driver (offscreen) or platform
video_out_flip_deferred: skipped, no display or Vulkan device: DisplayWindow: Vulkan support is either not configured in SDL or not available in current SDL video driver (offscreen) or platform
video_out_flip_eop: skipped, no display or Vulkan device: DisplayWindow: Vulkan support is either not configured in SDL or not available in current SDL video driver (offscreen) or plat
Reproduce
git fetch origin 2237678f369c8a67a605ab15e3fb74e4ef6cc52a 73f4f7e06e4f210a8c6570e335fd654dc0a86134
git checkout 73f4f7e06e4f210a8c6570e335fd654dc0a86134 && git merge --no-ff 2237678f369c8a67a605ab15e3fb74e4ef6cc52a
git submodule update --init --recursive
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=ON -DANYPS5_ENABLE_SPIRV_TOOLS=ON
cmake --build build && cmake --build build --target libs
VK_DRIVER_FILES=/nonexistent/icd.json ctest --test-dir build -E '^(agc|shader|recompiler|videoout|video_out|guest_video_out|vulkan)|gpu' --timeout 120 --parallel 32 --output-on-failure
ANYPS5_REQUIRE_VULKAN=1 ANYPS5_NO_SHADER_CACHE=1 VK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation \
  ctest --test-dir build -R '^(agc|shader|recompiler|videoout|video_out|guest_video_out|vulkan)|gpu' --timeout 120 --parallel 4 --output-on-failure
# failures are then re-run alone: --timeout 360 --parallel 2; new validation IDs: the test alone, twice, --parallel 1

Automated 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.

@Filip722

Copy link
Copy Markdown
Contributor Author

@adriadam10 @oneandonlydean These five independent PRs have approvals on their current heads and no failing latest hosted checks: #13276 (098fd0334b26), #13821 (dc226ce7afdf), #13826 (3c14c02fe0ce), #13841 (bb9d7516fd0f), and #13855 (2237678f369c).

I checked the combined Git merge preview against main c21eb9a4d074, in that order. All five merge without textual conflicts; the final tree is eba227daf44afd73eb791e6c83ebad13ed3c4a08, and the combined diff passes git diff --check. This is a source integration check, not combined runtime validation or a combined performance claim. The existing paired measurements remain scoped to each PR's named revisions; subsequent AMD, NVIDIA and Intel reports are linked in the individual discussions.

Could a collaborator run the selected full-platform CI batch and merge the individual PRs if that validation and review are satisfactory? My account has no upstream write or workflow-dispatch permission.

gh workflow run build.yml --repo boykopovar/AnyPS5 --ref main --field pr='13276 13821 13826 13841 13855' --field select=true

#11952 is excluded while its performance-review request remains open. #12299 is excluded while its #8716 prerequisite and new CI run are pending. #13268 and #13517 still need their own review decisions.

AI-assisted: yes (Codex).

@oneandonlydean oneandonlydean self-assigned this Nov 1, 2026
@oneandonlydean
oneandonlydean merged commit 8b7d6c1 into boykopovar:main Nov 2, 2026
13 checks passed
@Filip722
Filip722 deleted the perf/series-distance-range-20261031 branch November 2, 2026 20:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

perf Performance change shader core/shader

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants