Francisco Casas (@fcasas) commented about tests/array-index-expr.shader_test:
+[test] +uniform 0 float4 1.0 2.0 3.0 4.0 +uniform 4 float4 5.0 6.0 7.0 8.0 +uniform 8 float4 0 0 0 0 +todo draw quad +todo probe all rgba (1.0, 2.0, 3.0, 4.0) +uniform 8 float4 1 0 0 0 +todo draw quad +todo probe all rgba (5.0, 6.0, 7.0, 8.0) +uniform 8 float4 0 1 0 0 +todo draw quad +todo probe all rgba (5.0, 6.0, 7.0, 8.0) +uniform 8 float4 1 1 0 0 +todo draw quad +todo probe all rgba (0.0, 0.0, 0.0, 0.0)
This is testing a position outside the array, which as far as I know is undefined behavior.
On the WARP driver it retrieves (1.0, 1.0, 0.0, 0.0), instead of (0.0, 0.0, 0.0, 0.0) as it is actually accessing the `i` variable because of the overflow.
I suggest enlarging the array `f` to at least 3 elements.