skia2/tests/sksl/shared/Enum.metal
John Stiles 2de947e780 Fix broken Enum unit test.
This test fell into disrepair when constant propagation was removed; it
assumed that @if and @switch would work on all unchanging variables, not
just those with the `const` modifier.

Change-Id: Ie9c1816f9c0852fdea998e4e156047e4cca9ad5b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/395000
Commit-Queue: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-04-09 19:07:27 +00:00

66 lines
1.6 KiB
Metal

#include <metal_stdlib>
#include <simd/simd.h>
using namespace metal;
struct Inputs {
};
struct Outputs {
float4 sk_FragColor [[color(0)]];
};
fragment Outputs fragmentMain(Inputs _in [[stage_in]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) {
Outputs _out;
(void)_out;
{
_out.sk_FragColor = float4(1.0);
}
{
_out.sk_FragColor = float4(2.0);
}
{
_out.sk_FragColor = float4(6.0);
}
_out.sk_FragColor = float4(7.0);
_out.sk_FragColor = float4(-8.0);
_out.sk_FragColor = float4(-9.0);
_out.sk_FragColor = float4(10.0);
{
_out.sk_FragColor = float4(11.0);
}
{
_out.sk_FragColor = float4(13.0);
}
{
_out.sk_FragColor = float4(15.0);
}
{
_out.sk_FragColor = float4(16.0);
}
{
_out.sk_FragColor = float4(18.0);
}
_out.sk_FragColor = float4(19.0);
_out.sk_FragColor = float4(20.0);
{
_out.sk_FragColor = float4(21.0);
}
int f = 1;
if (f == 1) {
_out.sk_FragColor = float4(1.0);
}
if (f != 1) {
_out.sk_FragColor = float4(4.0);
}
_out.sk_FragColor = f == 0 ? float4(7.0) : float4(-7.0);
_out.sk_FragColor = f != 0 ? float4(8.0) : float4(-8.0);
_out.sk_FragColor = f == 1 ? float4(9.0) : float4(-9.0);
_out.sk_FragColor = f != 1 ? float4(10.0) : float4(-10.0);
switch (f) {
case 0:
_out.sk_FragColor = float4(11.0);
break;
case 1:
_out.sk_FragColor = float4(12.0);
break;
}
return _out;
}