31be74a853
Makes codegen from typical D3D emulation SPIR-V more readable. Also makes cross compilation with NotEqual more sensible. It's very rare to actually need the strict NaN-checks in practice. Also, glslang now emits UnordNotEqual by default it seems, so give up trying to assume OrdNotEqual. Harmonize for UnordNotEqual as the sane default.
70 lines
2.1 KiB
GLSL
70 lines
2.1 KiB
GLSL
#include <metal_stdlib>
|
|
#include <simd/simd.h>
|
|
|
|
using namespace metal;
|
|
|
|
struct main0_in
|
|
{
|
|
float v1 [[user(locn0)]];
|
|
float2 v2 [[user(locn1)]];
|
|
float3 v3 [[user(locn2)]];
|
|
float4 v4 [[user(locn3)]];
|
|
half h1 [[user(locn4)]];
|
|
half2 h2 [[user(locn5)]];
|
|
half3 h3 [[user(locn6)]];
|
|
half4 h4 [[user(locn7)]];
|
|
};
|
|
|
|
fragment void main0(main0_in in [[stage_in]])
|
|
{
|
|
float res = fast::min(in.v1, in.v1);
|
|
res = fast::max(in.v1, in.v1);
|
|
res = fast::clamp(in.v1, in.v1, in.v1);
|
|
res = fast::min(in.v1, in.v1);
|
|
res = fast::max(in.v1, in.v1);
|
|
res = fast::clamp(in.v1, in.v1, in.v1);
|
|
float2 res2 = fast::min(in.v2, in.v2);
|
|
res2 = fast::max(in.v2, in.v2);
|
|
res2 = fast::clamp(in.v2, in.v2, in.v2);
|
|
res2 = fast::min(in.v2, in.v2);
|
|
res2 = fast::max(in.v2, in.v2);
|
|
res2 = fast::clamp(in.v2, in.v2, in.v2);
|
|
float3 res3 = fast::min(in.v3, in.v3);
|
|
res3 = fast::max(in.v3, in.v3);
|
|
res3 = fast::clamp(in.v3, in.v3, in.v3);
|
|
res3 = fast::min(in.v3, in.v3);
|
|
res3 = fast::max(in.v3, in.v3);
|
|
res3 = fast::clamp(in.v3, in.v3, in.v3);
|
|
float4 res4 = fast::min(in.v4, in.v4);
|
|
res4 = fast::max(in.v4, in.v4);
|
|
res4 = fast::clamp(in.v4, in.v4, in.v4);
|
|
res4 = fast::min(in.v4, in.v4);
|
|
res4 = fast::max(in.v4, in.v4);
|
|
res4 = fast::clamp(in.v4, in.v4, in.v4);
|
|
half hres = min(in.h1, in.h1);
|
|
hres = max(in.h1, in.h1);
|
|
hres = clamp(in.h1, in.h1, in.h1);
|
|
hres = min(in.h1, in.h1);
|
|
hres = max(in.h1, in.h1);
|
|
hres = clamp(in.h1, in.h1, in.h1);
|
|
half2 hres2 = min(in.h2, in.h2);
|
|
hres2 = max(in.h2, in.h2);
|
|
hres2 = clamp(in.h2, in.h2, in.h2);
|
|
hres2 = min(in.h2, in.h2);
|
|
hres2 = max(in.h2, in.h2);
|
|
hres2 = clamp(in.h2, in.h2, in.h2);
|
|
half3 hres3 = min(in.h3, in.h3);
|
|
hres3 = max(in.h3, in.h3);
|
|
hres3 = clamp(in.h3, in.h3, in.h3);
|
|
hres3 = min(in.h3, in.h3);
|
|
hres3 = max(in.h3, in.h3);
|
|
hres3 = clamp(in.h3, in.h3, in.h3);
|
|
half4 hres4 = min(in.h4, in.h4);
|
|
hres4 = max(in.h4, in.h4);
|
|
hres4 = clamp(in.h4, in.h4, in.h4);
|
|
hres4 = min(in.h4, in.h4);
|
|
hres4 = max(in.h4, in.h4);
|
|
hres4 = clamp(in.h4, in.h4, in.h4);
|
|
}
|
|
|