327 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			327 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| hlsl.structbuffer.floatidx.comp
 | |
| Shader version: 500
 | |
| local_size = (1, 1, 1)
 | |
| 0:? Sequence
 | |
| 0:13  Function Definition: @main(vu3; ( temp void)
 | |
| 0:13    Function Parameters: 
 | |
| 0:13      'nThreadId' ( in 3-component vector of uint)
 | |
| 0:?     Sequence
 | |
| 0:14      Sequence
 | |
| 0:14        move second child to first child ( temp structure{ temp 4-component vector of float color,  temp 2-component vector of uint threadId})
 | |
| 0:14          'data' ( temp structure{ temp 4-component vector of float color,  temp 2-component vector of uint threadId})
 | |
| 0:14          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of float color,  temp 2-component vector of uint threadId})
 | |
| 0:14            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of float color,  temp 2-component vector of uint threadId})
 | |
| 0:14              'csb' (layout( binding=1 row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of float color,  temp 2-component vector of uint threadId} @data})
 | |
| 0:14              Constant:
 | |
| 0:14                0 (const uint)
 | |
| 0:14            add ( temp uint)
 | |
| 0:14              AtomicAdd ( temp uint)
 | |
| 0:14                @count: direct index for structure ( temp int)
 | |
| 0:14                  'csb@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count})
 | |
| 0:14                  Constant:
 | |
| 0:14                    0 (const int)
 | |
| 0:14                Constant:
 | |
| 0:14                  -1 (const int)
 | |
| 0:14              Constant:
 | |
| 0:14                -1 (const int)
 | |
| 0:15      Sequence
 | |
| 0:15        move second child to first child ( temp 2-component vector of float)
 | |
| 0:15          'coord' ( temp 2-component vector of float)
 | |
| 0:15          Convert uint to float ( temp 2-component vector of float)
 | |
| 0:15            vector swizzle ( temp 2-component vector of uint)
 | |
| 0:15              threadId: direct index for structure ( temp 2-component vector of uint)
 | |
| 0:15                'data' ( temp structure{ temp 4-component vector of float color,  temp 2-component vector of uint threadId})
 | |
| 0:15                Constant:
 | |
| 0:15                  1 (const int)
 | |
| 0:15              Sequence
 | |
| 0:15                Constant:
 | |
| 0:15                  0 (const int)
 | |
| 0:15                Constant:
 | |
| 0:15                  1 (const int)
 | |
| 0:16      Sequence
 | |
| 0:16        move second child to first child ( temp 4-component vector of float)
 | |
| 0:16          'storeTemp' ( temp 4-component vector of float)
 | |
| 0:16          color: direct index for structure ( temp 4-component vector of float)
 | |
| 0:16            'data' ( temp structure{ temp 4-component vector of float color,  temp 2-component vector of uint threadId})
 | |
| 0:16            Constant:
 | |
| 0:16              0 (const int)
 | |
| 0:16        imageStore ( temp void)
 | |
| 0:16          'outtx' (layout( rgba32f) uniform image2D)
 | |
| 0:16          Convert float to uint ( temp 2-component vector of uint)
 | |
| 0:16            'coord' ( temp 2-component vector of float)
 | |
| 0:16          'storeTemp' ( temp 4-component vector of float)
 | |
| 0:16        'storeTemp' ( temp 4-component vector of float)
 | |
| 0:18      move second child to first child ( temp 4-component vector of float)
 | |
| 0:18        indirect index (layout( row_major std430) buffer 4-component vector of float)
 | |
| 0:18          @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of 4-component vector of float)
 | |
| 0:18            'rwsb' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
 | |
| 0:18            Constant:
 | |
| 0:18              0 (const uint)
 | |
| 0:18          Convert float to uint ( temp uint)
 | |
| 0:18            direct index ( temp float)
 | |
| 0:18              'coord' ( temp 2-component vector of float)
 | |
| 0:18              Constant:
 | |
