]> git.tdb.fi Git - libs/gl.git/blobdiff - tests/glsl/binary_operators.glsl
Avoid generating invalid interfaces in geometry shader
[libs/gl.git] / tests / glsl / binary_operators.glsl
index 06c367f24f71a745b0abab27e62bf0cc909f97f5..a99b4446f9e2a22efcd9a8615e10f88a9d955b97 100644 (file)
@@ -4,6 +4,7 @@ void main()
        int i = 0;
        i = i-3;
        float f = 0;
+       f = i+1;
        f = (f+i)*(f/i);
        bool b = i<f || i>=f;
        b = b && i==f;
@@ -13,6 +14,10 @@ void main()
        j = j<<(i%5);
        b = b || i!=j;
 
+       ivec2 iv;
+       i = i<<j;
+       iv = iv>>i;
+
        mat4x2 m1;
        mat2x4 m2;
        mat4 m3 = m2*m1*5;
@@ -20,7 +25,7 @@ void main()
        vec4 v2;
        v2 = m3*v1;
        vec2 v3;
-       v3 = v1*m2+v2.xy;
+       v3 = v1*m2+v2.xy+iv;
 
        if(b)
                ++v3;
@@ -31,7 +36,8 @@ void main()
 {
        int i = 0;
        i = i-3;
-       float f = float(0);
+       float f;
+       f = float(i+1);
        f = (f+float(i))*(f/float(i));
        bool b = float(i)<f||float(i)>=f;
        b = b&&float(i)==f;
@@ -39,11 +45,14 @@ void main()
        i = i|1;
        j = j<<(i%5);
        b = b||i!=j;
+       ivec2 iv;
+       i = i<<j;
+       iv = iv>>i;
        mat4x2 m1;
        mat2x4 m2;
        vec4 v1 = vec4(1.0);
        vec2 v3;
-       v3 = v1*m2+(m2*m1*float(5)*v1).xy;
+       v3 = v1*m2+(m2*m1*float(5)*v1).xy+vec2(iv);
        if(b)
                ++v3;
 }