mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-11-07 13:39:55 +00:00
sceAgcLinkShaders resolves the rect-list pairing of a pipeline when the title creates it, and three cases ended the title there although the rect-list draw that uses the pipeline builds its pair itself: - a pipeline without a pixel shader reached ResolveGraphicsAbi with a null pixel, which required both stages, although the draw pairs the front stage with the null pixel program; - a stage with no artifact yet, such as a pixel shader that exports stencil on a device without VK_EXT_shader_stencil_export, failed the missing stage artifacts check; - a pair that BuildRectListShaders refuses, such as a pixel input with passthrough interpolation, threw from the builder. The ABI now skips the first two, and logs the third once as a deferral of the pixel shader without recording the pair, so the pair's draw builds it again and fails with the builder's reason. When a draw builds the rectangles of its front stage, only the pair of its own fragment can fail it; the pair of another fragment that has no artifact or that the builder refuses is left to that fragment's draw. A new mode resolves a front stage with a null pixel, with a pixel before it has an artifact, with a pixel that never gets one and with the first pixel's passthrough variant, and expects one deferral with the builder's reason. It then draws the front stage as a rect list with the null pixel program, which succeeds although the other two pairs cannot be built, and with the passthrough pixel, which fails with the builder's reason.