Commit Graph
265 Commits
Author SHA1 Message Date
Adrià d4cb89300f Merge pull request #12354 from Queuse/codex/document-loop-guard-limit
docs: clarify the shader loop guard limit
2026-10-28 14:58:00 +01:00
Adrià bd15a91f99 Merge pull request #11696 from Astronaut10/perf/agc-shape-memo
perf(agc): repeat a draw shape's resident targets and pipeline instead of looking them up again
2026-10-28 14:49:03 +01:00
Adrià ca814b7bfa Merge pull request #12094 from MarcZX10/docs/environment-value-kinds
docs: correct kinds, defaults and sources of thirteen environment variable rows
2026-10-28 14:47:33 +01:00
Adrià bf31ed6c3f Merge pull request #12091 from MarcZX10/docs/environment-reference-accuracy
docs: correct eleven rows of the environment variable reference
2026-10-28 14:47:22 +01:00
Queuze f5a61dc3c5 docs: clarify the shader loop guard limit 2026-10-28 07:27:36 -03:00
Cesar MoraandClaude Opus 5.5 2b349ff156 perf(agc): repeat a draw shape's resident targets and pipeline instead of looking them up again
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 08:33:40 +01:00
Adrià fddf0ffb75 Merge pull request #9129 from EagleBearerYS/fix/agc-draw-cache-byte-budget
fix(agc): bound the draw cache by bytes
2026-10-28 08:07:42 +01:00
Dean ccfb96757f Merge pull request #11307 from dantdmdarealguy/perf/agc-depth-plane-copies-recent-presents
perf(agc): keep recently sampled depth plane copies up to twice the budget
2026-10-28 18:17:14 +13:00
Yunus Shaikh 332b5f3d28 Merge main into fix/agc-draw-cache-byte-budget
# Conflicts:
#	core/libs/prx/libSceAgcDriver/Execution/src/Driver/Draw/DrawCacheStatistics.cpp
2026-10-27 20:08:17 -07:00
Adrià a37797da92 Merge pull request #11637 from B-Howell/codex/videoout-display-index-current-main
feat(libSceVideoOut): allow selecting the initial display
2026-10-28 03:49:48 +01:00
Dean b643e2a6b8 Merge pull request #11363 from JJenkx/feat/agc-selected-image-readback-20261026
feat(agc): capture selected live storage images without writeback
2026-10-28 13:46:57 +13:00
MarcZX10 dfe6db8b58 docs: spell out the APS5_DISPATCH_CACHE_ENTRIES default
dispatchCacheEntries picks 8192 only for more than two variants, 16384
for one or two and 4096 when stamp validation is on.
2026-10-27 20:22:48 +00:00
MarcZX10 009be80e18 docs: point APS5_EBOOT at the code that reads it
libSceSystemService reads the variable when it prepares a launch, and an
empty value counts as unset; GuestSystemExit.cpp only checks that it is
not defined.
2026-10-27 20:22:48 +00:00
MarcZX10 8592867658 docs: correct the default of APS5_FRAME_CAPTURE_AT_FLIP
FrameRecorder reads the variable with a fallback of 0 and raises it to 1
when it picks the boundary, so the effect of the default is the same as
1 but the default is 0; a value that is not a number throws.
2026-10-27 20:22:48 +00:00
MarcZX10 f281b02025 docs: document APS5_LOG_STATS as a string
AsyncLog.hpp compares the value with 0, so the value is interpreted and the variable is not a
presence switch.
2026-10-27 20:22:48 +00:00
MarcZX10 bd8a7b9315 docs: document APS5_LABEL_TRUST_LATE as a string
Recorder.cpp compares the value with 0, so the value is interpreted and the variable is not a
presence switch.
2026-10-27 20:22:48 +00:00
MarcZX10 4da9369e17 docs: document APS5_KEYS_FILL_CLEAR as a string
Texture.cpp acts only on the value 1, so the value is interpreted and the variable is not a
presence switch.
2026-10-27 20:22:48 +00:00
MarcZX10 13a973de6f docs: document APS5_HOOK_FLUSH_CPU_BLOCKS as a string
Recorder.cpp acts only on a value that starts with 0, so the value is interpreted and the variable is not a
presence switch.
2026-10-27 20:22:48 +00:00
MarcZX10 8cf29166bd docs: document APS5_EXACT_DRAW_WRITES as a string
WrittenBuffers.cpp compares the value with 0, so the value is interpreted and the variable is not a
presence switch.
2026-10-27 20:22:48 +00:00
MarcZX10 c4239be970 docs: document APS5_COPY_READ_TRACKING as a string
Recorder.cpp compares the value with 0, so the value is interpreted and the variable is not a
presence switch.
2026-10-27 20:22:48 +00:00
MarcZX10 71e4a80c7e docs: document APS5_STRICT_DESCRIPTOR_WEBS as a string
ResourceTracker.cpp compares the value with 0, so the value is interpreted and the variable is not a
presence switch.
2026-10-27 20:22:48 +00:00
MarcZX10 017847c3bb docs: document APS5_IMAGE_TABLE_STRICT as a string
ResourceMaterializer.cpp compares the value with 0, so the value is interpreted and the variable is not a
presence switch.
2026-10-27 20:22:48 +00:00
MarcZX10 89e8dbee00 docs: document ANYPS5_NO_SHADER_CACHE as a string
ShaderDiskCache.cpp ignores an empty value and 0, so the value is interpreted and the variable is not a
presence switch.
2026-10-27 20:22:48 +00:00
MarcZX10 2fe21dbd99 docs: document APS5_SKIP_TIMING_TESTS as a string
PreciseWait.cpp tests the first character for 0, so the value is interpreted and the variable is not a
presence switch.
2026-10-27 20:22:48 +00:00
MarcZX10 c95f8f80e0 docs: say the APS5_SAVEDATA_TRACE limit is per logging site
SAVEDATA_TRACE keeps a static counter in each use, so the default limit
of three applies to every site separately.
2026-10-27 20:15:57 +00:00
MarcZX10 c688fede63 docs: give the range and default of APS5_TRACE_EVENTS
TraceThread::ParseCapacity rejects 0 and anything above 4,194,304, and
DefaultCapacity is 262,144.
2026-10-27 20:15:57 +00:00
MarcZX10 1aac7817b5 docs: keep the host read-only state in the USB passthrough row
HostVolumes records ReadOnly from the mount options (or the Windows
read-only volume flag) and the export reports it, so passthrough is not
always writable.
2026-10-27 20:15:57 +00:00
MarcZX10 e6410e8daa docs: mark the Windows-only debug variables
The timer selftest, the job worker pinning and the page query trace are
compiled only under _WIN32; elsewhere the variables are ignored.
2026-10-27 20:15:57 +00:00
MarcZX10 8ff8758c37 docs: document APS5_TIME_SCALE as a number string
The value is parsed with strtod, so fractional factors work, as the row
already says; the integer kind contradicted it.
2026-10-27 20:15:57 +00:00
MarcZX10 11a036fa09 docs: state the interval limit of APS5_TRACE_BENCH
TraceBench::Keep retains MaximumIntervals = 240 and counts the rest as
dropped.
2026-10-27 20:15:57 +00:00
MarcZX10 29b1aaa480 docs: say what APS5_TRACE_SKIPS adds
reportSkip already writes each distinct skip once; the variable only
enables the 'again' lines for repeats.
2026-10-27 20:15:57 +00:00
MarcZX10 fb7b465ad7 docs: point APS5_SPIRV_OPT at its production reader
The SPIR-V backend reads the variable; the test only repeats the read.
2026-10-27 20:15:57 +00:00
MarcZX10 d035b7afe3 docs: describe the perf pair switches as recompiler switches
APS5_NO_PERF_FRONTEND_PAIR and APS5_NO_PERF_LAYOUT_PAIR are read by the
shader recompiler itself, which the shader disk cache lists among its
output-neutral switches, not only by the shader-memory test the rows
pointed at.
2026-10-27 20:15:57 +00:00
MarcZX10 b47d7e50d3 docs: document APS5_SRGB_SHADER_DECODE as a string
TextureFormat.cpp compares the value with "1" and "copy" and ignores
anything else, so setting it to an arbitrary value does not behave like
a presence switch.
2026-10-27 20:15:20 +00:00
MarcZX10 534f5acdc8 docs: document APS5_STORE_AT_LABEL as a string that accepts only 1
StoreAtLabelRequested returns true for "1" and throws for any other
value (expected 1), like its sibling APS5_STORE_AT_FLIP, so it is not a
presence switch.
2026-10-27 20:15:20 +00:00
Adrià 486919e70a Merge pull request #11456 from MarcZX10/marc/docs-environment-sync
docs(environment): correct variable rows that no longer match the code
2026-10-27 12:00:02 +01:00
Adrià bb5a62ce11 docs(environment): sort ANYPS5_DISPLAY_INDEX within libSceVideoOut 2026-10-27 11:50:09 +01:00
B-Howell be358dc3f7 feat(libSceVideoOut): allow selecting the initial display 2026-10-27 11:50:06 +01:00
Dean 3fea2a937b Merge pull request #11685 from oneandonlydean/port/direct-depth-layer-copy-v2
feat(agc): copy depth planes to and from color storage images directly where maintenance8 allows
2026-10-27 23:03:00 +13:00
Dean a636927e5f Merge pull request #8161 from Celegans12/feat/tools-ab-split
feat(tools): split the periodic reports of an APS5_AB run by phase
2026-10-27 21:34:47 +13:00
Adrià b9a946180a Merge pull request #11046 from simnJS/claude/sweet-faraday-oqfsm5
feat(libSceUsbStorage): pass the host's USB FAT and exFAT volumes through
2026-10-27 08:27:14 +01:00
dantdmdarealguy 36277c4b44 perf(agc): keep recently sampled depth plane copies up to twice the budget
The depth plane copy budget (APS5_DEPTH_PLANE_COPY_MIB, 256 MiB) evicted
the least recently used copy even when it had been sampled in the same
frame. When one frame samples more than the budget, every use evicts a
copy the next use needs, so each copy is made and refilled again on every
use. ASTRO BOT (PPSA21564) samples a 1536x1536x16 D32 copy (288 MiB with
its staging buffer) and a 2048x2048x3 D16 copy (48 MiB) alternately in
its intro and thrashes this way.

