mirror of
https://github.com/gfx-rs/wgpu.git
synced 2024-11-23 07:14:01 +00:00
252 lines
6.9 KiB
Plaintext
252 lines
6.9 KiB
Plaintext
; SPIR-V
|
|
; Version: 1.1
|
|
; Generator: rspirv
|
|
; Bound: 174
|
|
OpCapability Shader
|
|
OpExtension "SPV_KHR_storage_buffer_storage_class"
|
|
%1 = OpExtInstImport "GLSL.std.450"
|
|
OpMemoryModel Logical GLSL450
|
|
OpEntryPoint GLCompute %93 "main" %116
|
|
OpExecutionMode %93 LocalSize 1 1 1
|
|
OpDecorate %5 ArrayStride 4
|
|
OpMemberDecorate %9 0 Offset 0
|
|
OpMemberDecorate %9 1 Offset 12
|
|
OpDecorate %11 ArrayStride 8
|
|
OpDecorate %13 ArrayStride 16
|
|
OpDecorate %17 ArrayStride 32
|
|
OpDecorate %19 ArrayStride 64
|
|
OpDecorate %21 ArrayStride 32
|
|
OpDecorate %22 ArrayStride 64
|
|
OpDecorate %30 DescriptorSet 0
|
|
OpDecorate %30 Binding 1
|
|
OpDecorate %31 Block
|
|
OpMemberDecorate %31 0 Offset 0
|
|
OpDecorate %33 NonWritable
|
|
OpDecorate %33 DescriptorSet 0
|
|
OpDecorate %33 Binding 2
|
|
OpDecorate %34 Block
|
|
OpMemberDecorate %34 0 Offset 0
|
|
OpDecorate %36 DescriptorSet 0
|
|
OpDecorate %36 Binding 3
|
|
OpDecorate %37 Block
|
|
OpMemberDecorate %37 0 Offset 0
|
|
OpDecorate %39 DescriptorSet 0
|
|
OpDecorate %39 Binding 4
|
|
OpDecorate %40 Block
|
|
OpMemberDecorate %40 0 Offset 0
|
|
OpDecorate %42 DescriptorSet 0
|
|
OpDecorate %42 Binding 5
|
|
OpDecorate %43 Block
|
|
OpMemberDecorate %43 0 Offset 0
|
|
OpMemberDecorate %43 0 ColMajor
|
|
OpMemberDecorate %43 0 MatrixStride 8
|
|
OpDecorate %45 DescriptorSet 0
|
|
OpDecorate %45 Binding 6
|
|
OpDecorate %46 Block
|
|
OpMemberDecorate %46 0 Offset 0
|
|
OpDecorate %48 DescriptorSet 0
|
|
OpDecorate %48 Binding 7
|
|
OpDecorate %49 Block
|
|
OpMemberDecorate %49 0 Offset 0
|
|
OpDecorate %116 BuiltIn LocalInvocationId
|
|
%2 = OpTypeVoid
|
|
%3 = OpTypeBool
|
|
%4 = OpTypeFloat 32
|
|
%7 = OpTypeInt 32 0
|
|
%6 = OpConstant %7 10
|
|
%5 = OpTypeArray %4 %6
|
|
%8 = OpTypeVector %4 3
|
|
%9 = OpTypeStruct %8 %4
|
|
%10 = OpTypeVector %4 2
|
|
%11 = OpTypeRuntimeArray %10
|
|
%12 = OpTypeVector %4 4
|
|
%14 = OpConstant %7 20
|
|
%13 = OpTypeArray %12 %14
|
|
%15 = OpTypeMatrix %10 3
|
|
%16 = OpTypeMatrix %12 2
|
|
%18 = OpConstant %7 2
|
|
%17 = OpTypeArray %16 %18
|
|
%19 = OpTypeArray %17 %18
|
|
%20 = OpTypeMatrix %10 4
|
|
%21 = OpTypeArray %20 %18
|
|
%22 = OpTypeArray %21 %18
|
|
%23 = OpTypeInt 32 1
|
|
%24 = OpTypeMatrix %8 3
|
|
%25 = OpConstantTrue %3
|
|
%27 = OpTypePointer Workgroup %5
|
|
%26 = OpVariable %27 Workgroup
|
|
%29 = OpTypePointer Workgroup %7
|
|
%28 = OpVariable %29 Workgroup
|
|
%31 = OpTypeStruct %9
|
|
%32 = OpTypePointer StorageBuffer %31
|
|
%30 = OpVariable %32 StorageBuffer
|
|
%34 = OpTypeStruct %11
|
|
%35 = OpTypePointer StorageBuffer %34
|
|
%33 = OpVariable %35 StorageBuffer
|
|
%37 = OpTypeStruct %13
|
|
%38 = OpTypePointer Uniform %37
|
|
%36 = OpVariable %38 Uniform
|
|
%40 = OpTypeStruct %8
|
|
%41 = OpTypePointer Uniform %40
|
|
%39 = OpVariable %41 Uniform
|
|
%43 = OpTypeStruct %15
|
|
%44 = OpTypePointer Uniform %43
|
|
%42 = OpVariable %44 Uniform
|
|
%46 = OpTypeStruct %19
|
|
%47 = OpTypePointer Uniform %46
|
|
%45 = OpVariable %47 Uniform
|
|
%49 = OpTypeStruct %22
|
|
%50 = OpTypePointer Uniform %49
|
|
%48 = OpVariable %50 Uniform
|
|
%54 = OpTypeFunction %2 %8
|
|
%58 = OpTypeFunction %2
|
|
%59 = OpTypePointer StorageBuffer %9
|
|
%60 = OpConstant %7 0
|
|
%62 = OpConstant %4 1.0
|
|
%63 = OpConstantComposite %8 %62 %62 %62
|
|
%64 = OpConstant %23 1
|
|
%65 = OpConstant %4 2.0
|
|
%66 = OpConstant %4 3.0
|
|
%67 = OpConstantNull %24
|
|
%69 = OpTypePointer Function %23
|
|
%71 = OpTypePointer StorageBuffer %8
|
|
%73 = OpTypePointer StorageBuffer %4
|
|
%95 = OpTypePointer StorageBuffer %11
|
|
%97 = OpTypePointer Uniform %13
|
|
%99 = OpTypePointer Uniform %8
|
|
%101 = OpTypePointer Uniform %15
|
|
%103 = OpTypePointer Uniform %19
|
|
%105 = OpTypePointer Uniform %22
|
|
%107 = OpConstant %4 4.0
|
|
%109 = OpTypePointer Function %4
|
|
%111 = OpTypePointer Function %3
|
|
%113 = OpConstantNull %5
|
|
%114 = OpConstantNull %7
|
|
%115 = OpTypeVector %7 3
|
|
%117 = OpTypePointer Input %115
|
|
%116 = OpVariable %117 Input
|
|
%119 = OpConstantNull %115
|
|
%120 = OpTypeVector %3 3
|
|
%125 = OpConstant %7 264
|
|
%128 = OpTypePointer Workgroup %4
|
|
%129 = OpTypePointer Uniform %21
|
|
%130 = OpTypePointer Uniform %20
|
|
%133 = OpTypePointer Uniform %17
|
|
%134 = OpTypePointer Uniform %16
|
|
%135 = OpTypePointer Uniform %12
|
|
%140 = OpConstant %7 7
|
|
%146 = OpConstant %7 6
|
|
%148 = OpTypePointer StorageBuffer %10
|
|
%149 = OpConstant %7 1
|
|
%152 = OpConstant %7 5
|
|
%154 = OpTypePointer Uniform %12
|
|
%155 = OpTypePointer Uniform %4
|
|
%156 = OpConstant %7 3
|
|
%159 = OpConstant %7 4
|
|
%161 = OpTypePointer StorageBuffer %4
|
|
%172 = OpConstant %23 2
|
|
%173 = OpConstant %7 256
|
|
%53 = OpFunction %2 None %54
|
|
%52 = OpFunctionParameter %8
|
|
%51 = OpLabel
|
|
OpBranch %55
|
|
%55 = OpLabel
|
|
OpReturn
|
|
OpFunctionEnd
|
|
%57 = OpFunction %2 None %58
|
|
%56 = OpLabel
|
|
%68 = OpVariable %69 Function %64
|
|
%61 = OpAccessChain %59 %30 %60
|
|
OpBranch %70
|
|
%70 = OpLabel
|
|
%72 = OpAccessChain %71 %61 %60
|
|
OpStore %72 %63
|
|
%74 = OpAccessChain %73 %61 %60 %60
|
|
OpStore %74 %62
|
|
%75 = OpAccessChain %73 %61 %60 %60
|
|
OpStore %75 %65
|
|
%76 = OpLoad %23 %68
|
|
%77 = OpAccessChain %73 %61 %60 %76
|
|
OpStore %77 %66
|
|
%78 = OpLoad %9 %61
|
|
%79 = OpCompositeExtract %8 %78 0
|
|
%80 = OpCompositeExtract %8 %78 0
|
|
%81 = OpVectorShuffle %10 %80 %80 2 0
|
|
%82 = OpCompositeExtract %8 %78 0
|
|
%83 = OpFunctionCall %2 %53 %82
|
|
%84 = OpCompositeExtract %8 %78 0
|
|
%85 = OpVectorTimesMatrix %8 %84 %67
|
|
%86 = OpCompositeExtract %8 %78 0
|
|
%87 = OpMatrixTimesVector %8 %67 %86
|
|
%88 = OpCompositeExtract %8 %78 0
|
|
%89 = OpVectorTimesScalar %8 %88 %65
|
|
%90 = OpCompositeExtract %8 %78 0
|
|
%91 = OpVectorTimesScalar %8 %90 %65
|
|
OpReturn
|
|
OpFunctionEnd
|
|
%93 = OpFunction %2 None %58
|
|
%92 = OpLabel
|
|
%108 = OpVariable %109 Function %62
|
|
%110 = OpVariable %111 Function %25
|
|
%94 = OpAccessChain %59 %30 %60
|
|
%96 = OpAccessChain %95 %33 %60
|
|
%98 = OpAccessChain %97 %36 %60
|
|
%100 = OpAccessChain %99 %39 %60
|
|
%102 = OpAccessChain %101 %42 %60
|
|
%104 = OpAccessChain %103 %45 %60
|
|
%106 = OpAccessChain %105 %48 %60
|
|
OpBranch %112
|
|
%112 = OpLabel
|
|
%118 = OpLoad %115 %116
|
|
%121 = OpIEqual %120 %118 %119
|
|
%122 = OpAll %3 %121
|
|
OpSelectionMerge %123 None
|
|
OpBranchConditional %122 %124 %123
|
|
%124 = OpLabel
|
|
OpStore %26 %113
|
|
OpStore %28 %114
|
|
OpBranch %123
|
|
%123 = OpLabel
|
|
OpControlBarrier %18 %18 %125
|
|
OpBranch %126
|
|
%126 = OpLabel
|
|
%127 = OpFunctionCall %2 %57
|
|
%131 = OpAccessChain %130 %106 %60 %60
|
|
%132 = OpLoad %20 %131
|
|
%136 = OpAccessChain %135 %104 %60 %60 %60
|
|
%137 = OpLoad %12 %136
|
|
%138 = OpMatrixTimesVector %10 %132 %137
|
|
%139 = OpCompositeExtract %4 %138 0
|
|
%141 = OpAccessChain %128 %26 %140
|
|
OpStore %141 %139
|
|
%142 = OpLoad %15 %102
|
|
%143 = OpLoad %8 %100
|
|
%144 = OpMatrixTimesVector %10 %142 %143
|
|
%145 = OpCompositeExtract %4 %144 0
|
|
%147 = OpAccessChain %128 %26 %146
|
|
OpStore %147 %145
|
|
%150 = OpAccessChain %73 %96 %149 %149
|
|
%151 = OpLoad %4 %150
|
|
%153 = OpAccessChain %128 %26 %152
|
|
OpStore %153 %151
|
|
%157 = OpAccessChain %155 %98 %60 %156
|
|
%158 = OpLoad %4 %157
|
|
%160 = OpAccessChain %128 %26 %159
|
|
OpStore %160 %158
|
|
%162 = OpAccessChain %161 %94 %149
|
|
%163 = OpLoad %4 %162
|
|
%164 = OpAccessChain %128 %26 %156
|
|
OpStore %164 %163
|
|
%165 = OpAccessChain %73 %94 %60 %60
|
|
%166 = OpLoad %4 %165
|
|
%167 = OpAccessChain %128 %26 %18
|
|
OpStore %167 %166
|
|
%168 = OpAccessChain %161 %94 %149
|
|
OpStore %168 %107
|
|
%169 = OpArrayLength %7 %33 0
|
|
%170 = OpConvertUToF %4 %169
|
|
%171 = OpAccessChain %128 %26 %149
|
|
OpStore %171 %170
|
|
OpAtomicStore %28 %172 %173 %18
|
|
OpReturn
|
|
OpFunctionEnd |