On Fri Jan 5 07:00:22 2024 +0000, Conor McCarthy wrote:
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?
I have a test which should work, but only with fxc. Our HLSL compiler doesn't split the VS outputs and PS inputs. A d3d12 test seems excessive, but the only way it will work in shader runner is if the compiler is patched so the signatures match fxc.