Don't prefix with "Capability" since the majority of them don't. Also add missing CapabilityImageFootprintNV
		
			
				
	
	
		
			254 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			254 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
spv.memoryScopeSemantics.comp
 | 
						|
// Module Version 10300
 | 
						|
// Generated by (magic number): 80007
 | 
						|
// Id's are bound by 148
 | 
						|
 | 
						|
                              Capability Shader
 | 
						|
                              Capability Int64
 | 
						|
                              Capability Int64Atomics
 | 
						|
                              Capability VulkanMemoryModelKHR
 | 
						|
                              Capability VulkanMemoryModelDeviceScopeKHR
 | 
						|
                              Extension  "SPV_KHR_vulkan_memory_model"
 | 
						|
               1:             ExtInstImport  "GLSL.std.450"
 | 
						|
                              MemoryModel Logical VulkanKHR
 | 
						|
                              EntryPoint GLCompute 4  "main"
 | 
						|
                              ExecutionMode 4 LocalSize 1 1 1
 | 
						|
                              Source GLSL 450
 | 
						|
                              SourceExtension  "GL_ARB_gpu_shader_int64"
 | 
						|
                              SourceExtension  "GL_KHR_memory_scope_semantics"
 | 
						|
                              Name 4  "main"
 | 
						|
                              Name 8  "origi"
 | 
						|
                              Name 10  "atomi"
 | 
						|
                              Name 21  "origu"
 | 
						|
                              Name 23  "atomu"
 | 
						|
                              Name 24  "value"
 | 
						|
                              Name 36  "imagei"
 | 
						|
                              Name 45  "imageu"
 | 
						|
                              Name 65  "BufferU"
 | 
						|
                              MemberName 65(BufferU) 0  "x"
 | 
						|
                              Name 67  "bufferu"
 | 
						|
                              Name 72  "y"
 | 
						|
                              Name 77  "BufferI"
 | 
						|
                              MemberName 77(BufferI) 0  "x"
 | 
						|
                              Name 79  "bufferi"
 | 
						|
                              Name 83  "A"
 | 
						|
                              MemberName 83(A) 0  "x"
 | 
						|
                              Name 84  "BufferJ"
 | 
						|
                              MemberName 84(BufferJ) 0  "a"
 | 
						|
                              Name 87  "bufferj"
 | 
						|
                              Name 98  "BufferK"
 | 
						|
                              MemberName 98(BufferK) 0  "x"
 | 
						|
                              Name 100  "bufferk"
 | 
						|
                              Name 110  "imagej"
 | 
						|
                              Name 122  "samp"
 | 
						|
                              Name 133  "atomu64"
 | 
						|
                              Name 138  "atomi64"
 | 
						|
                              Name 143  "BufferL"
 | 
						|
                              MemberName 143(BufferL) 0  "x"
 | 
						|
                              Name 145  "bufferl"
 | 
						|
                              Decorate 36(imagei) DescriptorSet 0
 | 
						|
                              Decorate 36(imagei) Binding 1
 | 
						|
                              Decorate 45(imageu) DescriptorSet 0
 | 
						|
                              Decorate 45(imageu) Binding 0
 | 
						|
                              MemberDecorate 65(BufferU) 0 Offset 0
 | 
						|
                              Decorate 65(BufferU) Block
 | 
						|
                              Decorate 67(bufferu) DescriptorSet 0
 | 
						|
                              Decorate 67(bufferu) Binding 2
 | 
						|
                              MemberDecorate 77(BufferI) 0 Offset 0
 | 
						|
                              Decorate 77(BufferI) Block
 | 
						|
                              Decorate 79(bufferi) DescriptorSet 0
 | 
						|
                              Decorate 79(bufferi) Binding 3
 | 
						|
                              Decorate 82 ArrayStride 4
 | 
						|
                              MemberDecorate 83(A) 0 Offset 0
 | 
						|
                              MemberDecorate 84(BufferJ) 0 Offset 0
 | 
						|
                              Decorate 84(BufferJ) Block
 | 
						|
                              Decorate 87(bufferj) DescriptorSet 0
 | 
						|
                              Decorate 87(bufferj) Binding 4
 | 
						|
                              MemberDecorate 98(BufferK) 0 Offset 0
 | 
						|
                              Decorate 98(BufferK) Block
 | 
						|
                              Decorate 100(bufferk) DescriptorSet 0
 | 
						|
                              Decorate 100(bufferk) Binding 7
 | 
						|
                              Decorate 110(imagej) DescriptorSet 0
 | 
						|
                              Decorate 110(imagej) Binding 5
 | 
						|
                              Decorate 122(samp) DescriptorSet 0
 | 
						|
                              Decorate 122(samp) Binding 6
 | 
						|
                              MemberDecorate 143(BufferL) 0 Offset 0
 | 
						|
                              Decorate 143(BufferL) Block
 | 
						|
                              Decorate 145(bufferl) DescriptorSet 0
 | 
						|
                              Decorate 145(bufferl) Binding 8
 | 
						|
               2:             TypeVoid
 | 
						|
               3:             TypeFunction 2
 | 
						|
               6:             TypeInt 32 1
 | 
						|
               7:             TypePointer Function 6(int)
 | 
						|
               9:             TypePointer Workgroup 6(int)
 | 
						|
       10(atomi):      9(ptr) Variable Workgroup
 | 
						|
              11:      6(int) Constant 3
 | 
						|
              12:      6(int) Constant 1
 | 
						|
              13:      6(int) Constant 320
 | 
						|
              14:      6(int) Constant 4
 | 
						|
              15:             TypeInt 32 0
 | 
						|
              16:     15(int) Constant 5
 | 
						|
              17:     15(int) Constant 0
 | 
						|
              18:     15(int) Constant 324
 | 
						|
              20:             TypePointer Function 15(int)
 | 
						|
              22:             TypePointer Workgroup 15(int)
 | 
						|
       23(atomu):     22(ptr) Variable Workgroup
 | 
						|
       24(value):     22(ptr) Variable Workgroup
 | 
						|
              26:     15(int) Constant 2
 | 
						|
              28:      6(int) Constant 64
 | 
						|
              29:      6(int) Constant 2
 | 
						|
              30:     15(int) Constant 66
 | 
						|
              33:     15(int) Constant 68
 | 
						|
              34:             TypeImage 6(int) 2D nonsampled format:R32i
 | 
						|
              35:             TypePointer UniformConstant 34
 | 
						|
      36(imagei):     35(ptr) Variable UniformConstant
 | 
						|
              37:             TypeVector 6(int) 2
 | 
						|
              38:      6(int) Constant 0
 | 
						|
              39:   37(ivec2) ConstantComposite 38 38
 | 
						|
              40:             TypePointer Image 6(int)
 | 
						|
              43:             TypeImage 15(int) 2D nonsampled format:R32ui
 | 
						|
              44:             TypePointer UniformConstant 43
 | 
						|
      45(imageu):     44(ptr) Variable UniformConstant
 | 
						|
              46:     15(int) Constant 3
 | 
						|
              47:             TypePointer Image 15(int)
 | 
						|
              50:     15(int) Constant 4
 | 
						|
              52:     15(int) Constant 7
 | 
						|
              57:      6(int) Constant 7
 | 
						|
              61:     15(int) Constant 10
 | 
						|
              63:     15(int) Constant 322
 | 
						|
     65(BufferU):             TypeStruct 15(int)
 | 
						|
              66:             TypePointer StorageBuffer 65(BufferU)
 | 
						|
     67(bufferu):     66(ptr) Variable StorageBuffer
 | 
						|
              68:             TypePointer StorageBuffer 15(int)
 | 
						|
              70:     15(int) Constant 1
 | 
						|
     77(BufferI):             TypeStruct 15(int)
 | 
						|
              78:             TypePointer StorageBuffer 77(BufferI)
 | 
						|
     79(bufferi):     78(ptr) Variable StorageBuffer
 | 
						|
              82:             TypeArray 15(int) 26
 | 
						|
           83(A):             TypeStruct 82
 | 
						|
     84(BufferJ):             TypeStruct 83(A)
 | 
						|
              85:             TypeArray 84(BufferJ) 26
 | 
						|
              86:             TypePointer StorageBuffer 85
 | 
						|
     87(bufferj):     86(ptr) Variable StorageBuffer
 | 
						|
              94:             TypePointer StorageBuffer 83(A)
 | 
						|
     98(BufferK):             TypeStruct 15(int)
 | 
						|
              99:             TypePointer Uniform 98(BufferK)
 | 
						|
    100(bufferk):     99(ptr) Variable Uniform
 | 
						|
             101:             TypePointer Uniform 15(int)
 | 
						|
             106:             TypeVector 6(int) 4
 | 
						|
             108:             TypeArray 34 26
 | 
						|
             109:             TypePointer UniformConstant 108
 | 
						|
     110(imagej):    109(ptr) Variable UniformConstant
 | 
						|
             116:  106(ivec4) ConstantComposite 38 38 38 38
 | 
						|
             117:             TypeFloat 32
 | 
						|
             118:             TypeImage 117(float) 2D sampled format:Unknown
 | 
						|
             119:             TypeSampledImage 118
 | 
						|
             120:             TypeArray 119 26
 | 
						|
             121:             TypePointer UniformConstant 120
 | 
						|
       122(samp):    121(ptr) Variable UniformConstant
 | 
						|
             123:             TypePointer UniformConstant 119
 | 
						|
             126:             TypeVector 117(float) 2
 | 
						|
             127:  117(float) Constant 0
 | 
						|
             128:  126(fvec2) ConstantComposite 127 127
 | 
						|
             129:             TypeVector 117(float) 4
 | 
						|
             131:             TypeInt 64 0
 | 
						|
             132:             TypePointer Workgroup 131(int64_t)
 | 
						|
    133(atomu64):    132(ptr) Variable Workgroup
 | 
						|
             134:131(int64_t) Constant 7 0
 | 
						|
             136:             TypeInt 64 1
 | 
						|
             137:             TypePointer Workgroup 136(int64_t)
 | 
						|
    138(atomi64):    137(ptr) Variable Workgroup
 | 
						|
             139:136(int64_t) Constant 10 0
 | 
						|
    143(BufferL):             TypeStruct 15(int)
 | 
						|
             144:             TypePointer StorageBuffer 143(BufferL)
 | 
						|
    145(bufferl):    144(ptr) Variable StorageBuffer
 | 
						|
         4(main):           2 Function None 3
 | 
						|
               5:             Label
 | 
						|
        8(origi):      7(ptr) Variable Function
 | 
						|
       21(origu):     20(ptr) Variable Function
 | 
						|
           72(y):     20(ptr) Variable Function
 | 
						|
              19:      6(int) AtomicIAdd 10(atomi) 12 18 11
 | 
						|
                              Store 8(origi) 19
 | 
						|
              25:     15(int) Load 24(value) MakePointerVisibleKHR NonPrivatePointerKHR 26
 | 
						|
              27:     15(int) AtomicAnd 23(atomu) 16 17 25
 | 
						|
                              Store 21(origu) 27
 | 
						|
              31:      6(int) AtomicLoad 10(atomi) 12 30
 | 
						|
                              Store 8(origi) 31
 | 
						|
              32:     15(int) Load 24(value) MakePointerVisibleKHR NonPrivatePointerKHR 26
 | 
						|
                              AtomicStore 23(atomu) 12 33 32
 | 
						|
              41:     40(ptr) ImageTexelPointer 36(imagei) 39 17
 | 
						|
              42:      6(int) AtomicLoad 41 12 30
 | 
						|
                              Store 8(origi) 42
 | 
						|
              48:     47(ptr) ImageTexelPointer 45(imageu) 39 17
 | 
						|
              49:     15(int) AtomicIAdd 48 12 30 46
 | 
						|
                              Store 21(origu) 49
 | 
						|
              51:     47(ptr) ImageTexelPointer 45(imageu) 39 17
 | 
						|
                              AtomicStore 51 12 33 50
 | 
						|
              53:     15(int) AtomicOr 23(atomu) 12 17 52
 | 
						|
                              Store 21(origu) 53
 | 
						|
              54:     15(int) AtomicXor 23(atomu) 12 17 52
 | 
						|
                              Store 21(origu) 54
 | 
						|
              55:     15(int) Load 24(value) MakePointerVisibleKHR NonPrivatePointerKHR 26
 | 
						|
              56:     15(int) AtomicUMin 23(atomu) 12 17 55
 | 
						|
                              Store 21(origu) 56
 | 
						|
              58:      6(int) AtomicSMax 10(atomi) 12 17 57
 | 
						|
                              Store 8(origi) 58
 | 
						|
              59:      6(int) Load 8(origi)
 | 
						|
              60:      6(int) AtomicExchange 10(atomi) 12 17 59
 | 
						|
                              Store 8(origi) 60
 | 
						|
              62:     15(int) Load 24(value) MakePointerVisibleKHR NonPrivatePointerKHR 26
 | 
						|
              64:     15(int) AtomicCompareExchange 23(atomu) 12 63 63 62 61
 | 
						|
                              Store 21(origu) 64
 | 
						|
              69:     68(ptr) AccessChain 67(bufferu) 38
 | 
						|
              71:     15(int) AtomicIAdd 69 12 18 70
 | 
						|
                              MemoryBarrier 26 18
 | 
						|
                              ControlBarrier 26 26 63
 | 
						|
                              ControlBarrier 26 26 17
 | 
						|
              73:     68(ptr) AccessChain 67(bufferu) 38
 | 
						|
              74:     15(int) Load 73 MakePointerVisibleKHR NonPrivatePointerKHR 26
 | 
						|
                              Store 72(y) 74
 | 
						|
              75:     15(int) Load 72(y)
 | 
						|
              76:     68(ptr) AccessChain 67(bufferu) 38
 | 
						|
                              Store 76 75 MakePointerAvailableKHR NonPrivatePointerKHR 26
 | 
						|
              80:     68(ptr) AccessChain 79(bufferi) 38
 | 
						|
              81:     15(int) Load 80 MakePointerVisibleKHR NonPrivatePointerKHR 16
 | 
						|
                              Store 72(y) 81
 | 
						|
              88:     68(ptr) AccessChain 87(bufferj) 38 38 38 12
 | 
						|
              89:     15(int) Load 88 Volatile MakePointerVisibleKHR NonPrivatePointerKHR 16
 | 
						|
                              Store 72(y) 89
 | 
						|
              90:     15(int) Load 72(y)
 | 
						|
              91:     68(ptr) AccessChain 79(bufferi) 38
 | 
						|
                              Store 91 90 MakePointerAvailableKHR NonPrivatePointerKHR 16
 | 
						|
              92:     15(int) Load 72(y)
 | 
						|
              93:     68(ptr) AccessChain 87(bufferj) 38 38 38 12
 | 
						|
                              Store 93 92 Volatile MakePointerAvailableKHR NonPrivatePointerKHR 16
 | 
						|
              95:     94(ptr) AccessChain 87(bufferj) 12 38
 | 
						|
              96:       83(A) Load 95 Volatile MakePointerVisibleKHR NonPrivatePointerKHR 16
 | 
						|
              97:     94(ptr) AccessChain 87(bufferj) 38 38
 | 
						|
                              Store 97 96 Volatile MakePointerAvailableKHR NonPrivatePointerKHR 16
 | 
						|
             102:    101(ptr) AccessChain 100(bufferk) 38
 | 
						|
             103:     15(int) Load 102 NonPrivatePointerKHR 
 | 
						|
             104:     68(ptr) AccessChain 79(bufferi) 38
 | 
						|
                              Store 104 103 MakePointerAvailableKHR NonPrivatePointerKHR 16
 | 
						|
             105:          34 Load 36(imagei)
 | 
						|
             107:  106(ivec4) ImageRead 105 39 MakeTexelVisibleKHR NonPrivateTexelKHR VolatileTexelKHR 16
 | 
						|
             111:     35(ptr) AccessChain 110(imagej) 38
 | 
						|
             112:          34 Load 111
 | 
						|
             113:  106(ivec4) ImageRead 112 39 NonPrivateTexelKHR 
 | 
						|
             114:     35(ptr) AccessChain 110(imagej) 12
 | 
						|
             115:          34 Load 114
 | 
						|
                              ImageWrite 115 39 116 NonPrivateTexelKHR 
 | 
						|
             124:    123(ptr) AccessChain 122(samp) 38
 | 
						|
             125:         119 Load 124
 | 
						|
             130:  129(fvec4) ImageSampleExplicitLod 125 128 Lod NonPrivateTexelKHR 127
 | 
						|
             135:131(int64_t) AtomicUMax 133(atomu64) 12 17 134
 | 
						|
                              Store 133(atomu64) 135 MakePointerAvailableKHR NonPrivatePointerKHR 26
 | 
						|
             140:131(int64_t) Load 133(atomu64) MakePointerVisibleKHR NonPrivatePointerKHR 26
 | 
						|
             141:136(int64_t) Bitcast 140
 | 
						|
             142:136(int64_t) AtomicCompareExchange 138(atomi64) 12 63 63 141 139
 | 
						|
             146:     68(ptr) AccessChain 145(bufferl) 38
 | 
						|
             147:     15(int) Load 146 Volatile MakePointerVisibleKHR NonPrivatePointerKHR 16
 | 
						|
                              Store 72(y) 147
 | 
						|
                              Return
 | 
						|
                              FunctionEnd
 |