 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.
		
			
				
	
	
		
			322 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			322 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| hlsl.struct.split.assign.frag
 | |
| Shader version: 500
 | |
| gl_FragCoord origin is upper left
 | |
| 0:? Sequence
 | |
| 0:7  Function Definition: @main(i1;struct-S-f1-vf41[3]; ( temp 4-component vector of float)
 | |
| 0:7    Function Parameters: 
 | |
| 0:7      'i' ( in int)
 | |
| 0:7      'input' ( in 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
 | |
| 0:?     Sequence
 | |
| 0:9      move second child to first child ( temp 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
 | |
| 0:9        'input' ( in 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
 | |
| 0:9        'a' ( temp 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
 | |
| 0:11      Branch: Return with expression
 | |
| 0:11        pos: direct index for structure ( temp 4-component vector of float)
 | |
| 0:11          direct index ( temp structure{ temp float f,  temp 4-component vector of float pos})
 | |
| 0:11            'a' ( temp 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
 | |
| 0:11            Constant:
 | |
| 0:11              1 (const int)
 | |
| 0:11          Constant:
 | |
| 0:11            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 int)
 | |
| 0:?         'i' ( temp int)
 | |
| 0:?         'i' (layout( location=0) flat in int)
 | |
| 0:7      Sequence
 | |
| 0:7        move second child to first child ( temp float)
 | |
| 0:7          f: direct index for structure ( temp float)
 | |
| 0:7            direct index ( temp structure{ temp float f,  temp 4-component vector of float pos})
 | |
| 0:?               'input' ( temp 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
 | |
| 0:7              Constant:
 | |
| 0:7                0 (const int)
 | |
| 0:7            Constant:
 | |
| 0:7              0 (const int)
 | |
| 0:?           'input[0].f' (layout( location=1) in float)
 | |
| 0:7        move second child to first child ( temp 4-component vector of float)
 | |
| 0:7          pos: direct index for structure ( temp 4-component vector of float)
 | |
| 0:7            direct index ( temp structure{ temp float f,  temp 4-component vector of float pos})
 | |
| 0:?               'input' ( temp 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
 | |
| 0:7              Constant:
 | |
| 0:7                0 (const int)
 | |
| 0:7            Constant:
 | |
| 0:7              1 (const int)
 | |
| 0:7          direct index ( in 4-component vector of float FragCoord)
 | |
| 0:?             'input.pos' ( in 3-element array of 4-component vector of float FragCoord)
 | |
| 0:7            Constant:
 | |
| 0:7              0 (const int)
 | |
| 0:7        move second child to first child ( temp float)
 | |
| 0:7          f: direct index for structure ( temp float)
 | |
| 0:7            direct index ( temp structure{ temp float f,  temp 4-component vector of float pos})
 | |
| 0:?               'input' ( temp 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
 | |
| 0:7              Constant:
 | |
| 0:7                1 (const int)
 | |
| 0:7            Constant:
 | |
| 0:7              0 (const int)
 | |
| 0:?           'input[1].f' (layout( location=2) in float)
 | |
| 0:7        move second child to first child ( temp 4-component vector of float)
 | |
| 0:7          pos: direct index for structure ( temp 4-component vector of float)
 | |
| 0:7            direct index ( temp structure{ temp float f,  temp 4-component vector of float pos})
 | |
| 0:?               'input' ( temp 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
 | |
| 0:7              Constant:
 | |
| 0:7                1 (const int)
 | |
| 0:7            Constant:
 | |
| 0:7              1 (const int)
 | |
| 0:7          direct index ( in 4-component vector of float FragCoord)
 | |
| 0:?             'input.pos' ( in 3-element array of 4-component vector of float FragCoord)
 | |
| 0:7            Constant:
 | |
| 0:7              1 (const int)
 | |
| 0:7        move second child to first child ( temp float)
 | |
| 0:7          f: direct index for structure ( temp float)
 | |
| 0:7            direct index ( temp structure{ temp float f,  temp 4-component vector of float pos})
 | |
| 0:?               'input' ( temp 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
 | |
| 0:7              Constant:
 | |
| 0:7                2 (const int)
 | |
| 0:7            Constant:
 | |
| 0:7              0 (const int)
 | |
| 0:?           'input[2].f' (layout( location=3) in float)
 | |
| 0:7        move second child to first child ( temp 4-component vector of float)
 | |
| 0:7          pos: direct index for structure ( temp 4-component vector of float)
 | |
| 0:7            direct index ( temp structure{ temp float f,  temp 4-component vector of float pos})
 | |
| 0:?               'input' ( temp 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
 | |
| 0:7              Constant:
 | |
| 0:7                2 (const int)
 | |
| 0:7            Constant:
 | |
| 0:7              1 (const int)
 | |
| 0:7          direct index ( in 4-component vector of float FragCoord)
 | |
| 0:?             'input.pos' ( in 3-element array of 4-component vector of float FragCoord)
 | |
| 0:7            Constant:
 | |
| 0:7              2 (const int)
 | |
| 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(i1;struct-S-f1-vf41[3]; ( temp 4-component vector of float)
 | |
| 0:?           'i' ( temp int)
 | |
| 0:?           'input' ( temp 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
 | |
| 0:?   Linker Objects
 | |
| 0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
 | |
| 0:?     'i' (layout( location=0) flat in int)
 | |
| 0:?     'input.pos' ( in 3-element array of 4-component vector of float FragCoord)
 | |
| 0:?     'input[0].f' (layout( location=1) in float)
 | |
| 0:?     'input[1].f' (layout( location=2) in float)
 | |
| 0:?     'input[2].f' (layout( location=3) in float)
 | |
| 
 | |
| 
 | |
| Linked fragment stage:
 | |
| 
 | |
| 
 | |
| Shader version: 500
 | |
| gl_FragCoord origin is upper left
 | |
| 0:? Sequence
 | |
| 0:7  Function Definition: @main(i1;struct-S-f1-vf41[3]; ( temp 4-component vector of float)
 | |
| 0:7    Function Parameters: 
 | |
| 0:7      'i' ( in int)
 | |
| 0:7      'input' ( in 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
 | |
| 0:?     Sequence
 | |
| 0:9      move second child to first child ( temp 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
 | |
| 0:9        'input' ( in 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
 | |
| 0:9        'a' ( temp 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
 | |
| 0:11      Branch: Return with expression
 | |
| 0:11        pos: direct index for structure ( temp 4-component vector of float)
 | |
| 0:11          direct index ( temp structure{ temp float f,  temp 4-component vector of float pos})
 | |
| 0:11            'a' ( temp 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
 | |
| 0:11            Constant:
 | |
| 0:11              1 (const int)
 | |
| 0:11          Constant:
 | |
| 0:11            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 int)
 | |
| 0:?         'i' ( temp int)
 | |
| 0:?         'i' (layout( location=0) flat in int)
 | |
| 0:7      Sequence
 | |
| 0:7        move second child to first child ( temp float)
 | |
| 0:7          f: direct index for structure ( temp float)
 | |
| 0:7            direct index ( temp structure{ temp float f,  temp 4-component vector of float pos})
 | |
| 0:?               'input' ( temp 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
 | |
| 0:7              Constant:
 | |
| 0:7                0 (const int)
 | |
| 0:7            Constant:
 | |
| 0:7              0 (const int)
 | |
| 0:?           'input[0].f' (layout( location=1) in float)
 | |
| 0:7        move second child to first child ( temp 4-component vector of float)
 | |
| 0:7          pos: direct index for structure ( temp 4-component vector of float)
 | |
| 0:7            direct index ( temp structure{ temp float f,  temp 4-component vector of float pos})
 | |
| 0:?               'input' ( temp 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
 | |
| 0:7              Constant:
 | |
| 0:7                0 (const int)
 | |
| 0:7            Constant:
 | |
| 0:7              1 (const int)
 | |
| 0:7          direct index ( in 4-component vector of float FragCoord)
 | |
| 0:?             'input.pos' ( in 3-element array of 4-component vector of float FragCoord)
 | |
| 0:7            Constant:
 | |
| 0:7              0 (const int)
 | |
| 0:7        move second child to first child ( temp float)
 | |
| 0:7          f: direct index for structure ( temp float)
 | |
| 0:7            direct index ( temp structure{ temp float f,  temp 4-component vector of float pos})
 | |
| 0:?               'input' ( temp 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
 | |
| 0:7              Constant:
 | |
| 0:7                1 (const int)
 | |
| 0:7            Constant:
 | |
| 0:7              0 (const int)
 | |
| 0:?           'input[1].f' (layout( location=2) in float)
 | |
| 0:7        move second child to first child ( temp 4-component vector of float)
 | |
| 0:7          pos: direct index for structure ( temp 4-component vector of float)
 | |
| 0:7            direct index ( temp structure{ temp float f,  temp 4-component vector of float pos})
 | |
| 0:?               'input' ( temp 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
 | |
| 0:7              Constant:
 | |
| 0:7                1 (const int)
 | |
| 0:7            Constant:
 | |
| 0:7              1 (const int)
 | |
| 0:7          direct index ( in 4-component vector of float FragCoord)
 | |
| 0:?             'input.pos' ( in 3-element array of 4-component vector of float FragCoord)
 | |
| 0:7            Constant:
 | |
| 0:7              1 (const int)
 | |
| 0:7        move second child to first child ( temp float)
 | |
| 0:7          f: direct index for structure ( temp float)
 | |
| 0:7            direct index ( temp structure{ temp float f,  temp 4-component vector of float pos})
 | |
| 0:?               'input' ( temp 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
 | |
| 0:7              Constant:
 | |
| 0:7                2 (const int)
 | |
| 0:7            Constant:
 | |
| 0:7              0 (const int)
 | |
| 0:?           'input[2].f' (layout( location=3) in float)
 | |
| 0:7        move second child to first child ( temp 4-component vector of float)
 | |
| 0:7          pos: direct index for structure ( temp 4-component vector of float)
 | |
| 0:7            direct index ( temp structure{ temp float f,  temp 4-component vector of float pos})
 | |
| 0:?               'input' ( temp 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
 | |
| 0:7              Constant:
 | |
| 0:7                2 (const int)
 | |
| 0:7            Constant:
 | |
| 0:7              1 (const int)
 | |
| 0:7          direct index ( in 4-component vector of float FragCoord)
 | |
| 0:?             'input.pos' ( in 3-element array of 4-component vector of float FragCoord)
 | |
| 0:7            Constant:
 | |
| 0:7              2 (const int)
 | |
| 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(i1;struct-S-f1-vf41[3]; ( temp 4-component vector of float)
 | |
| 0:?           'i' ( temp int)
 | |
| 0:?           'input' ( temp 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
 | |
| 0:?   Linker Objects
 | |
| 0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
 | |
| 0:?     'i' (layout( location=0) flat in int)
 | |
| 0:?     'input.pos' ( in 3-element array of 4-component vector of float FragCoord)
 | |
| 0:?     'input[0].f' (layout( location=1) in float)
 | |
| 0:?     'input[1].f' (layout( location=2) in float)
 | |
| 0:?     'input[2].f' (layout( location=3) in float)
 | |
| 
 | |
| // Module Version 10000
 | |
| // Generated by (magic number): 80006
 | |
| // Id's are bound by 66
 | |
| 
 | |
|                               Capability Shader
 | |
|                1:             ExtInstImport  "GLSL.std.450"
 | |
|                               MemoryModel Logical GLSL450
 | |
|                               EntryPoint Fragment 4  "main" 30 35 41 46 53 60
 | |
|                               ExecutionMode 4 OriginUpperLeft
 | |
|                               Source HLSL 500
 | |
|                               Name 4  "main"
 | |
|                               Name 10  "S"
 | |
|                               MemberName 10(S) 0  "f"
 | |
|                               MemberName 10(S) 1  "pos"
 | |
|                               Name 18  "@main(i1;struct-S-f1-vf41[3];"
 | |
|                               Name 16  "i"
 | |
|                               Name 17  "input"
 | |
|                               Name 20  "a"
 | |
|                               Name 28  "i"
 | |
|                               Name 30  "i"
 | |
|                               Name 32  "input"
 | |
|                               Name 35  "input[0].f"
 | |
|                               Name 41  "input.pos"
 | |
|                               Name 46  "input[1].f"
 | |
|                               Name 53  "input[2].f"
 | |
|                               Name 60  "@entryPointOutput"
 | |
|                               Name 61  "param"
 | |
|                               Name 63  "param"
 | |
|                               Decorate 30(i) Flat
 | |
|                               Decorate 30(i) Location 0
 | |
|                               Decorate 35(input[0].f) Location 1
 | |
|                               Decorate 41(input.pos) BuiltIn FragCoord
 | |
|                               Decorate 46(input[1].f) Location 2
 | |
|                               Decorate 53(input[2].f) Location 3
 | |
|                               Decorate 60(@entryPointOutput) Location 0
 | |
|                2:             TypeVoid
 | |
|                3:             TypeFunction 2
 | |
|                6:             TypeInt 32 1
 | |
|                7:             TypePointer Function 6(int)
 | |
|                8:             TypeFloat 32
 | |
|                9:             TypeVector 8(float) 4
 | |
|            10(S):             TypeStruct 8(float) 9(fvec4)
 | |
|               11:             TypeInt 32 0
 | |
|               12:     11(int) Constant 3
 | |
|               13:             TypeArray 10(S) 12
 | |
|               14:             TypePointer Function 13
 | |
|               15:             TypeFunction 9(fvec4) 7(ptr) 14(ptr)
 | |
|               22:      6(int) Constant 1
 | |
|               23:             TypePointer Function 9(fvec4)
 | |
|               29:             TypePointer Input 6(int)
 | |
|            30(i):     29(ptr) Variable Input
 | |
|               33:      6(int) Constant 0
 | |
|               34:             TypePointer Input 8(float)
 | |
|   35(input[0].f):     34(ptr) Variable Input
 | |
|               37:             TypePointer Function 8(float)
 | |
|               39:             TypeArray 9(fvec4) 12
 | |
|               40:             TypePointer Input 39
 | |
|    41(input.pos):     40(ptr) Variable Input
 | |
|               42:             TypePointer Input 9(fvec4)
 | |
|   46(input[1].f):     34(ptr) Variable Input
 | |
|               52:      6(int) Constant 2
 | |
|   53(input[2].f):     34(ptr) Variable Input
 | |
|               59:             TypePointer Output 9(fvec4)
 | |
| 60(@entryPointOutput):     59(ptr) Variable Output
 | |
|          4(main):           2 Function None 3
 | |
|                5:             Label
 | |
|            28(i):      7(ptr) Variable Function
 | |
|        32(input):     14(ptr) Variable Function
 | |
|        61(param):      7(ptr) Variable Function
 | |
|        63(param):     14(ptr) Variable Function
 | |
|               31:      6(int) Load 30(i)
 | |
|                               Store 28(i) 31
 | |
|               36:    8(float) Load 35(input[0].f)
 | |
|               38:     37(ptr) AccessChain 32(input) 33 33
 | |
|                               Store 38 36
 | |
|               43:     42(ptr) AccessChain 41(input.pos) 33
 | |
|               44:    9(fvec4) Load 43
 | |
|               45:     23(ptr) AccessChain 32(input) 33 22
 | |
|                               Store 45 44
 | |
|               47:    8(float) Load 46(input[1].f)
 | |
|               48:     37(ptr) AccessChain 32(input) 22 33
 | |
|                               Store 48 47
 | |
|               49:     42(ptr) AccessChain 41(input.pos) 22
 | |
|               50:    9(fvec4) Load 49
 | |
|               51:     23(ptr) AccessChain 32(input) 22 22
 | |
|                               Store 51 50
 | |
|               54:    8(float) Load 53(input[2].f)
 | |
|               55:     37(ptr) AccessChain 32(input) 52 33
 | |
|                               Store 55 54
 | |
|               56:     42(ptr) AccessChain 41(input.pos) 52
 | |
|               57:    9(fvec4) Load 56
 | |
|               58:     23(ptr) AccessChain 32(input) 52 22
 | |
|                               Store 58 57
 | |
|               62:      6(int) Load 28(i)
 | |
|                               Store 61(param) 62
 | |
|               64:          13 Load 32(input)
 | |
|                               Store 63(param) 64
 | |
|               65:    9(fvec4) FunctionCall 18(@main(i1;struct-S-f1-vf41[3];) 61(param) 63(param)
 | |
|                               Store 60(@entryPointOutput) 65
 | |
|                               Return
 | |
|                               FunctionEnd
 | |
| 18(@main(i1;struct-S-f1-vf41[3];):    9(fvec4) Function None 15
 | |
|            16(i):      7(ptr) FunctionParameter
 | |
|        17(input):     14(ptr) FunctionParameter
 | |
|               19:             Label
 | |
|            20(a):     14(ptr) Variable Function
 | |
|               21:          13 Load 20(a)
 | |
|                               Store 17(input) 21
 | |
|               24:     23(ptr) AccessChain 20(a) 22 22
 | |
|               25:    9(fvec4) Load 24
 | |
|                               ReturnValue 25
 | |
|                               FunctionEnd
 |