| 0:18                0 (const int)
 | |
| 0:18        indirect index (layout( row_major std430) buffer 4-component vector of float)
 | |
| 0:18          @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of 4-component vector of float)
 | |
| 0:18            'rwsb' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
 | |
| 0:18            Constant:
 | |
| 0:18              0 (const uint)
 | |
| 0:18          Convert float to uint ( temp uint)
 | |
| 0:18            direct index ( temp float)
 | |
| 0:18              'coord' ( temp 2-component vector of float)
 | |
| 0:18              Constant:
 | |
| 0:18                1 (const int)
 | |
| 0:13  Function Definition: main( ( temp void)
 | |
| 0:13    Function Parameters: 
 | |
| 0:?     Sequence
 | |
| 0:13      move second child to first child ( temp 3-component vector of uint)
 | |
| 0:?         'nThreadId' ( temp 3-component vector of uint)
 | |
| 0:?         'nThreadId' ( in 3-component vector of uint GlobalInvocationID)
 | |
| 0:13      Function Call: @main(vu3; ( temp void)
 | |
| 0:?         'nThreadId' ( temp 3-component vector of uint)
 | |
| 0:?   Linker Objects
 | |
| 0:?     'outtx' (layout( rgba32f) uniform image2D)
 | |
| 0:?     'csb' (layout( binding=1 row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of float color,  temp 2-component vector of uint threadId} @data})
 | |
| 0:?     'csb@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count})
 | |
| 0:?     'rwsb' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
 | |
| 0:?     'nThreadId' ( in 3-component vector of uint GlobalInvocationID)
 | |
| 
 | |
| 
 | |
| Linked compute stage:
 | |
| 
 | |
| 
 | |
| Shader version: 500
 | |
| local_size = (1, 1, 1)
 | |
| 0:? Sequence
 | |
| 0:13  Function Definition: @main(vu3; ( temp void)
 | |
| 0:13    Function Parameters: 
 | |
| 0:13      'nThreadId' ( in 3-component vector of uint)
 | |
| 0:?     Sequence
 | |
| 0:14      Sequence
 | |
| 0:14        move second child to first child ( temp structure{ temp 4-component vector of float color,  temp 2-component vector of uint threadId})
 | |
| 0:14          'data' ( temp structure{ temp 4-component vector of float color,  temp 2-component vector of uint threadId})
 | |
| 0:14          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of float color,  temp 2-component vector of uint threadId})
 | |
| 0:14            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of float color,  temp 2-component vector of uint threadId})
 | |
| 0:14              'csb' (layout( binding=1 row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of float color,  temp 2-component vector of uint threadId} @data})
 | |
| 0:14              Constant:
 | |
| 0:14                0 (const uint)
 | |
| 0:14            add ( temp uint)
 | |
| 0:14              AtomicAdd ( temp uint)
 | |
| 0:14                @count: direct index for structure ( temp int)
 | |
| 0:14                  'csb@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count})
 | |
| 0:14                  Constant:
 | |
| 0:14                    0 (const int)
 | |
| 0:14                Constant:
 | |
| 0:14                  -1 (const int)
 | |
| 0:14              Constant:
 | |
| 0:14                -1 (const int)
 | |
| 0:15      Sequence
 | |
| 0:15        move second child to first child ( temp 2-component vector of float)
 | |
| 0:15          'coord' ( temp 2-component vector of float)
 | |
| 0:15          Convert uint to float ( temp 2-component vector of float)
 | |
| 0:15            vector swizzle ( temp 2-component vector of uint)
 | |
| 0:15              threadId: direct index for structure ( temp 2-component vector of uint)
 | |
| 0:15                'data' ( temp structure{ temp 4-component vector of float color,  temp 2-component vector of uint threadId})
 | |
| 0:15                Constant:
 | |
| 0:15                  1 (const int)
 | |
| 0:15              Sequence
 | |
| 0:15                Constant:
 | |
