return float4(4.0f, 0.0f, 2.0f, 6.0f);
you are returning the pixel color, and the valid input range for a color is [0.0 - 1.0], if the value was out of this range, it will be truncated to this range
for values < 0.0, it was treated as 0
for values > 1.0, it was treated as 1
That's why you didn't see any change when you update the values bigger than 1.0