262 Commits
Author SHA1 Message Date
Brian Degenhardt 3e56da7f86 Merge upstream PCSX2 (2026-07-15 .. 2026-08-10)
71 commits from 474ad59818 to 2cf8dabe6b, triaged rather than taken wholesale.

Declined, resolved to ours:

- AGENTS.md: upstream's AI-agent instructions; we carry our own and do not
  want a second, conflicting policy file.
- CI deps bump (setup-node, labeler): both target workflows are absent here,
  and the labeler job is gated on the repository being PCSX2/pcsx2.
- KDDockWidgets 2.4.1: two of the six files do not exist here; we already
  build 2.4.0 against a 2.3.0 floor, so there is nothing to gain.
- The FullscreenUI Achievements-layout realignment: our section already
  carries the same settings, and ours is the branded copy.
- The GS draw/vertex-buffer cluster (7887919e74, b2fa00844e, 99cfbb49c1,
  5c611f85e1, 9945046a49, af48193ebb, d88510e3a6, 8c1bb5742e). Our vertex
  kick is an ARM64 rewrite of the same hot path -- register-resident cursor,
  fused min/max with a rewind watermark, and a scalar cull mirror that
  dual-issues against the NEON parse -- so upstream's generic pointer-logic
  optimisation is a variant of work already banked here, and their growth
  restructure replaces per-buffer capacity with a single global value, which
  the pooled draw-node model cannot express. Two of the four August commits
  in that cluster repair regressions the July rewrite introduced, and the
  third's genuine fix (staging arrays sized from an unrelated buffer) we had
  already made independently.

Taken with adjustment:

- EATAN coefficients (aae9438f98). Upstream relabelled mVU_Globals so the
  names match the powers; we had fixed the same defect by ordering the arm64
  call sites by power instead. Both fixes are correct alone and CANCEL when
  combined, so the arm64 call sites move to plain ascending order in the same
  commit. The values never moved, so this emits an identical instruction
  sequence. Their fix also repairs the x86 mVU we still carry.
- Shader cache version: upstream numbered their tfx.glsl change 109, which is
  below our 110. Taking their value would hand every user a stale blob, so
  this lands as 111.
- FullscreenUI: took the two readback-spin toggles, placed outside our
  non-Apple guard rather than inside upstream's unguarded run.
- Restored tools/generate_fullscreen_ui_translation_strings.py, dropped by
  431ca0c063, and regenerated both string areas. That also registers the Big
  Picture setup-wizard strings, which had never been extractable.

GameDB: the three serials upstream gave gsHWFixes (SLES-53869, PAPX-90020,
SCPS-15064) are absent from the mobile overlay, so no fix is silently erased
on handhelds.
2026-08-10 18:24:24 -07:00
chaoticgd c637afe7af Deps: Work around libjpeg-turbo build issue
See https://github.com/libjpeg-turbo/libjpeg-turbo/issues/898
2026-07-27 16:54:29 +02:00
chaoticgd 9f27d5889b Deps: Update KDDockWidgets to v2.4.1 2026-07-27 16:54:29 +02:00
Brian Degenhardt 57f0f6bb00 CI: package-sdl.sh stages armsx2-sdl, not yaps2-sdl
The script came over from yaps2 verbatim; the SDL job's build step
already produces bin/armsx2-sdl (rebranded frontend), so packaging
died at 'cannot stat .../yaps2-sdl' after an otherwise clean build.
2026-07-19 13:44:07 -07:00
Brian Degenhardt 55828f1938 CI: restore build-dependencies-runner.sh for the SDL/libretro jobs
The libretro + SDL handheld jobs wired into build-all.yml (fabccaa4fb)
call .github/workflows/scripts/linux/build-dependencies-runner.sh, but
the merge resolved .github/workflows/ wholesale to the ARMSX2 side and
dropped the script. Both jobs failed at Build Dependencies with exit
127 in run 29700912398. Its common/shaderc-changes.patch reference is
already present in this tree.
2026-07-19 13:07:48 -07:00
Brian Degenhardt 3e077eff9b Merge yaps2: arm64 JIT transplant + test/perf/libretro infrastructure
Merges yaps2/main (github.com/yaps2/yaps2, c16b88cb7) into ARMSX2,
replacing the arm64 recompiler family with the yaps2 JITs and importing
the yaps2 testing, perf, and libretro infrastructure. Common ancestor is
upstream PCSX2 342db5152 (2026-06-19); git auto-merged all but 38 files.

Replaced (deleted in this merge, recoverable from history):
- arm64/aR5900*, aR3000A*, aVU* -> arm64/iR5900*/iR3000A*/microVU*-arm64:
  EE static-pin register file with lazy dirty tracking, dual-residence
  allocator, IOP block linking, native COP2 macro ops, inline unaligned
  fastmem, persisted VU program cache, call-ret shadow ring, VU0 spin
  fast-forward.
