330 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			330 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| hlsl.structbuffer.incdec.frag
 | |
| Shader version: 500
 | |
| gl_FragCoord origin is upper left
 | |
| 0:? Sequence
 | |
| 0:7  Function Definition: @main(u1; ( temp 4-component vector of float)
 | |
| 0:7    Function Parameters: 
 | |
| 0:7      'pos' ( in uint)
 | |
| 0:?     Sequence
 | |
| 0:8      Sequence
 | |
| 0:8        move second child to first child ( temp 4-component vector of uint)
 | |
| 0:8          'result' ( temp 4-component vector of uint)
 | |
| 0:8          Constant:
 | |
| 0:8            0 (const uint)
 | |
| 0:8            0 (const uint)
 | |
| 0:8            0 (const uint)
 | |
| 0:8            0 (const uint)
 | |
| 0:10      direct index (layout( row_major std430) buffer 4-component vector of uint)
 | |
| 0:10        @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint)
 | |
| 0:10          'sbuf_rw_i' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
 | |
| 0:10          Constant:
 | |
| 0:10            0 (const uint)
 | |
| 0:10        Constant:
 | |
| 0:10          7 (const int)
 | |
| 0:11      direct index (layout( row_major std430) buffer 4-component vector of uint)
 | |
| 0:11        @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint)
 | |
| 0:11          'sbuf_rw_d' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
 | |
| 0:11          Constant:
 | |
| 0:11            0 (const uint)
 | |
| 0:11        Constant:
 | |
| 0:11          7 (const int)
 | |
| 0:13      move second child to first child ( temp 4-component vector of uint)
 | |
| 0:13        direct index (layout( row_major std430) buffer 4-component vector of uint)
 | |
| 0:13          @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint)
 | |
| 0:13            'sbuf_rw_nocounter' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
 | |
| 0:13            Constant:
 | |
| 0:13              0 (const uint)
 | |
| 0:13          Constant:
 | |
| 0:13            5 (const int)
 | |
| 0:13        Constant:
 | |
| 0:13          2 (const uint)
 | |
| 0:13          2 (const uint)
 | |
| 0:13          2 (const uint)
 | |
| 0:13          2 (const uint)
 | |
| 0:15      Sequence
 | |
| 0:15        move second child to first child ( temp uint)
 | |
| 0:15          'c1' ( temp uint)
 | |
| 0:15          AtomicAdd ( temp uint)
 | |
| 0:15            @count: direct index for structure ( temp uint)
 | |
| 0:15              'sbuf_rw_i@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count})
 | |
| 0:15              Constant:
 | |
| 0:15                0 (const int)
 | |
| 0:15            Constant:
 | |
| 0:15              1 (const uint)
 | |
| 0:16      Sequence
 | |
| 0:16        move second child to first child ( temp uint)
 | |
| 0:16          'c2' ( temp uint)
 | |
| 0:16          add ( temp uint)
 | |
| 0:16            AtomicAdd ( temp uint)
 | |
| 0:16              @count: direct index for structure ( temp uint)
 | |
| 0:16                'sbuf_rw_d@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count})
 | |
| 0:16                Constant:
 | |
| 0:16                  0 (const int)
 | |
| 0:16              Constant:
 | |
| 0:16                4294967295 (const uint)
 | |
| 0:16            Constant:
 | |
| 0:16              -1 (const int)
 | |
| 0:18      Branch: Return with expression
 | |
| 0:?         Construct vec4 ( temp 4-component vector of float)
 | |
| 0:18          Convert uint to float ( temp float)
 | |
| 0:18            direct index ( temp uint)
 | |
| 0:18              'result' ( temp 4-component vector of uint)
 | |
| 0:18              Constant:
 | |
| 0:18                0 (const int)
 | |
| 0:18          Convert uint to float ( temp float)
 | |
| 0:18            direct index ( temp uint)
 | |
| 0:18              'result' ( temp 4-component vector of uint)
 | |
| 0:18              Constant:
 | |
| 0:18                1 (const int)
 | |
| 0:18          Convert uint to float ( temp float)
 | |
| 0:18            'c1' ( temp uint)
 | |
| 0:18          Convert uint to float ( temp float)
 | |
| 0:18            'c2' ( temp uint)
 | |