| 0:15                  0 (const int)
 | |
| 0:15                Constant:
 | |
| 0:15                  1 (const int)
 | |
| 0:16      Sequence
 | |
| 0:16        move second child to first child ( temp 4-component vector of float)
 | |
| 0:16          'storeTemp' ( temp 4-component vector of float)
 | |
| 0:16          color: direct index for structure ( temp 4-component vector of float)
 | |
| 0:16            'data' ( temp structure{ temp 4-component vector of float color,  temp 2-component vector of uint threadId})
 | |
| 0:16            Constant:
 | |
| 0:16              0 (const int)
 | |
| 0:16        imageStore ( temp void)
 | |
| 0:16          'outtx' (layout( rgba32f) uniform image2D)
 | |
| 0:16          Convert float to uint ( temp 2-component vector of uint)
 | |
| 0:16            'coord' ( temp 2-component vector of float)
 | |
| 0:16          'storeTemp' ( temp 4-component vector of float)
 | |
| 0:16        'storeTemp' ( temp 4-component vector of float)
 | |
| 0:18      move second child to first child ( temp 4-component vector of float)
 | |
| 0:18        indirect index (layout( row_major std430) buffer 4-component vector of float)
 | |
| 0:18          @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of 4-component vector of float)
 | |
| 0:18            'rwsb' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
 | |
| 0:18            Constant:
 | |
| 0:18              0 (const uint)
 | |
| 0:18          Convert float to uint ( temp uint)
 | |
| 0:18            direct index ( temp float)
 | |
| 0:18              'coord' ( temp 2-component vector of float)
 | |
| 0:18              Constant:
 | |
| 0:18                0 (const int)
 | |
| 0:18        indirect index (layout( row_major std430) buffer 4-component vector of float)
 | |
| 0:18          @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of 4-component vector of float)
 | |
| 0:18            'rwsb' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
 | |
| 0:18            Constant:
 | |
| 0:18              0 (const uint)
 | |
| 0:18          Convert float to uint ( temp uint)
 | |
| 0:18            direct index ( temp float)
 | |
| 0:18              'coord' ( temp 2-component vector of float)
 | |
| 0:18              Constant:
 | |
| 0:18                1 (const int)
 | |
