1cbuffer _UniformBuffer : register(b0, space0) 2{ 3 float2 _7_a : packoffset(c0); 4 float4 _7_b : packoffset(c1); 5}; 6 7 8static float4 sk_FragColor; 9 10struct SPIRV_Cross_Output 11{ 12 float4 sk_FragColor : SV_Target0; 13}; 14 15uint spvPackHalf2x16(float2 value) 16{ 17 uint2 Packed = f32tof16(value); 18 return Packed.x | (Packed.y << 16); 19} 20 21float2 spvUnpackHalf2x16(uint value) 22{ 23 return f16tof32(uint2(value & 0xffff, value >> 16)); 24} 25 26uint spvPackUnorm4x8(float4 value) 27{ 28 uint4 Packed = uint4(round(saturate(value) * 255.0)); 29 return Packed.x | (Packed.y << 8) | (Packed.z << 16) | (Packed.w << 24); 30} 31 32float4 spvUnpackUnorm4x8(uint value) 33{ 34 uint4 Packed = uint4(value & 0xff, (value >> 8) & 0xff, (value >> 16) & 0xff, value >> 24); 35 return float4(Packed) / 255.0; 36} 37 38uint spvPackSnorm4x8(float4 value) 39{ 40 int4 Packed = int4(round(clamp(value, -1.0, 1.0) * 127.0)) & 0xff; 41 return uint(Packed.x | (Packed.y << 8) | (Packed.z << 16) | (Packed.w << 24)); 42} 43 44float4 spvUnpackSnorm4x8(uint value) 45{ 46 int SignedValue = int(value); 47 int4 Packed = int4(SignedValue << 24, SignedValue << 16, SignedValue << 8, SignedValue) >> 24; 48 return clamp(float4(Packed) / 127.0, -1.0, 1.0); 49} 50 51uint spvPackUnorm2x16(float2 value) 52{ 53 uint2 Packed = uint2(round(saturate(value) * 65535.0)); 54 return Packed.x | (Packed.y << 16); 55} 56 57float2 spvUnpackUnorm2x16(uint value) 58{ 59 uint2 Packed = uint2(value & 0xffff, value >> 16); 60 return float2(Packed) / 65535.0; 61} 62 63uint spvPackSnorm2x16(float2 value) 64{ 65 int2 Packed = int2(round(clamp(value, -1.0, 1.0) * 32767.0)) & 0xffff; 66 return uint(Packed.x | (Packed.y << 16)); 67} 68 69float2 spvUnpackSnorm2x16(uint value) 70{ 71 int SignedValue = int(value); 72 int2 Packed = int2(SignedValue << 16, SignedValue) >> 16; 73 return clamp(float2(Packed) / 32767.0, -1.0, 1.0); 74} 75 76void frag_main() 77{ 78 sk_FragColor.x = float(spvPackHalf2x16(_7_a)); 79 sk_FragColor.x = float(spvPackUnorm2x16(_7_a)); 80 sk_FragColor.x = float(spvPackSnorm2x16(_7_a)); 81 sk_FragColor.x = float(spvPackUnorm4x8(_7_b)); 82 sk_FragColor.x = float(spvPackSnorm4x8(_7_b)); 83} 84 85SPIRV_Cross_Output main() 86{ 87 frag_main(); 88 SPIRV_Cross_Output stage_output; 89 stage_output.sk_FragColor = sk_FragColor; 90 return stage_output; 91} 92