mirror of
https://github.com/gfx-rs/wgpu.git
synced 2025-12-08 21:26:17 +00:00
fix(vulkan): remove atomic memory semantics (#8391)
This commit is contained in:
parent
ddcd89fd69
commit
7a2afeb014
@ -111,6 +111,10 @@ SamplerDescriptor {
|
||||
|
||||
- Align copies b/w textures and buffers via a single intermediate buffer per copy when `D3D12_FEATURE_DATA_D3D12_OPTIONS13.UnrestrictedBufferTextureCopyPitchSupported` is `false`. By @ErichDonGubler in [#7721](https://github.com/gfx-rs/wgpu/pull/7721).
|
||||
|
||||
#### Vulkan
|
||||
|
||||
- Fixed a validation error regarding atomic memory semantics. By @atlv24 in [#8391](https://github.com/gfx-rs/wgpu/pull/8391).
|
||||
|
||||
#### hal
|
||||
|
||||
- `DropCallback`s are now called after dropping all other fields of their parent structs. By @jerzywilczek in [#8353](https://github.com/gfx-rs/wgpu/pull/8353)
|
||||
|
||||
@ -3543,6 +3543,7 @@ impl BlockContext<'_> {
|
||||
}
|
||||
_ => unimplemented!(),
|
||||
};
|
||||
|
||||
let mut cas_instr = Instruction::new(spirv::Op::AtomicCompareExchange);
|
||||
cas_instr.set_type(scalar_type_id);
|
||||
cas_instr.set_result(cas_result_id);
|
||||
|
||||
@ -79,11 +79,10 @@ impl crate::AddressSpace {
|
||||
self,
|
||||
) -> (spirv::MemorySemantics, spirv::Scope) {
|
||||
match self {
|
||||
Self::Storage { .. } => (spirv::MemorySemantics::UNIFORM_MEMORY, spirv::Scope::Device),
|
||||
Self::WorkGroup => (
|
||||
spirv::MemorySemantics::WORKGROUP_MEMORY,
|
||||
spirv::Scope::Workgroup,
|
||||
),
|
||||
Self::Storage { .. } => (spirv::MemorySemantics::empty(), spirv::Scope::Device),
|
||||
Self::WorkGroup => (spirv::MemorySemantics::empty(), spirv::Scope::Workgroup),
|
||||
Self::Uniform => (spirv::MemorySemantics::empty(), spirv::Scope::Device),
|
||||
Self::Handle => (spirv::MemorySemantics::empty(), spirv::Scope::Device),
|
||||
_ => (spirv::MemorySemantics::empty(), spirv::Scope::Invocation),
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
; SPIR-V
|
||||
; Version: 1.0
|
||||
; Generator: rspirv
|
||||
; Bound: 173
|
||||
; Bound: 172
|
||||
OpCapability Shader
|
||||
OpCapability Int64Atomics
|
||||
OpCapability Int64
|
||||
@ -9,9 +9,9 @@ OpExtension "SPV_KHR_storage_buffer_storage_class"
|
||||
%1 = OpExtInstImport "GLSL.std.450"
|
||||
OpMemoryModel Logical GLSL450
|
||||
OpEntryPoint GLCompute %19 "test_atomic_compare_exchange_i64"
|
||||
OpEntryPoint GLCompute %104 "test_atomic_compare_exchange_u64"
|
||||
OpEntryPoint GLCompute %103 "test_atomic_compare_exchange_u64"
|
||||
OpExecutionMode %19 LocalSize 1 1 1
|
||||
OpExecutionMode %104 LocalSize 1 1 1
|
||||
OpExecutionMode %103 LocalSize 1 1 1
|
||||
OpDecorate %5 ArrayStride 8
|
||||
OpDecorate %8 ArrayStride 8
|
||||
OpMemberDecorate %10 0 Offset 0
|
||||
@ -62,20 +62,19 @@ OpMemberDecorate %16 0 Offset 0
|
||||
%64 = OpTypePointer StorageBuffer %4
|
||||
%68 = OpTypeInt 32 1
|
||||
%67 = OpConstant %68 1
|
||||
%69 = OpConstant %3 64
|
||||
%105 = OpTypePointer StorageBuffer %8
|
||||
%107 = OpConstant %7 10
|
||||
%110 = OpTypePointer Function %7
|
||||
%111 = OpConstantNull %7
|
||||
%113 = OpConstantNull %9
|
||||
%137 = OpTypePointer StorageBuffer %7
|
||||
%104 = OpTypePointer StorageBuffer %8
|
||||
%106 = OpConstant %7 10
|
||||
%109 = OpTypePointer Function %7
|
||||
%110 = OpConstantNull %7
|
||||
%112 = OpConstantNull %9
|
||||
%136 = OpTypePointer StorageBuffer %7
|
||||
%19 = OpFunction %2 None %20
|
||||
%18 = OpLabel
|
||||
%27 = OpVariable %28 Function %22
|
||||
%29 = OpVariable %30 Function %31
|
||||
%32 = OpVariable %33 Function %34
|
||||
%46 = OpVariable %41 Function %45
|
||||
%74 = OpVariable %41 Function %45
|
||||
%73 = OpVariable %41 Function %45
|
||||
%23 = OpAccessChain %21 %12 %22
|
||||
OpBranch %35
|
||||
%35 = OpLabel
|
||||
@ -109,163 +108,163 @@ OpBranch %61
|
||||
%61 = OpLabel
|
||||
%63 = OpLoad %3 %27
|
||||
%65 = OpAccessChain %64 %23 %63
|
||||
%66 = OpAtomicLoad %4 %65 %67 %69
|
||||
%66 = OpAtomicLoad %4 %65 %67 %22
|
||||
OpStore %29 %66
|
||||
OpStore %32 %24
|
||||
OpBranch %70
|
||||
%70 = OpLabel
|
||||
OpLoopMerge %71 %73 None
|
||||
OpBranch %75
|
||||
%75 = OpLabel
|
||||
%76 = OpLoad %40 %74
|
||||
%77 = OpIEqual %42 %43 %76
|
||||
%78 = OpAll %9 %77
|
||||
OpSelectionMerge %79 None
|
||||
OpBranchConditional %78 %71 %79
|
||||
%79 = OpLabel
|
||||
%80 = OpCompositeExtract %3 %76 1
|
||||
%81 = OpIEqual %9 %80 %22
|
||||
%82 = OpSelect %3 %81 %26 %22
|
||||
%83 = OpCompositeConstruct %40 %82 %26
|
||||
%84 = OpISub %40 %76 %83
|
||||
OpStore %74 %84
|
||||
OpBranch %72
|
||||
%72 = OpLabel
|
||||
%85 = OpLoad %9 %32
|
||||
%86 = OpLogicalNot %9 %85
|
||||
OpSelectionMerge %87 None
|
||||
OpBranchConditional %86 %87 %88
|
||||
%88 = OpLabel
|
||||
OpBranch %69
|
||||
%69 = OpLabel
|
||||
OpLoopMerge %70 %72 None
|
||||
OpBranch %74
|
||||
%74 = OpLabel
|
||||
%75 = OpLoad %40 %73
|
||||
%76 = OpIEqual %42 %43 %75
|
||||
%77 = OpAll %9 %76
|
||||
OpSelectionMerge %78 None
|
||||
OpBranchConditional %77 %70 %78
|
||||
%78 = OpLabel
|
||||
%79 = OpCompositeExtract %3 %75 1
|
||||
%80 = OpIEqual %9 %79 %22
|
||||
%81 = OpSelect %3 %80 %26 %22
|
||||
%82 = OpCompositeConstruct %40 %81 %26
|
||||
%83 = OpISub %40 %75 %82
|
||||
OpStore %73 %83
|
||||
OpBranch %71
|
||||
%71 = OpLabel
|
||||
%84 = OpLoad %9 %32
|
||||
%85 = OpLogicalNot %9 %84
|
||||
OpSelectionMerge %86 None
|
||||
OpBranchConditional %85 %86 %87
|
||||
%87 = OpLabel
|
||||
OpBranch %70
|
||||
%86 = OpLabel
|
||||
OpBranch %88
|
||||
%88 = OpLabel
|
||||
%90 = OpLoad %4 %29
|
||||
%91 = OpIAdd %4 %90 %25
|
||||
%92 = OpLoad %3 %27
|
||||
%93 = OpLoad %4 %29
|
||||
%95 = OpAccessChain %64 %23 %92
|
||||
%96 = OpAtomicCompareExchange %4 %95 %67 %22 %22 %91 %93
|
||||
%97 = OpIEqual %9 %96 %93
|
||||
%94 = OpCompositeConstruct %10 %96 %97
|
||||
%98 = OpCompositeExtract %4 %94 0
|
||||
OpStore %29 %98
|
||||
%99 = OpCompositeExtract %9 %94 1
|
||||
OpStore %32 %99
|
||||
OpBranch %89
|
||||
%89 = OpLabel
|
||||
%91 = OpLoad %4 %29
|
||||
%92 = OpIAdd %4 %91 %25
|
||||
%93 = OpLoad %3 %27
|
||||
%94 = OpLoad %4 %29
|
||||
%96 = OpAccessChain %64 %23 %93
|
||||
%97 = OpAtomicCompareExchange %4 %96 %67 %69 %69 %92 %94
|
||||
%98 = OpIEqual %9 %97 %94
|
||||
%95 = OpCompositeConstruct %10 %97 %98
|
||||
%99 = OpCompositeExtract %4 %95 0
|
||||
OpStore %29 %99
|
||||
%100 = OpCompositeExtract %9 %95 1
|
||||
OpStore %32 %100
|
||||
OpBranch %90
|
||||
%90 = OpLabel
|
||||
OpBranch %73
|
||||
%73 = OpLabel
|
||||
OpBranch %70
|
||||
%71 = OpLabel
|
||||
OpBranch %72
|
||||
%72 = OpLabel
|
||||
OpBranch %69
|
||||
%70 = OpLabel
|
||||
OpBranch %62
|
||||
%62 = OpLabel
|
||||
OpBranch %39
|
||||
%39 = OpLabel
|
||||
%101 = OpLoad %3 %27
|
||||
%102 = OpIAdd %3 %101 %26
|
||||
OpStore %27 %102
|
||||
%100 = OpLoad %3 %27
|
||||
%101 = OpIAdd %3 %100 %26
|
||||
OpStore %27 %101
|
||||
OpBranch %36
|
||||
%37 = OpLabel
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%104 = OpFunction %2 None %20
|
||||
%103 = OpLabel
|
||||
%108 = OpVariable %28 Function %22
|
||||
%109 = OpVariable %110 Function %111
|
||||
%112 = OpVariable %33 Function %113
|
||||
%119 = OpVariable %41 Function %45
|
||||
%144 = OpVariable %41 Function %45
|
||||
%106 = OpAccessChain %105 %15 %22
|
||||
%103 = OpFunction %2 None %20
|
||||
%102 = OpLabel
|
||||
%107 = OpVariable %28 Function %22
|
||||
%108 = OpVariable %109 Function %110
|
||||
%111 = OpVariable %33 Function %112
|
||||
%118 = OpVariable %41 Function %45
|
||||
%143 = OpVariable %41 Function %45
|
||||
%105 = OpAccessChain %104 %15 %22
|
||||
OpBranch %113
|
||||
%113 = OpLabel
|
||||
OpBranch %114
|
||||
%114 = OpLabel
|
||||
OpBranch %115
|
||||
%115 = OpLabel
|
||||
OpLoopMerge %116 %118 None
|
||||
OpBranch %120
|
||||
%120 = OpLabel
|
||||
%121 = OpLoad %40 %119
|
||||
%122 = OpIEqual %42 %43 %121
|
||||
%123 = OpAll %9 %122
|
||||
OpSelectionMerge %124 None
|
||||
OpBranchConditional %123 %116 %124
|
||||
%124 = OpLabel
|
||||
%125 = OpCompositeExtract %3 %121 1
|
||||
%126 = OpIEqual %9 %125 %22
|
||||
%127 = OpSelect %3 %126 %26 %22
|
||||
%128 = OpCompositeConstruct %40 %127 %26
|
||||
%129 = OpISub %40 %121 %128
|
||||
OpStore %119 %129
|
||||
OpBranch %117
|
||||
%117 = OpLabel
|
||||
%130 = OpLoad %3 %108
|
||||
%131 = OpULessThan %9 %130 %6
|
||||
OpSelectionMerge %132 None
|
||||
OpBranchConditional %131 %132 %133
|
||||
%133 = OpLabel
|
||||
OpLoopMerge %115 %117 None
|
||||
OpBranch %119
|
||||
%119 = OpLabel
|
||||
%120 = OpLoad %40 %118
|
||||
%121 = OpIEqual %42 %43 %120
|
||||
%122 = OpAll %9 %121
|
||||
OpSelectionMerge %123 None
|
||||
OpBranchConditional %122 %115 %123
|
||||
%123 = OpLabel
|
||||
%124 = OpCompositeExtract %3 %120 1
|
||||
%125 = OpIEqual %9 %124 %22
|
||||
%126 = OpSelect %3 %125 %26 %22
|
||||
%127 = OpCompositeConstruct %40 %126 %26
|
||||
%128 = OpISub %40 %120 %127
|
||||
OpStore %118 %128
|
||||
OpBranch %116
|
||||
%116 = OpLabel
|
||||
%129 = OpLoad %3 %107
|
||||
%130 = OpULessThan %9 %129 %6
|
||||
OpSelectionMerge %131 None
|
||||
OpBranchConditional %130 %131 %132
|
||||
%132 = OpLabel
|
||||
OpBranch %134
|
||||
%134 = OpLabel
|
||||
%136 = OpLoad %3 %108
|
||||
%138 = OpAccessChain %137 %106 %136
|
||||
%139 = OpAtomicLoad %7 %138 %67 %69
|
||||
OpStore %109 %139
|
||||
OpStore %112 %24
|
||||
OpBranch %140
|
||||
%140 = OpLabel
|
||||
OpLoopMerge %141 %143 None
|
||||
OpBranch %145
|
||||
%145 = OpLabel
|
||||
%146 = OpLoad %40 %144
|
||||
%147 = OpIEqual %42 %43 %146
|
||||
%148 = OpAll %9 %147
|
||||
OpSelectionMerge %149 None
|
||||
OpBranchConditional %148 %141 %149
|
||||
%149 = OpLabel
|
||||
%150 = OpCompositeExtract %3 %146 1
|
||||
%151 = OpIEqual %9 %150 %22
|
||||
%152 = OpSelect %3 %151 %26 %22
|
||||
%153 = OpCompositeConstruct %40 %152 %26
|
||||
%154 = OpISub %40 %146 %153
|
||||
OpStore %144 %154
|
||||
OpBranch %142
|
||||
%142 = OpLabel
|
||||
%155 = OpLoad %9 %112
|
||||
%156 = OpLogicalNot %9 %155
|
||||
OpSelectionMerge %157 None
|
||||
OpBranchConditional %156 %157 %158
|
||||
%158 = OpLabel
|
||||
OpBranch %115
|
||||
%131 = OpLabel
|
||||
OpBranch %133
|
||||
%133 = OpLabel
|
||||
%135 = OpLoad %3 %107
|
||||
%137 = OpAccessChain %136 %105 %135
|
||||
%138 = OpAtomicLoad %7 %137 %67 %22
|
||||
OpStore %108 %138
|
||||
OpStore %111 %24
|
||||
OpBranch %139
|
||||
%139 = OpLabel
|
||||
OpLoopMerge %140 %142 None
|
||||
OpBranch %144
|
||||
%144 = OpLabel
|
||||
%145 = OpLoad %40 %143
|
||||
%146 = OpIEqual %42 %43 %145
|
||||
%147 = OpAll %9 %146
|
||||
OpSelectionMerge %148 None
|
||||
OpBranchConditional %147 %140 %148
|
||||
%148 = OpLabel
|
||||
%149 = OpCompositeExtract %3 %145 1
|
||||
%150 = OpIEqual %9 %149 %22
|
||||
%151 = OpSelect %3 %150 %26 %22
|
||||
%152 = OpCompositeConstruct %40 %151 %26
|
||||
%153 = OpISub %40 %145 %152
|
||||
OpStore %143 %153
|
||||
OpBranch %141
|
||||
%141 = OpLabel
|
||||
%154 = OpLoad %9 %111
|
||||
%155 = OpLogicalNot %9 %154
|
||||
OpSelectionMerge %156 None
|
||||
OpBranchConditional %155 %156 %157
|
||||
%157 = OpLabel
|
||||
OpBranch %140
|
||||
%156 = OpLabel
|
||||
OpBranch %158
|
||||
%158 = OpLabel
|
||||
%160 = OpLoad %7 %108
|
||||
%161 = OpIAdd %7 %160 %106
|
||||
%162 = OpLoad %3 %107
|
||||
%163 = OpLoad %7 %108
|
||||
%165 = OpAccessChain %136 %105 %162
|
||||
%166 = OpAtomicCompareExchange %7 %165 %67 %22 %22 %161 %163
|
||||
%167 = OpIEqual %9 %166 %163
|
||||
%164 = OpCompositeConstruct %11 %166 %167
|
||||
%168 = OpCompositeExtract %7 %164 0
|
||||
OpStore %108 %168
|
||||
%169 = OpCompositeExtract %9 %164 1
|
||||
OpStore %111 %169
|
||||
OpBranch %159
|
||||
%159 = OpLabel
|
||||
%161 = OpLoad %7 %109
|
||||
%162 = OpIAdd %7 %161 %107
|
||||
%163 = OpLoad %3 %108
|
||||
%164 = OpLoad %7 %109
|
||||
%166 = OpAccessChain %137 %106 %163
|
||||
%167 = OpAtomicCompareExchange %7 %166 %67 %69 %69 %162 %164
|
||||
%168 = OpIEqual %9 %167 %164
|
||||
%165 = OpCompositeConstruct %11 %167 %168
|
||||
%169 = OpCompositeExtract %7 %165 0
|
||||
OpStore %109 %169
|
||||
%170 = OpCompositeExtract %9 %165 1
|
||||
OpStore %112 %170
|
||||
OpBranch %160
|
||||
%160 = OpLabel
|
||||
OpBranch %143
|
||||
%143 = OpLabel
|
||||
OpBranch %140
|
||||
%141 = OpLabel
|
||||
OpBranch %135
|
||||
%135 = OpLabel
|
||||
OpBranch %118
|
||||
%118 = OpLabel
|
||||
%171 = OpLoad %3 %108
|
||||
%172 = OpIAdd %3 %171 %26
|
||||
OpStore %108 %172
|
||||
OpBranch %115
|
||||
%116 = OpLabel
|
||||
OpBranch %142
|
||||
%142 = OpLabel
|
||||
OpBranch %139
|
||||
%140 = OpLabel
|
||||
OpBranch %134
|
||||
%134 = OpLabel
|
||||
OpBranch %117
|
||||
%117 = OpLabel
|
||||
%170 = OpLoad %3 %107
|
||||
%171 = OpIAdd %3 %170 %26
|
||||
OpStore %107 %171
|
||||
OpBranch %114
|
||||
%115 = OpLabel
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
@ -1,15 +1,15 @@
|
||||
; SPIR-V
|
||||
; Version: 1.1
|
||||
; Generator: rspirv
|
||||
; Bound: 174
|
||||
; Bound: 173
|
||||
OpCapability Shader
|
||||
OpExtension "SPV_KHR_storage_buffer_storage_class"
|
||||
%1 = OpExtInstImport "GLSL.std.450"
|
||||
OpMemoryModel Logical GLSL450
|
||||
OpEntryPoint GLCompute %18 "test_atomic_compare_exchange_i32"
|
||||
OpEntryPoint GLCompute %105 "test_atomic_compare_exchange_u32"
|
||||
OpEntryPoint GLCompute %104 "test_atomic_compare_exchange_u32"
|
||||
OpExecutionMode %18 LocalSize 1 1 1
|
||||
OpExecutionMode %105 LocalSize 1 1 1
|
||||
OpExecutionMode %104 LocalSize 1 1 1
|
||||
OpDecorate %5 ArrayStride 4
|
||||
OpDecorate %7 ArrayStride 4
|
||||
OpMemberDecorate %9 0 Offset 0
|
||||
@ -59,18 +59,17 @@ OpMemberDecorate %15 0 Offset 0
|
||||
%45 = OpConstantComposite %40 %44 %44
|
||||
%64 = OpTypePointer StorageBuffer %4
|
||||
%67 = OpConstant %4 1
|
||||
%68 = OpConstant %3 64
|
||||
%106 = OpTypePointer StorageBuffer %7
|
||||
%110 = OpConstantNull %3
|
||||
%112 = OpConstantNull %8
|
||||
%136 = OpTypePointer StorageBuffer %3
|
||||
%105 = OpTypePointer StorageBuffer %7
|
||||
%109 = OpConstantNull %3
|
||||
%111 = OpConstantNull %8
|
||||
%135 = OpTypePointer StorageBuffer %3
|
||||
%18 = OpFunction %2 None %19
|
||||
%17 = OpLabel
|
||||
%27 = OpVariable %28 Function %21
|
||||
%29 = OpVariable %30 Function %31
|
||||
%32 = OpVariable %33 Function %34
|
||||
%46 = OpVariable %41 Function %45
|
||||
%73 = OpVariable %41 Function %45
|
||||
%72 = OpVariable %41 Function %45
|
||||
%22 = OpAccessChain %20 %11 %21
|
||||
OpBranch %35
|
||||
%35 = OpLabel
|
||||
@ -104,167 +103,167 @@ OpBranch %61
|
||||
%61 = OpLabel
|
||||
%63 = OpLoad %3 %27
|
||||
%65 = OpAccessChain %64 %22 %63
|
||||
%66 = OpAtomicLoad %4 %65 %67 %68
|
||||
%66 = OpAtomicLoad %4 %65 %67 %21
|
||||
OpStore %29 %66
|
||||
OpStore %32 %23
|
||||
OpBranch %69
|
||||
%69 = OpLabel
|
||||
OpLoopMerge %70 %72 None
|
||||
OpBranch %74
|
||||
%74 = OpLabel
|
||||
%75 = OpLoad %40 %73
|
||||
%76 = OpIEqual %42 %43 %75
|
||||
%77 = OpAll %8 %76
|
||||
OpSelectionMerge %78 None
|
||||
OpBranchConditional %77 %70 %78
|
||||
%78 = OpLabel
|
||||
%79 = OpCompositeExtract %3 %75 1
|
||||
%80 = OpIEqual %8 %79 %21
|
||||
%81 = OpSelect %3 %80 %26 %21
|
||||
%82 = OpCompositeConstruct %40 %81 %26
|
||||
%83 = OpISub %40 %75 %82
|
||||
OpStore %73 %83
|
||||
OpBranch %71
|
||||
%71 = OpLabel
|
||||
%84 = OpLoad %8 %32
|
||||
%85 = OpLogicalNot %8 %84
|
||||
OpSelectionMerge %86 None
|
||||
OpBranchConditional %85 %86 %87
|
||||
%87 = OpLabel
|
||||
OpBranch %68
|
||||
%68 = OpLabel
|
||||
OpLoopMerge %69 %71 None
|
||||
OpBranch %73
|
||||
%73 = OpLabel
|
||||
%74 = OpLoad %40 %72
|
||||
%75 = OpIEqual %42 %43 %74
|
||||
%76 = OpAll %8 %75
|
||||
OpSelectionMerge %77 None
|
||||
OpBranchConditional %76 %69 %77
|
||||
%77 = OpLabel
|
||||
%78 = OpCompositeExtract %3 %74 1
|
||||
%79 = OpIEqual %8 %78 %21
|
||||
%80 = OpSelect %3 %79 %26 %21
|
||||
%81 = OpCompositeConstruct %40 %80 %26
|
||||
%82 = OpISub %40 %74 %81
|
||||
OpStore %72 %82
|
||||
OpBranch %70
|
||||
%70 = OpLabel
|
||||
%83 = OpLoad %8 %32
|
||||
%84 = OpLogicalNot %8 %83
|
||||
OpSelectionMerge %85 None
|
||||
OpBranchConditional %84 %85 %86
|
||||
%86 = OpLabel
|
||||
OpBranch %69
|
||||
%85 = OpLabel
|
||||
OpBranch %87
|
||||
%87 = OpLabel
|
||||
%89 = OpLoad %4 %29
|
||||
%90 = OpBitcast %24 %89
|
||||
%91 = OpFAdd %24 %90 %25
|
||||
%92 = OpBitcast %4 %91
|
||||
%93 = OpLoad %3 %27
|
||||
%94 = OpLoad %4 %29
|
||||
%96 = OpAccessChain %64 %22 %93
|
||||
%97 = OpAtomicCompareExchange %4 %96 %67 %21 %21 %92 %94
|
||||
%98 = OpIEqual %8 %97 %94
|
||||
%95 = OpCompositeConstruct %9 %97 %98
|
||||
%99 = OpCompositeExtract %4 %95 0
|
||||
OpStore %29 %99
|
||||
%100 = OpCompositeExtract %8 %95 1
|
||||
OpStore %32 %100
|
||||
OpBranch %88
|
||||
%88 = OpLabel
|
||||
%90 = OpLoad %4 %29
|
||||
%91 = OpBitcast %24 %90
|
||||
%92 = OpFAdd %24 %91 %25
|
||||
%93 = OpBitcast %4 %92
|
||||
%94 = OpLoad %3 %27
|
||||
%95 = OpLoad %4 %29
|
||||
%97 = OpAccessChain %64 %22 %94
|
||||
%98 = OpAtomicCompareExchange %4 %97 %67 %68 %68 %93 %95
|
||||
%99 = OpIEqual %8 %98 %95
|
||||
%96 = OpCompositeConstruct %9 %98 %99
|
||||
%100 = OpCompositeExtract %4 %96 0
|
||||
OpStore %29 %100
|
||||
%101 = OpCompositeExtract %8 %96 1
|
||||
OpStore %32 %101
|
||||
OpBranch %89
|
||||
%89 = OpLabel
|
||||
OpBranch %72
|
||||
%72 = OpLabel
|
||||
OpBranch %69
|
||||
%70 = OpLabel
|
||||
OpBranch %71
|
||||
%71 = OpLabel
|
||||
OpBranch %68
|
||||
%69 = OpLabel
|
||||
OpBranch %62
|
||||
%62 = OpLabel
|
||||
OpBranch %39
|
||||
%39 = OpLabel
|
||||
%102 = OpLoad %3 %27
|
||||
%103 = OpIAdd %3 %102 %26
|
||||
OpStore %27 %103
|
||||
%101 = OpLoad %3 %27
|
||||
%102 = OpIAdd %3 %101 %26
|
||||
OpStore %27 %102
|
||||
OpBranch %36
|
||||
%37 = OpLabel
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
%105 = OpFunction %2 None %19
|
||||
%104 = OpLabel
|
||||
%108 = OpVariable %28 Function %21
|
||||
%109 = OpVariable %28 Function %110
|
||||
%111 = OpVariable %33 Function %112
|
||||
%118 = OpVariable %41 Function %45
|
||||
%143 = OpVariable %41 Function %45
|
||||
%107 = OpAccessChain %106 %14 %21
|
||||
%104 = OpFunction %2 None %19
|
||||
%103 = OpLabel
|
||||
%107 = OpVariable %28 Function %21
|
||||
%108 = OpVariable %28 Function %109
|
||||
%110 = OpVariable %33 Function %111
|
||||
%117 = OpVariable %41 Function %45
|
||||
%142 = OpVariable %41 Function %45
|
||||
%106 = OpAccessChain %105 %14 %21
|
||||
OpBranch %112
|
||||
%112 = OpLabel
|
||||
OpBranch %113
|
||||
%113 = OpLabel
|
||||
OpBranch %114
|
||||
%114 = OpLabel
|
||||
OpLoopMerge %115 %117 None
|
||||
OpBranch %119
|
||||
%119 = OpLabel
|
||||
%120 = OpLoad %40 %118
|
||||
%121 = OpIEqual %42 %43 %120
|
||||
%122 = OpAll %8 %121
|
||||
OpSelectionMerge %123 None
|
||||
OpBranchConditional %122 %115 %123
|
||||
%123 = OpLabel
|
||||
%124 = OpCompositeExtract %3 %120 1
|
||||
%125 = OpIEqual %8 %124 %21
|
||||
%126 = OpSelect %3 %125 %26 %21
|
||||
%127 = OpCompositeConstruct %40 %126 %26
|
||||
%128 = OpISub %40 %120 %127
|
||||
OpStore %118 %128
|
||||
OpBranch %116
|
||||
%116 = OpLabel
|
||||
%129 = OpLoad %3 %108
|
||||
%130 = OpULessThan %8 %129 %6
|
||||
OpSelectionMerge %131 None
|
||||
OpBranchConditional %130 %131 %132
|
||||
%132 = OpLabel
|
||||
OpLoopMerge %114 %116 None
|
||||
OpBranch %118
|
||||
%118 = OpLabel
|
||||
%119 = OpLoad %40 %117
|
||||
%120 = OpIEqual %42 %43 %119
|
||||
%121 = OpAll %8 %120
|
||||
OpSelectionMerge %122 None
|
||||
OpBranchConditional %121 %114 %122
|
||||
%122 = OpLabel
|
||||
%123 = OpCompositeExtract %3 %119 1
|
||||
%124 = OpIEqual %8 %123 %21
|
||||
%125 = OpSelect %3 %124 %26 %21
|
||||
%126 = OpCompositeConstruct %40 %125 %26
|
||||
%127 = OpISub %40 %119 %126
|
||||
OpStore %117 %127
|
||||
OpBranch %115
|
||||
%115 = OpLabel
|
||||
%128 = OpLoad %3 %107
|
||||
%129 = OpULessThan %8 %128 %6
|
||||
OpSelectionMerge %130 None
|
||||
OpBranchConditional %129 %130 %131
|
||||
%131 = OpLabel
|
||||
OpBranch %133
|
||||
%133 = OpLabel
|
||||
%135 = OpLoad %3 %108
|
||||
%137 = OpAccessChain %136 %107 %135
|
||||
%138 = OpAtomicLoad %3 %137 %67 %68
|
||||
OpStore %109 %138
|
||||
OpStore %111 %23
|
||||
OpBranch %139
|
||||
%139 = OpLabel
|
||||
OpLoopMerge %140 %142 None
|
||||
OpBranch %144
|
||||
%144 = OpLabel
|
||||
%145 = OpLoad %40 %143
|
||||
%146 = OpIEqual %42 %43 %145
|
||||
%147 = OpAll %8 %146
|
||||
OpSelectionMerge %148 None
|
||||
OpBranchConditional %147 %140 %148
|
||||
%148 = OpLabel
|
||||
%149 = OpCompositeExtract %3 %145 1
|
||||
%150 = OpIEqual %8 %149 %21
|
||||
%151 = OpSelect %3 %150 %26 %21
|
||||
%152 = OpCompositeConstruct %40 %151 %26
|
||||
%153 = OpISub %40 %145 %152
|
||||
OpStore %143 %153
|
||||
OpBranch %141
|
||||
%141 = OpLabel
|
||||
%154 = OpLoad %8 %111
|
||||
%155 = OpLogicalNot %8 %154
|
||||
OpSelectionMerge %156 None
|
||||
OpBranchConditional %155 %156 %157
|
||||
%157 = OpLabel
|
||||
OpBranch %114
|
||||
%130 = OpLabel
|
||||
OpBranch %132
|
||||
%132 = OpLabel
|
||||
%134 = OpLoad %3 %107
|
||||
%136 = OpAccessChain %135 %106 %134
|
||||
%137 = OpAtomicLoad %3 %136 %67 %21
|
||||
OpStore %108 %137
|
||||
OpStore %110 %23
|
||||
OpBranch %138
|
||||
%138 = OpLabel
|
||||
OpLoopMerge %139 %141 None
|
||||
OpBranch %143
|
||||
%143 = OpLabel
|
||||
%144 = OpLoad %40 %142
|
||||
%145 = OpIEqual %42 %43 %144
|
||||
%146 = OpAll %8 %145
|
||||
OpSelectionMerge %147 None
|
||||
OpBranchConditional %146 %139 %147
|
||||
%147 = OpLabel
|
||||
%148 = OpCompositeExtract %3 %144 1
|
||||
%149 = OpIEqual %8 %148 %21
|
||||
%150 = OpSelect %3 %149 %26 %21
|
||||
%151 = OpCompositeConstruct %40 %150 %26
|
||||
%152 = OpISub %40 %144 %151
|
||||
OpStore %142 %152
|
||||
OpBranch %140
|
||||
%140 = OpLabel
|
||||
%153 = OpLoad %8 %110
|
||||
%154 = OpLogicalNot %8 %153
|
||||
OpSelectionMerge %155 None
|
||||
OpBranchConditional %154 %155 %156
|
||||
%156 = OpLabel
|
||||
OpBranch %139
|
||||
%155 = OpLabel
|
||||
OpBranch %157
|
||||
%157 = OpLabel
|
||||
%159 = OpLoad %3 %108
|
||||
%160 = OpBitcast %24 %159
|
||||
%161 = OpFAdd %24 %160 %25
|
||||
%162 = OpBitcast %3 %161
|
||||
%163 = OpLoad %3 %107
|
||||
%164 = OpLoad %3 %108
|
||||
%166 = OpAccessChain %135 %106 %163
|
||||
%167 = OpAtomicCompareExchange %3 %166 %67 %21 %21 %162 %164
|
||||
%168 = OpIEqual %8 %167 %164
|
||||
%165 = OpCompositeConstruct %10 %167 %168
|
||||
%169 = OpCompositeExtract %3 %165 0
|
||||
OpStore %108 %169
|
||||
%170 = OpCompositeExtract %8 %165 1
|
||||
OpStore %110 %170
|
||||
OpBranch %158
|
||||
%158 = OpLabel
|
||||
%160 = OpLoad %3 %109
|
||||
%161 = OpBitcast %24 %160
|
||||
%162 = OpFAdd %24 %161 %25
|
||||
%163 = OpBitcast %3 %162
|
||||
%164 = OpLoad %3 %108
|
||||
%165 = OpLoad %3 %109
|
||||
%167 = OpAccessChain %136 %107 %164
|
||||
%168 = OpAtomicCompareExchange %3 %167 %67 %68 %68 %163 %165
|
||||
%169 = OpIEqual %8 %168 %165
|
||||
%166 = OpCompositeConstruct %10 %168 %169
|
||||
%170 = OpCompositeExtract %3 %166 0
|
||||
OpStore %109 %170
|
||||
%171 = OpCompositeExtract %8 %166 1
|
||||
OpStore %111 %171
|
||||
OpBranch %159
|
||||
%159 = OpLabel
|
||||
OpBranch %142
|
||||
%142 = OpLabel
|
||||
OpBranch %139
|
||||
%140 = OpLabel
|
||||
OpBranch %134
|
||||
%134 = OpLabel
|
||||
OpBranch %117
|
||||
%117 = OpLabel
|
||||
%172 = OpLoad %3 %108
|
||||
%173 = OpIAdd %3 %172 %26
|
||||
OpStore %108 %173
|
||||
OpBranch %114
|
||||
%115 = OpLabel
|
||||
OpBranch %141
|
||||
%141 = OpLabel
|
||||
OpBranch %138
|
||||
%139 = OpLabel
|
||||
OpBranch %133
|
||||
%133 = OpLabel
|
||||
OpBranch %116
|
||||
%116 = OpLabel
|
||||
%171 = OpLoad %3 %107
|
||||
%172 = OpIAdd %3 %171 %26
|
||||
OpStore %107 %172
|
||||
OpBranch %113
|
||||
%114 = OpLabel
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
@ -1,7 +1,7 @@
|
||||
; SPIR-V
|
||||
; Version: 1.1
|
||||
; Generator: rspirv
|
||||
; Bound: 62
|
||||
; Bound: 61
|
||||
OpCapability Shader
|
||||
OpCapability AtomicFloat32AddEXT
|
||||
OpExtension "SPV_KHR_storage_buffer_storage_class"
|
||||
@ -52,9 +52,8 @@ OpDecorate %19 BuiltIn LocalInvocationId
|
||||
%31 = OpConstant %3 1.5
|
||||
%34 = OpTypeInt 32 1
|
||||
%33 = OpConstant %34 1
|
||||
%35 = OpConstant %6 64
|
||||
%36 = OpConstant %6 1
|
||||
%40 = OpConstant %6 264
|
||||
%35 = OpConstant %6 1
|
||||
%39 = OpConstant %6 264
|
||||
%22 = OpFunction %2 None %23
|
||||
%18 = OpLabel
|
||||
%21 = OpLoad %8 %19
|
||||
@ -63,36 +62,36 @@ OpDecorate %19 BuiltIn LocalInvocationId
|
||||
%30 = OpAccessChain %29 %15 %25
|
||||
OpBranch %32
|
||||
%32 = OpLabel
|
||||
OpAtomicStore %26 %33 %35 %31
|
||||
%37 = OpAccessChain %24 %28 %36
|
||||
OpAtomicStore %37 %33 %35 %31
|
||||
%38 = OpAccessChain %24 %30 %25
|
||||
OpAtomicStore %38 %33 %35 %31
|
||||
%39 = OpAccessChain %24 %30 %36 %36
|
||||
OpAtomicStore %39 %33 %35 %31
|
||||
OpControlBarrier %5 %5 %40
|
||||
%41 = OpAtomicLoad %3 %26 %33 %35
|
||||
%42 = OpAccessChain %24 %28 %36
|
||||
%43 = OpAtomicLoad %3 %42 %33 %35
|
||||
%44 = OpAccessChain %24 %30 %25
|
||||
%45 = OpAtomicLoad %3 %44 %33 %35
|
||||
%46 = OpAccessChain %24 %30 %36 %36
|
||||
%47 = OpAtomicLoad %3 %46 %33 %35
|
||||
OpControlBarrier %5 %5 %40
|
||||
%48 = OpAtomicFAddEXT %3 %26 %33 %35 %31
|
||||
%50 = OpAccessChain %24 %28 %36
|
||||
%49 = OpAtomicFAddEXT %3 %50 %33 %35 %31
|
||||
%52 = OpAccessChain %24 %30 %25
|
||||
%51 = OpAtomicFAddEXT %3 %52 %33 %35 %31
|
||||
%54 = OpAccessChain %24 %30 %36 %36
|
||||
%53 = OpAtomicFAddEXT %3 %54 %33 %35 %31
|
||||
OpControlBarrier %5 %5 %40
|
||||
%55 = OpAtomicExchange %3 %26 %33 %35 %31
|
||||
%57 = OpAccessChain %24 %28 %36
|
||||
%56 = OpAtomicExchange %3 %57 %33 %35 %31
|
||||
%59 = OpAccessChain %24 %30 %25
|
||||
%58 = OpAtomicExchange %3 %59 %33 %35 %31
|
||||
%61 = OpAccessChain %24 %30 %36 %36
|
||||
%60 = OpAtomicExchange %3 %61 %33 %35 %31
|
||||
OpAtomicStore %26 %33 %25 %31
|
||||
%36 = OpAccessChain %24 %28 %35
|
||||
OpAtomicStore %36 %33 %25 %31
|
||||
%37 = OpAccessChain %24 %30 %25
|
||||
OpAtomicStore %37 %33 %25 %31
|
||||
%38 = OpAccessChain %24 %30 %35 %35
|
||||
OpAtomicStore %38 %33 %25 %31
|
||||
OpControlBarrier %5 %5 %39
|
||||
%40 = OpAtomicLoad %3 %26 %33 %25
|
||||
%41 = OpAccessChain %24 %28 %35
|
||||
%42 = OpAtomicLoad %3 %41 %33 %25
|
||||
%43 = OpAccessChain %24 %30 %25
|
||||
%44 = OpAtomicLoad %3 %43 %33 %25
|
||||
%45 = OpAccessChain %24 %30 %35 %35
|
||||
%46 = OpAtomicLoad %3 %45 %33 %25
|
||||
OpControlBarrier %5 %5 %39
|
||||
%47 = OpAtomicFAddEXT %3 %26 %33 %25 %31
|
||||
%49 = OpAccessChain %24 %28 %35
|
||||
%48 = OpAtomicFAddEXT %3 %49 %33 %25 %31
|
||||
%51 = OpAccessChain %24 %30 %25
|
||||
%50 = OpAtomicFAddEXT %3 %51 %33 %25 %31
|
||||
%53 = OpAccessChain %24 %30 %35 %35
|
||||
%52 = OpAtomicFAddEXT %3 %53 %33 %25 %31
|
||||
OpControlBarrier %5 %5 %39
|
||||
%54 = OpAtomicExchange %3 %26 %33 %25 %31
|
||||
%56 = OpAccessChain %24 %28 %35
|
||||
%55 = OpAtomicExchange %3 %56 %33 %25 %31
|
||||
%58 = OpAccessChain %24 %30 %25
|
||||
%57 = OpAtomicExchange %3 %58 %33 %25 %31
|
||||
%60 = OpAccessChain %24 %30 %35 %35
|
||||
%59 = OpAtomicExchange %3 %60 %33 %25 %31
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
@ -1,7 +1,7 @@
|
||||
; SPIR-V
|
||||
; Version: 1.0
|
||||
; Generator: rspirv
|
||||
; Bound: 67
|
||||
; Bound: 66
|
||||
OpCapability Shader
|
||||
OpCapability Int64Atomics
|
||||
OpCapability Int64
|
||||
@ -60,9 +60,8 @@ OpDecorate %22 BuiltIn LocalInvocationId
|
||||
%36 = OpConstant %3 1
|
||||
%41 = OpTypeInt 32 1
|
||||
%40 = OpConstant %41 1
|
||||
%42 = OpConstant %6 64
|
||||
%46 = OpConstant %6 1
|
||||
%54 = OpConstant %6 264
|
||||
%45 = OpConstant %6 1
|
||||
%53 = OpConstant %6 264
|
||||
%25 = OpFunction %2 None %26
|
||||
%21 = OpLabel
|
||||
%24 = OpLoad %8 %22
|
||||
@ -73,29 +72,29 @@ OpDecorate %22 BuiltIn LocalInvocationId
|
||||
OpBranch %37
|
||||
%37 = OpLabel
|
||||
%38 = OpLoad %3 %35
|
||||
%39 = OpAtomicUMax %3 %29 %40 %42 %38
|
||||
%43 = OpLoad %3 %35
|
||||
%44 = OpIAdd %3 %36 %43
|
||||
%47 = OpAccessChain %27 %31 %46
|
||||
%45 = OpAtomicUMax %3 %47 %40 %42 %44
|
||||
%49 = OpAccessChain %27 %33 %28
|
||||
%48 = OpAtomicUMax %3 %49 %40 %42 %36
|
||||
%50 = OpCompositeExtract %6 %24 0
|
||||
%51 = OpUConvert %3 %50
|
||||
%53 = OpAccessChain %27 %33 %46 %46
|
||||
%52 = OpAtomicUMax %3 %53 %40 %42 %51
|
||||
OpControlBarrier %5 %5 %54
|
||||
%55 = OpLoad %3 %35
|
||||
%56 = OpAtomicUMin %3 %29 %40 %42 %55
|
||||
%57 = OpLoad %3 %35
|
||||
%58 = OpIAdd %3 %36 %57
|
||||
%60 = OpAccessChain %27 %31 %46
|
||||
%59 = OpAtomicUMin %3 %60 %40 %42 %58
|
||||
%62 = OpAccessChain %27 %33 %28
|
||||
%61 = OpAtomicUMin %3 %62 %40 %42 %36
|
||||
%63 = OpCompositeExtract %6 %24 0
|
||||
%64 = OpUConvert %3 %63
|
||||
%66 = OpAccessChain %27 %33 %46 %46
|
||||
%65 = OpAtomicUMin %3 %66 %40 %42 %64
|
||||
%39 = OpAtomicUMax %3 %29 %40 %28 %38
|
||||
%42 = OpLoad %3 %35
|
||||
%43 = OpIAdd %3 %36 %42
|
||||
%46 = OpAccessChain %27 %31 %45
|
||||
%44 = OpAtomicUMax %3 %46 %40 %28 %43
|
||||
%48 = OpAccessChain %27 %33 %28
|
||||
%47 = OpAtomicUMax %3 %48 %40 %28 %36
|
||||
%49 = OpCompositeExtract %6 %24 0
|
||||
%50 = OpUConvert %3 %49
|
||||
%52 = OpAccessChain %27 %33 %45 %45
|
||||
%51 = OpAtomicUMax %3 %52 %40 %28 %50
|
||||
OpControlBarrier %5 %5 %53
|
||||
%54 = OpLoad %3 %35
|
||||
%55 = OpAtomicUMin %3 %29 %40 %28 %54
|
||||
%56 = OpLoad %3 %35
|
||||
%57 = OpIAdd %3 %36 %56
|
||||
%59 = OpAccessChain %27 %31 %45
|
||||
%58 = OpAtomicUMin %3 %59 %40 %28 %57
|
||||
%61 = OpAccessChain %27 %33 %28
|
||||
%60 = OpAtomicUMin %3 %61 %40 %28 %36
|
||||
%62 = OpCompositeExtract %6 %24 0
|
||||
%63 = OpUConvert %3 %62
|
||||
%65 = OpAccessChain %27 %33 %45 %45
|
||||
%64 = OpAtomicUMin %3 %65 %40 %28 %63
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
@ -1,7 +1,7 @@
|
||||
; SPIR-V
|
||||
; Version: 1.0
|
||||
; Generator: rspirv
|
||||
; Bound: 227
|
||||
; Bound: 225
|
||||
OpCapability Shader
|
||||
OpCapability Int64Atomics
|
||||
OpCapability Int64
|
||||
@ -75,12 +75,10 @@ OpDecorate %29 BuiltIn LocalInvocationId
|
||||
%55 = OpConstant %7 264
|
||||
%58 = OpTypeInt 32 1
|
||||
%57 = OpConstant %58 1
|
||||
%59 = OpConstant %7 64
|
||||
%60 = OpTypePointer StorageBuffer %4
|
||||
%61 = OpConstant %7 1
|
||||
%65 = OpConstant %58 2
|
||||
%66 = OpConstant %7 256
|
||||
%67 = OpTypePointer Workgroup %4
|
||||
%59 = OpTypePointer StorageBuffer %4
|
||||
%60 = OpConstant %7 1
|
||||
%64 = OpConstant %58 2
|
||||
%65 = OpTypePointer Workgroup %4
|
||||
%32 = OpFunction %2 None %33
|
||||
%28 = OpLabel
|
||||
%31 = OpLoad %9 %29
|
||||
@ -102,183 +100,183 @@ OpBranch %53
|
||||
OpControlBarrier %6 %6 %55
|
||||
OpBranch %56
|
||||
%56 = OpLabel
|
||||
OpAtomicStore %36 %57 %59 %41
|
||||
%62 = OpAccessChain %60 %38 %61
|
||||
OpAtomicStore %62 %57 %59 %42
|
||||
%63 = OpAccessChain %34 %40 %35
|
||||
OpAtomicStore %63 %57 %59 %41
|
||||
%64 = OpAccessChain %60 %40 %61 %61
|
||||
OpAtomicStore %64 %57 %59 %42
|
||||
OpAtomicStore %22 %65 %66 %41
|
||||
%68 = OpAccessChain %67 %24 %61
|
||||
OpAtomicStore %68 %65 %66 %42
|
||||
%69 = OpAccessChain %23 %26 %35
|
||||
OpAtomicStore %69 %65 %66 %41
|
||||
%70 = OpAccessChain %67 %26 %61 %61
|
||||
OpAtomicStore %70 %65 %66 %42
|
||||
OpAtomicStore %36 %57 %35 %41
|
||||
%61 = OpAccessChain %59 %38 %60
|
||||
OpAtomicStore %61 %57 %35 %42
|
||||
%62 = OpAccessChain %34 %40 %35
|
||||
OpAtomicStore %62 %57 %35 %41
|
||||
%63 = OpAccessChain %59 %40 %60 %60
|
||||
OpAtomicStore %63 %57 %35 %42
|
||||
OpAtomicStore %22 %64 %35 %41
|
||||
%66 = OpAccessChain %65 %24 %60
|
||||
OpAtomicStore %66 %64 %35 %42
|
||||
%67 = OpAccessChain %23 %26 %35
|
||||
OpAtomicStore %67 %64 %35 %41
|
||||
%68 = OpAccessChain %65 %26 %60 %60
|
||||
OpAtomicStore %68 %64 %35 %42
|
||||
OpControlBarrier %6 %6 %55
|
||||
%71 = OpAtomicLoad %3 %36 %57 %59
|
||||
%72 = OpAccessChain %60 %38 %61
|
||||
%73 = OpAtomicLoad %4 %72 %57 %59
|
||||
%74 = OpAccessChain %34 %40 %35
|
||||
%75 = OpAtomicLoad %3 %74 %57 %59
|
||||
%76 = OpAccessChain %60 %40 %61 %61
|
||||
%77 = OpAtomicLoad %4 %76 %57 %59
|
||||
%78 = OpAtomicLoad %3 %22 %65 %66
|
||||
%79 = OpAccessChain %67 %24 %61
|
||||
%80 = OpAtomicLoad %4 %79 %65 %66
|
||||
%81 = OpAccessChain %23 %26 %35
|
||||
%82 = OpAtomicLoad %3 %81 %65 %66
|
||||
%83 = OpAccessChain %67 %26 %61 %61
|
||||
%84 = OpAtomicLoad %4 %83 %65 %66
|
||||
%69 = OpAtomicLoad %3 %36 %57 %35
|
||||
%70 = OpAccessChain %59 %38 %60
|
||||
%71 = OpAtomicLoad %4 %70 %57 %35
|
||||
%72 = OpAccessChain %34 %40 %35
|
||||
%73 = OpAtomicLoad %3 %72 %57 %35
|
||||
%74 = OpAccessChain %59 %40 %60 %60
|
||||
%75 = OpAtomicLoad %4 %74 %57 %35
|
||||
%76 = OpAtomicLoad %3 %22 %64 %35
|
||||
%77 = OpAccessChain %65 %24 %60
|
||||
%78 = OpAtomicLoad %4 %77 %64 %35
|
||||
%79 = OpAccessChain %23 %26 %35
|
||||
%80 = OpAtomicLoad %3 %79 %64 %35
|
||||
%81 = OpAccessChain %65 %26 %60 %60
|
||||
%82 = OpAtomicLoad %4 %81 %64 %35
|
||||
OpControlBarrier %6 %6 %55
|
||||
%85 = OpAtomicIAdd %3 %36 %57 %59 %41
|
||||
%87 = OpAccessChain %60 %38 %61
|
||||
%86 = OpAtomicIAdd %4 %87 %57 %59 %42
|
||||
%89 = OpAccessChain %34 %40 %35
|
||||
%88 = OpAtomicIAdd %3 %89 %57 %59 %41
|
||||
%91 = OpAccessChain %60 %40 %61 %61
|
||||
%90 = OpAtomicIAdd %4 %91 %57 %59 %42
|
||||
%92 = OpAtomicIAdd %3 %22 %65 %66 %41
|
||||
%94 = OpAccessChain %67 %24 %61
|
||||
%93 = OpAtomicIAdd %4 %94 %65 %66 %42
|
||||
%96 = OpAccessChain %23 %26 %35
|
||||
%95 = OpAtomicIAdd %3 %96 %65 %66 %41
|
||||
%98 = OpAccessChain %67 %26 %61 %61
|
||||
%97 = OpAtomicIAdd %4 %98 %65 %66 %42
|
||||
%83 = OpAtomicIAdd %3 %36 %57 %35 %41
|
||||
%85 = OpAccessChain %59 %38 %60
|
||||
%84 = OpAtomicIAdd %4 %85 %57 %35 %42
|
||||
%87 = OpAccessChain %34 %40 %35
|
||||
%86 = OpAtomicIAdd %3 %87 %57 %35 %41
|
||||
%89 = OpAccessChain %59 %40 %60 %60
|
||||
%88 = OpAtomicIAdd %4 %89 %57 %35 %42
|
||||
%90 = OpAtomicIAdd %3 %22 %64 %35 %41
|
||||
%92 = OpAccessChain %65 %24 %60
|
||||
%91 = OpAtomicIAdd %4 %92 %64 %35 %42
|
||||
%94 = OpAccessChain %23 %26 %35
|
||||
%93 = OpAtomicIAdd %3 %94 %64 %35 %41
|
||||
%96 = OpAccessChain %65 %26 %60 %60
|
||||
%95 = OpAtomicIAdd %4 %96 %64 %35 %42
|
||||
OpControlBarrier %6 %6 %55
|
||||
%99 = OpAtomicISub %3 %36 %57 %59 %41
|
||||
%101 = OpAccessChain %60 %38 %61
|
||||
%100 = OpAtomicISub %4 %101 %57 %59 %42
|
||||
%103 = OpAccessChain %34 %40 %35
|
||||
%102 = OpAtomicISub %3 %103 %57 %59 %41
|
||||
%105 = OpAccessChain %60 %40 %61 %61
|
||||
%104 = OpAtomicISub %4 %105 %57 %59 %42
|
||||
%106 = OpAtomicISub %3 %22 %65 %66 %41
|
||||
%108 = OpAccessChain %67 %24 %61
|
||||
%107 = OpAtomicISub %4 %108 %65 %66 %42
|
||||
%110 = OpAccessChain %23 %26 %35
|
||||
%109 = OpAtomicISub %3 %110 %65 %66 %41
|
||||
%112 = OpAccessChain %67 %26 %61 %61
|
||||
%111 = OpAtomicISub %4 %112 %65 %66 %42
|
||||
%97 = OpAtomicISub %3 %36 %57 %35 %41
|
||||
%99 = OpAccessChain %59 %38 %60
|
||||
%98 = OpAtomicISub %4 %99 %57 %35 %42
|
||||
%101 = OpAccessChain %34 %40 %35
|
||||
%100 = OpAtomicISub %3 %101 %57 %35 %41
|
||||
%103 = OpAccessChain %59 %40 %60 %60
|
||||
%102 = OpAtomicISub %4 %103 %57 %35 %42
|
||||
%104 = OpAtomicISub %3 %22 %64 %35 %41
|
||||
%106 = OpAccessChain %65 %24 %60
|
||||
%105 = OpAtomicISub %4 %106 %64 %35 %42
|
||||
%108 = OpAccessChain %23 %26 %35
|
||||
%107 = OpAtomicISub %3 %108 %64 %35 %41
|
||||
%110 = OpAccessChain %65 %26 %60 %60
|
||||
%109 = OpAtomicISub %4 %110 %64 %35 %42
|
||||
OpControlBarrier %6 %6 %55
|
||||
%113 = OpAtomicUMax %3 %36 %57 %59 %41
|
||||
%115 = OpAccessChain %60 %38 %61
|
||||
%114 = OpAtomicSMax %4 %115 %57 %59 %42
|
||||
%117 = OpAccessChain %34 %40 %35
|
||||
%116 = OpAtomicUMax %3 %117 %57 %59 %41
|
||||
%119 = OpAccessChain %60 %40 %61 %61
|
||||
%118 = OpAtomicSMax %4 %119 %57 %59 %42
|
||||
%120 = OpAtomicUMax %3 %22 %65 %66 %41
|
||||
%122 = OpAccessChain %67 %24 %61
|
||||
%121 = OpAtomicSMax %4 %122 %65 %66 %42
|
||||
%124 = OpAccessChain %23 %26 %35
|
||||
%123 = OpAtomicUMax %3 %124 %65 %66 %41
|
||||
%126 = OpAccessChain %67 %26 %61 %61
|
||||
%125 = OpAtomicSMax %4 %126 %65 %66 %42
|
||||
%111 = OpAtomicUMax %3 %36 %57 %35 %41
|
||||
%113 = OpAccessChain %59 %38 %60
|
||||
%112 = OpAtomicSMax %4 %113 %57 %35 %42
|
||||
%115 = OpAccessChain %34 %40 %35
|
||||
%114 = OpAtomicUMax %3 %115 %57 %35 %41
|
||||
%117 = OpAccessChain %59 %40 %60 %60
|
||||
%116 = OpAtomicSMax %4 %117 %57 %35 %42
|
||||
%118 = OpAtomicUMax %3 %22 %64 %35 %41
|
||||
%120 = OpAccessChain %65 %24 %60
|
||||
%119 = OpAtomicSMax %4 %120 %64 %35 %42
|
||||
%122 = OpAccessChain %23 %26 %35
|
||||
%121 = OpAtomicUMax %3 %122 %64 %35 %41
|
||||
%124 = OpAccessChain %65 %26 %60 %60
|
||||
%123 = OpAtomicSMax %4 %124 %64 %35 %42
|
||||
OpControlBarrier %6 %6 %55
|
||||
%127 = OpAtomicUMin %3 %36 %57 %59 %41
|
||||
%129 = OpAccessChain %60 %38 %61
|
||||
%128 = OpAtomicSMin %4 %129 %57 %59 %42
|
||||
%131 = OpAccessChain %34 %40 %35
|
||||
%130 = OpAtomicUMin %3 %131 %57 %59 %41
|
||||
%133 = OpAccessChain %60 %40 %61 %61
|
||||
%132 = OpAtomicSMin %4 %133 %57 %59 %42
|
||||
%134 = OpAtomicUMin %3 %22 %65 %66 %41
|
||||
%136 = OpAccessChain %67 %24 %61
|
||||
%135 = OpAtomicSMin %4 %136 %65 %66 %42
|
||||
%138 = OpAccessChain %23 %26 %35
|
||||
%137 = OpAtomicUMin %3 %138 %65 %66 %41
|
||||
%140 = OpAccessChain %67 %26 %61 %61
|
||||
%139 = OpAtomicSMin %4 %140 %65 %66 %42
|
||||
%125 = OpAtomicUMin %3 %36 %57 %35 %41
|
||||
%127 = OpAccessChain %59 %38 %60
|
||||
%126 = OpAtomicSMin %4 %127 %57 %35 %42
|
||||
%129 = OpAccessChain %34 %40 %35
|
||||
%128 = OpAtomicUMin %3 %129 %57 %35 %41
|
||||
%131 = OpAccessChain %59 %40 %60 %60
|
||||
%130 = OpAtomicSMin %4 %131 %57 %35 %42
|
||||
%132 = OpAtomicUMin %3 %22 %64 %35 %41
|
||||
%134 = OpAccessChain %65 %24 %60
|
||||
%133 = OpAtomicSMin %4 %134 %64 %35 %42
|
||||
%136 = OpAccessChain %23 %26 %35
|
||||
%135 = OpAtomicUMin %3 %136 %64 %35 %41
|
||||
%138 = OpAccessChain %65 %26 %60 %60
|
||||
%137 = OpAtomicSMin %4 %138 %64 %35 %42
|
||||
OpControlBarrier %6 %6 %55
|
||||
%141 = OpAtomicAnd %3 %36 %57 %59 %41
|
||||
%143 = OpAccessChain %60 %38 %61
|
||||
%142 = OpAtomicAnd %4 %143 %57 %59 %42
|
||||
%145 = OpAccessChain %34 %40 %35
|
||||
%144 = OpAtomicAnd %3 %145 %57 %59 %41
|
||||
%147 = OpAccessChain %60 %40 %61 %61
|
||||
%146 = OpAtomicAnd %4 %147 %57 %59 %42
|
||||
%148 = OpAtomicAnd %3 %22 %65 %66 %41
|
||||
%150 = OpAccessChain %67 %24 %61
|
||||
%149 = OpAtomicAnd %4 %150 %65 %66 %42
|
||||
%152 = OpAccessChain %23 %26 %35
|
||||
%151 = OpAtomicAnd %3 %152 %65 %66 %41
|
||||
%154 = OpAccessChain %67 %26 %61 %61
|
||||
%153 = OpAtomicAnd %4 %154 %65 %66 %42
|
||||
%139 = OpAtomicAnd %3 %36 %57 %35 %41
|
||||
%141 = OpAccessChain %59 %38 %60
|
||||
%140 = OpAtomicAnd %4 %141 %57 %35 %42
|
||||
%143 = OpAccessChain %34 %40 %35
|
||||
%142 = OpAtomicAnd %3 %143 %57 %35 %41
|
||||
%145 = OpAccessChain %59 %40 %60 %60
|
||||
%144 = OpAtomicAnd %4 %145 %57 %35 %42
|
||||
%146 = OpAtomicAnd %3 %22 %64 %35 %41
|
||||
%148 = OpAccessChain %65 %24 %60
|
||||
%147 = OpAtomicAnd %4 %148 %64 %35 %42
|
||||
%150 = OpAccessChain %23 %26 %35
|
||||
%149 = OpAtomicAnd %3 %150 %64 %35 %41
|
||||
%152 = OpAccessChain %65 %26 %60 %60
|
||||
%151 = OpAtomicAnd %4 %152 %64 %35 %42
|
||||
OpControlBarrier %6 %6 %55
|
||||
%155 = OpAtomicOr %3 %36 %57 %59 %41
|
||||
%157 = OpAccessChain %60 %38 %61
|
||||
%156 = OpAtomicOr %4 %157 %57 %59 %42
|
||||
%159 = OpAccessChain %34 %40 %35
|
||||
%158 = OpAtomicOr %3 %159 %57 %59 %41
|
||||
%161 = OpAccessChain %60 %40 %61 %61
|
||||
%160 = OpAtomicOr %4 %161 %57 %59 %42
|
||||
%162 = OpAtomicOr %3 %22 %65 %66 %41
|
||||
%164 = OpAccessChain %67 %24 %61
|
||||
%163 = OpAtomicOr %4 %164 %65 %66 %42
|
||||
%166 = OpAccessChain %23 %26 %35
|
||||
%165 = OpAtomicOr %3 %166 %65 %66 %41
|
||||
%168 = OpAccessChain %67 %26 %61 %61
|
||||
%167 = OpAtomicOr %4 %168 %65 %66 %42
|
||||
%153 = OpAtomicOr %3 %36 %57 %35 %41
|
||||
%155 = OpAccessChain %59 %38 %60
|
||||
%154 = OpAtomicOr %4 %155 %57 %35 %42
|
||||
%157 = OpAccessChain %34 %40 %35
|
||||
%156 = OpAtomicOr %3 %157 %57 %35 %41
|
||||
%159 = OpAccessChain %59 %40 %60 %60
|
||||
%158 = OpAtomicOr %4 %159 %57 %35 %42
|
||||
%160 = OpAtomicOr %3 %22 %64 %35 %41
|
||||
%162 = OpAccessChain %65 %24 %60
|
||||
%161 = OpAtomicOr %4 %162 %64 %35 %42
|
||||
%164 = OpAccessChain %23 %26 %35
|
||||
%163 = OpAtomicOr %3 %164 %64 %35 %41
|
||||
%166 = OpAccessChain %65 %26 %60 %60
|
||||
%165 = OpAtomicOr %4 %166 %64 %35 %42
|
||||
OpControlBarrier %6 %6 %55
|
||||
%169 = OpAtomicXor %3 %36 %57 %59 %41
|
||||
%171 = OpAccessChain %60 %38 %61
|
||||
%170 = OpAtomicXor %4 %171 %57 %59 %42
|
||||
%173 = OpAccessChain %34 %40 %35
|
||||
%172 = OpAtomicXor %3 %173 %57 %59 %41
|
||||
%175 = OpAccessChain %60 %40 %61 %61
|
||||
%174 = OpAtomicXor %4 %175 %57 %59 %42
|
||||
%176 = OpAtomicXor %3 %22 %65 %66 %41
|
||||
%178 = OpAccessChain %67 %24 %61
|
||||
%177 = OpAtomicXor %4 %178 %65 %66 %42
|
||||
%180 = OpAccessChain %23 %26 %35
|
||||
%179 = OpAtomicXor %3 %180 %65 %66 %41
|
||||
%182 = OpAccessChain %67 %26 %61 %61
|
||||
%181 = OpAtomicXor %4 %182 %65 %66 %42
|
||||
%183 = OpAtomicExchange %3 %36 %57 %59 %41
|
||||
%185 = OpAccessChain %60 %38 %61
|
||||
%184 = OpAtomicExchange %4 %185 %57 %59 %42
|
||||
%187 = OpAccessChain %34 %40 %35
|
||||
%186 = OpAtomicExchange %3 %187 %57 %59 %41
|
||||
%189 = OpAccessChain %60 %40 %61 %61
|
||||
%188 = OpAtomicExchange %4 %189 %57 %59 %42
|
||||
%190 = OpAtomicExchange %3 %22 %65 %66 %41
|
||||
%192 = OpAccessChain %67 %24 %61
|
||||
%191 = OpAtomicExchange %4 %192 %65 %66 %42
|
||||
%194 = OpAccessChain %23 %26 %35
|
||||
%193 = OpAtomicExchange %3 %194 %65 %66 %41
|
||||
%196 = OpAccessChain %67 %26 %61 %61
|
||||
%195 = OpAtomicExchange %4 %196 %65 %66 %42
|
||||
%198 = OpAtomicCompareExchange %3 %36 %57 %59 %59 %43 %41
|
||||
%199 = OpIEqual %10 %198 %41
|
||||
%197 = OpCompositeConstruct %11 %198 %199
|
||||
%201 = OpAccessChain %60 %38 %61
|
||||
%202 = OpAtomicCompareExchange %4 %201 %57 %59 %59 %44 %42
|
||||
%203 = OpIEqual %10 %202 %42
|
||||
%200 = OpCompositeConstruct %12 %202 %203
|
||||
%205 = OpAccessChain %34 %40 %35
|
||||
%206 = OpAtomicCompareExchange %3 %205 %57 %59 %59 %43 %41
|
||||
%207 = OpIEqual %10 %206 %41
|
||||
%204 = OpCompositeConstruct %11 %206 %207
|
||||
%209 = OpAccessChain %60 %40 %61 %61
|
||||
%210 = OpAtomicCompareExchange %4 %209 %57 %59 %59 %44 %42
|
||||
%211 = OpIEqual %10 %210 %42
|
||||
%208 = OpCompositeConstruct %12 %210 %211
|
||||
%213 = OpAtomicCompareExchange %3 %22 %65 %66 %66 %43 %41
|
||||
%214 = OpIEqual %10 %213 %41
|
||||
%212 = OpCompositeConstruct %11 %213 %214
|
||||
%216 = OpAccessChain %67 %24 %61
|
||||
%217 = OpAtomicCompareExchange %4 %216 %65 %66 %66 %44 %42
|
||||
%218 = OpIEqual %10 %217 %42
|
||||
%215 = OpCompositeConstruct %12 %217 %218
|
||||
%220 = OpAccessChain %23 %26 %35
|
||||
%221 = OpAtomicCompareExchange %3 %220 %65 %66 %66 %43 %41
|
||||
%222 = OpIEqual %10 %221 %41
|
||||
%219 = OpCompositeConstruct %11 %221 %222
|
||||
%224 = OpAccessChain %67 %26 %61 %61
|
||||
%225 = OpAtomicCompareExchange %4 %224 %65 %66 %66 %44 %42
|
||||
%226 = OpIEqual %10 %225 %42
|
||||
%223 = OpCompositeConstruct %12 %225 %226
|
||||
%167 = OpAtomicXor %3 %36 %57 %35 %41
|
||||
%169 = OpAccessChain %59 %38 %60
|
||||
%168 = OpAtomicXor %4 %169 %57 %35 %42
|
||||
%171 = OpAccessChain %34 %40 %35
|
||||
%170 = OpAtomicXor %3 %171 %57 %35 %41
|
||||
%173 = OpAccessChain %59 %40 %60 %60
|
||||
%172 = OpAtomicXor %4 %173 %57 %35 %42
|
||||
%174 = OpAtomicXor %3 %22 %64 %35 %41
|
||||
%176 = OpAccessChain %65 %24 %60
|
||||
%175 = OpAtomicXor %4 %176 %64 %35 %42
|
||||
%178 = OpAccessChain %23 %26 %35
|
||||
%177 = OpAtomicXor %3 %178 %64 %35 %41
|
||||
%180 = OpAccessChain %65 %26 %60 %60
|
||||
%179 = OpAtomicXor %4 %180 %64 %35 %42
|
||||
%181 = OpAtomicExchange %3 %36 %57 %35 %41
|
||||
%183 = OpAccessChain %59 %38 %60
|
||||
%182 = OpAtomicExchange %4 %183 %57 %35 %42
|
||||
%185 = OpAccessChain %34 %40 %35
|
||||
%184 = OpAtomicExchange %3 %185 %57 %35 %41
|
||||
%187 = OpAccessChain %59 %40 %60 %60
|
||||
%186 = OpAtomicExchange %4 %187 %57 %35 %42
|
||||
%188 = OpAtomicExchange %3 %22 %64 %35 %41
|
||||
%190 = OpAccessChain %65 %24 %60
|
||||
%189 = OpAtomicExchange %4 %190 %64 %35 %42
|
||||
%192 = OpAccessChain %23 %26 %35
|
||||
%191 = OpAtomicExchange %3 %192 %64 %35 %41
|
||||
%194 = OpAccessChain %65 %26 %60 %60
|
||||
%193 = OpAtomicExchange %4 %194 %64 %35 %42
|
||||
%196 = OpAtomicCompareExchange %3 %36 %57 %35 %35 %43 %41
|
||||
%197 = OpIEqual %10 %196 %41
|
||||
%195 = OpCompositeConstruct %11 %196 %197
|
||||
%199 = OpAccessChain %59 %38 %60
|
||||
%200 = OpAtomicCompareExchange %4 %199 %57 %35 %35 %44 %42
|
||||
%201 = OpIEqual %10 %200 %42
|
||||
%198 = OpCompositeConstruct %12 %200 %201
|
||||
%203 = OpAccessChain %34 %40 %35
|
||||
%204 = OpAtomicCompareExchange %3 %203 %57 %35 %35 %43 %41
|
||||
%205 = OpIEqual %10 %204 %41
|
||||
%202 = OpCompositeConstruct %11 %204 %205
|
||||
%207 = OpAccessChain %59 %40 %60 %60
|
||||
%208 = OpAtomicCompareExchange %4 %207 %57 %35 %35 %44 %42
|
||||
%209 = OpIEqual %10 %208 %42
|
||||
%206 = OpCompositeConstruct %12 %208 %209
|
||||
%211 = OpAtomicCompareExchange %3 %22 %64 %35 %35 %43 %41
|
||||
%212 = OpIEqual %10 %211 %41
|
||||
%210 = OpCompositeConstruct %11 %211 %212
|
||||
%214 = OpAccessChain %65 %24 %60
|
||||
%215 = OpAtomicCompareExchange %4 %214 %64 %35 %35 %44 %42
|
||||
%216 = OpIEqual %10 %215 %42
|
||||
%213 = OpCompositeConstruct %12 %215 %216
|
||||
%218 = OpAccessChain %23 %26 %35
|
||||
%219 = OpAtomicCompareExchange %3 %218 %64 %35 %35 %43 %41
|
||||
%220 = OpIEqual %10 %219 %41
|
||||
%217 = OpCompositeConstruct %11 %219 %220
|
||||
%222 = OpAccessChain %65 %26 %60 %60
|
||||
%223 = OpAtomicCompareExchange %4 %222 %64 %35 %35 %44 %42
|
||||
%224 = OpIEqual %10 %223 %42
|
||||
%221 = OpCompositeConstruct %12 %223 %224
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
@ -1,7 +1,7 @@
|
||||
; SPIR-V
|
||||
; Version: 1.1
|
||||
; Generator: rspirv
|
||||
; Bound: 221
|
||||
; Bound: 219
|
||||
OpCapability Shader
|
||||
OpExtension "SPV_KHR_storage_buffer_storage_class"
|
||||
%1 = OpExtInstImport "GLSL.std.450"
|
||||
@ -69,10 +69,8 @@ OpDecorate %28 BuiltIn LocalInvocationId
|
||||
%47 = OpConstantNull %8
|
||||
%48 = OpTypeVector %9 3
|
||||
%53 = OpConstant %3 264
|
||||
%55 = OpConstant %3 64
|
||||
%56 = OpTypePointer StorageBuffer %4
|
||||
%60 = OpConstant %3 256
|
||||
%61 = OpTypePointer Workgroup %4
|
||||
%55 = OpTypePointer StorageBuffer %4
|
||||
%59 = OpTypePointer Workgroup %4
|
||||
%31 = OpFunction %2 None %32
|
||||
%27 = OpLabel
|
||||
%30 = OpLoad %8 %28
|
||||
@ -94,183 +92,183 @@ OpBranch %51
|
||||
OpControlBarrier %6 %6 %53
|
||||
OpBranch %54
|
||||
%54 = OpLabel
|
||||
OpAtomicStore %35 %41 %55 %40
|
||||
%57 = OpAccessChain %56 %37 %40
|
||||
OpAtomicStore %57 %41 %55 %41
|
||||
%58 = OpAccessChain %33 %39 %34
|
||||
OpAtomicStore %58 %41 %55 %40
|
||||
%59 = OpAccessChain %56 %39 %40 %40
|
||||
OpAtomicStore %59 %41 %55 %41
|
||||
OpAtomicStore %21 %42 %60 %40
|
||||
%62 = OpAccessChain %61 %23 %40
|
||||
OpAtomicStore %62 %42 %60 %41
|
||||
%63 = OpAccessChain %22 %25 %34
|
||||
OpAtomicStore %63 %42 %60 %40
|
||||
%64 = OpAccessChain %61 %25 %40 %40
|
||||
OpAtomicStore %64 %42 %60 %41
|
||||
OpAtomicStore %35 %41 %34 %40
|
||||
%56 = OpAccessChain %55 %37 %40
|
||||
OpAtomicStore %56 %41 %34 %41
|
||||
%57 = OpAccessChain %33 %39 %34
|
||||
OpAtomicStore %57 %41 %34 %40
|
||||
%58 = OpAccessChain %55 %39 %40 %40
|
||||
OpAtomicStore %58 %41 %34 %41
|
||||
OpAtomicStore %21 %42 %34 %40
|
||||
%60 = OpAccessChain %59 %23 %40
|
||||
OpAtomicStore %60 %42 %34 %41
|
||||
%61 = OpAccessChain %22 %25 %34
|
||||
OpAtomicStore %61 %42 %34 %40
|
||||
%62 = OpAccessChain %59 %25 %40 %40
|
||||
OpAtomicStore %62 %42 %34 %41
|
||||
OpControlBarrier %6 %6 %53
|
||||
%65 = OpAtomicLoad %3 %35 %41 %55
|
||||
%66 = OpAccessChain %56 %37 %40
|
||||
%67 = OpAtomicLoad %4 %66 %41 %55
|
||||
%68 = OpAccessChain %33 %39 %34
|
||||
%69 = OpAtomicLoad %3 %68 %41 %55
|
||||
%70 = OpAccessChain %56 %39 %40 %40
|
||||
%71 = OpAtomicLoad %4 %70 %41 %55
|
||||
%72 = OpAtomicLoad %3 %21 %42 %60
|
||||
%73 = OpAccessChain %61 %23 %40
|
||||
%74 = OpAtomicLoad %4 %73 %42 %60
|
||||
%75 = OpAccessChain %22 %25 %34
|
||||
%76 = OpAtomicLoad %3 %75 %42 %60
|
||||
%77 = OpAccessChain %61 %25 %40 %40
|
||||
%78 = OpAtomicLoad %4 %77 %42 %60
|
||||
%63 = OpAtomicLoad %3 %35 %41 %34
|
||||
%64 = OpAccessChain %55 %37 %40
|
||||
%65 = OpAtomicLoad %4 %64 %41 %34
|
||||
%66 = OpAccessChain %33 %39 %34
|
||||
%67 = OpAtomicLoad %3 %66 %41 %34
|
||||
%68 = OpAccessChain %55 %39 %40 %40
|
||||
%69 = OpAtomicLoad %4 %68 %41 %34
|
||||
%70 = OpAtomicLoad %3 %21 %42 %34
|
||||
%71 = OpAccessChain %59 %23 %40
|
||||
%72 = OpAtomicLoad %4 %71 %42 %34
|
||||
%73 = OpAccessChain %22 %25 %34
|
||||
%74 = OpAtomicLoad %3 %73 %42 %34
|
||||
%75 = OpAccessChain %59 %25 %40 %40
|
||||
%76 = OpAtomicLoad %4 %75 %42 %34
|
||||
OpControlBarrier %6 %6 %53
|
||||
%79 = OpAtomicIAdd %3 %35 %41 %55 %40
|
||||
%81 = OpAccessChain %56 %37 %40
|
||||
%80 = OpAtomicIAdd %4 %81 %41 %55 %41
|
||||
%83 = OpAccessChain %33 %39 %34
|
||||
%82 = OpAtomicIAdd %3 %83 %41 %55 %40
|
||||
%85 = OpAccessChain %56 %39 %40 %40
|
||||
%84 = OpAtomicIAdd %4 %85 %41 %55 %41
|
||||
%86 = OpAtomicIAdd %3 %21 %42 %60 %40
|
||||
%88 = OpAccessChain %61 %23 %40
|
||||
%87 = OpAtomicIAdd %4 %88 %42 %60 %41
|
||||
%90 = OpAccessChain %22 %25 %34
|
||||
%89 = OpAtomicIAdd %3 %90 %42 %60 %40
|
||||
%92 = OpAccessChain %61 %25 %40 %40
|
||||
%91 = OpAtomicIAdd %4 %92 %42 %60 %41
|
||||
%77 = OpAtomicIAdd %3 %35 %41 %34 %40
|
||||
%79 = OpAccessChain %55 %37 %40
|
||||
%78 = OpAtomicIAdd %4 %79 %41 %34 %41
|
||||
%81 = OpAccessChain %33 %39 %34
|
||||
%80 = OpAtomicIAdd %3 %81 %41 %34 %40
|
||||
%83 = OpAccessChain %55 %39 %40 %40
|
||||
%82 = OpAtomicIAdd %4 %83 %41 %34 %41
|
||||
%84 = OpAtomicIAdd %3 %21 %42 %34 %40
|
||||
%86 = OpAccessChain %59 %23 %40
|
||||
%85 = OpAtomicIAdd %4 %86 %42 %34 %41
|
||||
%88 = OpAccessChain %22 %25 %34
|
||||
%87 = OpAtomicIAdd %3 %88 %42 %34 %40
|
||||
%90 = OpAccessChain %59 %25 %40 %40
|
||||
%89 = OpAtomicIAdd %4 %90 %42 %34 %41
|
||||
OpControlBarrier %6 %6 %53
|
||||
%93 = OpAtomicISub %3 %35 %41 %55 %40
|
||||
%95 = OpAccessChain %56 %37 %40
|
||||
%94 = OpAtomicISub %4 %95 %41 %55 %41
|
||||
%97 = OpAccessChain %33 %39 %34
|
||||
%96 = OpAtomicISub %3 %97 %41 %55 %40
|
||||
%99 = OpAccessChain %56 %39 %40 %40
|
||||
%98 = OpAtomicISub %4 %99 %41 %55 %41
|
||||
%100 = OpAtomicISub %3 %21 %42 %60 %40
|
||||
%102 = OpAccessChain %61 %23 %40
|
||||
%101 = OpAtomicISub %4 %102 %42 %60 %41
|
||||
%104 = OpAccessChain %22 %25 %34
|
||||
%103 = OpAtomicISub %3 %104 %42 %60 %40
|
||||
%106 = OpAccessChain %61 %25 %40 %40
|
||||
%105 = OpAtomicISub %4 %106 %42 %60 %41
|
||||
%91 = OpAtomicISub %3 %35 %41 %34 %40
|
||||
%93 = OpAccessChain %55 %37 %40
|
||||
%92 = OpAtomicISub %4 %93 %41 %34 %41
|
||||
%95 = OpAccessChain %33 %39 %34
|
||||
%94 = OpAtomicISub %3 %95 %41 %34 %40
|
||||
%97 = OpAccessChain %55 %39 %40 %40
|
||||
%96 = OpAtomicISub %4 %97 %41 %34 %41
|
||||
%98 = OpAtomicISub %3 %21 %42 %34 %40
|
||||
%100 = OpAccessChain %59 %23 %40
|
||||
%99 = OpAtomicISub %4 %100 %42 %34 %41
|
||||
%102 = OpAccessChain %22 %25 %34
|
||||
%101 = OpAtomicISub %3 %102 %42 %34 %40
|
||||
%104 = OpAccessChain %59 %25 %40 %40
|
||||
%103 = OpAtomicISub %4 %104 %42 %34 %41
|
||||
OpControlBarrier %6 %6 %53
|
||||
%107 = OpAtomicUMax %3 %35 %41 %55 %40
|
||||
%109 = OpAccessChain %56 %37 %40
|
||||
%108 = OpAtomicSMax %4 %109 %41 %55 %41
|
||||
%111 = OpAccessChain %33 %39 %34
|
||||
%110 = OpAtomicUMax %3 %111 %41 %55 %40
|
||||
%113 = OpAccessChain %56 %39 %40 %40
|
||||
%112 = OpAtomicSMax %4 %113 %41 %55 %41
|
||||
%114 = OpAtomicUMax %3 %21 %42 %60 %40
|
||||
%116 = OpAccessChain %61 %23 %40
|
||||
%115 = OpAtomicSMax %4 %116 %42 %60 %41
|
||||
%118 = OpAccessChain %22 %25 %34
|
||||
%117 = OpAtomicUMax %3 %118 %42 %60 %40
|
||||
%120 = OpAccessChain %61 %25 %40 %40
|
||||
%119 = OpAtomicSMax %4 %120 %42 %60 %41
|
||||
%105 = OpAtomicUMax %3 %35 %41 %34 %40
|
||||
%107 = OpAccessChain %55 %37 %40
|
||||
%106 = OpAtomicSMax %4 %107 %41 %34 %41
|
||||
%109 = OpAccessChain %33 %39 %34
|
||||
%108 = OpAtomicUMax %3 %109 %41 %34 %40
|
||||
%111 = OpAccessChain %55 %39 %40 %40
|
||||
%110 = OpAtomicSMax %4 %111 %41 %34 %41
|
||||
%112 = OpAtomicUMax %3 %21 %42 %34 %40
|
||||
%114 = OpAccessChain %59 %23 %40
|
||||
%113 = OpAtomicSMax %4 %114 %42 %34 %41
|
||||
%116 = OpAccessChain %22 %25 %34
|
||||
%115 = OpAtomicUMax %3 %116 %42 %34 %40
|
||||
%118 = OpAccessChain %59 %25 %40 %40
|
||||
%117 = OpAtomicSMax %4 %118 %42 %34 %41
|
||||
OpControlBarrier %6 %6 %53
|
||||
%121 = OpAtomicUMin %3 %35 %41 %55 %40
|
||||
%123 = OpAccessChain %56 %37 %40
|
||||
%122 = OpAtomicSMin %4 %123 %41 %55 %41
|
||||
%125 = OpAccessChain %33 %39 %34
|
||||
%124 = OpAtomicUMin %3 %125 %41 %55 %40
|
||||
%127 = OpAccessChain %56 %39 %40 %40
|
||||
%126 = OpAtomicSMin %4 %127 %41 %55 %41
|
||||
%128 = OpAtomicUMin %3 %21 %42 %60 %40
|
||||
%130 = OpAccessChain %61 %23 %40
|
||||
%129 = OpAtomicSMin %4 %130 %42 %60 %41
|
||||
%132 = OpAccessChain %22 %25 %34
|
||||
%131 = OpAtomicUMin %3 %132 %42 %60 %40
|
||||
%134 = OpAccessChain %61 %25 %40 %40
|
||||
%133 = OpAtomicSMin %4 %134 %42 %60 %41
|
||||
%119 = OpAtomicUMin %3 %35 %41 %34 %40
|
||||
%121 = OpAccessChain %55 %37 %40
|
||||
%120 = OpAtomicSMin %4 %121 %41 %34 %41
|
||||
%123 = OpAccessChain %33 %39 %34
|
||||
%122 = OpAtomicUMin %3 %123 %41 %34 %40
|
||||
%125 = OpAccessChain %55 %39 %40 %40
|
||||
%124 = OpAtomicSMin %4 %125 %41 %34 %41
|
||||
%126 = OpAtomicUMin %3 %21 %42 %34 %40
|
||||
%128 = OpAccessChain %59 %23 %40
|
||||
%127 = OpAtomicSMin %4 %128 %42 %34 %41
|
||||
%130 = OpAccessChain %22 %25 %34
|
||||
%129 = OpAtomicUMin %3 %130 %42 %34 %40
|
||||
%132 = OpAccessChain %59 %25 %40 %40
|
||||
%131 = OpAtomicSMin %4 %132 %42 %34 %41
|
||||
OpControlBarrier %6 %6 %53
|
||||
%135 = OpAtomicAnd %3 %35 %41 %55 %40
|
||||
%137 = OpAccessChain %56 %37 %40
|
||||
%136 = OpAtomicAnd %4 %137 %41 %55 %41
|
||||
%139 = OpAccessChain %33 %39 %34
|
||||
%138 = OpAtomicAnd %3 %139 %41 %55 %40
|
||||
%141 = OpAccessChain %56 %39 %40 %40
|
||||
%140 = OpAtomicAnd %4 %141 %41 %55 %41
|
||||
%142 = OpAtomicAnd %3 %21 %42 %60 %40
|
||||
%144 = OpAccessChain %61 %23 %40
|
||||
%143 = OpAtomicAnd %4 %144 %42 %60 %41
|
||||
%146 = OpAccessChain %22 %25 %34
|
||||
%145 = OpAtomicAnd %3 %146 %42 %60 %40
|
||||
%148 = OpAccessChain %61 %25 %40 %40
|
||||
%147 = OpAtomicAnd %4 %148 %42 %60 %41
|
||||
%133 = OpAtomicAnd %3 %35 %41 %34 %40
|
||||
%135 = OpAccessChain %55 %37 %40
|
||||
%134 = OpAtomicAnd %4 %135 %41 %34 %41
|
||||
%137 = OpAccessChain %33 %39 %34
|
||||
%136 = OpAtomicAnd %3 %137 %41 %34 %40
|
||||
%139 = OpAccessChain %55 %39 %40 %40
|
||||
%138 = OpAtomicAnd %4 %139 %41 %34 %41
|
||||
%140 = OpAtomicAnd %3 %21 %42 %34 %40
|
||||
%142 = OpAccessChain %59 %23 %40
|
||||
%141 = OpAtomicAnd %4 %142 %42 %34 %41
|
||||
%144 = OpAccessChain %22 %25 %34
|
||||
%143 = OpAtomicAnd %3 %144 %42 %34 %40
|
||||
%146 = OpAccessChain %59 %25 %40 %40
|
||||
%145 = OpAtomicAnd %4 %146 %42 %34 %41
|
||||
OpControlBarrier %6 %6 %53
|
||||
%149 = OpAtomicOr %3 %35 %41 %55 %40
|
||||
%151 = OpAccessChain %56 %37 %40
|
||||
%150 = OpAtomicOr %4 %151 %41 %55 %41
|
||||
%153 = OpAccessChain %33 %39 %34
|
||||
%152 = OpAtomicOr %3 %153 %41 %55 %40
|
||||
%155 = OpAccessChain %56 %39 %40 %40
|
||||
%154 = OpAtomicOr %4 %155 %41 %55 %41
|
||||
%156 = OpAtomicOr %3 %21 %42 %60 %40
|
||||
%158 = OpAccessChain %61 %23 %40
|
||||
%157 = OpAtomicOr %4 %158 %42 %60 %41
|
||||
%160 = OpAccessChain %22 %25 %34
|
||||
%159 = OpAtomicOr %3 %160 %42 %60 %40
|
||||
%162 = OpAccessChain %61 %25 %40 %40
|
||||
%161 = OpAtomicOr %4 %162 %42 %60 %41
|
||||
%147 = OpAtomicOr %3 %35 %41 %34 %40
|
||||
%149 = OpAccessChain %55 %37 %40
|
||||
%148 = OpAtomicOr %4 %149 %41 %34 %41
|
||||
%151 = OpAccessChain %33 %39 %34
|
||||
%150 = OpAtomicOr %3 %151 %41 %34 %40
|
||||
%153 = OpAccessChain %55 %39 %40 %40
|
||||
%152 = OpAtomicOr %4 %153 %41 %34 %41
|
||||
%154 = OpAtomicOr %3 %21 %42 %34 %40
|
||||
%156 = OpAccessChain %59 %23 %40
|
||||
%155 = OpAtomicOr %4 %156 %42 %34 %41
|
||||
%158 = OpAccessChain %22 %25 %34
|
||||
%157 = OpAtomicOr %3 %158 %42 %34 %40
|
||||
%160 = OpAccessChain %59 %25 %40 %40
|
||||
%159 = OpAtomicOr %4 %160 %42 %34 %41
|
||||
OpControlBarrier %6 %6 %53
|
||||
%163 = OpAtomicXor %3 %35 %41 %55 %40
|
||||
%165 = OpAccessChain %56 %37 %40
|
||||
%164 = OpAtomicXor %4 %165 %41 %55 %41
|
||||
%167 = OpAccessChain %33 %39 %34
|
||||
%166 = OpAtomicXor %3 %167 %41 %55 %40
|
||||
%169 = OpAccessChain %56 %39 %40 %40
|
||||
%168 = OpAtomicXor %4 %169 %41 %55 %41
|
||||
%170 = OpAtomicXor %3 %21 %42 %60 %40
|
||||
%172 = OpAccessChain %61 %23 %40
|
||||
%171 = OpAtomicXor %4 %172 %42 %60 %41
|
||||
%174 = OpAccessChain %22 %25 %34
|
||||
%173 = OpAtomicXor %3 %174 %42 %60 %40
|
||||
%176 = OpAccessChain %61 %25 %40 %40
|
||||
%175 = OpAtomicXor %4 %176 %42 %60 %41
|
||||
%177 = OpAtomicExchange %3 %35 %41 %55 %40
|
||||
%179 = OpAccessChain %56 %37 %40
|
||||
%178 = OpAtomicExchange %4 %179 %41 %55 %41
|
||||
%181 = OpAccessChain %33 %39 %34
|
||||
%180 = OpAtomicExchange %3 %181 %41 %55 %40
|
||||
%183 = OpAccessChain %56 %39 %40 %40
|
||||
%182 = OpAtomicExchange %4 %183 %41 %55 %41
|
||||
%184 = OpAtomicExchange %3 %21 %42 %60 %40
|
||||
%186 = OpAccessChain %61 %23 %40
|
||||
%185 = OpAtomicExchange %4 %186 %42 %60 %41
|
||||
%188 = OpAccessChain %22 %25 %34
|
||||
%187 = OpAtomicExchange %3 %188 %42 %60 %40
|
||||
%190 = OpAccessChain %61 %25 %40 %40
|
||||
%189 = OpAtomicExchange %4 %190 %42 %60 %41
|
||||
%192 = OpAtomicCompareExchange %3 %35 %41 %55 %55 %6 %40
|
||||
%193 = OpIEqual %9 %192 %40
|
||||
%191 = OpCompositeConstruct %10 %192 %193
|
||||
%195 = OpAccessChain %56 %37 %40
|
||||
%196 = OpAtomicCompareExchange %4 %195 %41 %55 %55 %42 %41
|
||||
%197 = OpIEqual %9 %196 %41
|
||||
%194 = OpCompositeConstruct %11 %196 %197
|
||||
%199 = OpAccessChain %33 %39 %34
|
||||
%200 = OpAtomicCompareExchange %3 %199 %41 %55 %55 %6 %40
|
||||
%201 = OpIEqual %9 %200 %40
|
||||
%198 = OpCompositeConstruct %10 %200 %201
|
||||
%203 = OpAccessChain %56 %39 %40 %40
|
||||
%204 = OpAtomicCompareExchange %4 %203 %41 %55 %55 %42 %41
|
||||
%205 = OpIEqual %9 %204 %41
|
||||
%202 = OpCompositeConstruct %11 %204 %205
|
||||
%207 = OpAtomicCompareExchange %3 %21 %42 %60 %60 %6 %40
|
||||
%208 = OpIEqual %9 %207 %40
|
||||
%206 = OpCompositeConstruct %10 %207 %208
|
||||
%210 = OpAccessChain %61 %23 %40
|
||||
%211 = OpAtomicCompareExchange %4 %210 %42 %60 %60 %42 %41
|
||||
%212 = OpIEqual %9 %211 %41
|
||||
%209 = OpCompositeConstruct %11 %211 %212
|
||||
%214 = OpAccessChain %22 %25 %34
|
||||
%215 = OpAtomicCompareExchange %3 %214 %42 %60 %60 %6 %40
|
||||
%216 = OpIEqual %9 %215 %40
|
||||
%213 = OpCompositeConstruct %10 %215 %216
|
||||
%218 = OpAccessChain %61 %25 %40 %40
|
||||
%219 = OpAtomicCompareExchange %4 %218 %42 %60 %60 %42 %41
|
||||
%220 = OpIEqual %9 %219 %41
|
||||
%217 = OpCompositeConstruct %11 %219 %220
|
||||
%161 = OpAtomicXor %3 %35 %41 %34 %40
|
||||
%163 = OpAccessChain %55 %37 %40
|
||||
%162 = OpAtomicXor %4 %163 %41 %34 %41
|
||||
%165 = OpAccessChain %33 %39 %34
|
||||
%164 = OpAtomicXor %3 %165 %41 %34 %40
|
||||
%167 = OpAccessChain %55 %39 %40 %40
|
||||
%166 = OpAtomicXor %4 %167 %41 %34 %41
|
||||
%168 = OpAtomicXor %3 %21 %42 %34 %40
|
||||
%170 = OpAccessChain %59 %23 %40
|
||||
%169 = OpAtomicXor %4 %170 %42 %34 %41
|
||||
%172 = OpAccessChain %22 %25 %34
|
||||
%171 = OpAtomicXor %3 %172 %42 %34 %40
|
||||
%174 = OpAccessChain %59 %25 %40 %40
|
||||
%173 = OpAtomicXor %4 %174 %42 %34 %41
|
||||
%175 = OpAtomicExchange %3 %35 %41 %34 %40
|
||||
%177 = OpAccessChain %55 %37 %40
|
||||
%176 = OpAtomicExchange %4 %177 %41 %34 %41
|
||||
%179 = OpAccessChain %33 %39 %34
|
||||
%178 = OpAtomicExchange %3 %179 %41 %34 %40
|
||||
%181 = OpAccessChain %55 %39 %40 %40
|
||||
%180 = OpAtomicExchange %4 %181 %41 %34 %41
|
||||
%182 = OpAtomicExchange %3 %21 %42 %34 %40
|
||||
%184 = OpAccessChain %59 %23 %40
|
||||
%183 = OpAtomicExchange %4 %184 %42 %34 %41
|
||||
%186 = OpAccessChain %22 %25 %34
|
||||
%185 = OpAtomicExchange %3 %186 %42 %34 %40
|
||||
%188 = OpAccessChain %59 %25 %40 %40
|
||||
%187 = OpAtomicExchange %4 %188 %42 %34 %41
|
||||
%190 = OpAtomicCompareExchange %3 %35 %41 %34 %34 %6 %40
|
||||
%191 = OpIEqual %9 %190 %40
|
||||
%189 = OpCompositeConstruct %10 %190 %191
|
||||
%193 = OpAccessChain %55 %37 %40
|
||||
%194 = OpAtomicCompareExchange %4 %193 %41 %34 %34 %42 %41
|
||||
%195 = OpIEqual %9 %194 %41
|
||||
%192 = OpCompositeConstruct %11 %194 %195
|
||||
%197 = OpAccessChain %33 %39 %34
|
||||
%198 = OpAtomicCompareExchange %3 %197 %41 %34 %34 %6 %40
|
||||
%199 = OpIEqual %9 %198 %40
|
||||
%196 = OpCompositeConstruct %10 %198 %199
|
||||
%201 = OpAccessChain %55 %39 %40 %40
|
||||
%202 = OpAtomicCompareExchange %4 %201 %41 %34 %34 %42 %41
|
||||
%203 = OpIEqual %9 %202 %41
|
||||
%200 = OpCompositeConstruct %11 %202 %203
|
||||
%205 = OpAtomicCompareExchange %3 %21 %42 %34 %34 %6 %40
|
||||
%206 = OpIEqual %9 %205 %40
|
||||
%204 = OpCompositeConstruct %10 %205 %206
|
||||
%208 = OpAccessChain %59 %23 %40
|
||||
%209 = OpAtomicCompareExchange %4 %208 %42 %34 %34 %42 %41
|
||||
%210 = OpIEqual %9 %209 %41
|
||||
%207 = OpCompositeConstruct %11 %209 %210
|
||||
%212 = OpAccessChain %22 %25 %34
|
||||
%213 = OpAtomicCompareExchange %3 %212 %42 %34 %34 %6 %40
|
||||
%214 = OpIEqual %9 %213 %40
|
||||
%211 = OpCompositeConstruct %10 %213 %214
|
||||
%216 = OpAccessChain %59 %25 %40 %40
|
||||
%217 = OpAtomicCompareExchange %4 %216 %42 %34 %34 %42 %41
|
||||
%218 = OpIEqual %9 %217 %41
|
||||
%215 = OpCompositeConstruct %11 %217 %218
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
@ -31,7 +31,7 @@ OpDecorate %12 BuiltIn LocalInvocationId
|
||||
%20 = OpConstant %4 1
|
||||
%22 = OpTypePointer Image %4
|
||||
%24 = OpConstant %6 0
|
||||
%26 = OpConstant %8 4
|
||||
%26 = OpConstant %8 1
|
||||
%27 = OpConstant %6 2
|
||||
%28 = OpConstant %6 264
|
||||
%15 = OpFunction %2 None %16
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
; SPIR-V
|
||||
; Version: 1.0
|
||||
; Generator: rspirv
|
||||
; Bound: 54
|
||||
; Bound: 53
|
||||
OpCapability Shader
|
||||
%1 = OpExtInstImport "GLSL.std.450"
|
||||
OpMemoryModel Logical GLSL450
|
||||
@ -32,8 +32,7 @@ OpDecorate %14 BuiltIn LocalInvocationId
|
||||
%24 = OpConstant %6 1
|
||||
%26 = OpTypePointer Image %4
|
||||
%28 = OpConstant %4 0
|
||||
%30 = OpConstant %6 4
|
||||
%41 = OpTypePointer Image %6
|
||||
%40 = OpTypePointer Image %6
|
||||
%17 = OpFunction %2 None %18
|
||||
%13 = OpLabel
|
||||
%16 = OpLoad %7 %14
|
||||
@ -42,28 +41,28 @@ OpDecorate %14 BuiltIn LocalInvocationId
|
||||
OpBranch %25
|
||||
%25 = OpLabel
|
||||
%27 = OpImageTexelPointer %26 %9 %22 %28
|
||||
%29 = OpAtomicUMax %4 %27 %30 %28 %23
|
||||
%31 = OpImageTexelPointer %26 %9 %22 %28
|
||||
%32 = OpAtomicUMin %4 %31 %30 %28 %23
|
||||
%33 = OpImageTexelPointer %26 %9 %22 %28
|
||||
%34 = OpAtomicIAdd %4 %33 %30 %28 %23
|
||||
%35 = OpImageTexelPointer %26 %9 %22 %28
|
||||
%36 = OpAtomicAnd %4 %35 %30 %28 %23
|
||||
%37 = OpImageTexelPointer %26 %9 %22 %28
|
||||
%38 = OpAtomicOr %4 %37 %30 %28 %23
|
||||
%39 = OpImageTexelPointer %26 %9 %22 %28
|
||||
%40 = OpAtomicXor %4 %39 %30 %28 %23
|
||||
%42 = OpImageTexelPointer %41 %11 %22 %28
|
||||
%43 = OpAtomicSMax %6 %42 %30 %28 %24
|
||||
%44 = OpImageTexelPointer %41 %11 %22 %28
|
||||
%45 = OpAtomicSMin %6 %44 %30 %28 %24
|
||||
%46 = OpImageTexelPointer %41 %11 %22 %28
|
||||
%47 = OpAtomicIAdd %6 %46 %30 %28 %24
|
||||
%48 = OpImageTexelPointer %41 %11 %22 %28
|
||||
%49 = OpAtomicAnd %6 %48 %30 %28 %24
|
||||
%50 = OpImageTexelPointer %41 %11 %22 %28
|
||||
%51 = OpAtomicOr %6 %50 %30 %28 %24
|
||||
%52 = OpImageTexelPointer %41 %11 %22 %28
|
||||
%53 = OpAtomicXor %6 %52 %30 %28 %24
|
||||
%29 = OpAtomicUMax %4 %27 %24 %28 %23
|
||||
%30 = OpImageTexelPointer %26 %9 %22 %28
|
||||
%31 = OpAtomicUMin %4 %30 %24 %28 %23
|
||||
%32 = OpImageTexelPointer %26 %9 %22 %28
|
||||
%33 = OpAtomicIAdd %4 %32 %24 %28 %23
|
||||
%34 = OpImageTexelPointer %26 %9 %22 %28
|
||||
%35 = OpAtomicAnd %4 %34 %24 %28 %23
|
||||
%36 = OpImageTexelPointer %26 %9 %22 %28
|
||||
%37 = OpAtomicOr %4 %36 %24 %28 %23
|
||||
%38 = OpImageTexelPointer %26 %9 %22 %28
|
||||
%39 = OpAtomicXor %4 %38 %24 %28 %23
|
||||
%41 = OpImageTexelPointer %40 %11 %22 %28
|
||||
%42 = OpAtomicSMax %6 %41 %24 %28 %24
|
||||
%43 = OpImageTexelPointer %40 %11 %22 %28
|
||||
%44 = OpAtomicSMin %6 %43 %24 %28 %24
|
||||
%45 = OpImageTexelPointer %40 %11 %22 %28
|
||||
%46 = OpAtomicIAdd %6 %45 %24 %28 %24
|
||||
%47 = OpImageTexelPointer %40 %11 %22 %28
|
||||
%48 = OpAtomicAnd %6 %47 %24 %28 %24
|
||||
%49 = OpImageTexelPointer %40 %11 %22 %28
|
||||
%50 = OpAtomicOr %6 %49 %24 %28 %24
|
||||
%51 = OpImageTexelPointer %40 %11 %22 %28
|
||||
%52 = OpAtomicXor %6 %51 %24 %28 %24
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
@ -1,7 +1,7 @@
|
||||
; SPIR-V
|
||||
; Version: 1.1
|
||||
; Generator: rspirv
|
||||
; Bound: 172
|
||||
; Bound: 171
|
||||
OpCapability Shader
|
||||
OpExtension "SPV_KHR_storage_buffer_storage_class"
|
||||
%1 = OpExtInstImport "GLSL.std.450"
|
||||
@ -147,7 +147,6 @@ OpDecorate %116 BuiltIn LocalInvocationId
|
||||
%155 = OpConstant %7 3
|
||||
%158 = OpConstant %7 4
|
||||
%170 = OpConstant %23 2
|
||||
%171 = OpConstant %7 256
|
||||
%53 = OpFunction %2 None %54
|
||||
%52 = OpFunctionParameter %8
|
||||
%51 = OpLabel
|
||||
@ -249,6 +248,6 @@ OpStore %166 %107
|
||||
%168 = OpConvertUToF %4 %167
|
||||
%169 = OpAccessChain %128 %26 %149
|
||||
OpStore %169 %168
|
||||
OpAtomicStore %28 %170 %171 %18
|
||||
OpAtomicStore %28 %170 %60 %18
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
@ -28,7 +28,7 @@ OpDecorate %18 BuiltIn LocalInvocationId
|
||||
%21 = OpConstantNull %17
|
||||
%22 = OpTypeVector %5 3
|
||||
%27 = OpConstant %4 264
|
||||
%30 = OpConstant %4 256
|
||||
%30 = OpConstant %4 0
|
||||
%11 = OpFunction %2 None %12
|
||||
%10 = OpLabel
|
||||
OpBranch %15
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user