Previously float2 was converted to float3 by implicitly converting to a float pointer first, which was then passed to the float3 constructor. This leads to uninitialized memory in the z component of the new float3. Ideally this should be solved in float2/float3 itself, but my first fix for that resulted in a compile error: rB6ac0a3d83c8e5a39bd5356aa0d68e3166bd91e82 This is an alternative fix that can be used for now. Will have to look into the conversion in more detail again.