This is certainly not the case, but asking matters as I can learn something too.
Are you feeding 4 values to the float4?
If I'm not mistaken, there's something like,
float4 var = 1.0, then
var equals to
(1.0,1.0,1.0,1.0). What I mean, are you feeding the color array with the correct amount of data?
This would obviously happen only if you feed values [0.0...1.0] directly to the shader. Feeding colors should give you a correctly populated
Sorry if I made anyone dumber.