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?