SPIRV-Cross/shaders-hlsl/frag/switch-unreachable-break.frag
Hans-Kristian Arntzen d08ce828f4 Promote Unreachable cases into break to avoid fallthrough.
HLSL is very fussy about fallthrough in switch blocks, so promote
Unreachable blocks to breaks if they are inside a switch construct.

Some false positives are possible in weird multi-break scenarios, but
this is benign.
2022-05-18 18:36:32 +02:00

33 lines
368 B
GLSL

#version 450
layout(location = 0) out vec4 FragColor;
layout(location = 0) in vec4 vInput;
layout(set = 0, binding = 0) uniform UBO
{
int cond;
int cond2;
};
void main()
{
bool frog = false;
switch (cond)
{
case 1:
if (cond2 < 50)
break;
else
discard;
break;
default:
frog = true;
break;
}
FragColor = frog ? vec4(10.0) : vec4(20.0);
}