| 0:13  Function Definition: main( ( temp void)
 | |
| 0:13    Function Parameters: 
 | |
| 0:?     Sequence
 | |
| 0:13      move second child to first child ( temp 3-component vector of uint)
 | |
| 0:?         'nThreadId' ( temp 3-component vector of uint)
 | |
| 0:?         'nThreadId' ( in 3-component vector of uint GlobalInvocationID)
 | |
| 0:13      Function Call: @main(vu3; ( temp void)
 | |
| 0:?         'nThreadId' ( temp 3-component vector of uint)
 | |
| 0:?   Linker Objects
 | |
| 0:?     'outtx' (layout( rgba32f) uniform image2D)
 | |
| 0:?     'csb' (layout( binding=1 row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of float color,  temp 2-component vector of uint threadId} @data})
 | |
| 0:?     'csb@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count})
 | |
| 0:?     'rwsb' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
 | |
| 0:?     'nThreadId' ( in 3-component vector of uint GlobalInvocationID)
 | |
| 
 | |
| // Module Version 10000
 | |
| // Generated by (magic number): 80005
 | |
| // Id's are bound by 84
 | |
| 
 | |
|                               Capability Shader
 | |
|                1:             ExtInstImport  "GLSL.std.450"
 | |
|                               MemoryModel Logical GLSL450
 | |
|                               EntryPoint GLCompute 4  "main" 79
 | |
|                               ExecutionMode 4 LocalSize 1 1 1
 | |
|                               Source HLSL 500
 | |
|                               Name 4  "main"
 | |
|                               Name 11  "@main(vu3;"
 | |
|                               Name 10  "nThreadId"
 | |
|                               Name 16  "sb_t"
 | |
|                               MemberName 16(sb_t) 0  "color"
 | |
|                               MemberName 16(sb_t) 1  "threadId"
 | |
|                               Name 18  "data"
 | |
|                               Name 19  "sb_t"
 | |
|                               MemberName 19(sb_t) 0  "color"
 | |
|                               MemberName 19(sb_t) 1  "threadId"
 | |
|                               Name 21  "csb"
 | |
|                               MemberName 21(csb) 0  "@data"
 | |
|                               Name 23  "csb"
 | |
|                               Name 26  "csb@count"
 | |
|                               MemberName 26(csb@count) 0  "@count"
 | |
|                               Name 28  "csb@count"
 | |
|                               Name 48  "coord"
 | |
|                               Name 52  "storeTemp"
 | |
|                               Name 57  "outtx"
 | |
|                               Name 63  "rwsb"
 | |
|                               MemberName 63(rwsb) 0  "@data"
 | |
|                               Name 65  "rwsb"
 | |
|                               Name 77  "nThreadId"
 | |
|                               Name 79  "nThreadId"
 | |
|                               Name 81  "param"
 | |
|                               MemberDecorate 19(sb_t) 0 Offset 0
 | |
|                               MemberDecorate 19(sb_t) 1 Offset 16
 | |
|                               Decorate 20 ArrayStride 32
 | |
|                               MemberDecorate 21(csb) 0 Offset 0
 | |
|                               Decorate 21(csb) BufferBlock
 | |
|                               Decorate 23(csb) DescriptorSet 0
 | |
|                               Decorate 23(csb) Binding 1
 | |
|                               MemberDecorate 26(csb@count) 0 Offset 0
 | |
|                               Decorate 26(csb@count) BufferBlock
 | |
|                               Decorate 28(csb@count) DescriptorSet 0
 | |
|                               Decorate 57(outtx) DescriptorSet 0
 | |
|                               Decorate 62 ArrayStride 16
 | |
|                               MemberDecorate 63(rwsb) 0 Offset 0
 | |
|                               Decorate 63(rwsb) BufferBlock
 | |
|                               Decorate 65(rwsb) DescriptorSet 0
 | |
|                               Decorate 79(nThreadId) BuiltIn GlobalInvocationId
 | |
|                2:             TypeVoid
 | |
|                3:             TypeFunction 2
 | |
|                6:             TypeInt 32 0
 | |
|                7:             TypeVector 6(int) 3
 | |
|                8:             TypePointer Function 7(ivec3)
 | |
|                9:             TypeFunction 2 8(ptr)
 | |
|               13:             TypeFloat 32
 | |
|               14:             TypeVector 13(float) 4
 | |
|               15:             TypeVector 6(int) 2
 | |
|         16(sb_t):             TypeStruct 14(fvec4) 15(ivec2)
 | |
|               17:             TypePointer Function 16(sb_t)
 | |
|         19(sb_t):             TypeStruct 14(fvec4) 15(ivec2)
 | |
|               20:             TypeRuntimeArray 19(sb_t)
 | |
|          21(csb):             TypeStruct 20
 | |
|               22:             TypePointer Uniform 21(csb)
 | |
|          23(csb):     22(ptr) Variable Uniform
 | |
|               24:             TypeInt 32 1
 | |
|               25:     24(int) Constant 0
 | |
|    26(csb@count):             TypeStruct 24(int)
 | |
|               27:             TypePointer Uniform 26(csb@count)
 | |
|    28(csb@count):     27(ptr) Variable Uniform
 | |
|               29:             TypePointer Uniform 24(int)
 | |
|               31:     24(int) Constant 4294967295
 | |
|               32:      6(int) Constant 1
 | |
|               33:      6(int) Constant 0
 | |
|               36:             TypePointer Uniform 19(sb_t)
 | |
|               40:             TypePointer Function 14(fvec4)
 | |
|               43:     24(int) Constant 1
 | |
|               44:             TypePointer Function 15(ivec2)
 | |
|               46:             TypeVector 13(float) 2
 | |
|               47:             TypePointer Function 46(fvec2)
 | |
|               55:             TypeImage 13(float) 2D nonsampled format:Rgba32f
 | |
|               56:             TypePointer UniformConstant 55
 | |
|        57(outtx):     56(ptr) Variable UniformConstant
 | |
|               62:             TypeRuntimeArray 14(fvec4)
 | |
|         63(rwsb):             TypeStruct 62
 | |
|               64:             TypePointer Uniform 63(rwsb)
 | |
|         65(rwsb):     64(ptr) Variable Uniform
 | |
|               66:             TypePointer Function 13(float)
 | |
|               73:             TypePointer Uniform 14(fvec4)
 | |
|               78:             TypePointer Input 7(ivec3)
 | |
|    79(nThreadId):     78(ptr) Variable Input
 | |
|          4(main):           2 Function None 3
 | |
|                5:             Label
 | |
|    77(nThreadId):      8(ptr) Variable Function
 | |
|        81(param):      8(ptr) Variable Function
 | |
|               80:    7(ivec3) Load 79(nThreadId)
 | |
|                               Store 77(nThreadId) 80
 | |
|               82:    7(ivec3) Load 77(nThreadId)
 | |
|                               Store 81(param) 82
 | |
|               83:           2 FunctionCall 11(@main(vu3;) 81(param)
 | |
|                               Return
 | |
|                               FunctionEnd
 | |
|   11(@main(vu3;):           2 Function None 9
 | |
|    10(nThreadId):      8(ptr) FunctionParameter
 | |
|               12:             Label
 | |
|         18(data):     17(ptr) Variable Function
 | |
|        48(coord):     47(ptr) Variable Function
 | |
|    52(storeTemp):     40(ptr) Variable Function
 | |
|               30:     29(ptr) AccessChain 28(csb@count) 25
 | |
|               34:      6(int) AtomicIAdd 30 32 33 31
 | |
|               35:      6(int) IAdd 34 31
 | |
|               37:     36(ptr) AccessChain 23(csb) 25 35
 | |
|               38:    19(sb_t) Load 37
 | |
|               39:   14(fvec4) CompositeExtract 38 0
 | |
|               41:     40(ptr) AccessChain 18(data) 25
 | |
|                               Store 41 39
 | |
|               42:   15(ivec2) CompositeExtract 38 1
 | |
|               45:     44(ptr) AccessChain 18(data) 43
 | |
|                               Store 45 42
 | |
|               49:     44(ptr) AccessChain 18(data) 43
 | |
|               50:   15(ivec2) Load 49
 | |
|               51:   46(fvec2) ConvertUToF 50
 | |
|                               Store 48(coord) 51
 | |
|               53:     40(ptr) AccessChain 18(data) 25
 | |
|               54:   14(fvec4) Load 53
 | |
|                               Store 52(storeTemp) 54
 | |
|               58:          55 Load 57(outtx)
 | |
|               59:   46(fvec2) Load 48(coord)
 | |
|               60:   15(ivec2) ConvertFToU 59
 | |
|               61:   14(fvec4) Load 52(storeTemp)
 | |
|                               ImageWrite 58 60 61
 | |
|               67:     66(ptr) AccessChain 48(coord) 33
 | |
|               68:   13(float) Load 67
 | |
|               69:      6(int) ConvertFToU 68
 | |
|               70:     66(ptr) AccessChain 48(coord) 32
 | |
|               71:   13(float) Load 70
 | |
|               72:      6(int) ConvertFToU 71
 | |
|               74:     73(ptr) AccessChain 65(rwsb) 25 72
 | |
|               75:   14(fvec4) Load 74
 | |
|               76:     73(ptr) AccessChain 65(rwsb) 25 69
 | |
|                               Store 76 75
 | |
|                               Return
 | |
|                               FunctionEnd
 | 
