Commit Graph
161 Commits
Author SHA1 Message Date
Dean b72ddcc34d Merge pull request #14323 from MarcZX10/docs/build-options-and-python-311
docs(build): state the Python 3.11 requirement and document two CMake options
2026-11-03 08:48:22 +13:00
Dean 226741ba55 Merge pull request #13125 from Gonic0/fix/agc-trace-monotonic-raw-clock
fix(agc): calibrate the trace's GPU clock against CLOCK_MONOTONIC_RAW when the device offers no CLOCK_MONOTONIC
2026-11-03 06:26:26 +13:00
Dean a77a6e23ce Merge pull request #11455 from MarcZX10/marc/docs-build-sync
docs: bring BUILD, CONTRIBUTING and AGENTS in line with the build and workflows
2026-11-02 23:28:08 +13:00
MarcZX10 ea5e2aca8b docs(build): document the ANYPS5_NODE and ANYPS5_VIDEO_OUT_TEST_DRIVER options
CMake reads both options, and neither appeared in the option tables in BUILD.md. ANYPS5_NODE selects the Node.js binary that runs the memory64 Emscripten tests; ANYPS5_VIDEO_OUT_TEST_DRIVER selects the SDL video driver for the VideoOut flip tests. Their defaults come from core/libs/tests/emscripten/CMakeLists.txt and core/libs/prx/libSceVideoOut/CMakeLists.txt.
2026-11-01 09:16:52 +00:00
MarcZX10 2c7a4c6444 docs(build): state that validate_patch_catalog needs Python 3.11
BUILD.md says Python 3.9 or newer enables the Python regression tests. The root CMakeLists.txt registers validate_patch_catalog only when Python is 3.11 or newer, and tools/validate_patch_catalog.py imports tomllib, so on Python 3.9 or 3.10 the test is not registered and no message says why.
2026-11-01 09:16:52 +00:00
Dean 9aa1cb5f53 Merge pull request #14174 from MarcZX10/cleanup/remove-agc-create-log
build(libSceAgc): remove the unused APS5_AGC_CREATE_LOG option
2026-11-01 16:28:56 +13:00
Adrià d7c7e5744d Merge pull request #10194 from harry-z-kang/codex/10041-memory-accounting
feat(agc): trace device memory allocations and cache budgets
2026-11-01 00:54:33 +01:00
MarcZX10 e610e0e995 docs(build): drop the APS5_AGC_CREATE_LOG row
The CMake option is removed in the previous commit. The row documented it as
having no effect, so it no longer describes a flag the build accepts.
2026-10-31 22:00:05 +00:00
Kang, Harry Zixuan 465aa0a238 feat(agc): trace device memory allocations and cache budgets 2026-10-31 14:05:00 -07:00
jbooba 2d84e169b7 docs: clarify cache and trace wall-time summaries 2026-10-31 00:10:39 -04:00
Nicolas GonzalezandClaude Opus 5.5 0da9759dc0 fix(agc): calibrate the trace's GPU clock against CLOCK_MONOTONIC_RAW when the device offers no CLOCK_MONOTONIC
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 23:45:02 -03:00
Adrià 4c8cff1916 Merge pull request #12572 from JulesB40/feat/libressl-oracle
test(libSceLibreSsl): compare exports with LibreSSL 2.5.4 behind ANYPS5_LIBRESSL_ORACLE
2026-10-29 23:08:21 +01:00
Adrià c7682cc7d5 Merge pull request #11887 from atharvjairath/fix/http-uri-locale-coverage
test(http): ensure URI locale regression runs in Linux CI
2026-10-29 14:33:18 +01:00
XairRrR 655607481d docs(build): list the draw committer and finisher among the trace buffer threads
The performance trace section said that APS5_TRACE_EVENTS sizes the
buffers of the queue workers and the presenter, and that only those
threads record a window. The draw committer of pipelined draws, which is
on by default, and the draw finisher of APS5_DRAW_PIPELINE also bind to
the trace with the default capacity, so PerformanceTrace::BindThread
gives them a buffer of APS5_TRACE_EVENTS events too, and they record
their scopes in the window. The section now names both threads.

