summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/bgfx/3rdparty/spirv-cross/reference/shaders-hlsl/frag/fp16.invalid.desktop.frag
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/bgfx/3rdparty/spirv-cross/reference/shaders-hlsl/frag/fp16.invalid.desktop.frag')
-rw-r--r--3rdparty/bgfx/3rdparty/spirv-cross/reference/shaders-hlsl/frag/fp16.invalid.desktop.frag179
1 files changed, 179 insertions, 0 deletions
diff --git a/3rdparty/bgfx/3rdparty/spirv-cross/reference/shaders-hlsl/frag/fp16.invalid.desktop.frag b/3rdparty/bgfx/3rdparty/spirv-cross/reference/shaders-hlsl/frag/fp16.invalid.desktop.frag
new file mode 100644
index 00000000000..e10d6724e00
--- /dev/null
+++ b/3rdparty/bgfx/3rdparty/spirv-cross/reference/shaders-hlsl/frag/fp16.invalid.desktop.frag
@@ -0,0 +1,179 @@
+static min16float4 v4;
+static min16float3 v3;
+static min16float v1;
+static min16float2 v2;
+static float o1;
+static float2 o2;
+static float3 o3;
+static float4 o4;
+
+struct SPIRV_Cross_Input
+{
+ min16float v1 : TEXCOORD0;
+ min16float2 v2 : TEXCOORD1;
+ min16float3 v3 : TEXCOORD2;
+ min16float4 v4 : TEXCOORD3;
+};
+
+struct SPIRV_Cross_Output
+{
+ float o1 : SV_Target0;
+ float2 o2 : SV_Target1;
+ float3 o3 : SV_Target2;
+ float4 o4 : SV_Target3;
+};
+
+float mod(float x, float y)
+{
+ return x - y * floor(x / y);
+}
+
+float2 mod(float2 x, float2 y)
+{
+ return x - y * floor(x / y);
+}
+
+float3 mod(float3 x, float3 y)
+{
+ return x - y * floor(x / y);
+}
+
+float4 mod(float4 x, float4 y)
+{
+ return x - y * floor(x / y);
+}
+
+uint SPIRV_Cross_packFloat2x16(min16float2 value)
+{
+ uint2 Packed = f32tof16(value);
+ return Packed.x | (Packed.y << 16);
+}
+
+min16float2 SPIRV_Cross_unpackFloat2x16(uint value)
+{
+ return min16float2(f16tof32(uint2(value & 0xffff, value >> 16)));
+}
+
+void test_constants()
+{
+ min16float a = min16float(1.0);
+ min16float b = min16float(1.5);
+ min16float c = min16float(-1.5);
+ min16float d = min16float(0.0 / 0.0);
+ min16float e = min16float(1.0 / 0.0);
+ min16float f = min16float(-1.0 / 0.0);
+ min16float g = min16float(1014.0);
+ min16float h = min16float(9.5367431640625e-07);
+}
+
+min16float test_result()
+{
+ return min16float(1.0);
+}
+
+void test_conversions()
+{
+ min16float one = test_result();
+ int a = int(one);
+ uint b = uint(one);
+ bool c = one != min16float(0.0);
+ float d = float(one);
+ double e = double(one);
+ min16float a2 = min16float(a);
+ min16float b2 = min16float(b);
+ min16float c2 = min16float(c);
+ min16float d2 = min16float(d);
+ min16float e2 = min16float(e);
+}
+
+void test_builtins()
+{
+ min16float4 res = radians(v4);
+ res = degrees(v4);
+ res = sin(v4);
+ res = cos(v4);
+ res = tan(v4);
+ res = asin(v4);
+ res = atan2(v4, v3.xyzz);
+ res = atan(v4);
+ res = sinh(v4);
+ res = cosh(v4);
+ res = tanh(v4);
+ res = pow(v4, v4);
+ res = exp(v4);
+ res = log(v4);
+ res = exp2(v4);
+ res = log2(v4);
+ res = sqrt(v4);
+ res = rsqrt(v4);
+ res = abs(v4);
+ res = sign(v4);
+ res = floor(v4);
+ res = trunc(v4);
+ res = round(v4);
+ res = ceil(v4);
+ res = frac(v4);
+ res = mod(v4, v4);
+ min16float4 tmp;
+ min16float4 _144 = modf(v4, tmp);
+ res = _144;
+ res = min(v4, v4);
+ res = max(v4, v4);
+ res = clamp(v4, v4, v4);
+ res = lerp(v4, v4, v4);
+ bool4 _164 = bool4(v4.x < v4.x, v4.y < v4.y, v4.z < v4.z, v4.w < v4.w);
+ res = min16float4(_164.x ? v4.x : v4.x, _164.y ? v4.y : v4.y, _164.z ? v4.z : v4.z, _164.w ? v4.w : v4.w);
+ res = step(v4, v4);
+ res = smoothstep(v4, v4, v4);
+ bool4 btmp = isnan(v4);
+ btmp = isinf(v4);
+ res = mad(v4, v4, v4);
+ uint pack0 = SPIRV_Cross_packFloat2x16(v4.xy);
+ uint pack1 = SPIRV_Cross_packFloat2x16(v4.zw);
+ res = min16float4(SPIRV_Cross_unpackFloat2x16(pack0), SPIRV_Cross_unpackFloat2x16(pack1));
+ min16float t0 = length(v4);
+ t0 = distance(v4, v4);
+ t0 = dot(v4, v4);
+ min16float3 res3 = cross(v3, v3);
+ res = normalize(v4);
+ res = faceforward(v4, v4, v4);
+ res = reflect(v4, v4);
+ res = refract(v4, v4, v1);
+ btmp = bool4(v4.x < v4.x, v4.y < v4.y, v4.z < v4.z, v4.w < v4.w);
+ btmp = bool4(v4.x <= v4.x, v4.y <= v4.y, v4.z <= v4.z, v4.w <= v4.w);
+ btmp = bool4(v4.x > v4.x, v4.y > v4.y, v4.z > v4.z, v4.w > v4.w);
+ btmp = bool4(v4.x >= v4.x, v4.y >= v4.y, v4.z >= v4.z, v4.w >= v4.w);
+ btmp = bool4(v4.x == v4.x, v4.y == v4.y, v4.z == v4.z, v4.w == v4.w);
+ btmp = bool4(v4.x != v4.x, v4.y != v4.y, v4.z != v4.z, v4.w != v4.w);
+ res = ddx(v4);
+ res = ddy(v4);
+ res = ddx_fine(v4);
+ res = ddy_fine(v4);
+ res = ddx_coarse(v4);
+ res = ddy_coarse(v4);
+ res = fwidth(v4);
+ res = fwidth(v4);
+ res = fwidth(v4);
+}
+
+void frag_main()
+{
+ test_constants();
+ test_conversions();
+ test_builtins();
+}
+
+SPIRV_Cross_Output main(SPIRV_Cross_Input stage_input)
+{
+ v4 = stage_input.v4;
+ v3 = stage_input.v3;
+ v1 = stage_input.v1;
+ v2 = stage_input.v2;
+ frag_main();
+ SPIRV_Cross_Output stage_output;
+ stage_output.o1 = o1;
+ stage_output.o2 = o2;
+ stage_output.o3 = o3;
+ stage_output.o4 = o4;
+ return stage_output;
+}