A copy sampled in the current or the previous present now stays while
all copies hold at most twice the budget. Past that, the least recently
used copies leave whenever they were sampled, so the copies never hold
more than twice the budget, or the one copy being sampled if it is
larger. Older copies still leave first by least recent use down to the
budget.

DepthPlaneCopyBytes reports the bytes the copies hold, for the tests.
The pooled-memory rounds of agc_driver_depth_plane_guest_layers now
advance two presents between samples, since two copies sampled in one
present may now be kept together.
2026-10-26 22:31:18 -05:00
Dean c72ed0b7c8 Merge pull request #10388 from Tamalero/perf/prebuild-pool-threads
perf(agc): prebuild registration libraries on half the hardware threads by default
2026-10-27 14:59:11 +13:00
Dean 8cc3be6e2b Merge pull request #9098 from EagleBearerYS/perf/libc-collect-without-region-query
perf(libc): read private write watches per allocation without a region query
2026-10-27 14:57:16 +13:00
Dean 37c6b4bc25 Merge pull request #8077 from 0xcrstn/ufc6/descriptor-web-fold
fix(shader): split descriptor webs whose paths fold or hold invalid arms
2026-10-27 14:56:47 +13:00
Dean d1de04f943 Merge pull request #7484 from AlxcBTW/pr/robust-loads
perf(recompiler): leave the descriptor-range comparison out of direct buffer loads when the device zeroes past the range
2026-10-27 14:56:32 +13:00
simnJS 6988438d77 feat(libSceUsbStorage): pass host volumes through only with APS5_USB_STORAGE_PASSTHROUGH
Unset, ScanHostVolumes returns no volume, so nothing is scanned or
exposed and the guest sees no USB storage, as on main. The test checks
that injected volumes are neither listed nor raised by a rescan with the
switch off, and turns it on for the device cases.
2026-10-27 00:01:56 +01:00
Dean 74acfad65b Merge pull request #11365 from oneandonlydean/sa/per-draw-gpu-timing
feat(agc): opt-in per-draw GPU timing and dump-by-address diagnostics
2026-10-27 11:08:24 +13:00
Dean 910e14f3c9 Merge pull request #8896 from teepean/perf/recent-host-imports
perf(agc): find a host import among the last ones found first
2026-10-27 10:52:34 +13:00
Dean b7cfbf0115 Merge pull request #9346 from Techx3/feat/fullscreen-env
feat(libSceVideoOut): open the display window fullscreen with ANYPS5_FULLSCREEN
2026-10-27 10:29:49 +13:00