1*c8dee2aaSAndroid Build Coastguard Worker#include <metal_stdlib> 2*c8dee2aaSAndroid Build Coastguard Worker#include <simd/simd.h> 3*c8dee2aaSAndroid Build Coastguard Worker#ifdef __clang__ 4*c8dee2aaSAndroid Build Coastguard Worker#pragma clang diagnostic ignored "-Wall" 5*c8dee2aaSAndroid Build Coastguard Worker#endif 6*c8dee2aaSAndroid Build Coastguard Workerusing namespace metal; 7*c8dee2aaSAndroid Build Coastguard Workerstruct Inputs { 8*c8dee2aaSAndroid Build Coastguard Worker}; 9*c8dee2aaSAndroid Build Coastguard Workerstruct Outputs { 10*c8dee2aaSAndroid Build Coastguard Worker half4 sk_FragColor [[color(0)]]; 11*c8dee2aaSAndroid Build Coastguard Worker}; 12*c8dee2aaSAndroid Build Coastguard Workervoid out_half_vh(thread half& v) { 13*c8dee2aaSAndroid Build Coastguard Worker v = 1.0h; 14*c8dee2aaSAndroid Build Coastguard Worker} 15*c8dee2aaSAndroid Build Coastguard Workervoid out_half2_vh2(thread half2& v) { 16*c8dee2aaSAndroid Build Coastguard Worker v = half2(2.0h); 17*c8dee2aaSAndroid Build Coastguard Worker} 18*c8dee2aaSAndroid Build Coastguard Workervoid out_half3_vh3(thread half3& v) { 19*c8dee2aaSAndroid Build Coastguard Worker v = half3(3.0h); 20*c8dee2aaSAndroid Build Coastguard Worker} 21*c8dee2aaSAndroid Build Coastguard Workervoid out_half4_vh4(thread half4& v) { 22*c8dee2aaSAndroid Build Coastguard Worker v = half4(4.0h); 23*c8dee2aaSAndroid Build Coastguard Worker} 24*c8dee2aaSAndroid Build Coastguard Workervoid out_half2x2_vh22(thread half2x2& v) { 25*c8dee2aaSAndroid Build Coastguard Worker v = half2x2(2.0h); 26*c8dee2aaSAndroid Build Coastguard Worker} 27*c8dee2aaSAndroid Build Coastguard Workervoid out_half3x3_vh33(thread half3x3& v) { 28*c8dee2aaSAndroid Build Coastguard Worker v = half3x3(3.0h); 29*c8dee2aaSAndroid Build Coastguard Worker} 30*c8dee2aaSAndroid Build Coastguard Workervoid out_half4x4_vh44(thread half4x4& v) { 31*c8dee2aaSAndroid Build Coastguard Worker v = half4x4(4.0h); 32*c8dee2aaSAndroid Build Coastguard Worker} 33*c8dee2aaSAndroid Build Coastguard Workervoid out_int_vi(thread int& v) { 34*c8dee2aaSAndroid Build Coastguard Worker v = 1; 35*c8dee2aaSAndroid Build Coastguard Worker} 36*c8dee2aaSAndroid Build Coastguard Workervoid out_int2_vi2(thread int2& v) { 37*c8dee2aaSAndroid Build Coastguard Worker v = int2(2); 38*c8dee2aaSAndroid Build Coastguard Worker} 39*c8dee2aaSAndroid Build Coastguard Workervoid out_int3_vi3(thread int3& v) { 40*c8dee2aaSAndroid Build Coastguard Worker v = int3(3); 41*c8dee2aaSAndroid Build Coastguard Worker} 42*c8dee2aaSAndroid Build Coastguard Workervoid out_int4_vi4(thread int4& v) { 43*c8dee2aaSAndroid Build Coastguard Worker v = int4(4); 44*c8dee2aaSAndroid Build Coastguard Worker} 45*c8dee2aaSAndroid Build Coastguard Workervoid out_float_vf(thread float& v) { 46*c8dee2aaSAndroid Build Coastguard Worker v = 1.0; 47*c8dee2aaSAndroid Build Coastguard Worker} 48*c8dee2aaSAndroid Build Coastguard Workervoid out_float2_vf2(thread float2& v) { 49*c8dee2aaSAndroid Build Coastguard Worker v = float2(2.0); 50*c8dee2aaSAndroid Build Coastguard Worker} 51*c8dee2aaSAndroid Build Coastguard Workervoid out_float3_vf3(thread float3& v) { 52*c8dee2aaSAndroid Build Coastguard Worker v = float3(3.0); 53*c8dee2aaSAndroid Build Coastguard Worker} 54*c8dee2aaSAndroid Build Coastguard Workervoid out_float4_vf4(thread float4& v) { 55*c8dee2aaSAndroid Build Coastguard Worker v = float4(4.0); 56*c8dee2aaSAndroid Build Coastguard Worker} 57*c8dee2aaSAndroid Build Coastguard Workervoid out_float2x2_vf22(thread float2x2& v) { 58*c8dee2aaSAndroid Build Coastguard Worker v = float2x2(2.0); 59*c8dee2aaSAndroid Build Coastguard Worker} 60*c8dee2aaSAndroid Build Coastguard Workervoid out_float3x3_vf33(thread float3x3& v) { 61*c8dee2aaSAndroid Build Coastguard Worker v = float3x3(3.0); 62*c8dee2aaSAndroid Build Coastguard Worker} 63*c8dee2aaSAndroid Build Coastguard Workervoid out_float4x4_vf44(thread float4x4& v) { 64*c8dee2aaSAndroid Build Coastguard Worker v = float4x4(4.0); 65*c8dee2aaSAndroid Build Coastguard Worker} 66*c8dee2aaSAndroid Build Coastguard Workervoid out_bool_vb(thread bool& v) { 67*c8dee2aaSAndroid Build Coastguard Worker v = true; 68*c8dee2aaSAndroid Build Coastguard Worker} 69*c8dee2aaSAndroid Build Coastguard Workervoid out_bool2_vb2(thread bool2& v) { 70*c8dee2aaSAndroid Build Coastguard Worker v = bool2(false); 71*c8dee2aaSAndroid Build Coastguard Worker} 72*c8dee2aaSAndroid Build Coastguard Workervoid out_bool3_vb3(thread bool3& v) { 73*c8dee2aaSAndroid Build Coastguard Worker v = bool3(true); 74*c8dee2aaSAndroid Build Coastguard Worker} 75*c8dee2aaSAndroid Build Coastguard Workervoid out_bool4_vb4(thread bool4& v) { 76*c8dee2aaSAndroid Build Coastguard Worker v = bool4(false); 77*c8dee2aaSAndroid Build Coastguard Worker} 78*c8dee2aaSAndroid Build Coastguard Workervoid out_pair_vhh(thread half& v1, thread half& v2) { 79*c8dee2aaSAndroid Build Coastguard Worker v1 = 1.0h; 80*c8dee2aaSAndroid Build Coastguard Worker v2 = 2.0h; 81*c8dee2aaSAndroid Build Coastguard Worker} 82*c8dee2aaSAndroid Build Coastguard Workerfragment Outputs fragmentMain(Inputs _in [[stage_in]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) { 83*c8dee2aaSAndroid Build Coastguard Worker Outputs _out; 84*c8dee2aaSAndroid Build Coastguard Worker (void)_out; 85*c8dee2aaSAndroid Build Coastguard Worker half _skTemp0; 86*c8dee2aaSAndroid Build Coastguard Worker half2 _skTemp1; 87*c8dee2aaSAndroid Build Coastguard Worker half3 _skTemp2; 88*c8dee2aaSAndroid Build Coastguard Worker half4 _skTemp3; 89*c8dee2aaSAndroid Build Coastguard Worker half _skTemp4; 90*c8dee2aaSAndroid Build Coastguard Worker half2 _skTemp5; 91*c8dee2aaSAndroid Build Coastguard Worker half4 _skTemp6; 92*c8dee2aaSAndroid Build Coastguard Worker half _skTemp7; 93*c8dee2aaSAndroid Build Coastguard Worker half _skTemp8; 94*c8dee2aaSAndroid Build Coastguard Worker half _skTemp9; 95*c8dee2aaSAndroid Build Coastguard Worker half _skTemp10; 96*c8dee2aaSAndroid Build Coastguard Worker half _skTemp11; 97*c8dee2aaSAndroid Build Coastguard Worker half _skTemp12; 98*c8dee2aaSAndroid Build Coastguard Worker half _skTemp13; 99*c8dee2aaSAndroid Build Coastguard Worker half _skTemp14; 100*c8dee2aaSAndroid Build Coastguard Worker half _skTemp15; 101*c8dee2aaSAndroid Build Coastguard Worker half _skTemp16; 102*c8dee2aaSAndroid Build Coastguard Worker half2x2 _skTemp17; 103*c8dee2aaSAndroid Build Coastguard Worker half3x3 _skTemp18; 104*c8dee2aaSAndroid Build Coastguard Worker half4x4 _skTemp19; 105*c8dee2aaSAndroid Build Coastguard Worker half3 _skTemp20; 106*c8dee2aaSAndroid Build Coastguard Worker half4 _skTemp21; 107*c8dee2aaSAndroid Build Coastguard Worker half2 _skTemp22; 108*c8dee2aaSAndroid Build Coastguard Worker int _skTemp23; 109*c8dee2aaSAndroid Build Coastguard Worker int2 _skTemp24; 110*c8dee2aaSAndroid Build Coastguard Worker int3 _skTemp25; 111*c8dee2aaSAndroid Build Coastguard Worker int4 _skTemp26; 112*c8dee2aaSAndroid Build Coastguard Worker int3 _skTemp27; 113*c8dee2aaSAndroid Build Coastguard Worker float _skTemp28; 114*c8dee2aaSAndroid Build Coastguard Worker float2 _skTemp29; 115*c8dee2aaSAndroid Build Coastguard Worker float3 _skTemp30; 116*c8dee2aaSAndroid Build Coastguard Worker float4 _skTemp31; 117*c8dee2aaSAndroid Build Coastguard Worker float2 _skTemp32; 118*c8dee2aaSAndroid Build Coastguard Worker float _skTemp33; 119*c8dee2aaSAndroid Build Coastguard Worker float2x2 _skTemp34; 120*c8dee2aaSAndroid Build Coastguard Worker float3x3 _skTemp35; 121*c8dee2aaSAndroid Build Coastguard Worker float4x4 _skTemp36; 122*c8dee2aaSAndroid Build Coastguard Worker float _skTemp37; 123*c8dee2aaSAndroid Build Coastguard Worker float4 _skTemp38; 124*c8dee2aaSAndroid Build Coastguard Worker bool _skTemp39; 125*c8dee2aaSAndroid Build Coastguard Worker bool2 _skTemp40; 126*c8dee2aaSAndroid Build Coastguard Worker bool3 _skTemp41; 127*c8dee2aaSAndroid Build Coastguard Worker bool4 _skTemp42; 128*c8dee2aaSAndroid Build Coastguard Worker bool2 _skTemp43; 129*c8dee2aaSAndroid Build Coastguard Worker bool _skTemp44; 130*c8dee2aaSAndroid Build Coastguard Worker half h; 131*c8dee2aaSAndroid Build Coastguard Worker ((out_half_vh(_skTemp0)), (h = _skTemp0)); 132*c8dee2aaSAndroid Build Coastguard Worker half2 h2; 133*c8dee2aaSAndroid Build Coastguard Worker ((out_half2_vh2(_skTemp1)), (h2 = _skTemp1)); 134*c8dee2aaSAndroid Build Coastguard Worker half3 h3; 135*c8dee2aaSAndroid Build Coastguard Worker ((out_half3_vh3(_skTemp2)), (h3 = _skTemp2)); 136*c8dee2aaSAndroid Build Coastguard Worker half4 h4; 137*c8dee2aaSAndroid Build Coastguard Worker ((out_half4_vh4(_skTemp3)), (h4 = _skTemp3)); 138*c8dee2aaSAndroid Build Coastguard Worker ((out_half_vh(_skTemp4)), (h3.y = _skTemp4)); 139*c8dee2aaSAndroid Build Coastguard Worker ((out_half2_vh2(_skTemp5)), (h3.xz = _skTemp5)); 140*c8dee2aaSAndroid Build Coastguard Worker ((out_half4_vh4(_skTemp6)), (h4.zwxy = _skTemp6)); 141*c8dee2aaSAndroid Build Coastguard Worker _out.sk_FragColor = half4(h, h2.x, h3.x, h4.x); 142*c8dee2aaSAndroid Build Coastguard Worker half h1; 143*c8dee2aaSAndroid Build Coastguard Worker ((out_pair_vhh(_skTemp7, _skTemp8)), (h = _skTemp7), (h1 = _skTemp8)); 144*c8dee2aaSAndroid Build Coastguard Worker ((out_pair_vhh(_skTemp9, _skTemp10)), (h = _skTemp9), (h = _skTemp10)); 145*c8dee2aaSAndroid Build Coastguard Worker ((out_pair_vhh(_skTemp11, _skTemp12)), (h2.x = _skTemp11), (h2.y = _skTemp12)); 146*c8dee2aaSAndroid Build Coastguard Worker ((out_pair_vhh(_skTemp13, _skTemp14)), (h2.x = _skTemp13), (h2.x = _skTemp14)); 147*c8dee2aaSAndroid Build Coastguard Worker ((out_pair_vhh(_skTemp15, _skTemp16)), (h2.x = _skTemp15), (h3.x = _skTemp16)); 148*c8dee2aaSAndroid Build Coastguard Worker half2x2 h2x2; 149*c8dee2aaSAndroid Build Coastguard Worker ((out_half2x2_vh22(_skTemp17)), (h2x2 = _skTemp17)); 150*c8dee2aaSAndroid Build Coastguard Worker half3x3 h3x3; 151*c8dee2aaSAndroid Build Coastguard Worker ((out_half3x3_vh33(_skTemp18)), (h3x3 = _skTemp18)); 152*c8dee2aaSAndroid Build Coastguard Worker half4x4 h4x4; 153*c8dee2aaSAndroid Build Coastguard Worker ((out_half4x4_vh44(_skTemp19)), (h4x4 = _skTemp19)); 154*c8dee2aaSAndroid Build Coastguard Worker ((out_half3_vh3(_skTemp20)), (h3x3[1] = _skTemp20)); 155*c8dee2aaSAndroid Build Coastguard Worker ((out_half4_vh4(_skTemp21)), (h4x4[3].zwxy = _skTemp21)); 156*c8dee2aaSAndroid Build Coastguard Worker ((out_half2_vh2(_skTemp22)), (h2x2[0] = _skTemp22)); 157*c8dee2aaSAndroid Build Coastguard Worker _out.sk_FragColor = half4(h2x2[0].x, h3x3[0].x, h4x4[0].x, 1.0h); 158*c8dee2aaSAndroid Build Coastguard Worker int i; 159*c8dee2aaSAndroid Build Coastguard Worker ((out_int_vi(_skTemp23)), (i = _skTemp23)); 160*c8dee2aaSAndroid Build Coastguard Worker int2 i2; 161*c8dee2aaSAndroid Build Coastguard Worker ((out_int2_vi2(_skTemp24)), (i2 = _skTemp24)); 162*c8dee2aaSAndroid Build Coastguard Worker int3 i3; 163*c8dee2aaSAndroid Build Coastguard Worker ((out_int3_vi3(_skTemp25)), (i3 = _skTemp25)); 164*c8dee2aaSAndroid Build Coastguard Worker int4 i4; 165*c8dee2aaSAndroid Build Coastguard Worker ((out_int4_vi4(_skTemp26)), (i4 = _skTemp26)); 166*c8dee2aaSAndroid Build Coastguard Worker ((out_int3_vi3(_skTemp27)), (i4.xyz = _skTemp27)); 167*c8dee2aaSAndroid Build Coastguard Worker _out.sk_FragColor = half4(half(i), half(i2.x), half(i3.x), half(i4.x)); 168*c8dee2aaSAndroid Build Coastguard Worker float f; 169*c8dee2aaSAndroid Build Coastguard Worker ((out_float_vf(_skTemp28)), (f = _skTemp28)); 170*c8dee2aaSAndroid Build Coastguard Worker float2 f2; 171*c8dee2aaSAndroid Build Coastguard Worker ((out_float2_vf2(_skTemp29)), (f2 = _skTemp29)); 172*c8dee2aaSAndroid Build Coastguard Worker float3 f3; 173*c8dee2aaSAndroid Build Coastguard Worker ((out_float3_vf3(_skTemp30)), (f3 = _skTemp30)); 174*c8dee2aaSAndroid Build Coastguard Worker float4 f4; 175*c8dee2aaSAndroid Build Coastguard Worker ((out_float4_vf4(_skTemp31)), (f4 = _skTemp31)); 176*c8dee2aaSAndroid Build Coastguard Worker ((out_float2_vf2(_skTemp32)), (f3.xy = _skTemp32)); 177*c8dee2aaSAndroid Build Coastguard Worker ((out_float_vf(_skTemp33)), (f2.x = _skTemp33)); 178*c8dee2aaSAndroid Build Coastguard Worker _out.sk_FragColor = half4(half(f), half(f2.x), half(f3.x), half(f4.x)); 179*c8dee2aaSAndroid Build Coastguard Worker float2x2 f2x2; 180*c8dee2aaSAndroid Build Coastguard Worker ((out_float2x2_vf22(_skTemp34)), (f2x2 = _skTemp34)); 181*c8dee2aaSAndroid Build Coastguard Worker float3x3 f3x3; 182*c8dee2aaSAndroid Build Coastguard Worker ((out_float3x3_vf33(_skTemp35)), (f3x3 = _skTemp35)); 183*c8dee2aaSAndroid Build Coastguard Worker float4x4 f4x4; 184*c8dee2aaSAndroid Build Coastguard Worker ((out_float4x4_vf44(_skTemp36)), (f4x4 = _skTemp36)); 185*c8dee2aaSAndroid Build Coastguard Worker ((out_float_vf(_skTemp37)), (f2x2[0].x = _skTemp37)); 186*c8dee2aaSAndroid Build Coastguard Worker ((out_float4_vf4(_skTemp38)), (f4x4[1] = _skTemp38)); 187*c8dee2aaSAndroid Build Coastguard Worker _out.sk_FragColor = half4(half(f2x2[0].x), half(f3x3[0].x), half(f4x4[0].x), 1.0h); 188*c8dee2aaSAndroid Build Coastguard Worker bool b; 189*c8dee2aaSAndroid Build Coastguard Worker ((out_bool_vb(_skTemp39)), (b = _skTemp39)); 190*c8dee2aaSAndroid Build Coastguard Worker bool2 b2; 191*c8dee2aaSAndroid Build Coastguard Worker ((out_bool2_vb2(_skTemp40)), (b2 = _skTemp40)); 192*c8dee2aaSAndroid Build Coastguard Worker bool3 b3; 193*c8dee2aaSAndroid Build Coastguard Worker ((out_bool3_vb3(_skTemp41)), (b3 = _skTemp41)); 194*c8dee2aaSAndroid Build Coastguard Worker bool4 b4; 195*c8dee2aaSAndroid Build Coastguard Worker ((out_bool4_vb4(_skTemp42)), (b4 = _skTemp42)); 196*c8dee2aaSAndroid Build Coastguard Worker ((out_bool2_vb2(_skTemp43)), (b4.xw = _skTemp43)); 197*c8dee2aaSAndroid Build Coastguard Worker ((out_bool_vb(_skTemp44)), (b3.z = _skTemp44)); 198*c8dee2aaSAndroid Build Coastguard Worker _out.sk_FragColor = half4(half(b), half(b2.x), half(b3.x), half(b4.x)); 199*c8dee2aaSAndroid Build Coastguard Worker return _out; 200*c8dee2aaSAndroid Build Coastguard Worker} 201