mirror of
https://github.com/KhronosGroup/glslang
synced 2024-11-09 20:10:06 +00:00
51 lines
983 B
GLSL
51 lines
983 B
GLSL
#version 400
|
|
|
|
flat in ivec4 uiv4;
|
|
in vec4 uv4;
|
|
bool ub;
|
|
bool uba;
|
|
bvec4 ub41, ub42;
|
|
in float uf;
|
|
flat in 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;
|
|
}
|