 02467d8d94
			
		
	
	
		02467d8d94
		
	
	
	
	
		
			
			This needs some render testing, but is destined to be part of master. This also leads to a variety of other simplifications. - IO are global symbols, so only need one list of linkage nodes (deferred) - no longer need parse-context-wide 'inEntryPoint' state, entry-point is localized - several parts of splitting/flattening are now localized
		
			
				
	
	
		
			164 lines
		
	
	
		
			6.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			164 lines
		
	
	
		
			6.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| hlsl.constructexpr.frag
 | |
| Shader version: 450
 | |
| gl_FragCoord origin is upper left
 | |
| 0:? Sequence
 | |
| 0:4  Function Definition: @main( (temp structure{temp 4-component vector of float color})
 | |
| 0:4    Function Parameters: 
 | |
| 0:?     Sequence
 | |
| 0:6      Constant:
 | |
| 0:6        3 (const int)
 | |
| 0:7      Constant:
 | |
| 0:7        4 (const int)
 | |
| 0:8      Constant:
 | |
| 0:8        5 (const int)
 | |
| 0:9      Constant:
 | |
| 0:9        6 (const int)
 | |
| 0:10      Constant:
 | |
| 0:10        7 (const int)
 | |
| 0:11      Constant:
 | |
| 0:11        8 (const int)
 | |
| 0:12      Comma (temp 2-component vector of float)
 | |
| 0:?         Constant:
 | |
| 0:?           9.000000
 | |
| 0:?           10.000000
 | |
| 0:?         Constant:
 | |
| 0:?           11.000000
 | |
| 0:?           12.000000
 | |
| 0:15      move second child to first child (temp 4-component vector of float)
 | |
| 0:15        color: direct index for structure (temp 4-component vector of float)
 | |
| 0:15          'ps_output' (temp structure{temp 4-component vector of float color})
 | |
| 0:15          Constant:
 | |
| 0:15            0 (const int)
 | |
| 0:15        Constant:
 | |
| 0:15          1.000000
 | |
| 0:15          1.000000
 | |
| 0:15          1.000000
 | |
| 0:15          1.000000
 | |
| 0:16      Branch: Return with expression
 | |
| 0:16        'ps_output' (temp structure{temp 4-component vector of float color})
 | |
| 0:4  Function Definition: main( (temp void)
 | |
| 0:4    Function Parameters: 
 | |
| 0:?     Sequence
 | |
| 0:4      Sequence
 | |
| 0:4        move second child to first child (temp 4-component vector of float)
 | |
| 0:?           'color' (layout(location=0 ) out 4-component vector of float)
 | |
| 0:4          color: direct index for structure (temp 4-component vector of float)
 | |
| 0:4            Function Call: @main( (temp structure{temp 4-component vector of float color})
 | |
| 0:4            Constant:
 | |
| 0:4              0 (const int)
 | |
| 0:?   Linker Objects
 | |
| 0:?     'color' (layout(location=0 ) out 4-component vector of float)
 | |
| 
 | |
| 
 | |
| Linked fragment stage:
 | |
| 
 | |
| 
 | |
| Shader version: 450
 | |
| gl_FragCoord origin is upper left
 | |
| 0:? Sequence
 | |
| 0:4  Function Definition: @main( (temp structure{temp 4-component vector of float color})
 | |
| 0:4    Function Parameters: 
 | |
| 0:?     Sequence
 | |
| 0:6      Constant:
 | |
| 0:6        3 (const int)
 | |
| 0:7      Constant:
 | |
| 0:7        4 (const int)
 | |
| 0:8      Constant:
 | |
| 0:8        5 (const int)
 | |
| 0:9      Constant:
 | |
| 0:9        6 (const int)
 | |
| 0:10      Constant:
 | |
| 0:10        7 (const int)
 | |
| 0:11      Constant:
 | |
| 0:11        8 (const int)
 | |
| 0:12      Comma (temp 2-component vector of float)
 | |
| 0:?         Constant:
 | |
| 0:?           9.000000
 | |
| 0:?           10.000000
 | |
| 0:?         Constant:
 | |
| 0:?           11.000000
 | |
| 0:?           12.000000
 | |
| 0:15      move second child to first child (temp 4-component vector of float)
 | |
| 0:15        color: direct index for structure (temp 4-component vector of float)
 | |
| 0:15          'ps_output' (temp structure{temp 4-component vector of float color})
 | |
| 0:15          Constant:
 | |
| 0:15            0 (const int)
 | |
| 0:15        Constant:
 | |
| 0:15          1.000000
 | |
| 0:15          1.000000
 | |
| 0:15          1.000000
 | |
| 0:15          1.000000
 | |
| 0:16      Branch: Return with expression
 | |
| 0:16        'ps_output' (temp structure{temp 4-component vector of float color})
 | |
| 0:4  Function Definition: main( (temp void)
 | |
| 0:4    Function Parameters: 
 | |
| 0:?     Sequence
 | |
| 0:4      Sequence
 | |
| 0:4        move second child to first child (temp 4-component vector of float)
 | |
| 0:?           'color' (layout(location=0 ) out 4-component vector of float)
 | |
| 0:4          color: direct index for structure (temp 4-component vector of float)
 | |
| 0:4            Function Call: @main( (temp structure{temp 4-component vector of float color})
 | |
| 0:4            Constant:
 | |
| 0:4              0 (const int)
 | |
| 0:?   Linker Objects
 | |
| 0:?     'color' (layout(location=0 ) out 4-component vector of float)
 | |
| 
 | |
| // Module Version 10000
 | |
| // Generated by (magic number): 80001
 | |
| // Id's are bound by 40
 | |
| 
 | |
|                               Capability Shader
 | |
|                1:             ExtInstImport  "GLSL.std.450"
 | |
|                               MemoryModel Logical GLSL450
 | |
|                               EntryPoint Fragment 4  "main" 37
 | |
|                               ExecutionMode 4 OriginUpperLeft
 | |
|                               Name 4  "main"
 | |
|                               Name 8  "PS_OUTPUT"
 | |
|                               MemberName 8(PS_OUTPUT) 0  "color"
 | |
|                               Name 10  "@main("
 | |
|                               Name 27  "ps_output"
 | |
|                               Name 37  "color"
 | |
|                               Decorate 37(color) Location 0
 | |
|                2:             TypeVoid
 | |
|                3:             TypeFunction 2
 | |
|                6:             TypeFloat 32
 | |
|                7:             TypeVector 6(float) 4
 | |
|     8(PS_OUTPUT):             TypeStruct 7(fvec4)
 | |
|                9:             TypeFunction 8(PS_OUTPUT)
 | |
|               12:             TypeInt 32 1
 | |
|               13:     12(int) Constant 3
 | |
|               14:     12(int) Constant 4
 | |
|               15:     12(int) Constant 5
 | |
|               16:     12(int) Constant 6
 | |
|               17:     12(int) Constant 7
 | |
|               18:     12(int) Constant 8
 | |
|               19:             TypeVector 6(float) 2
 | |
|               20:    6(float) Constant 1091567616
 | |
|               21:    6(float) Constant 1092616192
 | |
|               22:   19(fvec2) ConstantComposite 20 21
 | |
|               23:    6(float) Constant 1093664768
 | |
|               24:    6(float) Constant 1094713344
 | |
|               25:   19(fvec2) ConstantComposite 23 24
 | |
|               26:             TypePointer Function 8(PS_OUTPUT)
 | |
|               28:     12(int) Constant 0
 | |
|               29:    6(float) Constant 1065353216
 | |
|               30:    7(fvec4) ConstantComposite 29 29 29 29
 | |
|               31:             TypePointer Function 7(fvec4)
 | |
|               36:             TypePointer Output 7(fvec4)
 | |
|        37(color):     36(ptr) Variable Output
 | |
|          4(main):           2 Function None 3
 | |
|                5:             Label
 | |
|               38:8(PS_OUTPUT) FunctionCall 10(@main()
 | |
|               39:    7(fvec4) CompositeExtract 38 0
 | |
|                               Store 37(color) 39
 | |
|                               Return
 | |
|                               FunctionEnd
 | |
|       10(@main():8(PS_OUTPUT) Function None 9
 | |
|               11:             Label
 | |
|    27(ps_output):     26(ptr) Variable Function
 | |
|               32:     31(ptr) AccessChain 27(ps_output) 28
 | |
|                               Store 32 30
 | |
|               33:8(PS_OUTPUT) Load 27(ps_output)
 | |
|                               ReturnValue 33
 | |
|                               FunctionEnd
 |