- MVU_DIFF shadow-run hooks in shared VU interpreter TUs (superseded by
  the offline vurunner JIT-vs-interp oracle).

Imported from yaps2:
- tests/ctest/core/recompilers: ~80 gtest suites (EE/IOP/VU differential
  harnesses, fuzzers, ABI digest tripwire, capture format pins) plus the
  gs_vertex_tests kernel oracle.
- pcsx2-vurunner / pcsx2-eerunner headless capture-replay runners.
- tools/perf counter-based A/B rigs, perf jitdump productionization,
  PmuCounters, clang-perf/clang-handheld presets.
- pcsx2-libretro core (ENABLE_LIBRETRO, default OFF; rename pending).
- GS vertex-kick fast path (GV series): TBL-based packed parse,
  register-resident kick, scalar-outcode cull, fused draw-rect/FindMinMax.
- Null renderer, VK_KHR_display direct WSI, swapchain PresentStats.
- SPU2 NEON mixer vectorization, EE timer read clamp (NFL 2K5 hang),
  IOP ioman signed-compare fix, assorted UB fixes.

Kept from ARMSX2 in the both-touched files:
- iOS dual-map W^X and fastmem-unavailable resilience (Memory, HostSys,
  vtlb). The split data/code area model is retained; both areas now take
  fixed VA hints so cached VU JIT code stays deterministic on Linux.
- Android thread-affinity model, VMState shutdown early-outs, all
  platform frontends, branding, CI, RetroAchievements identity/policy.
- GSDeviceVK: ARMSX2's push-descriptor decision logic (Mali crash gate,
  proprietary-vs-turnip Adreno split) merged with yaps2's descriptor-pool
  exhaustion recovery (flush + render-pass restart instead of dropped
  binds). Vendor feature policy is the union: Mali fbfetch policy with
  MediaTek/G57/Xclipse gates from ARMSX2; Adreno stencil/ROV/
  test-and-sample-depth hang avoidance and no_ps2_z_quantization from
  yaps2.

Build-system notes:
- The Qt debugger is now gated behind ENABLE_QT_DEBUGGER (default off on
  arm64) so handheld builds drop the KDDockWidgets dependency.
- GSDeviceNone and remaining yaps2 GS code were ported to the newer
  upstream GSTexture Usage-flags API.

The replaced backend's interpreter-fallback glue (intExecuteOneInst,
AndroidEEOpHist) and the EEDiffVerify runtime differ are retained for
now; dead pieces will be removed in a follow-up commit.
2026-07-19 10:24:29 -07:00
KamFretoZ a4df5c300e Qt/Launcher: Fix StartupWMClass Value 2026-07-11 15:41:27 +02:00
David Isztl 5b1b69c2ee Merge branch 'pcsx2master' 2026-07-09 19:34:44 +02:00
JordanTheToaster 457719d0cc Deps: Update libjpegturbo to 3.2.0 2026-07-09 12:05:39 +02:00
David Isztl 47229e4ff3 build as armsx2-qt 2026-07-06 22:17:04 +02:00
David Isztl 9cef67cc13 fix No such file 2026-07-06 21:38:46 +02:00
David Isztl 1731f2656a armsx2 linux build 2026-07-06 20:59:31 +02:00
David Isztl 30994a3b82 fix linux arm build 2026-07-06 20:12:31 +02:00
David Isztl 135a3f6c23 build for linux arm 2026-07-06 20:12:25 +02:00
JordanTheToaster 603486ad2f Deps: Update SDL3 to v3.4.12 2026-07-04 21:49:31 +02:00
Brian DegenhardtandClaude Opus 4.8 81f27b406f CI: fix arm64 build failures + emit Qt AppImage alongside the tarball
First arm64 CI run surfaced two breakages, both fixed here:

* Qt job died at apt install — libvpl2/libvpl-dev (Intel oneVPL) are
  x86-only, absent on arm64. Root cause runs deeper: the deps ffmpeg
  configure hard-enables libvpl/QSV/nvenc/ffnvcodec (all x86/dGPU), so it
  can't build on arm64 either. Drop linked ffmpeg for the Qt build
  (BUILD_FFMPEG unset, USE_LINKED_FFMPEG=OFF) and use PCSX2's default
  runtime-dlopen ffmpeg — same as the SDL build, which already builds
  clean. Remove the two libvpl packages. Also swap the patches download
  from aria2c (missing on the arm runner image) to curl.

* SDL job built fine but its packaging cp'd $BUILDDIR/bin/resources,
  which the no-Qt build never populates. Take resources from the
  git-tracked source tree ($PCSX2DIR/bin/resources) in both packagers,
  matching rocknix-deploy.

