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 Mora and Claude 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 Mora and Claude 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à and Claude 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
JJenkx and Claude 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-Dunning and Claude 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-Dunning and Claude 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
JJenkx and Claude 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