diff options
Diffstat (limited to 'chromium/third_party/glslang/src/Test/earlyReturnDiscard.frag')
-rw-r--r-- | chromium/third_party/glslang/src/Test/earlyReturnDiscard.frag | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/chromium/third_party/glslang/src/Test/earlyReturnDiscard.frag b/chromium/third_party/glslang/src/Test/earlyReturnDiscard.frag new file mode 100644 index 00000000000..ecd5594659b --- /dev/null +++ b/chromium/third_party/glslang/src/Test/earlyReturnDiscard.frag @@ -0,0 +1,102 @@ +#version 110 + +uniform float d; +uniform vec4 bigColor, smallColor; +uniform vec4 otherColor; + +varying float c; + +uniform float threshhold; +uniform float threshhold2; +uniform float threshhold3; + +uniform float minimum; + +varying vec4 BaseColor; + +uniform bool b; + +void main() +{ + vec4 color = BaseColor; + vec4 color2; + + color2 = otherColor; + + if (c > d) + color += bigColor; + else + color += smallColor; + + if (color.z < minimum) + return; + + color.z++; + + if (color.z > threshhold) + discard; + + color++; + + // Two path, different rest + if (color.w > threshhold2) { + if (color.z > threshhold2) + return; + else if (b) + color.z++; + else { + if (color.x < minimum) { + discard; + } else { + color++; + } + } + } else { + if (b) + discard; + else + return; + } + + + // // Two path, shared rest + // if (color.w > threshhold2) { + // if (color.z > threshhold2) + // return; + // else if (b) + // color++; + // else { + // if (color.x < minimum) { + // discard; + // } else { + // color++; + // } + // } + // } else { + // if (b) + // discard; + // else + // return; + // } + + + // // One path + // if (color.w > threshhold2) { + // if (color.z > threshhold2) + // return; + // else { + // if (color.x < minimum) { + // discard; + // } else { + // color++; + // } + // } + // } else { + // if (b) + // discard; + // else + // return; + // } + + gl_FragColor = color * color2; +} |