Commit Graph
12388 Commits
Author SHA1 Message Date
Zenodeon c19dcecfec fix(agc): expire collected write proofs on allocation changes 2026-10-20 18:48:22 +04:00
Zenodeon b8f6d316a9 test(agc): expose cached write history across allocation replacement 2026-10-20 18:31:03 +04:00
Zenodeon 5012f736d0 test(agc): scope unit history checks to write-watched hosts 2026-10-20 18:31:03 +04:00
Zenodeon 2421f6cfa0 fix(agc): retain write history for committed texture units 2026-10-20 18:31:03 +04:00
Zenodeon de0cf03efe test(agc): cover array slices beside uncommitted memory 2026-10-20 18:31:03 +04:00
Zenodeon c25566ca6d perf(agc): upload selected array layers through CPU staging 2026-10-20 18:31:03 +04:00
Zenodeon 2d677974d1 test(agc): cover CPU refresh of overlapping array targets 2026-10-20 18:31:03 +04:00
MiguelAdolfsenandClaude Opus 5.5 52a64aef65 perf(agc): refresh only the layers a use of an array color target covers
A color view of one slice of a 2D array target refreshed the whole array
image before each draw, sampled lookup and present. When the array's unused
slices lie over other live targets (ps5-opengl declares every target as a
two-slice array and allocates the next one over its second slice), each
refresh stored the other targets' pending results, wrote back its own and
uploaded the whole image from guest memory again, on every pass.

StorageTexture::RefreshLayers refreshes the tracked layers that hold the
given array layers alone: it flushes and compares their memory only, and
results of other images pending over the other layers stay pending. A layer
outside the range whose memory changed or that holds another image's pending
results is left behind; GenerationFor reports it as never current, so a use
over it takes the whole Refresh. It falls back to Refresh for volumes,
single-layer and DCC images, an alias, or results of the image pending
outside the range.

