mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-10-28 00:35:47 +00:00
A pixel shader that reads barycentrics on a device without VK_KHR_fragment_shader_barycentric used to need a vertex shader so a generated geometry stage could follow it, which a mesh pipeline cannot have. The mesh program is now compiled a second time with the layout its pixel shader needs: it writes its clip position as a varying and the three corner positions of each primitive as per-primitive outputs, and the pixel shader solves for the weights, for both smooth and linear interpolation. The layout is part of the mesh cache key, the stored artifact and the captured request. Without VK_EXT_mesh_shader the draw still throws, now saying so. Per-vertex parameters on the mesh path still throw. Co-Authored-By: Claude Sonnet 5.5 <[email protected]>