AnyPS5/core/libs
Dean Galvin 60c655211d perf(recompiler): let exec-guarded memory and exports end a masked select
A register written under EXEC is usually consumed by an LDS or buffer
access or an export under the same EXEC. MaskedSelectEliminator kept
the select in that case, which leaves the NGG mesh shaders where they
were.

The emitter performs buffer and LDS loads and stores (8 to 128 bits,
GPU-selected V# included) and SetAttribute only in lanes whose active
operand is true: stores and exports sit in an if on it, loads return 0
outside it. Every other operand is read only in those lanes. So such an
access whose active operand implies the select's condition reads the
derived value only where it equals the original, and it now ends the
search like a masked select does. The active operand itself, atomics,
append/consume, scratch and address-space accesses and image accesses
still keep the select.
2026-10-05 18:12:23 +13:00
..
nid fix(nid): share string suffixes when rebuilding .dynstr 2026-10-01 20:09:41 +02:00
prx perf(recompiler): let exec-guarded memory and exports end a masked select 2026-10-05 18:12:23 +13:00
tests Merge pull request #524 from DotDebian/feat/mimg-bvh64-intersect-ray 2026-10-05 18:08:57 +13:00
CMakeLists.txt chore(savedata): sync metadata fix with main 2026-10-03 00:09:01 +02:00
HitLog.hpp style(prx): apply CONVENTIONS.md to misc PRX additions 2026-09-29 04:24:39 +03:00
SceShaders.hpp feat(libs): libSce types impl + shaders refactor 2026-09-08 10:20:57 +03:00
SceTypes.hpp feat(ajm): implement sceAjmDecMp3ParseFrame 2026-10-05 01:24:18 +02:00