blob: ffc768992cfcc65d6a5d09c12310527fafc00071 [file] [edit]
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 1
; Bound: 64
; Schema: 0
OpCapability Shader
OpCapability Float16
OpCapability UniformAndStorageBuffer16BitAccess
OpCapability StorageBuffer16BitAccess
OpCapability StorageInputOutput16
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %frag_main "frag_main" %frag_main_loc0_Input %frag_main_loc1_Input %frag_main_position_Input %frag_main_loc2_Input %frag_main_loc3_Input
OpExecutionMode %frag_main OriginUpperLeft
OpMemberName %S 0 "f"
OpMemberName %S 1 "u"
OpMemberName %S 2 "v"
OpMemberName %S 3 "x"
OpMemberName %S 4 "y"
OpName %S "S"
OpMemberName %tint_symbol_1 0 "tint_symbol"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %frag_main_loc0_Input "frag_main_loc0_Input"
OpName %frag_main_loc1_Input "frag_main_loc1_Input"
OpName %frag_main_position_Input "frag_main_position_Input"
OpName %frag_main_loc2_Input "frag_main_loc2_Input"
OpName %frag_main_loc3_Input "frag_main_loc3_Input"
OpName %frag_main_inner "frag_main_inner"
OpName %input "input"
OpName %f "f"
OpName %u "u"
OpName %v "v"
OpName %x "x"
OpName %y "y"
OpName %tint_store_and_preserve_padding "tint_store_and_preserve_padding"
OpName %value_param "value_param"
OpName %frag_main "frag_main"
OpMemberDecorate %S 0 Offset 0
OpMemberDecorate %S 1 Offset 4
OpMemberDecorate %S 2 Offset 128
OpMemberDecorate %S 3 Offset 160
OpMemberDecorate %S 4 Offset 192
OpMemberDecorate %tint_symbol_1 0 Offset 0
OpDecorate %tint_symbol_1 Block
OpDecorate %1 DescriptorSet 0
OpDecorate %1 Binding 0
OpDecorate %1 Coherent
OpDecorate %frag_main_loc0_Input Location 0
OpDecorate %frag_main_loc1_Input Location 1
OpDecorate %frag_main_loc1_Input Flat
OpDecorate %frag_main_position_Input BuiltIn FragCoord
OpDecorate %frag_main_loc2_Input Location 2
OpDecorate %frag_main_loc3_Input Location 3
%float = OpTypeFloat 32
%uint = OpTypeInt 32 0
%v4float = OpTypeVector %float 4
%half = OpTypeFloat 16
%v3half = OpTypeVector %half 3
%S = OpTypeStruct %float %uint %v4float %half %v3half
%tint_symbol_1 = OpTypeStruct %S
%_ptr_StorageBuffer_tint_symbol_1 = OpTypePointer StorageBuffer %tint_symbol_1
%1 = OpVariable %_ptr_StorageBuffer_tint_symbol_1 StorageBuffer
%_ptr_Input_float = OpTypePointer Input %float
%frag_main_loc0_Input = OpVariable %_ptr_Input_float Input
%_ptr_Input_uint = OpTypePointer Input %uint
%frag_main_loc1_Input = OpVariable %_ptr_Input_uint Input
%_ptr_Input_v4float = OpTypePointer Input %v4float
%frag_main_position_Input = OpVariable %_ptr_Input_v4float Input
%_ptr_Input_half = OpTypePointer Input %half
%frag_main_loc2_Input = OpVariable %_ptr_Input_half Input
%_ptr_Input_v3half = OpTypePointer Input %v3half
%frag_main_loc3_Input = OpVariable %_ptr_Input_v3half Input
%void = OpTypeVoid
%23 = OpTypeFunction %void %S
%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
%uint_0 = OpConstant %uint 0
%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
%uint_1 = OpConstant %uint 1
%_ptr_StorageBuffer_v4float = OpTypePointer StorageBuffer %v4float
%uint_2 = OpConstant %uint 2
%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half
%uint_3 = OpConstant %uint 3
%_ptr_StorageBuffer_v3half = OpTypePointer StorageBuffer %v3half
%uint_4 = OpConstant %uint 4
%55 = OpTypeFunction %void
%frag_main_inner = OpFunction %void None %23
%input = OpFunctionParameter %S
%24 = OpLabel
%f = OpCompositeExtract %float %input 0
%u = OpCompositeExtract %uint %input 1
%v = OpCompositeExtract %v4float %input 2
%x = OpCompositeExtract %half %input 3
%y = OpCompositeExtract %v3half %input 4
%30 = OpFunctionCall %void %tint_store_and_preserve_padding %input
OpReturn
OpFunctionEnd
%tint_store_and_preserve_padding = OpFunction %void None %23
%value_param = OpFunctionParameter %S
%33 = OpLabel
%34 = OpAccessChain %_ptr_StorageBuffer_float %1 %uint_0 %uint_0
%37 = OpCompositeExtract %float %value_param 0
OpStore %34 %37 None
%38 = OpAccessChain %_ptr_StorageBuffer_uint %1 %uint_0 %uint_1
%41 = OpCompositeExtract %uint %value_param 1
OpStore %38 %41 None
%42 = OpAccessChain %_ptr_StorageBuffer_v4float %1 %uint_0 %uint_2
%45 = OpCompositeExtract %v4float %value_param 2
OpStore %42 %45 None
%46 = OpAccessChain %_ptr_StorageBuffer_half %1 %uint_0 %uint_3
%49 = OpCompositeExtract %half %value_param 3
OpStore %46 %49 None
%50 = OpAccessChain %_ptr_StorageBuffer_v3half %1 %uint_0 %uint_4
%53 = OpCompositeExtract %v3half %value_param 4
OpStore %50 %53 None
OpReturn
OpFunctionEnd
%frag_main = OpFunction %void None %55
%56 = OpLabel
%57 = OpLoad %float %frag_main_loc0_Input None
%58 = OpLoad %uint %frag_main_loc1_Input None
%59 = OpLoad %v4float %frag_main_position_Input None
%60 = OpLoad %half %frag_main_loc2_Input None
%61 = OpLoad %v3half %frag_main_loc3_Input None
%62 = OpCompositeConstruct %S %57 %58 %59 %60 %61
%63 = OpFunctionCall %void %frag_main_inner %62
OpReturn
OpFunctionEnd