SPIRV-Cross/shaders-msl/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

31 lines
338 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()
{
FragColor = vec4(10.0);
switch (cond)
{
case 1:
if (cond2 < 50)
break;
else
discard;
break;
default:
FragColor = vec4(20.0);
break;
}
}