1; SPIR-V 2; Version: 1.0 3; Generator: Google spiregg; 0 4; Bound: 181 5; Schema: 0 6 OpCapability Shader 7 OpExtension "SPV_GOOGLE_hlsl_functionality1" 8 %1 = OpExtInstImport "GLSL.std.450" 9 OpMemoryModel Logical GLSL450 10 OpEntryPoint Vertex %ScatterMainVS "main" %gl_VertexIndex %gl_InstanceIndex %out_var_TEXCOORD0 %out_var_TEXCOORD1 %out_var_TEXCOORD2 %out_var_TEXCOORD3 %out_var_TEXCOORD4 %out_var_TEXCOORD5 %out_var_TEXCOORD6 %gl_Position 11 OpSource HLSL 600 12 OpName %type__Globals "type.$Globals" 13 OpMemberName %type__Globals 0 "ViewportSize" 14 OpMemberName %type__Globals 1 "ScatteringScaling" 15 OpMemberName %type__Globals 2 "CocRadiusToCircumscribedRadius" 16 OpName %_Globals "$Globals" 17 OpName %type_StructuredBuffer_v4float "type.StructuredBuffer.v4float" 18 OpName %ScatterDrawList "ScatterDrawList" 19 OpName %out_var_TEXCOORD0 "out.var.TEXCOORD0" 20 OpName %out_var_TEXCOORD1 "out.var.TEXCOORD1" 21 OpName %out_var_TEXCOORD2 "out.var.TEXCOORD2" 22 OpName %out_var_TEXCOORD3 "out.var.TEXCOORD3" 23 OpName %out_var_TEXCOORD4 "out.var.TEXCOORD4" 24 OpName %out_var_TEXCOORD5 "out.var.TEXCOORD5" 25 OpName %out_var_TEXCOORD6 "out.var.TEXCOORD6" 26 OpName %ScatterMainVS "ScatterMainVS" 27 OpDecorate %gl_VertexIndex BuiltIn VertexIndex 28 OpDecorateString %gl_VertexIndex UserSemantic "SV_VertexID" 29 OpDecorate %gl_InstanceIndex BuiltIn InstanceIndex 30 OpDecorateString %gl_InstanceIndex UserSemantic "SV_InstanceID" 31 OpDecorateString %out_var_TEXCOORD0 UserSemantic "TEXCOORD0" 32 OpDecorateString %out_var_TEXCOORD1 UserSemantic "TEXCOORD1" 33 OpDecorateString %out_var_TEXCOORD2 UserSemantic "TEXCOORD2" 34 OpDecorateString %out_var_TEXCOORD3 UserSemantic "TEXCOORD3" 35 OpDecorateString %out_var_TEXCOORD4 UserSemantic "TEXCOORD4" 36 OpDecorateString %out_var_TEXCOORD5 UserSemantic "TEXCOORD5" 37 OpDecorateString %out_var_TEXCOORD6 UserSemantic "TEXCOORD6" 38 OpDecorate %gl_Position BuiltIn Position 39 OpDecorateString %gl_Position UserSemantic "SV_POSITION" 40 OpDecorate %out_var_TEXCOORD0 Location 0 41 OpDecorate %out_var_TEXCOORD1 Location 1 42 OpDecorate %out_var_TEXCOORD2 Location 2 43 OpDecorate %out_var_TEXCOORD3 Location 3 44 OpDecorate %out_var_TEXCOORD4 Location 4 45 OpDecorate %out_var_TEXCOORD5 Location 5 46 OpDecorate %out_var_TEXCOORD6 Location 6 47 OpDecorate %_Globals DescriptorSet 0 48 OpDecorate %_Globals Binding 1 49 OpDecorate %ScatterDrawList DescriptorSet 0 50 OpDecorate %ScatterDrawList Binding 0 51 OpMemberDecorate %type__Globals 0 Offset 0 52 OpMemberDecorate %type__Globals 1 Offset 16 53 OpMemberDecorate %type__Globals 2 Offset 20 54 OpDecorate %type__Globals Block 55 OpDecorate %_runtimearr_v4float ArrayStride 16 56 OpMemberDecorate %type_StructuredBuffer_v4float 0 Offset 0 57 OpMemberDecorate %type_StructuredBuffer_v4float 0 NonWritable 58 OpDecorate %type_StructuredBuffer_v4float BufferBlock 59 %float = OpTypeFloat 32 60 %v4float = OpTypeVector %float 4 61 %v2float = OpTypeVector %float 2 62 %int = OpTypeInt 32 1 63 %uint = OpTypeInt 32 0 64 %uint_2 = OpConstant %uint 2 65 %uint_4 = OpConstant %uint 4 66%_arr_v4float_uint_4 = OpTypeArray %v4float %uint_4 67 %float_0_5 = OpConstant %float 0.5 68 %int_0 = OpConstant %int 0 69 %int_1 = OpConstant %int 1 70 %float_1 = OpConstant %float 1 71 %uint_16 = OpConstant %uint 16 72 %float_0 = OpConstant %float 0 73 %uint_0 = OpConstant %uint 0 74 %uint_5 = OpConstant %uint 5 75 %uint_1 = OpConstant %uint 1 76 %int_3 = OpConstant %int 3 77 %float_n0_5 = OpConstant %float -0.5 78 %int_2 = OpConstant %int 2 79 %float_2 = OpConstant %float 2 80 %39 = OpConstantComposite %v2float %float_2 %float_2 81 %40 = OpConstantComposite %v2float %float_1 %float_1 82 %41 = OpConstantComposite %v2float %float_0_5 %float_0_5 83%type__Globals = OpTypeStruct %v4float %float %float 84%_ptr_Uniform_type__Globals = OpTypePointer Uniform %type__Globals 85%_runtimearr_v4float = OpTypeRuntimeArray %v4float 86%type_StructuredBuffer_v4float = OpTypeStruct %_runtimearr_v4float 87%_ptr_Uniform_type_StructuredBuffer_v4float = OpTypePointer Uniform %type_StructuredBuffer_v4float 88%_ptr_Input_uint = OpTypePointer Input %uint 89%_ptr_Output_v2float = OpTypePointer Output %v2float 90%_ptr_Output_v4float = OpTypePointer Output %v4float 91 %void = OpTypeVoid 92 %48 = OpTypeFunction %void 93%_ptr_Function_v2float = OpTypePointer Function %v2float 94%_ptr_Function_v4float = OpTypePointer Function %v4float 95%_ptr_Function__arr_v4float_uint_4 = OpTypePointer Function %_arr_v4float_uint_4 96%_arr_float_uint_4 = OpTypeArray %float %uint_4 97%_ptr_Function__arr_float_uint_4 = OpTypePointer Function %_arr_float_uint_4 98%_arr_v2float_uint_4 = OpTypeArray %v2float %uint_4 99%_ptr_Function__arr_v2float_uint_4 = OpTypePointer Function %_arr_v2float_uint_4 100%_ptr_Function_float = OpTypePointer Function %float 101 %bool = OpTypeBool 102%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float 103%_ptr_Uniform_float = OpTypePointer Uniform %float 104 %_Globals = OpVariable %_ptr_Uniform_type__Globals Uniform 105%ScatterDrawList = OpVariable %_ptr_Uniform_type_StructuredBuffer_v4float Uniform 106%gl_VertexIndex = OpVariable %_ptr_Input_uint Input 107%gl_InstanceIndex = OpVariable %_ptr_Input_uint Input 108%out_var_TEXCOORD0 = OpVariable %_ptr_Output_v2float Output 109%out_var_TEXCOORD1 = OpVariable %_ptr_Output_v4float Output 110%out_var_TEXCOORD2 = OpVariable %_ptr_Output_v4float Output 111%out_var_TEXCOORD3 = OpVariable %_ptr_Output_v4float Output 112%out_var_TEXCOORD4 = OpVariable %_ptr_Output_v4float Output 113%out_var_TEXCOORD5 = OpVariable %_ptr_Output_v4float Output 114%out_var_TEXCOORD6 = OpVariable %_ptr_Output_v4float Output 115%gl_Position = OpVariable %_ptr_Output_v4float Output 116%ScatterMainVS = OpFunction %void None %48 117 %60 = OpLabel 118 %61 = OpVariable %_ptr_Function__arr_v4float_uint_4 Function 119 %62 = OpVariable %_ptr_Function__arr_float_uint_4 Function 120 %63 = OpVariable %_ptr_Function__arr_v2float_uint_4 Function 121 %64 = OpLoad %uint %gl_VertexIndex 122 %65 = OpLoad %uint %gl_InstanceIndex 123 %66 = OpUDiv %uint %64 %uint_4 124 %67 = OpIMul %uint %66 %uint_4 125 %68 = OpISub %uint %64 %67 126 %69 = OpIMul %uint %uint_16 %65 127 %70 = OpIAdd %uint %69 %66 128 OpBranch %71 129 %71 = OpLabel 130 %72 = OpPhi %float %float_0 %60 %73 %74 131 %75 = OpPhi %uint %uint_0 %60 %76 %74 132 %77 = OpULessThan %bool %75 %uint_4 133 OpLoopMerge %78 %74 Unroll 134 OpBranchConditional %77 %79 %78 135 %79 = OpLabel 136 %80 = OpIMul %uint %uint_5 %70 137 %81 = OpIAdd %uint %80 %75 138 %82 = OpIAdd %uint %81 %uint_1 139 %83 = OpAccessChain %_ptr_Uniform_v4float %ScatterDrawList %int_0 %82 140 %84 = OpLoad %v4float %83 141 %85 = OpCompositeExtract %float %84 0 142 %86 = OpCompositeExtract %float %84 1 143 %87 = OpCompositeExtract %float %84 2 144 %88 = OpCompositeConstruct %v4float %85 %86 %87 %float_0 145 %89 = OpAccessChain %_ptr_Function_v4float %61 %75 146 OpStore %89 %88 147 %90 = OpCompositeExtract %float %84 3 148 %91 = OpAccessChain %_ptr_Function_float %62 %75 149 OpStore %91 %90 150 %92 = OpIEqual %bool %75 %uint_0 151 OpSelectionMerge %74 None 152 OpBranchConditional %92 %93 %94 153 %93 = OpLabel 154 %95 = OpLoad %float %91 155 OpBranch %74 156 %94 = OpLabel 157 %96 = OpLoad %float %91 158 %97 = OpExtInst %float %1 FMax %72 %96 159 OpBranch %74 160 %74 = OpLabel 161 %73 = OpPhi %float %95 %93 %97 %94 162 %98 = OpLoad %float %91 163 %99 = OpFDiv %float %float_n0_5 %98 164 %100 = OpAccessChain %_ptr_Function_float %63 %75 %int_0 165 OpStore %100 %99 166 %101 = OpLoad %float %91 167 %102 = OpFMul %float %float_0_5 %101 168 %103 = OpFAdd %float %102 %float_0_5 169 %104 = OpAccessChain %_ptr_Function_float %63 %75 %int_1 170 OpStore %104 %103 171 %76 = OpIAdd %uint %75 %uint_1 172 OpBranch %71 173 %78 = OpLabel 174 %105 = OpAccessChain %_ptr_Function_v4float %61 %int_0 175 %106 = OpLoad %v4float %105 176 %107 = OpCompositeExtract %float %106 0 177 %108 = OpCompositeExtract %float %106 1 178 %109 = OpCompositeExtract %float %106 2 179 %110 = OpAccessChain %_ptr_Function_float %62 %int_0 180 %111 = OpLoad %float %110 181 %112 = OpCompositeConstruct %v4float %107 %108 %109 %111 182 %113 = OpAccessChain %_ptr_Function_v4float %61 %int_1 183 %114 = OpLoad %v4float %113 184 %115 = OpCompositeExtract %float %114 0 185 %116 = OpCompositeExtract %float %114 1 186 %117 = OpCompositeExtract %float %114 2 187 %118 = OpAccessChain %_ptr_Function_float %62 %int_1 188 %119 = OpLoad %float %118 189 %120 = OpCompositeConstruct %v4float %115 %116 %117 %119 190 %121 = OpAccessChain %_ptr_Function_v4float %61 %int_2 191 %122 = OpLoad %v4float %121 192 %123 = OpCompositeExtract %float %122 0 193 %124 = OpCompositeExtract %float %122 1 194 %125 = OpCompositeExtract %float %122 2 195 %126 = OpAccessChain %_ptr_Function_float %62 %int_2 196 %127 = OpLoad %float %126 197 %128 = OpCompositeConstruct %v4float %123 %124 %125 %127 198 %129 = OpAccessChain %_ptr_Function_v4float %61 %int_3 199 %130 = OpLoad %v4float %129 200 %131 = OpCompositeExtract %float %130 0 201 %132 = OpCompositeExtract %float %130 1 202 %133 = OpCompositeExtract %float %130 2 203 %134 = OpAccessChain %_ptr_Function_float %62 %int_3 204 %135 = OpLoad %float %134 205 %136 = OpCompositeConstruct %v4float %131 %132 %133 %135 206 %137 = OpAccessChain %_ptr_Uniform_float %_Globals %int_1 207 %138 = OpLoad %float %137 208 %139 = OpCompositeConstruct %v2float %138 %138 209 %140 = OpIMul %uint %uint_5 %70 210 %141 = OpAccessChain %_ptr_Uniform_v4float %ScatterDrawList %int_0 %140 211 %142 = OpLoad %v4float %141 212 %143 = OpVectorShuffle %v2float %142 %142 0 1 213 %144 = OpFMul %v2float %139 %143 214 %145 = OpAccessChain %_ptr_Function_v2float %63 %int_0 215 %146 = OpLoad %v2float %145 216 %147 = OpAccessChain %_ptr_Function_v2float %63 %int_1 217 %148 = OpLoad %v2float %147 218 %149 = OpVectorShuffle %v4float %146 %148 0 1 2 3 219 %150 = OpAccessChain %_ptr_Function_v2float %63 %int_2 220 %151 = OpLoad %v2float %150 221 %152 = OpAccessChain %_ptr_Function_v2float %63 %int_3 222 %153 = OpLoad %v2float %152 223 %154 = OpVectorShuffle %v4float %151 %153 0 1 2 3 224 %155 = OpUMod %uint %68 %uint_2 225 %156 = OpConvertUToF %float %155 226 %157 = OpUDiv %uint %68 %uint_2 227 %158 = OpConvertUToF %float %157 228 %159 = OpCompositeConstruct %v2float %156 %158 229 %160 = OpFMul %v2float %159 %39 230 %161 = OpFSub %v2float %160 %40 231 %162 = OpAccessChain %_ptr_Uniform_float %_Globals %int_2 232 %163 = OpLoad %float %162 233 %164 = OpFMul %float %72 %163 234 %165 = OpFAdd %float %164 %float_1 235 %166 = OpCompositeConstruct %v2float %165 %165 236 %167 = OpFMul %v2float %166 %161 237 %168 = OpFAdd %v2float %167 %144 238 %169 = OpFAdd %v2float %168 %41 239 %170 = OpAccessChain %_ptr_Uniform_v4float %_Globals %int_0 240 %171 = OpLoad %v4float %170 241 %172 = OpVectorShuffle %v2float %171 %171 2 3 242 %173 = OpFMul %v2float %169 %172 243 %174 = OpCompositeExtract %float %173 0 244 %175 = OpFMul %float %174 %float_2 245 %176 = OpFSub %float %175 %float_1 246 %177 = OpCompositeExtract %float %173 1 247 %178 = OpFMul %float %177 %float_2 248 %179 = OpFSub %float %float_1 %178 249 %180 = OpCompositeConstruct %v4float %176 %179 %float_0 %float_1 250 OpStore %out_var_TEXCOORD0 %144 251 OpStore %out_var_TEXCOORD1 %112 252 OpStore %out_var_TEXCOORD2 %120 253 OpStore %out_var_TEXCOORD3 %128 254 OpStore %out_var_TEXCOORD4 %136 255 OpStore %out_var_TEXCOORD5 %149 256 OpStore %out_var_TEXCOORD6 %154 257 OpStore %gl_Position %180 258 OpReturn 259 OpFunctionEnd 260