summaryrefslogtreecommitdiffstats
path: root/chromium/third_party/glslang/src/Test/earlyReturnDiscard.frag
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/glslang/src/Test/earlyReturnDiscard.frag')
-rw-r--r--chromium/third_party/glslang/src/Test/earlyReturnDiscard.frag102
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;
+}