mirror of
https://github.com/ARMSX2/ARMSX3.git
synced 2026-08-24 16:58:52 -07:00
0.7: SPU and RSX fixes, Oboe audio, and the ports from ouroboros420 and rfandango
SPU: the ARM64 block checksum folded two thirds of every block through absolute difference, which is not injective, so adding the same value to two words left the checksum unchanged and similar job binaries hashed alike. Plain summation now. This is what Precise SPU Verification was working around, and that setting is exposed properly instead of only being reachable by hand editing the config. SPU: a block is no longer marked permanently failed when the trampoline rebuild fails. The compiled function was live, the state was not recoverable for the rest of the session, and the claim could never be retaken. RSX: render pass churn cut in heavy scenes, roughly 113 to 85 passes per frame. On a tile based GPU every pass boundary is a full tile store and reload. Two Vulkan specification violations fixed, and a read/write hazard on the render pass path. RSX: the FIFO no longer burns a core on sched_yield while idle. Android: ADPF is implemented rather than an inert setting, logcat no longer allocates and makes an IPC call per line, and Silence All Logs is available for playable titles. Audio: Oboe backend, for the per device quirks database and stream recovery on disconnect and route change. Ported from ouroboros420/rpcsx: GPU Turbo, power and thermal handling, the crash and freeze fixes, savestate and WSI surface lifetime, honest RAM VRAM budgeting, the persistent SPU object cache design, occlusion query and RSX fixes, frame pacing and tiler tuning. Ported from rfandango/rpcsx: the Turnip ZCULL deadlock fix and ARM64 SPU checksum handling. Individual commits are credited in comments at each site.
This commit is contained in:
Vendored
+6
@@ -141,6 +141,12 @@ else()
|
||||
add_subdirectory(cubeb EXCLUDE_FROM_ALL)
|
||||
endif()
|
||||
|
||||
# Oboe (Android only)
|
||||
if(ANDROID)
|
||||
message(STATUS "Using static oboe from 3rdparty")
|
||||
add_subdirectory(oboe EXCLUDE_FROM_ALL)
|
||||
endif()
|
||||
|
||||
# SoundTouch
|
||||
add_subdirectory(SoundTouch EXCLUDE_FROM_ALL)
|
||||
|
||||
|
||||
Vendored
+8
@@ -0,0 +1,8 @@
|
||||
# Oboe
|
||||
#
|
||||
# Android-only. Oboe wraps AAudio (and OpenSL ES on older devices) and carries a
|
||||
# per-device quirks database plus stream-restart handling, which is the part that
|
||||
# matters on the low-end parts where plain AAudio glitches.
|
||||
|
||||
add_subdirectory(oboe EXCLUDE_FROM_ALL)
|
||||
add_library(3rdparty::oboe ALIAS oboe)
|
||||
+1
Submodule 3rdparty/oboe/oboe added at 0da326e4ef
Reference in New Issue
Block a user