You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
348 lines
13 KiB
348 lines
13 KiB
; SPIR-V
|
|
; Version: 1.0
|
|
; Generator: Khronos Glslang Reference Front End; 8
|
|
; Bound: 193
|
|
; Schema: 0
|
|
OpCapability Shader
|
|
%1 = OpExtInstImport "GLSL.std.450"
|
|
OpMemoryModel Logical GLSL450
|
|
OpEntryPoint Fragment %main "main" %x %BaseColor %Count %bigColor %outColor %v4 %f_0
|
|
OpExecutionMode %main OriginUpperLeft
|
|
OpSource ESSL 310
|
|
OpName %main "main"
|
|
OpName %c "c"
|
|
OpName %f "f"
|
|
OpName %x "x"
|
|
OpName %d "d"
|
|
OpName %color "color"
|
|
OpName %BaseColor "BaseColor"
|
|
OpName %i "i"
|
|
OpName %Count "Count"
|
|
OpName %bigColor "bigColor"
|
|
OpName %outColor "outColor"
|
|
OpName %sum "sum"
|
|
OpName %i_0 "i"
|
|
OpName %v4 "v4"
|
|
OpName %i_1 "i"
|
|
OpName %tv4 "tv4"
|
|
OpName %r "r"
|
|
OpName %i_2 "i"
|
|
OpName %i_3 "i"
|
|
OpName %i_4 "i"
|
|
OpName %A "A"
|
|
OpName %B "B"
|
|
OpName %C "C"
|
|
OpName %D "D"
|
|
OpName %f_0 "f"
|
|
OpDecorate %f RelaxedPrecision
|
|
OpDecorate %x Location 0
|
|
OpDecorate %color RelaxedPrecision
|
|
OpDecorate %BaseColor RelaxedPrecision
|
|
OpDecorate %BaseColor Location 2
|
|
OpDecorate %47 RelaxedPrecision
|
|
OpDecorate %Count Flat
|
|
OpDecorate %Count Location 4
|
|
OpDecorate %bigColor RelaxedPrecision
|
|
OpDecorate %bigColor Location 1
|
|
OpDecorate %63 RelaxedPrecision
|
|
OpDecorate %64 RelaxedPrecision
|
|
OpDecorate %65 RelaxedPrecision
|
|
OpDecorate %outColor RelaxedPrecision
|
|
OpDecorate %outColor Location 0
|
|
OpDecorate %71 RelaxedPrecision
|
|
OpDecorate %sum RelaxedPrecision
|
|
OpDecorate %v4 Flat
|
|
OpDecorate %v4 Location 5
|
|
OpDecorate %91 RelaxedPrecision
|
|
OpDecorate %92 RelaxedPrecision
|
|
OpDecorate %93 RelaxedPrecision
|
|
OpDecorate %tv4 RelaxedPrecision
|
|
OpDecorate %111 RelaxedPrecision
|
|
OpDecorate %115 RelaxedPrecision
|
|
OpDecorate %116 RelaxedPrecision
|
|
OpDecorate %117 RelaxedPrecision
|
|
OpDecorate %118 RelaxedPrecision
|
|
OpDecorate %119 RelaxedPrecision
|
|
OpDecorate %120 RelaxedPrecision
|
|
OpDecorate %r RelaxedPrecision
|
|
OpDecorate %123 RelaxedPrecision
|
|
OpDecorate %124 RelaxedPrecision
|
|
OpDecorate %136 RelaxedPrecision
|
|
OpDecorate %141 RelaxedPrecision
|
|
OpDecorate %142 RelaxedPrecision
|
|
OpDecorate %143 RelaxedPrecision
|
|
OpDecorate %144 RelaxedPrecision
|
|
OpDecorate %145 RelaxedPrecision
|
|
OpDecorate %157 RelaxedPrecision
|
|
OpDecorate %158 RelaxedPrecision
|
|
OpDecorate %159 RelaxedPrecision
|
|
OpDecorate %f_0 RelaxedPrecision
|
|
OpDecorate %f_0 Location 3
|
|
%void = OpTypeVoid
|
|
%3 = OpTypeFunction %void
|
|
%int = OpTypeInt 32 1
|
|
%_ptr_Private_int = OpTypePointer Private %int
|
|
%c = OpVariable %_ptr_Private_int Private
|
|
%float = OpTypeFloat 32
|
|
%_ptr_Function_float = OpTypePointer Function %float
|
|
%_ptr_Input_float = OpTypePointer Input %float
|
|
%x = OpVariable %_ptr_Input_float Input
|
|
%d = OpVariable %_ptr_Private_int Private
|
|
%v4float = OpTypeVector %float 4
|
|
%_ptr_Function_v4float = OpTypePointer Function %v4float
|
|
%_ptr_Input_v4float = OpTypePointer Input %v4float
|
|
%BaseColor = OpVariable %_ptr_Input_v4float Input
|
|
%_ptr_Function_int = OpTypePointer Function %int
|
|
%int_0 = OpConstant %int 0
|
|
%_ptr_Input_int = OpTypePointer Input %int
|
|
%Count = OpVariable %_ptr_Input_int Input
|
|
%bool = OpTypeBool
|
|
%bigColor = OpVariable %_ptr_Input_v4float Input
|
|
%int_1 = OpConstant %int 1
|
|
%_ptr_Output_v4float = OpTypePointer Output %v4float
|
|
%outColor = OpVariable %_ptr_Output_v4float Output
|
|
%float_0 = OpConstant %float 0
|
|
%int_4 = OpConstant %int 4
|
|
%uint = OpTypeInt 32 0
|
|
%v4uint = OpTypeVector %uint 4
|
|
%_ptr_Input_v4uint = OpTypePointer Input %v4uint
|
|
%v4 = OpVariable %_ptr_Input_v4uint Input
|
|
%_ptr_Input_uint = OpTypePointer Input %uint
|
|
%uint_4 = OpConstant %uint 4
|
|
%v3float = OpTypeVector %float 3
|
|
%uint_3 = OpConstant %uint 3
|
|
%int_16 = OpConstant %int 16
|
|
%int_10 = OpConstant %int 10
|
|
%int_2 = OpConstant %int 2
|
|
%int_5 = OpConstant %int 5
|
|
%int_3 = OpConstant %int 3
|
|
%f_0 = OpVariable %_ptr_Input_float Input
|
|
%main = OpFunction %void None %3
|
|
%5 = OpLabel
|
|
%f = OpVariable %_ptr_Function_float Function
|
|
%color = OpVariable %_ptr_Function_v4float Function
|
|
%i = OpVariable %_ptr_Function_int Function
|
|
%sum = OpVariable %_ptr_Function_float Function
|
|
%i_0 = OpVariable %_ptr_Function_int Function
|
|
%i_1 = OpVariable %_ptr_Function_int Function
|
|
%tv4 = OpVariable %_ptr_Function_v4float Function
|
|
%r = OpVariable %_ptr_Function_v4float Function
|
|
%i_2 = OpVariable %_ptr_Function_int Function
|
|
%i_3 = OpVariable %_ptr_Function_int Function
|
|
%i_4 = OpVariable %_ptr_Function_int Function
|
|
%A = OpVariable %_ptr_Function_int Function
|
|
%B = OpVariable %_ptr_Function_int Function
|
|
%C = OpVariable %_ptr_Function_int Function
|
|
%D = OpVariable %_ptr_Function_int Function
|
|
%9 = OpLoad %int %c
|
|
OpSelectionMerge %13 None
|
|
OpSwitch %9 %12 1 %10 2 %11
|
|
%12 = OpLabel
|
|
%39 = OpLoad %float %x
|
|
%40 = OpExtInst %float %1 Tan %39
|
|
OpStore %f %40
|
|
OpBranch %13
|
|
%10 = OpLabel
|
|
%19 = OpLoad %float %x
|
|
%20 = OpExtInst %float %1 Sin %19
|
|
OpStore %f %20
|
|
OpBranch %13
|
|
%11 = OpLabel
|
|
%23 = OpLoad %int %d
|
|
OpSelectionMerge %26 None
|
|
OpSwitch %23 %26 1 %24 2 %25
|
|
%24 = OpLabel
|
|
%27 = OpLoad %float %x
|
|
%28 = OpLoad %float %x
|
|
%29 = OpFMul %float %27 %28
|
|
%30 = OpLoad %float %x
|
|
%31 = OpFMul %float %29 %30
|
|
OpStore %f %31
|
|
OpBranch %26
|
|
%25 = OpLabel
|
|
%33 = OpLoad %float %x
|
|
%34 = OpLoad %float %x
|
|
%35 = OpFMul %float %33 %34
|
|
OpStore %f %35
|
|
OpBranch %26
|
|
%26 = OpLabel
|
|
OpBranch %13
|
|
%13 = OpLabel
|
|
%47 = OpLoad %v4float %BaseColor
|
|
OpStore %color %47
|
|
OpStore %i %int_0
|
|
OpBranch %51
|
|
%51 = OpLabel
|
|
OpLoopMerge %53 %54 None
|
|
OpBranch %55
|
|
%55 = OpLabel
|
|
%56 = OpLoad %int %i
|
|
%59 = OpLoad %int %Count
|
|
%61 = OpSLessThan %bool %56 %59
|
|
OpBranchConditional %61 %52 %53
|
|
%52 = OpLabel
|
|
%63 = OpLoad %v4float %bigColor
|
|
%64 = OpLoad %v4float %color
|
|
%65 = OpFAdd %v4float %64 %63
|
|
OpStore %color %65
|
|
OpBranch %54
|
|
%54 = OpLabel
|
|
%66 = OpLoad %int %i
|
|
%68 = OpIAdd %int %66 %int_1
|
|
OpStore %i %68
|
|
OpBranch %51
|
|
%53 = OpLabel
|
|
%71 = OpLoad %v4float %color
|
|
OpStore %outColor %71
|
|
OpStore %sum %float_0
|
|
OpStore %i_0 %int_0
|
|
OpBranch %75
|
|
%75 = OpLabel
|
|
OpLoopMerge %77 %78 None
|
|
OpBranch %79
|
|
%79 = OpLabel
|
|
%80 = OpLoad %int %i_0
|
|
%82 = OpSLessThan %bool %80 %int_4
|
|
OpBranchConditional %82 %76 %77
|
|
%76 = OpLabel
|
|
%87 = OpLoad %int %i_0
|
|
%89 = OpAccessChain %_ptr_Input_uint %v4 %87
|
|
%90 = OpLoad %uint %89
|
|
%91 = OpConvertUToF %float %90
|
|
%92 = OpLoad %float %sum
|
|
%93 = OpFAdd %float %92 %91
|
|
OpStore %sum %93
|
|
OpBranch %78
|
|
%78 = OpLabel
|
|
%94 = OpLoad %int %i_0
|
|
%95 = OpIAdd %int %94 %int_1
|
|
OpStore %i_0 %95
|
|
OpBranch %75
|
|
%77 = OpLabel
|
|
OpStore %i_1 %int_0
|
|
OpBranch %97
|
|
%97 = OpLabel
|
|
OpLoopMerge %99 %100 None
|
|
OpBranch %101
|
|
%101 = OpLabel
|
|
%102 = OpLoad %int %i_1
|
|
%103 = OpSLessThan %bool %102 %int_4
|
|
OpBranchConditional %103 %98 %99
|
|
%98 = OpLabel
|
|
%105 = OpLoad %int %i_1
|
|
%106 = OpLoad %int %i_1
|
|
%107 = OpAccessChain %_ptr_Input_uint %v4 %106
|
|
%108 = OpLoad %uint %107
|
|
%110 = OpIMul %uint %108 %uint_4
|
|
%111 = OpConvertUToF %float %110
|
|
%112 = OpAccessChain %_ptr_Function_float %tv4 %105
|
|
OpStore %112 %111
|
|
OpBranch %100
|
|
%100 = OpLabel
|
|
%113 = OpLoad %int %i_1
|
|
%114 = OpIAdd %int %113 %int_1
|
|
OpStore %i_1 %114
|
|
OpBranch %97
|
|
%99 = OpLabel
|
|
%115 = OpLoad %float %sum
|
|
%116 = OpCompositeConstruct %v4float %115 %115 %115 %115
|
|
%117 = OpLoad %v4float %tv4
|
|
%118 = OpFAdd %v4float %116 %117
|
|
%119 = OpLoad %v4float %outColor
|
|
%120 = OpFAdd %v4float %119 %118
|
|
OpStore %outColor %120
|
|
%123 = OpLoad %v4float %BaseColor
|
|
%124 = OpVectorShuffle %v3float %123 %123 0 1 2
|
|
%125 = OpLoad %v4float %r
|
|
%126 = OpVectorShuffle %v4float %125 %124 4 5 6 3
|
|
OpStore %r %126
|
|
OpStore %i_2 %int_0
|
|
OpBranch %128
|
|
%128 = OpLabel
|
|
OpLoopMerge %130 %131 None
|
|
OpBranch %132
|
|
%132 = OpLabel
|
|
%133 = OpLoad %int %i_2
|
|
%134 = OpLoad %int %Count
|
|
%135 = OpSLessThan %bool %133 %134
|
|
OpBranchConditional %135 %129 %130
|
|
%129 = OpLabel
|
|
%136 = OpLoad %float %f
|
|
%138 = OpAccessChain %_ptr_Function_float %r %uint_3
|
|
OpStore %138 %136
|
|
OpBranch %131
|
|
%131 = OpLabel
|
|
%139 = OpLoad %int %i_2
|
|
%140 = OpIAdd %int %139 %int_1
|
|
OpStore %i_2 %140
|
|
OpBranch %128
|
|
%130 = OpLabel
|
|
%141 = OpLoad %v4float %r
|
|
%142 = OpVectorShuffle %v3float %141 %141 0 1 2
|
|
%143 = OpLoad %v4float %outColor
|
|
%144 = OpVectorShuffle %v3float %143 %143 0 1 2
|
|
%145 = OpFAdd %v3float %144 %142
|
|
%146 = OpLoad %v4float %outColor
|
|
%147 = OpVectorShuffle %v4float %146 %145 4 5 6 3
|
|
OpStore %outColor %147
|
|
OpStore %i_3 %int_0
|
|
OpBranch %149
|
|
%149 = OpLabel
|
|
OpLoopMerge %151 %152 None
|
|
OpBranch %153
|
|
%153 = OpLabel
|
|
%154 = OpLoad %int %i_3
|
|
%156 = OpSLessThan %bool %154 %int_16
|
|
OpBranchConditional %156 %150 %151
|
|
%150 = OpLabel
|
|
%157 = OpLoad %float %f
|
|
%158 = OpLoad %v4float %outColor
|
|
%159 = OpVectorTimesScalar %v4float %158 %157
|
|
OpStore %outColor %159
|
|
OpBranch %152
|
|
%152 = OpLabel
|
|
%160 = OpLoad %int %i_3
|
|
%161 = OpIAdd %int %160 %int_4
|
|
OpStore %i_3 %161
|
|
OpBranch %149
|
|
%151 = OpLabel
|
|
OpStore %i_4 %int_0
|
|
OpBranch %163
|
|
%163 = OpLabel
|
|
OpLoopMerge %165 %166 None
|
|
OpBranch %167
|
|
%167 = OpLabel
|
|
%168 = OpLoad %int %i_4
|
|
%170 = OpSLessThan %bool %168 %int_10
|
|
OpBranchConditional %170 %164 %165
|
|
%164 = OpLabel
|
|
OpStore %A %int_1
|
|
%172 = OpLoad %int %i_4
|
|
%174 = OpSMod %int %172 %int_2
|
|
%175 = OpIEqual %bool %174 %int_0
|
|
OpSelectionMerge %177 None
|
|
OpBranchConditional %175 %176 %177
|
|
%176 = OpLabel
|
|
OpStore %B %int_2
|
|
OpBranch %166
|
|
%177 = OpLabel
|
|
%181 = OpLoad %int %i_4
|
|
%183 = OpSMod %int %181 %int_5
|
|
%184 = OpIEqual %bool %183 %int_0
|
|
OpSelectionMerge %186 None
|
|
OpBranchConditional %184 %185 %186
|
|
%185 = OpLabel
|
|
OpStore %B %int_2
|
|
OpBranch %165
|
|
%186 = OpLabel
|
|
%188 = OpLoad %int %i_4
|
|
%189 = OpIAdd %int %188 %int_1
|
|
OpStore %i_4 %189
|
|
OpBranch %166
|
|
%166 = OpLabel
|
|
OpBranch %163
|
|
%165 = OpLabel
|
|
OpStore %D %int_3
|
|
OpReturn
|
|
OpFunctionEnd
|