diff options
Diffstat (limited to 'chromium/third_party/glslang/src/Test/spv.earlyReturnDiscard.frag')
-rw-r--r-- | chromium/third_party/glslang/src/Test/spv.earlyReturnDiscard.frag | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/chromium/third_party/glslang/src/Test/spv.earlyReturnDiscard.frag b/chromium/third_party/glslang/src/Test/spv.earlyReturnDiscard.frag new file mode 100644 index 00000000000..43e4666c542 --- /dev/null +++ b/chromium/third_party/glslang/src/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; +} |