aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKenneth Graunke <kenneth@whitecape.org>2010-07-26 18:45:17 -0700
committerKenneth Graunke <kenneth@whitecape.org>2010-07-28 15:51:00 -0700
commita4fd613190b074e64ad220f08e69da2c97f8f7b2 (patch)
treef0037c4de72d938c4cfc5dc8d28abceb1c8d6861
parentfbcf95983fe4ea7dd98cb8bab56a78d78239d39a (diff)
Improve GLSL constant builtin tests.
Most of these are new, but I updated many old ones to test more values, and values strictly between 0.0 and 1.0. This ensures we don't accidentally pass because a wrong result was clamped to that interval.
-rw-r--r--tests/all.tests28
-rw-r--r--tests/shaders/glsl-const-builtin-abs.shader_test6
-rw-r--r--tests/shaders/glsl-const-builtin-acos.shader_test7
-rw-r--r--tests/shaders/glsl-const-builtin-all.shader_test26
-rw-r--r--tests/shaders/glsl-const-builtin-any.shader_test26
-rw-r--r--tests/shaders/glsl-const-builtin-asin.shader_test6
-rw-r--r--tests/shaders/glsl-const-builtin-ceil.shader_test23
-rw-r--r--tests/shaders/glsl-const-builtin-cos.shader_test6
-rw-r--r--tests/shaders/glsl-const-builtin-cosh.shader_test22
-rw-r--r--tests/shaders/glsl-const-builtin-cross.shader_test26
-rw-r--r--tests/shaders/glsl-const-builtin-distance.shader_test24
-rw-r--r--tests/shaders/glsl-const-builtin-dot.shader_test9
-rw-r--r--tests/shaders/glsl-const-builtin-equal.shader_test22
-rw-r--r--tests/shaders/glsl-const-builtin-exp.shader_test21
-rw-r--r--tests/shaders/glsl-const-builtin-exp2.shader_test6
-rw-r--r--tests/shaders/glsl-const-builtin-faceforward.shader_test29
-rw-r--r--tests/shaders/glsl-const-builtin-floor.shader_test23
-rw-r--r--tests/shaders/glsl-const-builtin-fract.shader_test8
-rw-r--r--tests/shaders/glsl-const-builtin-greaterThan.shader_test13
-rw-r--r--tests/shaders/glsl-const-builtin-greaterThanEqual.shader_test22
-rw-r--r--tests/shaders/glsl-const-builtin-inversesqrt.shader_test12
-rw-r--r--tests/shaders/glsl-const-builtin-length.shader_test (renamed from tests/shaders/glsl-const-builtin-floor-ceil.shader_test)7
-rw-r--r--tests/shaders/glsl-const-builtin-lessThan.shader_test22
-rw-r--r--tests/shaders/glsl-const-builtin-lessThanEqual.shader_test22
-rw-r--r--tests/shaders/glsl-const-builtin-log.shader_test24
-rw-r--r--tests/shaders/glsl-const-builtin-log2.shader_test9
-rw-r--r--tests/shaders/glsl-const-builtin-matrixCompMult.shader_test26
-rw-r--r--tests/shaders/glsl-const-builtin-max.shader_test4
-rw-r--r--tests/shaders/glsl-const-builtin-min.shader_test4
-rw-r--r--tests/shaders/glsl-const-builtin-mix.shader_test24
-rw-r--r--tests/shaders/glsl-const-builtin-mod.shader_test8
-rw-r--r--tests/shaders/glsl-const-builtin-normalize.shader_test27
-rw-r--r--tests/shaders/glsl-const-builtin-not.shader_test (renamed from tests/shaders/glsl-const-builtin-exp-log.shader_test)6
-rw-r--r--tests/shaders/glsl-const-builtin-notEqual.shader_test22
-rw-r--r--tests/shaders/glsl-const-builtin-outerProduct.shader_test32
-rw-r--r--tests/shaders/glsl-const-builtin-pow.shader_test8
-rw-r--r--tests/shaders/glsl-const-builtin-reflect.shader_test23
-rw-r--r--tests/shaders/glsl-const-builtin-refract.shader_test24
-rw-r--r--tests/shaders/glsl-const-builtin-sin.shader_test6
-rw-r--r--tests/shaders/glsl-const-builtin-smoothstep.shader_test22
-rw-r--r--tests/shaders/glsl-const-builtin-sqrt.shader_test6
-rw-r--r--tests/shaders/glsl-const-builtin-step.shader_test23
-rw-r--r--tests/shaders/glsl-const-builtin-tan.shader_test9
-rw-r--r--tests/shaders/glsl-const-builtin-transpose.shader_test26
44 files changed, 688 insertions, 61 deletions
diff --git a/tests/all.tests b/tests/all.tests
index 312f9908..2a68a406 100644
--- a/tests/all.tests
+++ b/tests/all.tests
@@ -309,29 +309,53 @@ add_shader_generic(shaders, 'glsl-pp-elif-no-expression-1')
add_shader_generic(shaders, 'glsl-implicit-conversion-01')
add_shader_generic(shaders, 'glsl-const-builtin-abs')
add_shader_generic(shaders, 'glsl-const-builtin-acos')
+add_shader_generic(shaders, 'glsl-const-builtin-all')
+add_shader_generic(shaders, 'glsl-const-builtin-any')
add_shader_generic(shaders, 'glsl-const-builtin-asin')
add_shader_generic(shaders, 'glsl-const-builtin-atan')
+add_shader_generic(shaders, 'glsl-const-builtin-ceil')
add_shader_generic(shaders, 'glsl-const-builtin-clamp')
+add_shader_generic(shaders, 'glsl-const-builtin-cosh')
add_shader_generic(shaders, 'glsl-const-builtin-cos')
+add_shader_generic(shaders, 'glsl-const-builtin-cross')
add_shader_generic(shaders, 'glsl-const-builtin-degrees')
add_shader_generic(shaders, 'glsl-const-builtin-derivatives')
+add_shader_generic(shaders, 'glsl-const-builtin-distance')
add_shader_generic(shaders, 'glsl-const-builtin-dot')
+add_shader_generic(shaders, 'glsl-const-builtin-equal')
+add_shader_generic(shaders, 'glsl-const-builtin-exp')
add_shader_generic(shaders, 'glsl-const-builtin-exp2')
-add_shader_generic(shaders, 'glsl-const-builtin-exp-log')
-add_shader_generic(shaders, 'glsl-const-builtin-floor-ceil')
+add_shader_generic(shaders, 'glsl-const-builtin-faceforward')
+add_shader_generic(shaders, 'glsl-const-builtin-floor')
add_shader_generic(shaders, 'glsl-const-builtin-fract')
+add_shader_generic(shaders, 'glsl-const-builtin-greaterThanEqual')
add_shader_generic(shaders, 'glsl-const-builtin-greaterThan')
add_shader_generic(shaders, 'glsl-const-builtin-inversesqrt')
+add_shader_generic(shaders, 'glsl-const-builtin-length')
+add_shader_generic(shaders, 'glsl-const-builtin-lessThanEqual')
+add_shader_generic(shaders, 'glsl-const-builtin-lessThan')
+add_shader_generic(shaders, 'glsl-const-builtin-log')
add_shader_generic(shaders, 'glsl-const-builtin-log2')
+add_shader_generic(shaders, 'glsl-const-builtin-matrixCompMult')
add_shader_generic(shaders, 'glsl-const-builtin-max')
add_shader_generic(shaders, 'glsl-const-builtin-min')
+add_shader_generic(shaders, 'glsl-const-builtin-mix')
add_shader_generic(shaders, 'glsl-const-builtin-mod')
+add_shader_generic(shaders, 'glsl-const-builtin-normalize')
+add_shader_generic(shaders, 'glsl-const-builtin-not')
+add_shader_generic(shaders, 'glsl-const-builtin-notEqual')
+add_shader_generic(shaders, 'glsl-const-builtin-outerProduct')
add_shader_generic(shaders, 'glsl-const-builtin-pow')
add_shader_generic(shaders, 'glsl-const-builtin-radians')
+add_shader_generic(shaders, 'glsl-const-builtin-reflect')
+add_shader_generic(shaders, 'glsl-const-builtin-refract')
add_shader_generic(shaders, 'glsl-const-builtin-sign')
add_shader_generic(shaders, 'glsl-const-builtin-sin')
+add_shader_generic(shaders, 'glsl-const-builtin-smoothstep')
+add_shader_generic(shaders, 'glsl-const-builtin-step')
add_shader_generic(shaders, 'glsl-const-builtin-sqrt')
add_shader_generic(shaders, 'glsl-const-builtin-tan')
+add_shader_generic(shaders, 'glsl-const-builtin-transpose')
add_plain_test(shaders, 'glsl-sin')
add_plain_test(shaders, 'glsl-cos')
add_plain_test(shaders, 'glsl-vs-if-bool')
diff --git a/tests/shaders/glsl-const-builtin-abs.shader_test b/tests/shaders/glsl-const-builtin-abs.shader_test
index 1c5af276..88fb2bbd 100644
--- a/tests/shaders/glsl-const-builtin-abs.shader_test
+++ b/tests/shaders/glsl-const-builtin-abs.shader_test
@@ -10,7 +10,9 @@ glsl-mvp.vert
void main()
{
const float x = abs(-0.5);
- gl_FragColor = vec4(0.0, x + x, 0.0, 1.0);
+ const float y = abs(0.0);
+ const float z = abs(0.5);
+ gl_FragColor = vec4(x, y, z, 1.0);
}
[test]
@@ -18,4 +20,4 @@ clear color 0.0 0.0 0.0 0.0
clear
ortho
draw rect 10 10 10 10
-probe rgb 15 15 0.0 1.0 0.0
+probe rgb 15 15 0.5 0.0 0.5
diff --git a/tests/shaders/glsl-const-builtin-acos.shader_test b/tests/shaders/glsl-const-builtin-acos.shader_test
index 0ceb1cb7..0e29fa14 100644
--- a/tests/shaders/glsl-const-builtin-acos.shader_test
+++ b/tests/shaders/glsl-const-builtin-acos.shader_test
@@ -9,8 +9,9 @@ glsl-mvp.vert
#version 120
void main() {
const float zero = acos(1.0);
- const float zero2 = acos(1.0);
- gl_FragColor = vec4(zero, 1.0, zero2, 1.0);
+ const float half_pi = acos(0.0);
+ const float pi = acos(-1.0);
+ gl_FragColor = vec4(zero, half_pi - 1.0, pi - 3.0, 1.0);
}
[test]
@@ -18,4 +19,4 @@ clear color 0.0 0.0 0.0 0.0
clear
ortho
draw rect 10 10 10 10
-probe rgb 15 15 0.0 1.0 0.0
+probe rgb 15 15 0.0 0.5707963267949 0.14159265358979
diff --git a/tests/shaders/glsl-const-builtin-all.shader_test b/tests/shaders/glsl-const-builtin-all.shader_test
new file mode 100644
index 00000000..79a61aa3
--- /dev/null
+++ b/tests/shaders/glsl-const-builtin-all.shader_test
@@ -0,0 +1,26 @@
+[require]
+GL >= 2.0
+GLSL >= 1.20
+
+[vertex shader file]
+glsl-mvp.vert
+
+[fragment shader]
+#version 120
+void main()
+{
+ const bvec2 v_true = bvec2(true, true);
+ const bvec2 v_some = bvec2(true, false);
+ const bvec2 v_none = bvec2(false, false);
+ const bool true1 = all(v_true);
+ const bool false1 = all(v_some);
+ const bool false2 = all(v_none);
+ gl_FragColor = vec4(float(false1), float(true1), float(false2), 1.0);
+}
+
+[test]
+clear color 0.0 0.0 0.0 0.0
+clear
+ortho
+draw rect 10 10 10 10
+probe rgb 15 15 0.0 1.0 0.0
diff --git a/tests/shaders/glsl-const-builtin-any.shader_test b/tests/shaders/glsl-const-builtin-any.shader_test
new file mode 100644
index 00000000..cb372266
--- /dev/null
+++ b/tests/shaders/glsl-const-builtin-any.shader_test
@@ -0,0 +1,26 @@
+[require]
+GL >= 2.0
+GLSL >= 1.20
+
+[vertex shader file]
+glsl-mvp.vert
+
+[fragment shader]
+#version 120
+void main()
+{
+ const bvec2 v_true = bvec2(true, true);
+ const bvec2 v_some = bvec2(true, false);
+ const bvec2 v_none = bvec2(false, false);
+ const bool true1 = any(v_true);
+ const bool true2 = any(v_some);
+ const bool false1 = any(v_none);
+ gl_FragColor = vec4(float(true1), float(true2), float(false1), 1.0);
+}
+
+[test]
+clear color 0.0 0.0 0.0 0.0
+clear
+ortho
+draw rect 10 10 10 10
+probe rgb 15 15 1.0 1.0 0.0
diff --git a/tests/shaders/glsl-const-builtin-asin.shader_test b/tests/shaders/glsl-const-builtin-asin.shader_test
index db5a535e..dd1ee4c0 100644
--- a/tests/shaders/glsl-const-builtin-asin.shader_test
+++ b/tests/shaders/glsl-const-builtin-asin.shader_test
@@ -9,7 +9,9 @@ glsl-mvp.vert
#version 120
void main() {
const float zero = asin(0.0);
- gl_FragColor = vec4(zero, 1.0, zero, 1.0);
+ const float pi_over_three = asin(0.866025403784439);
+ const float half_pi = asin(1.0);
+ gl_FragColor = vec4(zero, pi_over_three - 1.0, half_pi - 1.0, 1.0);
}
[test]
@@ -17,4 +19,4 @@ clear color 0.0 0.0 0.0 0.0
clear
ortho
draw rect 10 10 10 10
-probe rgb 15 15 0.0 1.0 0.0
+probe rgb 15 15 0.0 0.0471975511966 0.5707963267949
diff --git a/tests/shaders/glsl-const-builtin-ceil.shader_test b/tests/shaders/glsl-const-builtin-ceil.shader_test
new file mode 100644
index 00000000..9bfb3b53
--- /dev/null
+++ b/tests/shaders/glsl-const-builtin-ceil.shader_test
@@ -0,0 +1,23 @@
+[require]
+GL >= 2.0
+GLSL >= 1.20
+
+[vertex shader file]
+glsl-mvp.vert
+
+[fragment shader]
+#version 120
+void main()
+{
+ const float x = ceil(-0.5);
+ const float y = ceil(0.0);
+ const float z = ceil(0.5);
+ gl_FragColor = vec4(x, y, z, 1.0);
+}
+
+[test]
+clear color 0.0 0.0 0.0 0.0
+clear
+ortho
+draw rect 10 10 10 10
+probe rgb 15 15 0.0 0.0 1.0
diff --git a/tests/shaders/glsl-const-builtin-cos.shader_test b/tests/shaders/glsl-const-builtin-cos.shader_test
index 8a53d00a..fe68baae 100644
--- a/tests/shaders/glsl-const-builtin-cos.shader_test
+++ b/tests/shaders/glsl-const-builtin-cos.shader_test
@@ -8,8 +8,10 @@ glsl-mvp.vert
[fragment shader]
#version 120
void main() {
+ const float sqrt_two_over_two = cos(0.785398163397448);
const float one = cos(0.0);
- gl_FragColor = vec4(0, one, 0, one);
+ const float one_half = cos(-1.0471975511966);
+ gl_FragColor = vec4(sqrt_two_over_two, one, one_half, 1.0);
}
[test]
@@ -17,4 +19,4 @@ clear color 0.0 0.0 0.0 0.0
clear
ortho
draw rect 10 10 10 10
-probe rgb 15 15 0.0 1.0 0.0
+probe rgb 15 15 0.707106781186548 1.0 0.5
diff --git a/tests/shaders/glsl-const-builtin-cosh.shader_test b/tests/shaders/glsl-const-builtin-cosh.shader_test
new file mode 100644
index 00000000..6f6d3776
--- /dev/null
+++ b/tests/shaders/glsl-const-builtin-cosh.shader_test
@@ -0,0 +1,22 @@
+[require]
+GL >= 2.0
+GLSL >= 1.30
+
+[vertex shader file]
+glsl-mvp.vert
+
+[fragment shader]
+#version 130
+void main() {
+ const float f_154 = cosh(1.0);
+ const float f_376 = cosh(2.0);
+ const float f_1006 = cosh(-3.0);
+ gl_FragColor = vec4(f_154 - 1.0, f_376 - 3.0, f_1006 - 10.0, 1.0);
+}
+
+[test]
+clear color 0.0 0.0 0.0 0.0
+clear
+ortho
+draw rect 10 10 10 10
+probe rgb 15 15 0.54308063481524 0.76219569108363 0.0676619957778 1.0
diff --git a/tests/shaders/glsl-const-builtin-cross.shader_test b/tests/shaders/glsl-const-builtin-cross.shader_test
new file mode 100644
index 00000000..70b99754
--- /dev/null
+++ b/tests/shaders/glsl-const-builtin-cross.shader_test
@@ -0,0 +1,26 @@
+[require]
+GL >= 2.0
+GLSL >= 1.20
+
+[vertex shader file]
+glsl-mvp.vert
+
+[fragment shader]
+#version 120
+void main()
+{
+ const vec3 v1 = vec3(3.0, -3.0, 1.0);
+ const vec3 v2 = vec3(4.0, 9.0, 2.0);
+ const vec3 cp = cross(v1, v2);
+ if (cp == vec3(-15.0, -2.0, 39.0))
+ gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0);
+ else
+ gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);
+}
+
+[test]
+clear color 0.0 0.0 0.0 0.0
+clear
+ortho
+draw rect 10 10 10 10
+probe rgb 15 15 0 1 0
diff --git a/tests/shaders/glsl-const-builtin-distance.shader_test b/tests/shaders/glsl-const-builtin-distance.shader_test
new file mode 100644
index 00000000..6cb5ba9e
--- /dev/null
+++ b/tests/shaders/glsl-const-builtin-distance.shader_test
@@ -0,0 +1,24 @@
+[require]
+GL >= 2.0
+GLSL >= 1.20
+
+[vertex shader file]
+glsl-mvp.vert
+
+[fragment shader]
+#version 120
+void main()
+{
+ const vec2 p0 = vec2(1.2, 3.4);
+ const vec2 p1 = vec2(4.9, -5.6);
+ const float dist1 = distance(p0, p1);
+ const float dist2 = distance(p1, p0);
+ gl_FragColor = vec4(dist1 - 9.0, dist2 - 9.0, 0.0, 1.0);
+}
+
+[test]
+clear color 0.0 0.0 0.0 0.0
+clear
+ortho
+draw rect 10 10 10 10
+probe rgb 15 15 0.73087868591526 0.73087868591526
diff --git a/tests/shaders/glsl-const-builtin-dot.shader_test b/tests/shaders/glsl-const-builtin-dot.shader_test
index c18e0984..4672bbfc 100644
--- a/tests/shaders/glsl-const-builtin-dot.shader_test
+++ b/tests/shaders/glsl-const-builtin-dot.shader_test
@@ -9,10 +9,13 @@ glsl-mvp.vert
#version 120
void main()
{
- const vec2 c1 = vec2(0.5, 0.25);
- const vec2 c2 = vec2(1.0, 2.0);
+ const vec2 c1 = vec2(2.0, 4.0);
+ const vec2 c2 = vec2(1.0, 5.0);
const float c = dot(c1, c2);
- gl_FragColor = vec4(0.0, c, 0.0, 0.0);
+ if (c == 22.0)
+ gl_FragColor = vec4(0.0, 1.0, 0.0, 0.0);
+ else
+ gl_FragColor = vec4(1.0, 0.0, 0.0, 0.0);
}
[test]
diff --git a/tests/shaders/glsl-const-builtin-equal.shader_test b/tests/shaders/glsl-const-builtin-equal.shader_test
new file mode 100644
index 00000000..d6e0e6a0
--- /dev/null
+++ b/tests/shaders/glsl-const-builtin-equal.shader_test
@@ -0,0 +1,22 @@
+[require]
+GL >= 2.0
+GLSL >= 1.20
+
+[vertex shader file]
+glsl-mvp.vert
+
+[fragment shader]
+#version 120
+void main() {
+ const vec3 small = vec3(1.0, 2.0, 3.0);
+ const vec3 large = vec3(0.5, 2.0, 6.0);
+ const bvec3 result = equal(large, small);
+ gl_FragColor = vec4(result, 1.0);
+}
+
+[test]
+clear color 0.0 0.0 0.0 0.0
+clear
+ortho
+draw rect 10 10 10 10
+probe rgb 15 15 0.0 1.0 0.0
diff --git a/tests/shaders/glsl-const-builtin-exp.shader_test b/tests/shaders/glsl-const-builtin-exp.shader_test
new file mode 100644
index 00000000..92d3795f
--- /dev/null
+++ b/tests/shaders/glsl-const-builtin-exp.shader_test
@@ -0,0 +1,21 @@
+[require]
+GL >= 2.0
+GLSL >= 1.20
+
+[vertex shader file]
+glsl-mvp.vert
+
+[fragment shader]
+#version 120
+void main()
+{
+ const vec3 v = exp(vec3(0.0, -2.0, 4.0));
+ gl_FragColor = vec4(v.x, v.y, v.z - 54.0, 1.0);
+}
+
+[test]
+clear color 0.0 0.0 0.0 0.0
+clear
+ortho
+draw rect 10 10 10 10
+probe rgb 15 15 1.0 0.1353352832366127 0.598150033144236
diff --git a/tests/shaders/glsl-const-builtin-exp2.shader_test b/tests/shaders/glsl-const-builtin-exp2.shader_test
index 68b59cdd..4709181b 100644
--- a/tests/shaders/glsl-const-builtin-exp2.shader_test
+++ b/tests/shaders/glsl-const-builtin-exp2.shader_test
@@ -9,8 +9,8 @@ glsl-mvp.vert
#version 120
void main()
{
- const float one = exp2(16.0) - 65535;
- gl_FragColor = vec4(0.0, one, 0.0, one);
+ const float one_half = exp2(16.0) - 65535.5;
+ gl_FragColor = vec4(0.0, one_half, 0.0, 1.0);
}
[test]
@@ -18,4 +18,4 @@ clear color 0.0 0.0 0.0 0.0
clear
ortho
draw rect 10 10 10 10
-probe rgb 15 15 0.0 1.0 0.0
+probe rgb 15 15 0.0 0.5 0.0
diff --git a/tests/shaders/glsl-const-builtin-faceforward.shader_test b/tests/shaders/glsl-const-builtin-faceforward.shader_test
new file mode 100644
index 00000000..4565dfc0
--- /dev/null
+++ b/tests/shaders/glsl-const-builtin-faceforward.shader_test
@@ -0,0 +1,29 @@
+[require]
+GL >= 2.0
+GLSL >= 1.20
+
+[vertex shader file]
+glsl-mvp.vert
+
+[fragment shader]
+#version 120
+void main()
+{
+ const vec2 v1 = vec2(1.0, 2.0);
+ const vec2 v2 = vec2(4.0, -5.0);
+
+ const vec2 v3 = faceforward(v1, v1, v2);
+ const vec2 v4 = faceforward(v1, v1, v1);
+
+ if (v3 == v1 && v4 == -v1)
+ gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0);
+ else
+ gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);
+}
+
+[test]
+clear color 0.0 0.0 0.0 0.0
+clear
+ortho
+draw rect 10 10 10 10
+probe rgb 15 15 0 1 0
diff --git a/tests/shaders/glsl-const-builtin-floor.shader_test b/tests/shaders/glsl-const-builtin-floor.shader_test
new file mode 100644
index 00000000..ff0ba01d
--- /dev/null
+++ b/tests/shaders/glsl-const-builtin-floor.shader_test
@@ -0,0 +1,23 @@
+[require]
+GL >= 2.0
+GLSL >= 1.20
+
+[vertex shader file]
+glsl-mvp.vert
+
+[fragment shader]
+#version 120
+void main()
+{
+ const float x = floor(-0.5);
+ const float y = floor(0.0);
+ const float z = floor(0.5);
+ gl_FragColor = vec4(x + 1.7, y, z, 1.0);
+}
+
+[test]
+clear color 0.0 0.0 0.0 0.0
+clear
+ortho
+draw rect 10 10 10 10
+probe rgb 15 15 0.7 0.0 0.0
diff --git a/tests/shaders/glsl-const-builtin-fract.shader_test b/tests/shaders/glsl-const-builtin-fract.shader_test
index ac6d9ba4..9685fc8d 100644
--- a/tests/shaders/glsl-const-builtin-fract.shader_test
+++ b/tests/shaders/glsl-const-builtin-fract.shader_test
@@ -9,8 +9,10 @@ glsl-mvp.vert
#version 120
void main()
{
- const float one = fract(5.1) * 10.0;
- gl_FragColor = vec4(0.0, one, 0.0, one);
+ const float x = fract(1.7);
+ const float y = fract(6.0);
+ const float z = fract(-1.7); /* should be 0.3 */
+ gl_FragColor = vec4(x, y, z, 1.0);
}
[test]
@@ -18,4 +20,4 @@ clear color 0.0 0.0 0.0 0.0
clear
ortho
draw rect 10 10 10 10
-probe rgb 15 15 0.0 1.0 0.0
+probe rgb 15 15 0.7 0.0 0.3
diff --git a/tests/shaders/glsl-const-builtin-greaterThan.shader_test b/tests/shaders/glsl-const-builtin-greaterThan.shader_test
index cecf7baa..9e42f976 100644
--- a/tests/shaders/glsl-const-builtin-greaterThan.shader_test
+++ b/tests/shaders/glsl-const-builtin-greaterThan.shader_test
@@ -8,13 +8,10 @@ glsl-mvp.vert
[fragment shader]
#version 120
void main() {
- const vec2 small = vec2(1.0, 2.0);
- const vec2 large = vec2(2.0, 3.0);
- const bvec2 gt = greaterThan(large, small);
- if (gt.x && gt.y)
- gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0);
- else
- gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);
+ const vec3 small = vec3(1.0, 2.0, 3.0);
+ const vec3 large = vec3(0.5, 2.0, 6.0);
+ const bvec3 result = greaterThan(large, small);
+ gl_FragColor = vec4(result, 1.0);
}
[test]
@@ -22,4 +19,4 @@ clear color 0.0 0.0 0.0 0.0
clear
ortho
draw rect 10 10 10 10
-probe rgb 15 15 0.0 1.0 0.0
+probe rgb 15 15 0.0 0.0 1.0
diff --git a/tests/shaders/glsl-const-builtin-greaterThanEqual.shader_test b/tests/shaders/glsl-const-builtin-greaterThanEqual.shader_test
new file mode 100644
index 00000000..5a5c2408
--- /dev/null
+++ b/tests/shaders/glsl-const-builtin-greaterThanEqual.shader_test
@@ -0,0 +1,22 @@
+[require]
+GL >= 2.0
+GLSL >= 1.20
+
+[vertex shader file]
+glsl-mvp.vert
+
+[fragment shader]
+#version 120
+void main() {
+ const vec3 small = vec3(1.0, 2.0, 3.0);
+ const vec3 large = vec3(0.5, 2.0, 6.0);
+ const bvec3 result = greaterThanEqual(large, small);
+ gl_FragColor = vec4(result, 1.0);
+}
+
+[test]
+clear color 0.0 0.0 0.0 0.0
+clear
+ortho
+draw rect 10 10 10 10
+probe rgb 15 15 0.0 1.0 1.0
diff --git a/tests/shaders/glsl-const-builtin-inversesqrt.shader_test b/tests/shaders/glsl-const-builtin-inversesqrt.shader_test
index f8b72382..fc35e806 100644
--- a/tests/shaders/glsl-const-builtin-inversesqrt.shader_test
+++ b/tests/shaders/glsl-const-builtin-inversesqrt.shader_test
@@ -9,9 +9,13 @@ glsl-mvp.vert
#version 120
void main()
{
- const vec4 q = inversesqrt(vec4(16.0));
- const float one = q.x + q.y + q.z + q.w;
- gl_FragColor = vec4(0.0, one, 0.0, one);
+ const vec3 v = inversesqrt(vec3(16.0));
+
+ /* The following values are undefined but the compiler should not crash. */
+ const float undef1 = inversesqrt(0.0);
+ const float undef2 = inversesqrt(-1.0);
+
+ gl_FragColor = vec4(v, undef1 + undef2);
}
[test]
@@ -19,4 +23,4 @@ clear color 0.0 0.0 0.0 0.0
clear
ortho
draw rect 10 10 10 10
-probe rgb 15 15 0.0 1.0 0.0
+probe rgb 15 15 0.25 0.25 0.25
diff --git a/tests/shaders/glsl-const-builtin-floor-ceil.shader_test b/tests/shaders/glsl-const-builtin-length.shader_test
index 668b8e82..06731edb 100644
--- a/tests/shaders/glsl-const-builtin-floor-ceil.shader_test
+++ b/tests/shaders/glsl-const-builtin-length.shader_test
@@ -9,8 +9,9 @@ glsl-mvp.vert
#version 120
void main()
{
- const float one = ceil(1.4) - floor(1.4);
- gl_FragColor = vec4(0.0, one, 0.0, one);
+ const vec2 v = vec2(12.0, -5.0);
+ const float length = length(v);
+ gl_FragColor = vec4(0.0, length - 12.5, 0.0, 1.0);
}
[test]
@@ -18,4 +19,4 @@ clear color 0.0 0.0 0.0 0.0
clear
ortho
draw rect 10 10 10 10
-probe rgb 15 15 0.0 1.0 0.0
+probe rgb 15 15 0 0.5 0
diff --git a/tests/shaders/glsl-const-builtin-lessThan.shader_test b/tests/shaders/glsl-const-builtin-lessThan.shader_test
new file mode 100644
index 00000000..4baf2b83
--- /dev/null
+++ b/tests/shaders/glsl-const-builtin-lessThan.shader_test
@@ -0,0 +1,22 @@
+[require]
+GL >= 2.0
+GLSL >= 1.20
+
+[vertex shader file]
+glsl-mvp.vert
+
+[fragment shader]
+#version 120
+void main() {
+ const vec3 small = vec3(1.0, 2.0, 3.0);
+ const vec3 large = vec3(0.5, 2.0, 6.0);
+ const bvec3 result = lessThan(large, small);
+ gl_FragColor = vec4(result, 1.0);
+}
+
+[test]
+clear color 0.0 0.0 0.0 0.0
+clear
+ortho
+draw rect 10 10 10 10
+probe rgb 15 15 1.0 0.0 0.0
diff --git a/tests/shaders/glsl-const-builtin-lessThanEqual.shader_test b/tests/shaders/glsl-const-builtin-lessThanEqual.shader_test
new file mode 100644
index 00000000..66a82b62
--- /dev/null
+++ b/tests/shaders/glsl-const-builtin-lessThanEqual.shader_test
@@ -0,0 +1,22 @@
+[require]
+GL >= 2.0
+GLSL >= 1.20
+
+[vertex shader file]
+glsl-mvp.vert
+
+[fragment shader]
+#version 120
+void main() {
+ const vec3 small = vec3(1.0, 2.0, 3.0);
+ const vec3 large = vec3(0.5, 2.0, 6.0);
+ const bvec3 result = lessThanEqual(large, small);
+ gl_FragColor = vec4(result, 1.0);
+}
+
+[test]
+clear color 0.0 0.0 0.0 0.0
+clear
+ortho
+draw rect 10 10 10 10
+probe rgb 15 15 1.0 1.0 0.0
diff --git a/tests/shaders/glsl-const-builtin-log.shader_test b/tests/shaders/glsl-const-builtin-log.shader_test
new file mode 100644
index 00000000..8ae45f02
--- /dev/null
+++ b/tests/shaders/glsl-const-builtin-log.shader_test
@@ -0,0 +1,24 @@
+[require]
+GL >= 2.0
+GLSL >= 1.20
+
+[vertex shader file]
+glsl-mvp.vert
+
+[fragment shader]
+#version 120
+void main()
+{
+ const vec3 v = log(vec3(1.0, 0.1353352832366127, 54.598150033144236));
+ if (v == vec3(0.0, -2.0, 4.0))
+ gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0);
+ else
+ gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0);
+}
+
+[test]
+clear color 0.0 0.0 0.0 0.0
+clear
+ortho
+draw rect 10 10 10 10
+probe rgb 15 15 0 1 0
diff --git a/tests/shaders/glsl-const-builtin-log2.shader_test b/tests/shaders/glsl-const-builtin-log2.shader_test
index c46c3a55..8d8048ea 100644
--- a/tests/shaders/glsl-const-builtin-log2.shader_test
+++ b/tests/shaders/glsl-const-builtin-log2.shader_test
@@ -9,8 +9,11 @@ glsl-mvp.vert
#version 120
void main()
{
- const float one = log2(65536.0) - 15;
- gl_FragColor = vec4(0.0, one, 0.0, one);
+ const vec3 v = log2(vec3(1.0, 8.0, 65536.0));
+ if (v == vec3(0.0, 3.0, 16.0))
+ gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0);
+ else
+ gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0);
}
[test]
@@ -18,4 +21,4 @@ clear color 0.0 0.0 0.0 0.0
clear
ortho
draw rect 10 10 10 10
-probe rgb 15 15 0.0 1.0 0.0
+probe rgb 15 15 0 1 0
diff --git a/tests/shaders/glsl-const-builtin-matrixCompMult.shader_test b/tests/shaders/glsl-const-builtin-matrixCompMult.shader_test
new file mode 100644
index 00000000..2029770f
--- /dev/null
+++ b/tests/shaders/glsl-const-builtin-matrixCompMult.shader_test
@@ -0,0 +1,26 @@
+[require]
+GL >= 2.0
+GLSL >= 1.20
+
+[vertex shader file]
+glsl-mvp.vert
+
+[fragment shader]
+#version 120
+void main()
+{
+ const mat2 m1 = mat2(1.0, 2.0, 4.0, 8.0);
+ const mat2 m2 = mat2(1.0, 0.5, 0.25, 0.125);
+ const mat2 m3 = matrixCompMult(m1, m2);
+ if (m3 == mat2(1.0, 1.0, 1.0, 1.0))
+ gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0);
+ else
+ gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0);
+}
+
+[test]
+clear color 0.0 0.0 0.0 0.0
+clear
+ortho
+draw rect 10 10 10 10
+probe rgb 15 15 0 1 0
diff --git a/tests/shaders/glsl-const-builtin-max.shader_test b/tests/shaders/glsl-const-builtin-max.shader_test
index af0a2dc0..62d32fc6 100644
--- a/tests/shaders/glsl-const-builtin-max.shader_test
+++ b/tests/shaders/glsl-const-builtin-max.shader_test
@@ -11,7 +11,7 @@ void main()
{
const float x = max(0.25, -5.0);
const vec2 v = max(vec2(0.5, 0.2), 0.25);
- gl_FragColor = vec4(0.0, x + v.x + v.y, 0.0, 1.0);
+ gl_FragColor = vec4(x, v, 1.0);
}
[test]
@@ -19,4 +19,4 @@ clear color 0.0 0.0 0.0 0.0
clear
ortho
draw rect 10 10 10 10
-probe rgb 15 15 0.0 1.0 0.0
+probe rgb 15 15 0.25 0.5 0.25
diff --git a/tests/shaders/glsl-const-builtin-min.shader_test b/tests/shaders/glsl-const-builtin-min.shader_test
index 754934cb..6d2fc1c0 100644
--- a/tests/shaders/glsl-const-builtin-min.shader_test
+++ b/tests/shaders/glsl-const-builtin-min.shader_test
@@ -11,7 +11,7 @@ void main()
{
const float x = min(0.25, 0.5);
const vec2 v = min(vec2(0.25, 0.7), 0.5);
- gl_FragColor = vec4(0.0, x + v.x + v.y, 0.0, 1.0);
+ gl_FragColor = vec4(x, v, 1.0);
}
[test]
@@ -19,4 +19,4 @@ clear color 0.0 0.0 0.0 0.0
clear
ortho
draw rect 10 10 10 10
-probe rgb 15 15 0.0 1.0 0.0
+probe rgb 15 15 0.25 0.25 0.5
diff --git a/tests/shaders/glsl-const-builtin-mix.shader_test b/tests/shaders/glsl-const-builtin-mix.shader_test
new file mode 100644
index 00000000..70466f83
--- /dev/null
+++ b/tests/shaders/glsl-const-builtin-mix.shader_test
@@ -0,0 +1,24 @@
+[require]
+GL >= 2.0
+GLSL >= 1.20
+
+[vertex shader file]
+glsl-mvp.vert
+
+[fragment shader]
+#version 120
+void main()
+{
+ const vec4 v1 = vec4(1.0, 0.0, 2.0, 0.0);
+ const vec4 v2 = vec4(0.0, 1.0, 0.0, 2.0);
+ const vec4 v3 = vec4(0.5, 0.5, 0.75, 0.25);
+ const vec4 vm = mix(v1, v2, v3);
+ gl_FragColor = vm;
+}
+
+[test]
+clear color 0.0 0.0 0.0 0.0
+clear
+ortho
+draw rect 10 10 10 10
+probe rgb 15 15 0.5 0.5 0.5
diff --git a/tests/shaders/glsl-const-builtin-mod.shader_test b/tests/shaders/glsl-const-builtin-mod.shader_test
index c5e31691..d49a034a 100644
--- a/tests/shaders/glsl-const-builtin-mod.shader_test
+++ b/tests/shaders/glsl-const-builtin-mod.shader_test
@@ -9,9 +9,9 @@ glsl-mvp.vert
#version 120
void main()
{
- const vec2 v1 = mod(vec2(5.0, 4.0), 3.0);
- const vec2 v2 = mod(vec2(5.0, 6.0), vec2(3.0, 5.0));
- gl_FragColor = vec4(0.0, v1.x - v1.y, 0.0, v2.x - v2.y);
+ const vec2 v1 = mod(vec2(-3.0, 43.5), vec2(0.9, -4.0)); /* (-0.5, 0.6) */
+ const vec2 v2 = mod(vec2(0.2, 6.0), 1.3);
+ gl_FragColor = vec4(v1.x + v1.y, v2, 1.0);
}
[test]
@@ -19,4 +19,4 @@ clear color 0.0 0.0 0.0 0.0
clear
ortho
draw rect 10 10 10 10
-probe rgba 15 15 0.0 1.0 0.0 1.0
+probe rgb 15 15 0.1 0.2 0.8
diff --git a/tests/shaders/glsl-const-builtin-normalize.shader_test b/tests/shaders/glsl-const-builtin-normalize.shader_test
new file mode 100644
index 00000000..6c1d1dff
--- /dev/null
+++ b/tests/shaders/glsl-const-builtin-normalize.shader_test
@@ -0,0 +1,27 @@
+[require]
+GL >= 2.0
+GLSL >= 1.20
+
+[vertex shader file]
+glsl-mvp.vert
+
+[fragment shader]
+#version 120
+void main()
+{
+ const vec2 v = normalize(vec2(1.0, 1.0));
+
+ /* Attempt to normalize the zero vector. The specification is unclear
+ * about the results, but ATI returns the zero vector. At any rate, the
+ * compiler should not crash.
+ */
+ const vec2 z = normalize(vec2(0.0, 0.0));
+ gl_FragColor = vec4(v.x, z.x, z.y, 1.0);
+}
+
+[test]
+clear color 0.0 0.0 0.0 0.0
+clear
+ortho
+draw rect 10 10 10 10
+probe rgb 15 15 0.7071067811865475 0.0 0.0
diff --git a/tests/shaders/glsl-const-builtin-exp-log.shader_test b/tests/shaders/glsl-const-builtin-not.shader_test
index 5718ceca..14a50f29 100644
--- a/tests/shaders/glsl-const-builtin-exp-log.shader_test
+++ b/tests/shaders/glsl-const-builtin-not.shader_test
@@ -9,8 +9,8 @@ glsl-mvp.vert
#version 120
void main()
{
- const float one = log(exp(2.0)) - 1.0;
- gl_FragColor = vec4(0.0, one, 0.0, one);
+ const bvec4 v = not(bvec4(true, false, true, false));
+ gl_FragColor = vec4(v);
}
[test]
@@ -18,4 +18,4 @@ clear color 0.0 0.0 0.0 0.0
clear
ortho
draw rect 10 10 10 10
-probe rgb 15 15 0.0 1.0 0.0
+probe rgba 15 15 0.0 1.0 0.0 1.0
diff --git a/tests/shaders/glsl-const-builtin-notEqual.shader_test b/tests/shaders/glsl-const-builtin-notEqual.shader_test
new file mode 100644
index 00000000..44538f49
--- /dev/null
+++ b/tests/shaders/glsl-const-builtin-notEqual.shader_test
@@ -0,0 +1,22 @@
+[require]
+GL >= 2.0
+GLSL >= 1.20
+
+[vertex shader file]
+glsl-mvp.vert
+
+[fragment shader]
+#version 120
+void main() {
+ const vec3 small = vec3(1.0, 2.0, 3.0);
+ const vec3 large = vec3(0.5, 2.0, 6.0);
+ const bvec3 result = notEqual(large, small);
+ gl_FragColor = vec4(result, 1.0);
+}
+
+[test]
+clear color 0.0 0.0 0.0 0.0
+clear
+ortho
+draw rect 10 10 10 10
+probe rgb 15 15 1.0 0.0 1.0
diff --git a/tests/shaders/glsl-const-builtin-outerProduct.shader_test b/tests/shaders/glsl-const-builtin-outerProduct.shader_test
new file mode 100644
index 00000000..7163d99b
--- /dev/null
+++ b/tests/shaders/glsl-const-builtin-outerProduct.shader_test
@@ -0,0 +1,32 @@
+[require]
+GL >= 2.0
+GLSL >= 1.20
+
+[vertex shader file]
+glsl-mvp.vert
+
+[fragment shader]
+#version 120
+void main()
+{
+ const vec3 u = vec3(2.0, 3.0, 4.0);
+ const vec2 v = vec2(5.0, 6.0);
+ /* should be:
+ * 10 12
+ * 15 18
+ * 20 24
+ */
+ const mat2x3 m = outerProduct(u, v);
+
+ if (m[0] == vec3(10.0, 15.0, 20.0) && m[1] == vec3(12.0, 18.0, 24.0))
+ gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0);
+ else
+ gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0);
+}
+
+[test]
+clear color 0.0 0.0 0.0 0.0
+clear
+ortho
+draw rect 10 10 10 10
+probe rgb 15 15 0 1 0
diff --git a/tests/shaders/glsl-const-builtin-pow.shader_test b/tests/shaders/glsl-const-builtin-pow.shader_test
index da5ec66c..83c9dbba 100644
--- a/tests/shaders/glsl-const-builtin-pow.shader_test
+++ b/tests/shaders/glsl-const-builtin-pow.shader_test
@@ -9,9 +9,9 @@ glsl-mvp.vert
#version 120
void main()
{
- const vec2 v = pow(vec2(2,9), vec2(2,0.5));
- const float one = v.x - v.y;
- gl_FragColor = vec4(0.0, one, 0.0, one);
+ const vec2 v = pow(vec2(3,65), vec2(2,0.5));
+ const float splat = v.x - v.y;
+ gl_FragColor = vec4(0.0, splat, 0.0, 1.0);
}
[test]
@@ -19,4 +19,4 @@ clear color 0.0 0.0 0.0 0.0
clear
ortho
draw rect 10 10 10 10
-probe rgb 15 15 0.0 1.0 0.0
+probe rgb 15 15 0.0 0.937742251701451 0.0
diff --git a/tests/shaders/glsl-const-builtin-reflect.shader_test b/tests/shaders/glsl-const-builtin-reflect.shader_test
new file mode 100644
index 00000000..b1ddc843
--- /dev/null
+++ b/tests/shaders/glsl-const-builtin-reflect.shader_test
@@ -0,0 +1,23 @@
+[require]
+GL >= 2.0
+GLSL >= 1.20
+
+[vertex shader file]
+glsl-mvp.vert
+
+[fragment shader]
+#version 120
+void main()
+{
+ const vec3 v1 = vec3(-1.0, 0.0, 0.0);
+ const vec3 v2 = vec3(0.70710678, 0.70710678, 0.0);
+ const vec3 r = reflect(v1, v2);
+ gl_FragColor = vec4(r, 1.0);
+}
+
+[test]
+clear color 0.0 0.0 0.0 0.0
+clear
+ortho
+draw rect 10 10 10 10
+probe rgba 15 15 0 1 0 1
diff --git a/tests/shaders/glsl-const-builtin-refract.shader_test b/tests/shaders/glsl-const-builtin-refract.shader_test
new file mode 100644
index 00000000..7cbd4747
--- /dev/null
+++ b/tests/shaders/glsl-const-builtin-refract.shader_test
@@ -0,0 +1,24 @@
+[require]
+GL >= 2.0
+GLSL >= 1.20
+
+[vertex shader file]
+glsl-mvp.vert
+
+[fragment shader]
+#version 120
+void main()
+{
+ const float zero = refract(0.0, 0.0, 2.0);
+ const vec2 v1 = vec2(-1.0, 0.0);
+ const vec2 v2 = vec2(0.70710678, 0.70710678);
+ const vec2 r = refract(v1, v2, 0.5);
+ gl_FragColor = vec4(r.x + 1.0, r.y + 1.0, zero, 1.0);
+}
+
+[test]
+clear color 0.0 0.0 0.0 0.0
+clear
+ortho
+draw rect 10 10 10 10
+probe rgb 15 15 0.0885621726633092 0.588562172663309 0
diff --git a/tests/shaders/glsl-const-builtin-sin.shader_test b/tests/shaders/glsl-const-builtin-sin.shader_test
index 68475528..26482adb 100644
--- a/tests/shaders/glsl-const-builtin-sin.shader_test
+++ b/tests/shaders/glsl-const-builtin-sin.shader_test
@@ -8,8 +8,10 @@ glsl-mvp.vert
[fragment shader]
#version 120
void main() {
+ const float sqrt_two_over_two = sin(0.785398163397448);
const float one = sin(1.5707963267949);
- gl_FragColor = vec4(0, one, 0, one);
+ const float one_half = sin(2.61799387799149);
+ gl_FragColor = vec4(sqrt_two_over_two, one, one_half, 1.0);
}
[test]
@@ -17,4 +19,4 @@ clear color 0.0 0.0 0.0 0.0
clear
ortho
draw rect 10 10 10 10
-probe rgb 15 15 0.0 1.0 0.0
+probe rgb 15 15 0.707106781186548 1.0 0.5
diff --git a/tests/shaders/glsl-const-builtin-smoothstep.shader_test b/tests/shaders/glsl-const-builtin-smoothstep.shader_test
new file mode 100644
index 00000000..79e76435
--- /dev/null
+++ b/tests/shaders/glsl-const-builtin-smoothstep.shader_test
@@ -0,0 +1,22 @@
+[require]
+GL >= 2.0
+GLSL >= 1.20
+
+[vertex shader file]
+glsl-mvp.vert
+
+[fragment shader]
+#version 120
+void main()
+{
+ const vec3 v = vec3(7.0, 22.0, 20.0);
+ const vec3 r = smoothstep(14.0, 22.0, v);
+ gl_FragColor = vec4(r, 1.0);
+}
+
+[test]
+clear color 0.0 0.0 0.0 0.0
+clear
+ortho
+draw rect 10 10 10 10
+probe rgb 15 15 0.0 1.0 0.84375
diff --git a/tests/shaders/glsl-const-builtin-sqrt.shader_test b/tests/shaders/glsl-const-builtin-sqrt.shader_test
index bd555520..69d1ea73 100644
--- a/tests/shaders/glsl-const-builtin-sqrt.shader_test
+++ b/tests/shaders/glsl-const-builtin-sqrt.shader_test
@@ -9,8 +9,8 @@ glsl-mvp.vert
#version 120
void main()
{
- const float one = sqrt(16.0) - 3;
- gl_FragColor = vec4(0.0, one, 0.0, one);
+ const float one_half = sqrt(16.0) - 3.5;
+ gl_FragColor = vec4(0.0, one_half, 0.0, 1.0);
}
[test]
@@ -18,4 +18,4 @@ clear color 0.0 0.0 0.0 0.0
clear
ortho
draw rect 10 10 10 10
-probe rgb 15 15 0.0 1.0 0.0
+probe rgb 15 15 0.0 0.5 0.0
diff --git a/tests/shaders/glsl-const-builtin-step.shader_test b/tests/shaders/glsl-const-builtin-step.shader_test
new file mode 100644
index 00000000..42d087ca
--- /dev/null
+++ b/tests/shaders/glsl-const-builtin-step.shader_test
@@ -0,0 +1,23 @@
+[require]
+GL >= 2.0
+GLSL >= 1.20
+
+[vertex shader file]
+glsl-mvp.vert
+
+[fragment shader]
+#version 120
+void main()
+{
+ const vec4 v1 = vec4(1.0, 1.0, 0.0, -1.0);
+ const vec4 v2 = vec4(1.0, 0.0, 1.0, 0.0);
+ const vec4 r = step(v1, v2);
+ gl_FragColor = r;
+}
+
+[test]
+clear color 0.0 0.0 0.0 0.0
+clear
+ortho
+draw rect 10 10 10 10
+probe rgb 15 15 1.0 0.0 1.0
diff --git a/tests/shaders/glsl-const-builtin-tan.shader_test b/tests/shaders/glsl-const-builtin-tan.shader_test
index af7f4bdf..b2064a17 100644
--- a/tests/shaders/glsl-const-builtin-tan.shader_test
+++ b/tests/shaders/glsl-const-builtin-tan.shader_test
@@ -8,8 +8,11 @@ glsl-mvp.vert
[fragment shader]
#version 120
void main() {
- const float one = tan(0.785398163397448);
- gl_FragColor = vec4(0, one, 0, one);
+ const float one = tan(0.785398163397448);
+ const float sqrt3 = tan(1.0471975511965976);
+ const float zero = tan(0.0);
+
+ gl_FragColor = vec4(zero, one, sqrt3 - 1.0, 1.0);
}
[test]
@@ -17,4 +20,4 @@ clear color 0.0 0.0 0.0 0.0
clear
ortho
draw rect 10 10 10 10
-probe rgb 15 15 0.0 1.0 0.0
+probe rgb 15 15 0.0 1.0 0.7320508075688772
diff --git a/tests/shaders/glsl-const-builtin-transpose.shader_test b/tests/shaders/glsl-const-builtin-transpose.shader_test
new file mode 100644
index 00000000..a07708c6
--- /dev/null
+++ b/tests/shaders/glsl-const-builtin-transpose.shader_test
@@ -0,0 +1,26 @@
+[require]
+GL >= 2.0
+GLSL >= 1.20
+
+[vertex shader file]
+glsl-mvp.vert
+
+[fragment shader]
+#version 120
+void main()
+{
+ const mat2 m = mat2(1.0, 2.0, 4.0, 8.0);
+ const mat2 mt = transpose(m);
+ const mat2 mtt = transpose(mt);
+ if (m == mat2(1.0, 4.0, 2.0, 8.0) && mt == mtt)
+ gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0);
+ else
+ gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0);
+}
+
+[test]
+clear color 0.0 0.0 0.0 0.0
+clear
+ortho
+draw rect 10 10 10 10
+probe rgb 15 15 0 1 0