mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-10-23 09:03:22 -05:00
Capturing a shader evaluates every V#, T# and S# the program uses, including those behind a branch the wave does not take. When such a descriptor was loaded through a pointer read from memory that is null or unmapped, the capture threw "guest memory is not readable", while the console faults only if a wave executes that s_load. The descriptor now reads as zero words, and the flat SRT walk records the s_load's dwords as it does for flat reads, so their guarded ReadConst raises the BDA fault where the wave runs the s_load. A zero V# is an absent buffer and a zero T# binds a null descriptor, as for any zero word read from memory, so nothing new enters a key. A zeroed descriptor whose read no flat slot records still throws, as do branch conditions, uniform fills, table bases and user-data pointers.