| 0:7  Function Definition: main( ( temp void)
 | |
| 0:7    Function Parameters: 
 | |
| 0:?     Sequence
 | |
| 0:7      move second child to first child ( temp uint)
 | |
| 0:?         'pos' ( temp uint)
 | |
| 0:?         'pos' (layout( location=0) flat in uint)
 | |
| 0:7      move second child to first child ( temp 4-component vector of float)
 | |
| 0:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
 | |
| 0:7        Function Call: @main(u1; ( temp 4-component vector of float)
 | |
| 0:?           'pos' ( temp uint)
 | |
| 0:?   Linker Objects
 | |
| 0:?     'sbuf_rw_i' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
 | |
| 0:?     'sbuf_rw_i@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count})
 | |
| 0:?     'sbuf_rw_d' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
 | |
| 0:?     'sbuf_rw_d@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count})
 | |
| 0:?     'sbuf_rw_nocounter' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
 | |
| 0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
 | |
| 0:?     'pos' (layout( location=0) flat in uint)
 | |
| 
 | |
| 
 | |
| Linked fragment stage:
 | |
| 
 | |
| 
 | |
| Shader version: 500
 | |
| gl_FragCoord origin is upper left
 | |
| 0:? Sequence
 | |
| 0:7  Function Definition: @main(u1; ( temp 4-component vector of float)
 | |
| 0:7    Function Parameters: 
 | |
| 0:7      'pos' ( in uint)
 | |
| 0:?     Sequence
 | |
| 0:8      Sequence
 | |
| 0:8        move second child to first child ( temp 4-component vector of uint)
 | |
| 0:8          'result' ( temp 4-component vector of uint)
 | |
| 0:8          Constant:
 | |
| 0:8            0 (const uint)
 | |
| 0:8            0 (const uint)
 | |
| 0:8            0 (const uint)
 | |
| 0:8            0 (const uint)
 | |
| 0:10      direct index (layout( row_major std430) buffer 4-component vector of uint)
 | |
| 0:10        @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint)
 | |
| 0:10          'sbuf_rw_i' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
 | |
| 0:10          Constant:
 | |
| 0:10            0 (const uint)
 | |
| 0:10        Constant:
 | |
| 0:10          7 (const int)
 | |
| 0:11      direct index (layout( row_major std430) buffer 4-component vector of uint)
 | |
| 0:11        @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint)
 | |
| 0:11          'sbuf_rw_d' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
 | |
| 0:11          Constant:
 | |
| 0:11            0 (const uint)
 | |
| 0:11        Constant:
 | |
| 0:11          7 (const int)
 | |
| 0:13      move second child to first child ( temp 4-component vector of uint)
 | |
| 0:13        direct index (layout( row_major std430) buffer 4-component vector of uint)
 | |
| 0:13          @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint)
 | |
| 0:13            'sbuf_rw_nocounter' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
 | |
| 0:13            Constant:
 | |
| 0:13              0 (const uint)
 | |
| 0:13          Constant:
 | |
| 0:13            5 (const int)
 | |
| 0:13        Constant:
 | |
| 0:13          2 (const uint)
 | |
| 0:13          2 (const uint)
 | |
| 0:13          2 (const uint)
 | |
| 0:13          2 (const uint)
 | |
| 0:15      Sequence
 | |
| 0:15        move second child to first child ( temp uint)
 | |
| 0:15          'c1' ( temp uint)
 | |
| 0:15          AtomicAdd ( temp uint)
 | |
| 0:15            @count: direct index for structure ( temp uint)
 | |
| 0:15              'sbuf_rw_i@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count})
 | |
| 0:15              Constant:
 | |
| 0:15                0 (const int)
 | |
| 0:15            Constant:
 | |
| 0:15              1 (const uint)
 | |
| 0:16      Sequence
 | |
| 0:16        move second child to first child ( temp uint)
 | |
| 0:16          'c2' ( temp uint)
 | |
| 0:16          add ( temp uint)
 | |
| 0:16            AtomicAdd ( temp uint)
 | |
| 0:16              @count: direct index for structure ( temp uint)
 | |
| 0:16                'sbuf_rw_d@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count})
 | |
| 0:16                Constant:
 | |
| 0:16                  0 (const int)
 | |
| 0:16              Constant:
 | |
| 0:16                4294967295 (const uint)
 | |
| 0:16            Constant:
 | |
| 0:16              -1 (const int)
 | |
| 0:18      Branch: Return with expression
 | |
| 0:?         Construct vec4 ( temp 4-component vector of float)
 | |
| 0:18          Convert uint to float ( temp float)
 | |
| 0:18            direct index ( temp uint)
 | |
| 0:18              'result' ( temp 4-component vector of uint)
 | |
| 0:18              Constant:
 | |
| 0:18                0 (const int)
 | |
| 0:18          Convert uint to float ( temp float)
 | |
