The pipeline in question has a float3 and a float which are COLOR1 and COLOR2 respectively, and they get packed into the same registers. The VS merges the two together, but the PS doesn't. I'm not sure why, but it may have something to do with the fact that the PS consumes the COLOR1 but not the COLOR2. Conor, do you have an immediate idea here?
--
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/464#note_56736
--
v18: vkd3d-shader/ir: Store code block names in struct vkd3d_shader_desc.
vkd3d-shader/ir: Flatten SWITCH/CASE/DEFAULT/ENDSWITCH control flow instructions.
vkd3d-shader/ir: Flatten LOOP/BREAK/CONTINUE/ENDLOOP control flow instructions.
vkd3d-shader/ir: Flatten IF/ELSE/ENDIF control flow instructions.
vkd3d-shader/spirv: Handle RETP in spirv_compiler_handle_instruction().
vkd3d-shader/spirv: Handle DISCARD and TEXKILL in spirv_compiler_handle_instruction().
vkd3d-shader/spirv: Emit descriptor offset loads in the function entry block.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/450