AI-assisted: yes
2026-10-29 06:23:55 +01:00
JulesB40andClaude Opus 5.5 9bfcec2bbf test(libSceLibreSsl): compare exports with LibreSSL 2.5.4 behind ANYPS5_LIBRESSL_ORACLE
The opt-in guest_libressl_oracle test downloads the LibreSSL 2.5.4
tarball at build time, checks its SHA-256, builds libcrypto and libssl
and compares the AES, digest, DES parity and error-string exports of
libSceLibreSsl and libSceLibreSsl3 with them, printing the cases and
differences per function. The option is off by default and adds no
download then. See #12537.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 21:49:28 +01:00
atharvjairath 384d3436de fix(http): provision the URI test locale during configure 2026-10-28 23:44:28 +05:30
Adrià b38cb56dd2 Merge pull request #12300 from dantdmdarealguy/docs/build-table-cpu-lead-execution-tests
docs(build): list ANYPS5_REQUIRE_CPU_LEAD_TEST and ANYPS5_AGC_EXECUTION_TESTS
2026-10-28 14:56:24 +01:00
Adrià 4ee7e4c95f Merge pull request #12268 from dantdmdarealguy/docs/build-agc-create-log-no-effect
docs(build): say APS5_AGC_CREATE_LOG has no effect
2026-10-28 14:48:11 +01:00
Adrià eb6127c5d9 Merge pull request #12087 from MarcZX10/docs/build-trace-and-capture-limits
docs: correct the trace buffer sizes and capture details in the build guide
2026-10-28 14:47:11 +01:00
Adrià cc672fdfc6 Merge pull request #11366 from guglia001/test/relinker-conversion-fuzzer
test(relinker): add a libFuzzer target for the whole conversion
2026-10-28 09:56:49 +01:00
dantdmdarealguy f0cf07265c docs(build): list ANYPS5_REQUIRE_CPU_LEAD_TEST and ANYPS5_AGC_EXECUTION_TESTS
The CMake flag table left out the ANYPS5_REQUIRE_CPU_LEAD_TEST option and
the ANYPS5_AGC_EXECUTION_TESTS cache list that the Windows, MSYS2 and
sanitizer workflows set. Add a row for each and drop the stray comma
after "the reason" in the sanitizer workflow paragraph.
2026-10-28 03:23:50 -05:00
JJenkx b971004857 feat(agc): inspect captured compute pipeline statistics 2026-10-28 08:27:11 +01:00
dantdmdarealguy e26d34d624 docs(build): say APS5_AGC_CREATE_LOG has no effect
The option's only use, the success log in sceAgcCreateShader, has been commented out since 3da76b9b33, so OFF changes nothing and ON logs nothing.
2026-10-28 00:51:32 -05:00
MarcZX10 846c386cd8 docs: give the zero padding of the submission dump file names
SubmissionCapture formats the file name with %06llu, as the PM4 replay
tests expect (submission_000006.bin).
2026-10-27 20:05:07 +00:00
MarcZX10 cb7a97d4d4 docs: say how compute pipeline capture reacts to its limits
The directory limits (128 records, 256 MiB) throw CaptureLimit, which
WriteOptional catches: capture disables itself with one stderr line and
the pipeline is still created. Only the per-record 36 MiB limit throws
out of the capture, so the old sentence described both as an error.
2026-10-27 20:05:07 +00:00
MarcZX10 e7ab802c95 docs: correct the trace event buffer sizes in the build guide
TraceThread::Slice holds five eight-byte members (scope, stage, begin,
length and the recorder batch), so an event takes 40 bytes, not 32.
The example sizes follow: 10 MiB at the default 262,144 events, 120 MiB
at 3,145,728 and 160 MiB at the 4,194,304 maximum.
2026-10-27 20:05:07 +00:00
Dean bbb11b6974 Merge pull request #11062 from MarcZX10/marc/ci-nightly-sanitizers
ci: run every test under ASan and UBSan nightly
2026-10-28 05:58:34 +13:00
atharvjairath 3eae296196 test(http): provision private locale for Linux CI 2026-10-27 18:20:27 +05:30
Adrià 961bfd88e9 Merge pull request #11420 from SHOnnay/docs/windows-path-length
docs: note the Windows path length limit on build files
2026-10-27 11:59:51 +01:00
guglia001 1bdb8388ed test(relinker): add a libFuzzer target for the whole conversion
ANYPS5_BUILD_FUZZERS builds relinker_conversion_fuzzer with AddressSanitizer
and UndefinedBehaviorSanitizer in relinker-only Clang builds on Linux. The
first input byte selects the target system, --to-intel and the unused-filter
level; the rest is the executable passed to Conversion::Convert, the path the
web converter takes. tools/relinker_fuzz_seeds.py writes the relinker test
fixtures as seeds, and CTest runs a short smoke run.
2026-10-27 10:12:35 +01:00
Dean e07c21ce68 Merge pull request #11157 from janzezno/feat/agc-frame-capture-linux
feat(agc): capture and replay frames on Linux
2026-10-27 21:20:55 +13:00
MarcZX10 85a62536c1 ci: drop the trailing colon from the sanitizer run's ASAN_OPTIONS
The workflow and BUILD.md said ASAN_OPTIONS must end with ':' because tests append their own options with string_append. That is wrong: add_asan_test_options appends ':<options>', so ASAN_OPTIONS=detect_leaks=0 already gives detect_leaks=0:detect_stack_use_after_return=0 for the fiber test. Use detect_leaks=0 and remove the claim.
2026-10-27 06:35:12 +00:00
MarcZX10 c1fa1e58d3 docs(dev): describe the nightly sanitizer workflow
Document in BUILD.md, next to -DANYPS5_ENABLE_ASAN, what the Sanitizers workflow builds and runs, where the known failures are listed and what the job summary reports, and how to repeat a run locally: end ASAN_OPTIONS with ':' because tests append their own options, and set UBSAN_OPTIONS=print_stacktrace=1:halt_on_error=1 so undefined behavior fails the test.
2026-10-27 06:35:01 +00:00
Dean 07a9a43cfe Merge pull request #11059 from MarcZX10/marc/fix-libc-fp-contract
fix(libc): build libc without floating-point contraction
2026-10-27 18:30:44 +13:00
Dean c3fc606849 Merge pull request #11179 from MarcZX10/marc/build-tsan-option
build: add an ANYPS5_ENABLE_TSAN option for ThreadSanitizer builds
2026-10-27 10:39:03 +13:00
Dean 184c6f96fc Merge pull request #11153 from plexerPK/codex/vulkan-validation-gate
feat(tools): compare repeated Vulkan validation runs
2026-10-27 10:37:50 +13:00
janzezno c867473002 feat(agc): capture and replay frames on Linux 2026-10-26 16:11:45 +01:00
MarcZX10 f99e00c5c2 docs(build): list the ANYPS5_RELINKER_CLI switch 2026-10-26 14:03:31 +00:00
MarcZX10 c4558d7654 docs(build): list every dependency that stays bundled with system dependencies 2026-10-26 14:03:31 +00:00
MarcZX10 92e6167e18 docs(build): link the RLIMIT_RTTIME note to the AGC driver debt file 2026-10-26 14:03:31 +00:00
MarcZX10 28a0aaf5de docs(build): say when the frame replay test is registered 2026-10-26 14:03:31 +00:00
MarcZX10 ed9c3f6bf2 docs(build): note that the EOP frame capture test is Windows only 2026-10-26 14:03:04 +00:00
SAKIBUL HUDA ONNAY 1fd8cb28ce docs: note the Windows path length limit on build files 2026-10-26 18:21:30 +06:00
LeandroLP23andClaude Opus 5.5 a69872e516 fix(agc): hand a recorded submission to the driver before the recorder takes its next call
The recorder released its lock between recording a submission, flip or
suspend point and the driver accepting it. Another thread's delta could
then wait for the accepted work, read its blocks, and record itself
after a call whose work the driver had not accepted yet, so the replay
submitted that work before applying stale bytes over its result. The
entry points now pass the driver call to the recorder, which runs it
under the same lock right after recording the call.

