mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-11-04 13:07:32 +00:00
A domain program that picks one of its patch's control points from data (Onimusha: Way of the Sword, PPSA27836, selects a corner with v_cmp and v_cndmask before a buffer_load from the off-chip ring) was refused with "the tessellation ring or LDS address is not affine in the control point and relative patch". Computed indices were accepted only for hull LDS reads. - The address evaluator gives off-chip EvaluationInput reads the same dynamic term as hull LDS reads, and a value read from the patch's own ring or LDS no longer counts as depending on the relative patch index, since the lowered read takes the patch implicitly. - When the program also uses its relative patch index as data, the index is replaced by the grouped patch instead of 0, which left a computed read's address pointing into another patch. Such reads now subtract their relative patch term, for hull and domain reads alike; reads in programs that do not use the index as data keep their address. - The computed offset must be a whole number of control points, and the backend clamps the domain gl_in index to the last output control point as it already does for hull reads. Co-Authored-By: Claude Opus 5.5 <[email protected]>