Improve overflow_underflow_toinf_0 test somewhat
Add test cases that will make explicit ±0.0 and ±INF appear in the AST output to make sure those cases are handled correctly.
This commit is contained in:
parent
a187f47e2c
commit
a1138bacff
2 changed files with 38 additions and 21 deletions
|
|
@ -14,15 +14,23 @@ Shader version: 320
|
||||||
0:10 'correct1' ( temp highp float)
|
0:10 'correct1' ( temp highp float)
|
||||||
0:10 Constant:
|
0:10 Constant:
|
||||||
0:10 1.000000
|
0:10 1.000000
|
||||||
|
0:11 Sequence
|
||||||
0:11 move second child to first child ( temp highp 4-component vector of float)
|
0:11 move second child to first child ( temp highp 4-component vector of float)
|
||||||
0:11 'my_FragColor' ( out highp 4-component vector of float)
|
0:11 'foo' ( temp highp 4-component vector of float)
|
||||||
0:11 Construct vec4 ( temp highp 4-component vector of float)
|
|
||||||
0:11 Constant:
|
0:11 Constant:
|
||||||
0:11 0.000000
|
0:11 0.000000
|
||||||
0:11 'correct' ( temp highp float)
|
0:11 -0.000000
|
||||||
0:11 'correct1' ( temp highp float)
|
0:11 +1.#INF
|
||||||
0:11 Constant:
|
0:11 -1.#INF
|
||||||
0:11 1.000000
|
0:12 move second child to first child ( temp highp 4-component vector of float)
|
||||||
|
0:12 'my_FragColor' ( out highp 4-component vector of float)
|
||||||
|
0:12 Construct vec4 ( temp highp 4-component vector of float)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 0.000000
|
||||||
|
0:12 'correct' ( temp highp float)
|
||||||
|
0:12 'correct1' ( temp highp float)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 1.000000
|
||||||
0:? Linker Objects
|
0:? Linker Objects
|
||||||
0:? 'my_FragColor' ( out highp 4-component vector of float)
|
0:? 'my_FragColor' ( out highp 4-component vector of float)
|
||||||
|
|
||||||
|
|
@ -45,15 +53,23 @@ Shader version: 320
|
||||||
0:10 'correct1' ( temp highp float)
|
0:10 'correct1' ( temp highp float)
|
||||||
0:10 Constant:
|
0:10 Constant:
|
||||||
0:10 1.000000
|
0:10 1.000000
|
||||||
|
0:11 Sequence
|
||||||
0:11 move second child to first child ( temp highp 4-component vector of float)
|
0:11 move second child to first child ( temp highp 4-component vector of float)
|
||||||
0:11 'my_FragColor' ( out highp 4-component vector of float)
|
0:11 'foo' ( temp highp 4-component vector of float)
|
||||||
0:11 Construct vec4 ( temp highp 4-component vector of float)
|
|
||||||
0:11 Constant:
|
0:11 Constant:
|
||||||
0:11 0.000000
|
0:11 0.000000
|
||||||
0:11 'correct' ( temp highp float)
|
0:11 -0.000000
|
||||||
0:11 'correct1' ( temp highp float)
|
0:11 +1.#INF
|
||||||
0:11 Constant:
|
0:11 -1.#INF
|
||||||
0:11 1.000000
|
0:12 move second child to first child ( temp highp 4-component vector of float)
|
||||||
|
0:12 'my_FragColor' ( out highp 4-component vector of float)
|
||||||
|
0:12 Construct vec4 ( temp highp 4-component vector of float)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 0.000000
|
||||||
|
0:12 'correct' ( temp highp float)
|
||||||
|
0:12 'correct1' ( temp highp float)
|
||||||
|
0:12 Constant:
|
||||||
|
0:12 1.000000
|
||||||
0:? Linker Objects
|
0:? Linker Objects
|
||||||
0:? 'my_FragColor' ( out highp 4-component vector of float)
|
0:? 'my_FragColor' ( out highp 4-component vector of float)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,13 @@
|
||||||
#version 320 es
|
#version 320 es
|
||||||
precision highp float;
|
precision highp float;
|
||||||
out vec4 my_FragColor;
|
out vec4 my_FragColor;
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
// GLSL ES 3.00.6 section 4.1.4 Floats:
|
// GLSL ES 3.00.6 section 4.1.4 Floats:
|
||||||
// "A value with a magnitude too small to be represented as a mantissa and exponent is converted to zero."
|
// "A value with a magnitude too small to be represented as a mantissa and exponent is converted to zero."
|
||||||
// 1.0e-50 is small enough that it can't even be stored as subnormal.
|
// 1.0e-50 is small enough that it can't even be stored as subnormal.
|
||||||
float correct = (1.0e-50 == 0.0) ? 1.0 : 0.0;
|
float correct = (1.0e-50 == 0.0) ? 1.0 : 0.0;
|
||||||
float correct1 = isinf(1.0e40) ? 1.0 : 0.0;
|
float correct1 = isinf(1.0e40) ? 1.0 : 0.0;
|
||||||
|
vec4 foo = vec4(1.0e-50, -1.0e-50, 1.0e50, -1.0e50);
|
||||||
my_FragColor = vec4(0.0, correct, correct1, 1.0);
|
my_FragColor = vec4(0.0, correct, correct1, 1.0);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue