 ac3707921e
			
		
	
	
		ac3707921e
		
	
	
	
	
		
			
			Now, version 5.* is all connected to making the uint type, which doesn't quite work. Generator versions 4 and 6 do not do this.
		
			
				
	
	
		
			225 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			225 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| hlsl.structbuffer.append.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      move second child to first child ( temp 4-component vector of float)
 | |
| 0:8        indirect index (layout( row_major std430) buffer 4-component vector of float)
 | |
| 0:8          @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of 4-component vector of float)
 | |
| 0:8            'sbuf_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
 | |
| 0:8            Constant:
 | |
| 0:8              0 (const uint)
 | |
| 0:8          AtomicAdd ( temp uint)
 | |
| 0:8            @count: direct index for structure ( temp int)
 | |
| 0:8              'sbuf_a@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count})
 | |
| 0:8              Constant:
 | |
| 0:8                0 (const int)
 | |
| 0:8            Constant:
 | |
| 0:8              1 (const int)
 | |
| 0:?         Constant:
 | |
| 0:?           1.000000
 | |
| 0:?           2.000000
 | |
| 0:?           3.000000
 | |
| 0:?           4.000000
 | |
| 0:10      Branch: Return with expression
 | |
| 0:10        indirect index (layout( row_major std430) buffer 4-component vector of float)
 | |
| 0:10          @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of 4-component vector of float)
 | |
| 0:10            'sbuf_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
 | |
| 0:10            Constant:
 | |
| 0:10              0 (const uint)
 | |
| 0:10          add ( temp uint)
 | |
| 0:10            AtomicAdd ( temp uint)
 | |
| 0:10              @count: direct index for structure ( temp int)
 | |
| 0:10                'sbuf_c@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count})
 | |
| 0:10                Constant:
 | |
| 0:10                  0 (const int)
 | |
| 0:10              Constant:
 | |
| 0:10                -1 (const int)
 | |
| 0:10            Constant:
 | |
| 0:10              -1 (const int)
 | |
| 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_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
 | |
| 0:?     'sbuf_a@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count})
 | |
| 0:?     'sbuf_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
 | |
| 0:?     'sbuf_c@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count})
 | |
| 0:?     'sbuf_unused' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @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      move second child to first child ( temp 4-component vector of float)
 | |
| 0:8        indirect index (layout( row_major std430) buffer 4-component vector of float)
 | |
| 0:8          @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of 4-component vector of float)
 | |
| 0:8            'sbuf_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
 | |
| 0:8            Constant:
 | |
| 0:8              0 (const uint)
 | |
| 0:8          AtomicAdd ( temp uint)
 | |
| 0:8            @count: direct index for structure ( temp int)
 | |
| 0:8              'sbuf_a@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count})
 | |
| 0:8              Constant:
 | |
| 0:8                0 (const int)
 | |
| 0:8            Constant:
 | |
| 0:8              1 (const int)
 | |
| 0:?         Constant:
 | |
| 0:?           1.000000
 | |
| 0:?           2.000000
 | |
| 0:?           3.000000
 | |
| 0:?           4.000000
 | |
| 0:10      Branch: Return with expression
 | |
| 0:10        indirect index (layout( row_major std430) buffer 4-component vector of float)
 | |
| 0:10          @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of 4-component vector of float)
 | |
| 0:10            'sbuf_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
 | |
| 0:10            Constant:
 | |
| 0:10              0 (const uint)
 | |
| 0:10          add ( temp uint)
 | |
| 0:10            AtomicAdd ( temp uint)
 | |
| 0:10              @count: direct index for structure ( temp int)
 | |
| 0:10                'sbuf_c@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count})
 | |
| 0:10                Constant:
 | |
| 0:10                  0 (const int)
 | |
| 0:10              Constant:
 | |
| 0:10                -1 (const int)
 | |
| 0:10            Constant:
 | |
| 0:10              -1 (const int)
 | |
| 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_a' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
 | |
| 0:?     'sbuf_a@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count})
 | |
| 0:?     'sbuf_c' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @data})
 | |
| 0:?     'sbuf_c@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer int @count})
 | |
| 0:?     'sbuf_unused' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of 4-component vector of float @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): 80006
 | |
| // Id's are bound by 56
 | |
| 
 | |
|                               Capability Shader
 | |
|                1:             ExtInstImport  "GLSL.std.450"
 | |
|                               MemoryModel Logical GLSL450
 | |
|                               EntryPoint Fragment 4  "main" 48 51
 | |
|                               ExecutionMode 4 OriginUpperLeft
 | |
|                               Source HLSL 500
 | |
|                               Name 4  "main"
 | |
|                               Name 12  "@main(u1;"
 | |
|                               Name 11  "pos"
 | |
|                               Name 15  "sbuf_a"
 | |
|                               MemberName 15(sbuf_a) 0  "@data"
 | |
|                               Name 17  "sbuf_a"
 | |
|                               Name 20  "sbuf_a@count"
 | |
|                               MemberName 20(sbuf_a@count) 0  "@count"
 | |
|                               Name 22  "sbuf_a@count"
 | |
|                               Name 36  "sbuf_c"
 | |
|                               Name 37  "sbuf_c@count"
 | |
|                               Name 46  "pos"
 | |
|                               Name 48  "pos"
 | |
|                               Name 51  "@entryPointOutput"
 | |
|                               Name 52  "param"
 | |
|                               Name 55  "sbuf_unused"
 | |
|                               Decorate 14 ArrayStride 16
 | |
|                               MemberDecorate 15(sbuf_a) 0 Offset 0
 | |
|                               Decorate 15(sbuf_a) BufferBlock
 | |
|                               Decorate 17(sbuf_a) DescriptorSet 0
 | |
|                               MemberDecorate 20(sbuf_a@count) 0 Offset 0
 | |
|                               Decorate 20(sbuf_a@count) BufferBlock
 | |
|                               Decorate 22(sbuf_a@count) DescriptorSet 0
 | |
|                               Decorate 36(sbuf_c) DescriptorSet 0
 | |
|                               Decorate 37(sbuf_c@count) DescriptorSet 0
 | |
|                               Decorate 48(pos) Flat
 | |
|                               Decorate 48(pos) Location 0
 | |
|                               Decorate 51(@entryPointOutput) Location 0
 | |
|                               Decorate 55(sbuf_unused) DescriptorSet 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:             TypeRuntimeArray 9(fvec4)
 | |
|       15(sbuf_a):             TypeStruct 14
 | |
|               16:             TypePointer Uniform 15(sbuf_a)
 | |
|       17(sbuf_a):     16(ptr) Variable Uniform
 | |
|               18:             TypeInt 32 1
 | |
|               19:     18(int) Constant 0
 | |
| 20(sbuf_a@count):             TypeStruct 18(int)
 | |
|               21:             TypePointer Uniform 20(sbuf_a@count)
 | |
| 22(sbuf_a@count):     21(ptr) Variable Uniform
 | |
|               23:             TypePointer Uniform 18(int)
 | |
|               25:     18(int) Constant 1
 | |
|               26:      6(int) Constant 1
 | |
|               27:      6(int) Constant 0
 | |
|               29:    8(float) Constant 1065353216
 | |
|               30:    8(float) Constant 1073741824
 | |
|               31:    8(float) Constant 1077936128
 | |
|               32:    8(float) Constant 1082130432
 | |
|               33:    9(fvec4) ConstantComposite 29 30 31 32
 | |
|               34:             TypePointer Uniform 9(fvec4)
 | |
|       36(sbuf_c):     16(ptr) Variable Uniform
 | |
| 37(sbuf_c@count):     21(ptr) Variable Uniform
 | |
|               39:     18(int) Constant 4294967295
 | |
|               47:             TypePointer Input 6(int)
 | |
|          48(pos):     47(ptr) Variable Input
 | |
|               50:             TypePointer Output 9(fvec4)
 | |
| 51(@entryPointOutput):     50(ptr) Variable Output
 | |
|  55(sbuf_unused):     16(ptr) Variable Uniform
 | |
|          4(main):           2 Function None 3
 | |
|                5:             Label
 | |
|          46(pos):      7(ptr) Variable Function
 | |
|        52(param):      7(ptr) Variable Function
 | |
|               49:      6(int) Load 48(pos)
 | |
|                               Store 46(pos) 49
 | |
|               53:      6(int) Load 46(pos)
 | |
|                               Store 52(param) 53
 | |
|               54:    9(fvec4) FunctionCall 12(@main(u1;) 52(param)
 | |
|                               Store 51(@entryPointOutput) 54
 | |
|                               Return
 | |
|                               FunctionEnd
 | |
|    12(@main(u1;):    9(fvec4) Function None 10
 | |
|          11(pos):      7(ptr) FunctionParameter
 | |
|               13:             Label
 | |
|               24:     23(ptr) AccessChain 22(sbuf_a@count) 19
 | |
|               28:      6(int) AtomicIAdd 24 26 27 25
 | |
|               35:     34(ptr) AccessChain 17(sbuf_a) 19 28
 | |
|                               Store 35 33
 | |
|               38:     23(ptr) AccessChain 37(sbuf_c@count) 19
 | |
|               40:      6(int) AtomicIAdd 38 26 27 39
 | |
|               41:      6(int) IAdd 40 39
 | |
|               42:     34(ptr) AccessChain 36(sbuf_c) 19 41
 | |
|               43:    9(fvec4) Load 42
 | |
|                               ReturnValue 43
 | |
|                               FunctionEnd
 |