; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 ; Bound: 46 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 OpEntryPoint Fragment %frag_main "frag_main" %f_1 %u_1 %v_1 OpExecutionMode %frag_main OriginUpperLeft OpName %f_1 "f_1" OpName %u_1 "u_1" OpName %v_1 "v_1" OpName %output_block "output_block" OpMemberName %output_block 0 "inner" OpName %S "S" OpMemberName %S 0 "f" OpMemberName %S 1 "u" OpMemberName %S 2 "v" OpName %output "output" OpName %assign_and_preserve_padding_output "assign_and_preserve_padding_output" OpName %value "value" OpName %frag_main_inner "frag_main_inner" OpName %input "input" OpName %frag_main "frag_main" OpDecorate %f_1 Location 0 OpDecorate %u_1 Location 1 OpDecorate %u_1 Flat OpDecorate %v_1 BuiltIn FragCoord OpDecorate %output_block Block OpMemberDecorate %output_block 0 Offset 0 OpMemberDecorate %S 0 Offset 0 OpMemberDecorate %S 1 Offset 4 OpMemberDecorate %S 2 Offset 128 OpDecorate %output DescriptorSet 0 OpDecorate %output Binding 0 %float = OpTypeFloat 32 %_ptr_Input_float = OpTypePointer Input %float %f_1 = OpVariable %_ptr_Input_float Input %uint = OpTypeInt 32 0 %_ptr_Input_uint = OpTypePointer Input %uint %u_1 = OpVariable %_ptr_Input_uint Input %v4float = OpTypeVector %float 4 %_ptr_Input_v4float = OpTypePointer Input %v4float %v_1 = OpVariable %_ptr_Input_v4float Input %S = OpTypeStruct %float %uint %v4float %output_block = OpTypeStruct %S %_ptr_StorageBuffer_output_block = OpTypePointer StorageBuffer %output_block %output = OpVariable %_ptr_StorageBuffer_output_block StorageBuffer %void = OpTypeVoid %14 = OpTypeFunction %void %S %uint_0 = OpConstant %uint 0 %_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float %uint_1 = OpConstant %uint 1 %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint %uint_2 = OpConstant %uint 2 %_ptr_StorageBuffer_v4float = OpTypePointer StorageBuffer %v4float %38 = OpTypeFunction %void %assign_and_preserve_padding_output = OpFunction %void None %14 %value = OpFunctionParameter %S %18 = OpLabel %21 = OpAccessChain %_ptr_StorageBuffer_float %output %uint_0 %uint_0 %22 = OpCompositeExtract %float %value 0 OpStore %21 %22 %25 = OpAccessChain %_ptr_StorageBuffer_uint %output %uint_0 %uint_1 %26 = OpCompositeExtract %uint %value 1 OpStore %25 %26 %29 = OpAccessChain %_ptr_StorageBuffer_v4float %output %uint_0 %uint_2 %30 = OpCompositeExtract %v4float %value 2 OpStore %29 %30 OpReturn OpFunctionEnd %frag_main_inner = OpFunction %void None %14 %input = OpFunctionParameter %S %33 = OpLabel %34 = OpCompositeExtract %float %input 0 %35 = OpCompositeExtract %uint %input 1 %36 = OpCompositeExtract %v4float %input 2 %37 = OpFunctionCall %void %assign_and_preserve_padding_output %input OpReturn OpFunctionEnd %frag_main = OpFunction %void None %38 %40 = OpLabel %42 = OpLoad %float %f_1 %43 = OpLoad %uint %u_1 %44 = OpLoad %v4float %v_1 %45 = OpCompositeConstruct %S %42 %43 %44 %41 = OpFunctionCall %void %frag_main_inner %45 OpReturn OpFunctionEnd