1*c8dee2aaSAndroid Build Coastguard Workerstruct InnerLUT 2*c8dee2aaSAndroid Build Coastguard Worker{ 3*c8dee2aaSAndroid Build Coastguard Worker float3 values; 4*c8dee2aaSAndroid Build Coastguard Worker}; 5*c8dee2aaSAndroid Build Coastguard Worker 6*c8dee2aaSAndroid Build Coastguard Workerstruct OuterLUT 7*c8dee2aaSAndroid Build Coastguard Worker{ 8*c8dee2aaSAndroid Build Coastguard Worker InnerLUT inner[3]; 9*c8dee2aaSAndroid Build Coastguard Worker}; 10*c8dee2aaSAndroid Build Coastguard Worker 11*c8dee2aaSAndroid Build Coastguard Workerstruct Root 12*c8dee2aaSAndroid Build Coastguard Worker{ 13*c8dee2aaSAndroid Build Coastguard Worker OuterLUT outer[3]; 14*c8dee2aaSAndroid Build Coastguard Worker}; 15*c8dee2aaSAndroid Build Coastguard Worker 16*c8dee2aaSAndroid Build Coastguard Workercbuffer _UniformBuffer : register(b0, space0) 17*c8dee2aaSAndroid Build Coastguard Worker{ 18*c8dee2aaSAndroid Build Coastguard Worker float4 _7_colorGreen : packoffset(c0); 19*c8dee2aaSAndroid Build Coastguard Worker float4 _7_colorRed : packoffset(c1); 20*c8dee2aaSAndroid Build Coastguard Worker}; 21*c8dee2aaSAndroid Build Coastguard Worker 22*c8dee2aaSAndroid Build Coastguard Worker 23*c8dee2aaSAndroid Build Coastguard Workerstatic float4 sk_FragColor; 24*c8dee2aaSAndroid Build Coastguard Worker 25*c8dee2aaSAndroid Build Coastguard Workerstruct SPIRV_Cross_Output 26*c8dee2aaSAndroid Build Coastguard Worker{ 27*c8dee2aaSAndroid Build Coastguard Worker float4 sk_FragColor : SV_Target0; 28*c8dee2aaSAndroid Build Coastguard Worker}; 29*c8dee2aaSAndroid Build Coastguard Worker 30*c8dee2aaSAndroid Build Coastguard Workerfloat4 main(float2 _21) 31*c8dee2aaSAndroid Build Coastguard Worker{ 32*c8dee2aaSAndroid Build Coastguard Worker Root data = { { { { { 0.0f.xxx }, { 0.0f.xxx }, { 0.0f.xxx } } }, { { { 0.0f.xxx }, { 0.0f.xxx }, { 0.0f.xxx } } }, { { { 0.0f.xxx }, { 0.0f.xxx }, { 0.0f.xxx } } } } }; 33*c8dee2aaSAndroid Build Coastguard Worker data.outer[0].inner[0].values = float3(1.0f, 10.0f, 100.0f); 34*c8dee2aaSAndroid Build Coastguard Worker data.outer[0].inner[1].values = float3(2.0f, 20.0f, 200.0f); 35*c8dee2aaSAndroid Build Coastguard Worker data.outer[0].inner[2].values = float3(3.0f, 30.0f, 300.0f); 36*c8dee2aaSAndroid Build Coastguard Worker data.outer[1].inner[0].values = float3(4.0f, 40.0f, 400.0f); 37*c8dee2aaSAndroid Build Coastguard Worker data.outer[1].inner[1].values = float3(5.0f, 50.0f, 500.0f); 38*c8dee2aaSAndroid Build Coastguard Worker data.outer[1].inner[2].values = float3(6.0f, 60.0f, 600.0f); 39*c8dee2aaSAndroid Build Coastguard Worker data.outer[2].inner[0].values = float3(7.0f, 70.0f, 700.0f); 40*c8dee2aaSAndroid Build Coastguard Worker data.outer[2].inner[1].values = float3(8.0f, 80.0f, 800.0f); 41*c8dee2aaSAndroid Build Coastguard Worker data.outer[2].inner[2].values = float3(9.0f, 90.0f, 900.0f); 42*c8dee2aaSAndroid Build Coastguard Worker float3 expected = 0.0f.xxx; 43*c8dee2aaSAndroid Build Coastguard Worker for (int i = 0; i < 3; i++) 44*c8dee2aaSAndroid Build Coastguard Worker { 45*c8dee2aaSAndroid Build Coastguard Worker for (int j = 0; j < 3; j++) 46*c8dee2aaSAndroid Build Coastguard Worker { 47*c8dee2aaSAndroid Build Coastguard Worker float3 _102 = expected; 48*c8dee2aaSAndroid Build Coastguard Worker float3 _103 = _102 + float3(1.0f, 10.0f, 100.0f); 49*c8dee2aaSAndroid Build Coastguard Worker expected = _103; 50*c8dee2aaSAndroid Build Coastguard Worker if (any(bool3(data.outer[i].inner[j].values.x != _103.x, data.outer[i].inner[j].values.y != _103.y, data.outer[i].inner[j].values.z != _103.z))) 51*c8dee2aaSAndroid Build Coastguard Worker { 52*c8dee2aaSAndroid Build Coastguard Worker return _7_colorRed; 53*c8dee2aaSAndroid Build Coastguard Worker } 54*c8dee2aaSAndroid Build Coastguard Worker for (int k = 0; k < 3; k++) 55*c8dee2aaSAndroid Build Coastguard Worker { 56*c8dee2aaSAndroid Build Coastguard Worker if (data.outer[i].inner[j].values[k] != expected[k]) 57*c8dee2aaSAndroid Build Coastguard Worker { 58*c8dee2aaSAndroid Build Coastguard Worker return _7_colorRed; 59*c8dee2aaSAndroid Build Coastguard Worker } 60*c8dee2aaSAndroid Build Coastguard Worker } 61*c8dee2aaSAndroid Build Coastguard Worker } 62*c8dee2aaSAndroid Build Coastguard Worker } 63*c8dee2aaSAndroid Build Coastguard Worker return _7_colorGreen; 64*c8dee2aaSAndroid Build Coastguard Worker} 65*c8dee2aaSAndroid Build Coastguard Worker 66*c8dee2aaSAndroid Build Coastguard Workervoid frag_main() 67*c8dee2aaSAndroid Build Coastguard Worker{ 68*c8dee2aaSAndroid Build Coastguard Worker float2 _17 = 0.0f.xx; 69*c8dee2aaSAndroid Build Coastguard Worker sk_FragColor = main(_17); 70*c8dee2aaSAndroid Build Coastguard Worker} 71*c8dee2aaSAndroid Build Coastguard Worker 72*c8dee2aaSAndroid Build Coastguard WorkerSPIRV_Cross_Output main() 73*c8dee2aaSAndroid Build Coastguard Worker{ 74*c8dee2aaSAndroid Build Coastguard Worker frag_main(); 75*c8dee2aaSAndroid Build Coastguard Worker SPIRV_Cross_Output stage_output; 76*c8dee2aaSAndroid Build Coastguard Worker stage_output.sk_FragColor = sk_FragColor; 77*c8dee2aaSAndroid Build Coastguard Worker return stage_output; 78*c8dee2aaSAndroid Build Coastguard Worker} 79