And, by request, the Qt build now emits BOTH a .AppImage (the classic
desktop format) and the portable .tar.zst from the same linuxdeploy
AppDir; the nightly publishes all three assets.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-03 18:38:12 -07:00
Brian DegenhardtandClaude Opus 4.8 a1c439df37 CI: remove orphaned Windows/macOS/Flatpak/release support scripts
Follow-up to dropping those workflows: their support scripts were left
behind as dead weight. Remove scripts/{windows,macos,releases}, the
scripts/linux/flatpak manifest+modules, and the orphaned common/
update_base_translation.sh. Nothing the kept aarch64-Linux workflows use
references any of them. Also drops the last net.pcsx2.PCSX2 flatpak app-id
refs.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-03 18:15:24 -07:00
Brian DegenhardtandClaude Opus 4.8 4fdc3cf8c0 CI: build native aarch64 Linux (Qt + SDL, portable tarballs) with a nightly release
Retarget CI to the only platform yaps2 targets: native aarch64 Linux,
built on GitHub's free public-repo arm64 runners (ubuntu-22.04-arm). Two
self-contained .tar.zst artifacts (no FUSE needed to run):

  * yaps2-qt   portable tarball (desktop / dev + Rocknix / Batocera, which
                                 run Wayland). linuxdeploy + qt plugin bundle
                                 Qt libs/plugins/rpaths into an AppDir which
                                 we tar instead of wrapping as an AppImage;
                                 launch via ./AppRun.
  * yaps2-sdl  handheld tarball (bare-kmsdrm handhelds; $ORIGIN/lib bundle of
                                 the self-built libs, via build-dependencies-runner)

The SDL frontend presents via Vulkan VK_KHR_display direct-display (takes
over the display with no compositor — see pcsx2-sdl/Main.cpp), so it needs
no Qt/WSI deps; Rocknix/Batocera use the Qt build instead. Both builds are
forced to a 4K host page size for handheld compatibility. The push/PR
matrix builds both; a new scheduled nightly_release workflow builds both
and publishes them as a single rolling "nightly" pre-release on
yaps2/yaps2 (tag deleted+recreated each run so URLs track latest).

Also retarget the kept generic gates (GameDB lint) to the fork's main
branch and prune the cache-cleanup keys.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-03 18:05:11 -07:00
Brian DegenhardtandClaude Opus 4.8 5bb52bef60 build: emit yaps2-qt / yaps2-sdl binaries for the fork
Rename the two shipped application frontends' output files from pcsx2-qt / pcsx2-sdl to yaps2-qt / yaps2-sdl via OUTPUT_NAME. The CMake target names are unchanged, so the build graph, install() rules and ctest references keep working; only the produced binary file name changes.

Also repoint the Linux packaging that launches the app at the new name: the .desktop Exec, the AppImage BINARY/--executable, and the Flatpak command. The desktop app-id (net.pcsx2.PCSX2), window class, config dir (~/.config/PCSX2) and the dev/test runners are intentionally left as-is; a full display-name/app-id rebrand is a separate change.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-03 15:36:51 -07:00
JordanTheToaster 57e46f07fe Deps: Update SDL3 to v3.4.10 2026-06-03 05:38:57 +02:00
JordanTheToaster 6b34999a51 Deps: Update Qt to 6.11.1 2026-05-17 00:29:09 +02:00
SternXD 07279568a6 3rdparty/Deps: Various updates (#14420)
### Description of Changes
Updated a number of dependencies and third-party libraries to newer
versions / commits.

## **Deps:**
* libpng `v1.6.56` -> `v1.6.58`
* harfbuzz `14.0.0` -> `14.2.0`
* agilitysdk `1.619.1` -> `1.619.2`
* rapidyaml `v0.11.1` -> `v0.12.1`
* shaderc `2026.1` -> `2026.2`

## **3rdparty:**
* vixl `e6076e9` -> `3fe1686`
* cubeb `e495bee` -> `6ad18e2`
* xbyak `v7.35.2` -> `v7.37`
* CPUInfo `7364b49` -> `3681f0c`
* LZMA/7zipSDK `25.00` -> `26.01`
* fast_float `v8.1.0` -> `v8.2.5`

### Rationale behind Changes
Security fixes and improvements are good

### Suggested Testing Steps
Test everything (yaml, png, vulkan, cpu information in osd, audio etc)

### Did you use AI to help find, test, or implement this issue or
feature?
Nah.

---------

Signed-off-by: SternXD <stern@sidestore.io>
2026-05-12 12:14:40 -04:00
JordanTheToaster 37d5bf33e8 Deps: Update SDL3 to v3.4.8 2026-05-05 20:01:47 +02:00
TellowKrinkle 640a30a25b Deps: Don't remove downloaded files while building
That way we don't need to redownload if a deps build fails partway though and is restarted
2026-04-17 21:19:28 +02:00
JordanTheToaster 7164e30809 Deps: Update Linux/Mac OS ffmpeg to 8.1 2026-04-13 16:13:50 +02:00