| 0:18            direct index ( temp uint)
 | |
| 0:18              'result' ( temp 4-component vector of uint)
 | |
| 0:18              Constant:
 | |
| 0:18                1 (const int)
 | |
| 0:18          Convert uint to float ( temp float)
 | |
| 0:18            'c1' ( temp uint)
 | |
| 0:18          Convert uint to float ( temp float)
 | |
| 0:18            'c2' ( temp uint)
 | |
| 0:7  Function Definition: main( ( temp void)
 | |
| 0:7    Function Parameters: 
 | |
| 0:?     Sequence
 | |
| 0:7      move second child to first child ( temp uint)
 | |
| 0:?         'pos' ( temp uint)
 | |
| 0:?         'pos' (layout( location=0) flat in uint)
 | |
| 0:7      move second child to first child ( temp 4-component vector of float)
 | |
| 0:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
 | |
| 0:7        Function Call: @main(u1; ( temp 4-component vector of float)
 | |
| 0:?           'pos' ( temp uint)
 | |
| 0:?   Linker Objects
 | |
| 0:?     'sbuf_rw_i' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
 | |
| 0:?     'sbuf_rw_i@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count})
 | |
| 0:?     'sbuf_rw_d' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
 | |
| 0:?     'sbuf_rw_d@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count})
 | |
| 0:?     'sbuf_rw_nocounter' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
 | |
| 0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
 | |
| 0:?     'pos' (layout( location=0) flat in uint)
 | |
| 
 | |
| // Module Version 10000
 | |
| // Generated by (magic number): 80007
 | |
| // Id's are bound by 70
 | |
| 
 | |
|                               Capability Shader
 | |
|                1:             ExtInstImport  "GLSL.std.450"
 | |
|                               MemoryModel Logical GLSL450
 | |
|                               EntryPoint Fragment 4  "main" 63 66
 | |
|                               ExecutionMode 4 OriginUpperLeft
 | |
|                               Source HLSL 500
 | |
|                               Name 4  "main"
 | |
|                               Name 12  "@main(u1;"
 | |
|                               Name 11  "pos"
 | |
|                               Name 16  "result"
 | |
|                               Name 20  "sbuf_rw_i"
 | |
|                               MemberName 20(sbuf_rw_i) 0  "@data"
 | |
|                               Name 22  "sbuf_rw_i"
 | |
|                               Name 26  "sbuf_rw_d"
 | |
|                               Name 27  "sbuf_rw_nocounter"
 | |
|                               Name 33  "c1"
 | |
|                               Name 34  "sbuf_rw_i@count"
 | |
|                               MemberName 34(sbuf_rw_i@count) 0  "@count"
 | |
|                               Name 36  "sbuf_rw_i@count"
 | |
|                               Name 41  "c2"
 | |
|                               Name 42  "sbuf_rw_d@count"
 | |
|                               Name 61  "pos"
 | |
|                               Name 63  "pos"
 | |
|                               Name 66  "@entryPointOutput"
 | |
|                               Name 67  "param"
 | |
|                               Decorate 19 ArrayStride 16
 | |
|                               MemberDecorate 20(sbuf_rw_i) 0 Offset 0
 | |
|                               Decorate 20(sbuf_rw_i) BufferBlock
 | |
|                               Decorate 22(sbuf_rw_i) DescriptorSet 0
 | |
|                               Decorate 22(sbuf_rw_i) Binding 0
 | |
|                               Decorate 26(sbuf_rw_d) DescriptorSet 0
 | |
|                               Decorate 26(sbuf_rw_d) Binding 0
 | |
|                               Decorate 27(sbuf_rw_nocounter) DescriptorSet 0
 | |
|                               Decorate 27(sbuf_rw_nocounter) Binding 0
 | |
|                               MemberDecorate 34(sbuf_rw_i@count) 0 Offset 0
 | |
|                               Decorate 34(sbuf_rw_i@count) BufferBlock
 | |
|                               Decorate 36(sbuf_rw_i@count) DescriptorSet 0
 | |
|                               Decorate 36(sbuf_rw_i@count) Binding 0
 | |
|                               Decorate 42(sbuf_rw_d@count) DescriptorSet 0
 | |
|                               Decorate 42(sbuf_rw_d@count) Binding 0
 | |
|                               Decorate 63(pos) Flat
 | |
|                               Decorate 63(pos) Location 0
 | |
|                               Decorate 66(@entryPointOutput) Location 0
 | |
|                2:             TypeVoid
 | |
|                3:             TypeFunction 2
 | |
|                6:             TypeInt 32 0
 | |
|                7:             TypePointer Function 6(int)
 | |
|                8:             TypeFloat 32
 | |
|                9:             TypeVector 8(float) 4
 | |
|               10:             TypeFunction 9(fvec4) 7(ptr)
 | |
|               14:             TypeVector 6(int) 4
 | |
|               15:             TypePointer Function 14(ivec4)
 | |
|               17:      6(int) Constant 0
 | |
|               18:   14(ivec4) ConstantComposite 17 17 17 17
 | |
|               19:             TypeRuntimeArray 14(ivec4)
 | |
|    20(sbuf_rw_i):             TypeStruct 19
 | |
|               21:             TypePointer Uniform 20(sbuf_rw_i)
 | |
|    22(sbuf_rw_i):     21(ptr) Variable Uniform
 | |
|               23:             TypeInt 32 1
 | |
|               24:     23(int) Constant 0
 | |
|               25:     23(int) Constant 7
 | |
|    26(sbuf_rw_d):     21(ptr) Variable Uniform
 | |
| 27(sbuf_rw_nocounter):     21(ptr) Variable Uniform
 | |
|               28:     23(int) Constant 5
 | |
|               29:      6(int) Constant 2
 | |
|               30:   14(ivec4) ConstantComposite 29 29 29 29
 | |
|               31:             TypePointer Uniform 14(ivec4)
 | |
| 34(sbuf_rw_i@count):             TypeStruct 6(int)
 | |
|               35:             TypePointer Uniform 34(sbuf_rw_i@count)
 | |
| 36(sbuf_rw_i@count):     35(ptr) Variable Uniform
 | |
|               37:             TypePointer Uniform 6(int)
 | |
|               39:      6(int) Constant 1
 | |
| 42(sbuf_rw_d@count):     35(ptr) Variable Uniform
 | |
|               44:      6(int) Constant 4294967295
 | |
|               46:     23(int) Constant 4294967295
 | |
|               62:             TypePointer Input 6(int)
 | |
|          63(pos):     62(ptr) Variable Input
 | |
|               65:             TypePointer Output 9(fvec4)
 | |
| 66(@entryPointOutput):     65(ptr) Variable Output
 | |
|          4(main):           2 Function None 3
 | |
|                5:             Label
 | |
|          61(pos):      7(ptr) Variable Function
 | |
|        67(param):      7(ptr) Variable Function
 | |
|               64:      6(int) Load 63(pos)
 | |
|                               Store 61(pos) 64
 | |
|               68:      6(int) Load 61(pos)
 | |
|                               Store 67(param) 68
 | |
|               69:    9(fvec4) FunctionCall 12(@main(u1;) 67(param)
 | |
|                               Store 66(@entryPointOutput) 69
 | |
|                               Return
 | |
|                               FunctionEnd
 | |
|    12(@main(u1;):    9(fvec4) Function None 10
 | |
|          11(pos):      7(ptr) FunctionParameter
 | |
|               13:             Label
 | |
|       16(result):     15(ptr) Variable Function
 | |
|           33(c1):      7(ptr) Variable Function
 | |
|           41(c2):      7(ptr) Variable Function
 | |
|                               Store 16(result) 18
 | |
|               32:     31(ptr) AccessChain 27(sbuf_rw_nocounter) 24 28
 | |
|                               Store 32 30
 | |
|               38:     37(ptr) AccessChain 36(sbuf_rw_i@count) 24
 | |
|               40:      6(int) AtomicIAdd 38 39 17 39
 | |
|                               Store 33(c1) 40
 | |
|               43:     37(ptr) AccessChain 42(sbuf_rw_d@count) 24
 | |
|               45:      6(int) AtomicIAdd 43 39 17 44
 | |
|               47:      6(int) IAdd 45 46
 | |
|                               Store 41(c2) 47
 | |
|               48:      7(ptr) AccessChain 16(result) 17
 | |
|               49:      6(int) Load 48
 | |
|               50:    8(float) ConvertUToF 49
 | |
|               51:      7(ptr) AccessChain 16(result) 39
 | |
|               52:      6(int) Load 51
 | |
|               53:    8(float) ConvertUToF 52
 | |
|               54:      6(int) Load 33(c1)
 | |
|               55:    8(float) ConvertUToF 54
 | |
|               56:      6(int) Load 41(c2)
 | |
|               57:    8(float) ConvertUToF 56
 | |
|               58:    9(fvec4) CompositeConstruct 50 53 55 57
 | |
|                               ReturnValue 58
 | |
|                               FunctionEnd
 | 