A draw into an array slice, a 2D view of one layer of an array image and a
present of one layer use it. The compare memo of untracked memory is kept
per range, so a layer refresh's compare is memoized like the whole image's.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-20 18:31:03 +04:00
Dean 5f7e30233e Merge pull request #7340 from teepean/perf/write-only-pass-continuation
perf(agc): draws that only store to a buffer continue one render pass
2026-10-21 03:23:29 +13:00
Adrià 28f126650b Merge pull request #6598 from zaryabzip/fix/agc-reserve-prepare-stacks
fix(agc): reserve the shader preparation thread stacks on Windows instead of committing them
2026-10-20 16:23:09 +02:00
Adrià 576b4b94b2 Merge pull request #7873 from whamre/feat/hang-dump-stack-candidates
feat(libc): list stack return address candidates in the hang dump
2026-10-20 16:20:04 +02:00
Adrià 5f7aa5570c Merge pull request #7563 from babyhuey/feat/libkernel_sys-fstatat
feat(libkernel_sys): implement fstatat
2026-10-20 16:08:26 +02:00
Adrià 6e9279c51a Merge pull request #7829 from JJenkx/fix/shader-bda-anchor-read-sync114
fix(shader): retain adjacent anchor byte loads on RADV
2026-10-20 16:05:32 +02:00
Adrià fdc557292b Merge pull request #7523 from jotitadev/fix/tools-check-python-test-registration
fix(tools): fail when a test_*.py script is never run
2026-10-20 16:05:20 +02:00
Adrià d28cb2a66e Merge pull request #7785 from pushkarreddyy/fix/savedata-umount2-icon-null
fix(savedata): return parameter error on null arguments in umount2, loadIcon and saveIcon
2026-10-20 16:01:09 +02:00
Adrià 4e860a5ed5 Merge pull request #7834 from parl0v/fix/import-audit-disambig-nid
fix(tools): strip the NID disambiguation suffix from declared names
2026-10-20 15:59:04 +02:00
Dean 19fcab22e2 Merge pull request #8275 from thuanquang/test/f64-denormal-modes-device-dependent-results
test(agc): skip only the device-dependent f64 denormal mode results
2026-10-21 02:53:09 +13:00
Dean bcf29de5d0 Merge pull request #8273 from thuanquang/test/large-cache-file-cleanup
test(agc): remove the large cache file test directory when the test fails
2026-10-21 02:53:04 +13:00
Adrià a93816cf8a Merge pull request #7730 from milescoviello/fix/font-missing-warning
fix(libSceFont): say once where system fonts were looked for when a set has none
2026-10-20 15:49:45 +02:00
Adrià d0eb3b64c9 Merge pull request #7759 from MarcZX10/codex/fix-shader-memory-region-lifetimes
fix(agc): retain shader memory region vectors
2026-10-20 15:48:39 +02:00
Dean 52f7807a55 Merge pull request #6581 from Thomas73737/feat/libscefont-words
feat(libSceFont): implement handle and glyph attributes
2026-10-21 02:43:40 +13:00
Dean 634fad812d Merge pull request #6513 from JJenkx/fix/audio-propagation-preserve-mix
fix(audio-propagation): preserve existing destination mixes
2026-10-21 02:41:53 +13:00
Adrià 7d9372b77c Merge pull request #7740 from whamre/fix/windows-lazy-zero-fill-v2
fix(relinker): keep zero-filled PT_LOAD memory out of the Windows loa…
2026-10-20 15:41:27 +02:00
Dean cabd80f472 Merge pull request #8358 from xXPBSXx/fix/libc-rename-source-first
fix(libc): resolve the rename source before the destination argument
2026-10-21 02:30:34 +13:00
Adrià 30fda0a03a Merge pull request #7688 from jotitadev/fix/hw-oracle-compare-test-in-process
fix(tools): run the oracle comparison test cases in process
2026-10-20 15:19:07 +02:00
Adrià b5f9c21bbc Merge pull request #7680 from gohansharma79-svg/codex/avplayer-paused-preview-20261019
fix(avplayer): deliver the first paused picture after audio starts
2026-10-20 15:19:02 +02:00
Adrià 277671f838 Merge pull request #7683 from Longziip/fix/agc-indirect-register-reread
fix(agc): reread an invalid indirect register list where its packet executes
2026-10-20 15:18:56 +02:00
Adrià 3cde166e45 Merge pull request #7650 from alex73630/fix/agc-cached-image-msaa-guard
fix(agc): enforce MSAA guards for ordinary image cache hits
2026-10-20 15:18:50 +02:00
Dean 44e3389c88 Merge pull request #7807 from mazen320/fix/windows-stderr-dup2
fix(libkernel): keep host stderr off a guest dup2 onto descriptor 2
2026-10-21 01:45:30 +13:00
Dean d1f8ae2147 Merge pull request #8211 from ycbuzi/pr/libc-rint-rounding-mode
fix(libc): honour the rounding mode in rint and rintf
2026-10-21 01:37:57 +13:00
Dean 88942aa99d Merge pull request #8280 from thuanquang/fix/mul-lo-u16-keep-24-bit-factors
fix(shader): keep the 24-bit factor reads of 16-bit multiplies
2026-10-21 01:30:18 +13:00
Dean 02b5a8e55f Merge pull request #8028 from ymatrix1/feat/hmd2-missing-exports
feat(libSceHmd2): export missing firmware HMD2 interfaces
2026-10-21 01:24:37 +13:00
Dean aa02422869 Merge pull request #7954 from mazen320/fix/pass-input-hazard-when-copied
fix(agc): require the pass-input barrier only for an in-place read
2026-10-21 01:24:17 +13:00
xXPBSXxandClaude Sonnet 5.5 0a0910c54d test(libkernel): expect ENOENT for a missing rename source with a NULL destination
The rename source is now resolved before the destination argument, as in
FreeBSD kern_renameat, so sceKernelRename("src", nullptr) fails with ENOENT
when src does not exist. GuestPosixScalarIo still expected EFAULT.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-20 14:22:35 +02:00
Dean 56b299c3a9 Merge pull request #8347 from orezraey/fix/shader-cache-test-ninja-encoding
test(recompiler): read the cache fixture's build.ninja in the Ninja build-file encoding
2026-10-21 01:05:46 +13:00
Dean 390ec58e20 Merge pull request #8342 from orezraey/fix/hw-oracle-cmd-unicode-python
test(tools): run the hw-oracle oracle.cmd fixture from non-ASCII paths
2026-10-21 01:05:32 +13:00
Dean 2d430a877d Merge pull request #8274 from thuanquang/test/subvector-loop-begin-one-compare
test(shader): check that s_subvector_loop_begin tests an empty exec mask with one compare
2026-10-21 01:04:00 +13:00
Dean 3dc9b794e8 Merge pull request #8292 from hypermoist/feat/libc-stdio-v-scanf-wide-print
feat(libc): implement vfscanf, vscanf, scanf, the wide stream printf family and vswscanf
2026-10-21 01:03:45 +13:00
Adrià a9c93a05cc Merge pull request #8390 from adriadam10/fix/main-raise-exception-budget
fix(main): shrink guest_raise_exception to fit 30 s on Windows
2026-10-20 14:02:17 +02:00
Adrià FranchandClaude Sonnet 5.5 cd2fd50f0c fix(main): halve guest_raise_exception rounds to fit the 30 s budget on Windows
#7652 made raises wait for host code to leave, adding ~3 s to a test that
already took ~16 s on a fast machine. Main run 39414828108 timed out at 30 s
on windows. Round counts halved; every scenario still runs.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-20 14:02:05 +02:00
Maz 18da29b898 fix(shader): keep recompiler diagnostics off guest stdio 2026-10-20 16:01:02 +04:00
Adrià d50ec76da0 Merge pull request #7656 from andreamatt/fix/progress-history-utc-days
fix(progress_history): take history days in UTC
2026-10-20 13:25:16 +02:00
Adrià b9a097353c Merge pull request #7556 from MarcZX10/codex/libkernel-sysctl-mib-enoent
fix(libkernel): return ENOENT for measured absent sysctl MIBs
2026-10-20 13:23:08 +02:00
Adrià e25c9758e0 Merge pull request #7641 from milescoviello/fix/msaa-target-recreated-xor
fix(agc): reimport a multisampled target recreated with another pipe-bank XOR
2026-10-20 13:18:14 +02:00
Adrià 8afd6ea478 Merge pull request #7660 from savvaniss/fix/sce-code-gaps
fix(relinker): resume scans after undecodable bytes between PS4 unwind functions
2026-10-20 13:17:15 +02:00
Adrià 437de6392f Merge pull request #7652 from billythemenace2/fix/kernel-raise-outside-host-code
fix(libkernel): redirect a raise only once the target leaves host code
2026-10-20 13:16:49 +02:00
Adrià 1d41645527 Merge pull request #7633 from WallisSkill/fix/dualsense-audio-haptics
fix(libSceVideoOut): rumble a DualSense from haptic audio without a sound card
2026-10-20 13:07:58 +02:00
Adrià d3633bd9e3 Merge pull request #7554 from MarcZX10/codex/libkernel-rng-pseudo-mib
fix(libkernel): support kern.rng_pseudo MIB access
2026-10-20 13:06:57 +02:00
Adrià 6220506553 Merge pull request #7570 from Amoenus/codex/fix-sampled-cache-gpu-selector
fix(tests): honor GPU selection in sampled-cache fixtures
2026-10-20 13:05:55 +02:00
Adrià 809aab71d8 Merge pull request #7630 from JJenkx/fix/shader-scheduled-table-index
fix(shader): follow scheduled jump table index writes
2026-10-20 13:04:54 +02:00