On Fri Jan 5 07:00:22 2024 +0000, Henri Verbeet wrote:
So why is the original commit wrong/superfluous? Arguably this incident simply re-emphasises the need for test coverage for changes like these; if we're going to revert this, could we at least get a test this time?
This issue is a little more specific than it first appeared. It occurs when an I/O row is split into multiple elements by components, but the first element is unused, e.g.:
``` Name Index Mask Register SysValue Format Used -------------------- ----- ------ -------- -------- ------- ------ sv_position 0 xyzw 0 POS float texcoord 0 xy 1 NONE float texcoord 1 zw 1 NONE float zw ```
And the declaration contains an interpolation mode: `dcl_input_ps constant v1.zw`
The old fix needs to be reverted, and replaced with a new fix. When split elements are merged, the interpolation mode should be taken from those which have one.
I was unable to make a shader runner test which touches the issue. My knowledge of interpolation modes and their effects isn't great. Any suggestions?