51 lines
1017 B
GLSL
Executable File
51 lines
1017 B
GLSL
Executable File
#version 400
|
|
|
|
uniform ivec4 uiv4;
|
|
uniform vec4 uv4;
|
|
uniform bool ub;
|
|
uniform bool uba;
|
|
uniform bvec4 ub41, ub42;
|
|
uniform float uf;
|
|
uniform int ui;
|
|
|
|
out float of1;
|
|
out vec4 of4;
|
|
|
|
bool foo() { ++of1; return of1 > 10.0; }
|
|
|
|
void main()
|
|
{
|
|
of1 = 0.0;
|
|
of4 = vec4(0.0);
|
|
|
|
if (ub || ui > 2) // not worth short circuiting
|
|
++of1;
|
|
|
|
if (ub && !uba) // not worth short circuiting
|
|
++of1;
|
|
|
|
if (ub || foo()) // must short circuit
|
|
++of1;
|
|
|
|
if (ub && foo()) // must short circuit
|
|
++of1;
|
|
|
|
if (foo() || ub) // not worth short circuiting
|
|
++of1;
|
|
|
|
if (foo() && ub) // not worth short circuiting
|
|
++of1;
|
|
|
|
if (ub || ++of1 > 1.0) // must short circuit
|
|
++of4;
|
|
|
|
if (++of1 > 1.0 || ub) // not worth short circuiting
|
|
++of4;
|
|
|
|
if (ub || sin(uf) * 4.0 > of1) // worth short circuiting
|
|
++of1;
|
|
|
|
if (ub && sin(uf) * 4.0 > of1) // worth short circuiting
|
|
++of1;
|
|
}
|