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