Commit Graph
4889 Commits
Author SHA1 Message Date
Dean d43e6bd663 Merge pull request #12185 from Gonic0/fix/recompiler-user-data-call-across-branches
fix(recompiler): link user-data calls whose target copy precedes forward branches
2026-10-29 07:27:53 +13:00
Adrià 46e54cf1f7 Merge pull request #10800 from slopgobblercobbler/fix/shader-diagnostics-dump-safety
fix(libSceAgcDriver): handle failed shader request dumps and uncapped skips
2026-10-28 18:15:01 +01:00
Adrià ecfad8e66c Merge pull request #11711 from danielcadev/fix/runtime-formatted-store-expansion
fix(shader): bound runtime formatted-store expansion
2026-10-28 17:35:31 +01:00
Adrià bf969dbdbe Merge pull request #11692 from JJenkx/fix/agc-partly-watched-depth-planes
fix(agc): track CPU writes in partly watched depth planes
2026-10-28 15:54:50 +01:00
Adrià 2f34dca5b3 Merge pull request #11638 from dantdmdarealguy/test/agc-skip-without-vulkan
test(agc): skip submit progress and pipelined metadata pass without a Vulkan device
2026-10-28 15:29:28 +01:00
Adrià 446bd8776c Merge pull request #11465 from valenciana-nc/fix/draw-index-count-overflow
fix(agc): reject quad-list and strip draws whose expanded index count overflows uint32
2026-10-28 15:20:14 +01:00
Adrià 26c20975ac Merge pull request #11369 from QRMOE/fix/agc-msaa-depth-buffer-write
fix(agc): release a resident multisample depth before a GPU buffer may write over it
2026-10-28 14:49:09 +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
Dean 0c4d871f18 Merge pull request #12253 from Michael-KD/fix/fma-f32-denormal-modes
fix(shader): translate the fused f32 fma forms in f32 denormal mode 2
2026-10-29 00:32:38 +13:00
Dean 7d223dd6da Merge pull request #12252 from Michael-KD/fix/f32-rounding-frexp-denormal-modes
fix(shader): translate f32 fract, floor, ceil and frexp_mant in f32 denormal modes 1 and 2
2026-10-29 00:32:22 +13:00
Dean cabaf13705 Merge pull request #12256 from dantdmdarealguy/test/spirv-optimizer-scan-in-bounds
test(shader): keep agc_spirv_optimizer's stored-lane scan inside the module
2026-10-29 00:29:00 +13:00
Dean 3a40945e62 Merge pull request #12298 from oneandonlydean/revert-11199-helper-lane-masks
revert(shader): restore pixel helper lanes in guest lane masks (#11199)
2026-10-28 22:57:31 +13:00
Dean 94341855b4 Merge pull request #11916 from Bram910/fix/shader-pack-mapping-ownership
fix(shader): preserve ownership of mapped shader pack entries
2026-10-28 22:53:02 +13:00
Dean 3917fa85ce Merge pull request #12188 from Gonic0/fix/shader-lds-lock-fences-moltenvk
fix(shader): fence the LDS lock's critical section on MoltenVK
2026-10-28 22:51:00 +13:00
Dean 0b9a019696 Merge pull request #12062 from Lancito01/fix/mesh-barycentric-builtins
test(agc): disable barycentric built-ins in the mesh barycentric emulation test
2026-10-28 22:45:24 +13:00
Dean f1f61b4475 Merge pull request #11943 from GiannisG1/test/packed-unorm4444-merge-skip-without-formatless-reads
test(agc): skip the 4_4_4_4 partial write test without shaderStorageImageReadWithoutFormat
2026-10-28 22:32:44 +13:00
Dean 5ae16ad52b Merge pull request #11915 from Bram910/fix/pipeline-cache-recovery
fix(agc): recover pipeline cache persistence from transient failures
2026-10-28 22:30:07 +13:00
Adrià 316615d042 Merge pull request #10307 from mazen320/fix/submit-acb-queue-0x58
fix(agc): accept compute queue 0x58 on SubmitAcb
2026-10-28 10:19:36 +01:00
Adrià a444a18d93 Merge pull request #11507 from hugodearaujo/fix/agc-short-cube-sampling
fix(agc): sample cube descriptors with fewer than six slices as six faces
2026-10-28 10:14:50 +01:00
Dean b332780eec revert(shader): restore pixel helper lanes in guest lane masks (#11199)
This reverts merge 7fc0ae6008. On NVIDIA, where helper lanes take part in ballots, clearing helper bits from every pixel ballot breaks derivatives along triangle edges (bright lines and specks on a cloud surface in PPSA21564). See the report on #11199.
2026-10-28 22:11:10 +13:00
slopgobblercobbler 9de5c3a851 fix(libSceAgcDriver): handle failed shader request dumps and uncapped skips 2026-10-28 09:50:43 +01:00
Adrià 5b8ba7b929 Merge pull request #11443 from JJenkx/feat/agc-compute-inspection-20261026
feat(agc): inspect captured compute pipeline statistics
2026-10-28 09:41:21 +01:00
Dean 87b810a1db Merge pull request #12211 from XairRrR/fix/shader-paired-wave-zero-branch
fix(recompiler): take a paired wave64 zero branch when some invocations are inactive
2026-10-28 21:32:27 +13:00
Dean 78360959ee Merge pull request #12137 from dantdmdarealguy/fix/agc-same-queue-label-epoch
fix(agc): start no collect epoch at a wait whose own queue's label already reached memory
2026-10-28 21:32:09 +13:00
Dean 3952092d74 Merge pull request #12209 from XairRrR/fix/agc-queue0-after-async-wait-free
fix(agc): run queue 0 work after earlier wait-free async submissions
2026-10-28 21:31:54 +13:00
Adrià a13ee2ddd1 Merge pull request #10498 from dotaku22/contribution/agc-committed-read-mapping
fix(agc): tolerate mapping changes during committed snapshots
2026-10-28 09:25:29 +01:00
Maz 683b3497de fix(agc): limit 0x58 acceptance to SubmitAcb
Keep MultiAcbs and CommandBuffer on the unmeasured 0x57 exclusive end; split the debt entries and retain the title call-sites.
2026-10-28 08:59:28 +01:00
Maz 051b3e017b fix(agc): accept compute queue 0x58 on SubmitAcb
A PS5 measurement already recorded in the debt note shows queue 0x58 succeeds; raise the exclusive SubmissionQueueEnd and cover it in agc_driver_tests.
2026-10-28 08:59:28 +01:00
Adrià 7fc0ae6008 Merge pull request #11199 from QRMOE/fix/shader-pixel-helper-lane-masks
fix(shader): keep pixel helper lanes out of guest lane masks
2026-10-28 08:54:16 +01:00
Cesar MoraandClaude Opus 5.5 3181021a4f test(agc): a repeated storage surface refuses a guarded target past its first byte as its lookup does
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 08:33:41 +01:00
Cesar MoraandClaude Opus 5.5 46366e060a test(agc): a touched pipeline is returned as a store hit and stays recently used
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 08:33:40 +01:00
AdriàandClaude Sonnet 5.5 0f8ac231b0 test(agc): report the device limitation when pipeline inspection skips
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-28 08:27:19 +01:00
JJenkx cc59cb7b93 test(agc): skip pipeline inspection when Vulkan is unavailable 2026-10-28 08:27:12 +01:00
JJenkx b971004857 feat(agc): inspect captured compute pipeline statistics 2026-10-28 08:27:11 +01:00
Dean a734b350f1 Merge pull request #8091 from JJenkx/fix/agc-import-allocation-error-budget
fix(agc): pin the import ceiling only on memory exhaustion
2026-10-28 20:11:23 +13: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
JJenkxandClaude Opus 5.5 771dbdfec2 style: drop a code comment that is not technical debt
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 02:26:09 -04:00
dantdmdarealguy 556aa8098d test(shader): keep agc_spirv_optimizer's stored-lane scan inside the module
storedLaneFunction took &words[offset + 1] for every instruction,
including the final one-word OpFunctionEnd, where offset + 1 equals
words.size(). GCC 15 and later define _GLIBCXX_ASSERTIONS in unoptimized
builds, so agc_spirv_optimizer, agc_spirv_optimizer_full and
agc_spirv_optimizer_none abort in every Debug build with
"Assertion '__n < this->size()' failed". Form the operand pointer from
words.data(); operands are still read only for instructions that have
them.
2026-10-28 00:40:42 -05:00
Dean 00e85fea39 Merge pull request #10348 from oneandonlydean/perf-D2-v47
fix(agc): clamp an exported pixel depth to the viewport depth range
2026-10-28 18:25:05 +13: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
Michael Krumland-DunningandClaude Opus 5.5 254d7b416f fix(shader): translate the fused f32 fma forms in f32 denormal mode 2
v_fma_f32, v_fmac_f32, v_fmamk_f32 and v_fmaak_f32 threw "f32 denormal
mode 2 is not implemented" whenever FLOAT_MODE flushed f32 denormal
inputs but kept denormal results.

On RDNA2 (gfx1036) at round to nearest even, mode 2 flushes the inputs
and rounds the fused result once with gradual underflow, which the host's
Fma gives under DenormPreserve 32. The translation now matches all 5,596
measured triples for the four forms at IEEE 0 and 1. Mode 1 keeps
throwing: there the hardware flushes a result that is tiny after rounding
with an unbounded exponent even when the addend is nonzero.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 22:05:57 -07:00
Michael Krumland-DunningandClaude Opus 5.5 126b7b98a0 fix(shader): translate f32 fract, floor, ceil and frexp_mant in f32 denormal modes 1 and 2
All four threw "f32 denormal mode N is not implemented" whenever
FLOAT_MODE kept only one side of the f32 denormals.

On RDNA2 (gfx1036), in every f32 round mode and at IEEE 0 and 1, mode 2
gives the results of mode 0 and mode 1 those of mode 3 with a denormal
result flushed, which only v_fract_f32 of a positive denormal produces.
The translation now matches all 118 measured inputs in modes 1 and 2.
Mode 1 of the three that run host float operations on a kept denormal
needs DenormPreserve 32, as v_min_f32 does.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 22:05:57 -07:00
Adrià e5c952d51f Merge pull request #9806 from frankea/fix/hull-masked-control-point
fix(shader): evaluate a control point masked out of the packed hull register
2026-10-28 05:35:24 +01:00
Adrià 82d5f01f28 Merge pull request #11361 from johandavidcm/perf/agc-pass-break-reasons
feat(agc): count why draws begin render passes
2026-10-28 05:25:04 +01:00
Adrià 2df319e55c Merge pull request #11704 from JJenkx/fix/agc-srgb-msaa-dcc-clear
fix(agc): import exact sRGB multisampled DCC clears
2026-10-28 05:10:37 +01:00
Adrià b4b0c220a9 Merge pull request #11706 from jotitadev/fix/agc-guest-memory-lifetime-macos-loader
test(agc): load the Vulkan loader by its macOS name in the host import and producer gate helpers
2026-10-28 05:08:31 +01:00
Adrià 11760ab51b Merge pull request #11708 from jotitadev/fix/agc-depth-plane-test-detiler
test(agc): give the read-only depth plane flush test a texture detiler
2026-10-28 05:07:27 +01:00
JJenkxandClaude Opus 5.5 c581723557 test(agc): build the page-unwatch depth unit with Windows block granularity
On Windows, GuestMemory::Unwatch excludes every page of each 64 KiB
block it touches, so unwatching one page of the descriptor unit left the
whole unit unwatched and the "descriptor page lost write watching" check
failed. Unwatch the unit and return only its descriptor page with
Rewatch there, which is page-granular, so the unit is partly watched on
every platform. Linux keeps the single-page Unwatch.

Diagnosed by maskym on Windows 11 26300 with an RTX 2070 SUPER.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 00:03:20 -04:00
Adrià 68200c47ea Merge pull request #11705 from jotitadev/fix/agc-deferred-resolver-after-last-device
fix(agc): check the deferred destruction resolver only against live devices
2026-10-28 05:02:15 +01:00
Adrià ed94f8443f Merge pull request #11699 from Filip722/perf/shader-pixel-entry-mask
perf(shader): reuse starting pixel lane predicates
2026-10-28 04:59:08 +01:00