summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/bgfx/3rdparty/glslang/Test/spv.earlyReturnDiscard.frag
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/bgfx/3rdparty/glslang/Test/spv.earlyReturnDiscard.frag')
-rw-r--r--3rdparty/bgfx/3rdparty/glslang/Test/spv.earlyReturnDiscard.frag102
1 files changed, 102 insertions, 0 deletions
diff --git a/3rdparty/bgfx/3rdparty/glslang/Test/spv.earlyReturnDiscard.frag b/3rdparty/bgfx/3rdparty/glslang/Test/spv.earlyReturnDiscard.frag
new file mode 100644
index 00000000000..bba4b76d26f
--- /dev/null
+++ b/3rdparty/bgfx/3rdparty/glslang/Test/spv.earlyReturnDiscard.frag
@@ -0,0 +1,102 @@
+#version 140
+
+in float d;
+in vec4 bigColor, smallColor;
+in vec4 otherColor;
+
+in float c;
+
+in float threshhold;
+in float threshhold2;
+in float threshhold3;
+
+in float minimum;
+
+in vec4 BaseColor;
+
+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;
+}