mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-10-29 12:15:39 +00:00
A shader with an image table map read its fault buffer back only when a table record was poisoned, an SRT read was poisoned, it had window lane guards or the loop guard was on. A DescriptorFault only set the fault buffer, so with a valid table and no copied write nothing ran the fault check, and a lane that took a folded descriptor web path or selected an undefined arm read arm 0 or zeros with no report. The compiled artifact now counts its DescriptorFault instructions (descriptorFaults, stored in the shader disk cache, format 48), and the readback gate requests the fault check when it is nonzero. The result a capture materializes copies the count, and also windowLaneGuards, which that copy had dropped, so the gate's window lane guard condition never saw it. sizeof(CompiledShaderArtifact) is 288 and sizeof(RecompileResult) 552 with the new field. agc_driver_descriptor_web_faults adds a wave32 shader that reads an image table and then the descriptor web, storing only to LDS so no copied write forces completion: it binds an image table and no BDA address table, a valid arm and an unselected undefined arm stay clean, the folded path and a selected undefined arm fault at the read, and nothing faults with EXEC empty. Without the gate change the folded case does not fault. Co-Authored-By: Claude Opus 5.5 <[email protected]>