agc_driver_frame_replay_concurrent submits copies from a second thread
during the capture and checks that every memory delta was read after
the submissions recorded before it had completed.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 23:20:21 +01:00
LeandroLP23andClaude Opus 5.5 ada20294a6 fix(agc): read a frame capture's memory delta once the accepted submissions completed
A delta read its blocks with ReadCommittedUnsynced while GPU work
accepted before the call could still write them, so a capture could
hold a block from before a DMA copy that the replay then wrote back over
the copy's result. A delta with blocks to read now waits up to 10 s for
the accepted submissions and records the serials after the wait; the
capture stops with a warning when the work does not finish. The Windows
quarantine of agc_driver_frame_replay is removed.

Fixes #10711

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 22:36:36 +01:00
MarcZX10 52e0132a34 docs(build): name LLVM among the suppressed ThreadSanitizer libraries 2026-10-25 20:38:12 +00:00
MarcZX10 f8ef2caa34 docs(build): describe the ThreadSanitizer suppressions and guest memory reports 2026-10-25 20:38:12 +00:00
MarcZX10 378c58ea77 docs(build): document the ANYPS5_ENABLE_TSAN flag 2026-10-25 20:38:12 +00:00
plexerPK 34368b9e54 feat(tools): gate repeated Vulkan validation comparisons 2026-10-25 20:41:19 +01:00
Adrià 1a7a3dfd4f Merge pull request #9572 from JJenkx/windows/symbolize-sampler-stacks
feat(tools): symbolize the Windows samplers' stacks
2026-10-25 20:18:58 +01:00