 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
		
			
				
	
	
		
			152 lines
		
	
	
		
			6.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			152 lines
		
	
	
		
			6.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| hlsl.attribute.expression.comp
 | |
| Shader version: 450
 | |
| local_size = (4, 6, 8)
 | |
| 0:? Sequence
 | |
| 0:9  Function Definition: @main( (temp 4-component vector of float)
 | |
| 0:9    Function Parameters: 
 | |
| 0:?     Sequence
 | |
| 0:11      Sequence
 | |
| 0:11        move second child to first child (temp int)
 | |
| 0:11          'x' (temp int)
 | |
| 0:11          Constant:
 | |
| 0:11            0 (const int)
 | |
| 0:11        Loop with condition tested first
 | |
| 0:11          Loop Condition
 | |
| 0:11          Compare Less Than (temp bool)
 | |
| 0:11            'x' (temp int)
 | |
| 0:11            bound: direct index for structure (layout(offset=0 ) uniform int)
 | |
| 0:11              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int bound})
 | |
| 0:11              Constant:
 | |
| 0:11                0 (const uint)
 | |
| 0:11          No loop body
 | |
| 0:11          Loop Terminal Expression
 | |
| 0:11          Pre-Increment (temp int)
 | |
| 0:11            'x' (temp int)
 | |
| 0:14      Branch: Return with expression
 | |
| 0:?         Constant:
 | |
| 0:?           0.000000
 | |
| 0:?           0.000000
 | |
| 0:?           0.000000
 | |
| 0:?           0.000000
 | |
| 0:9  Function Definition: main( (temp void)
 | |
| 0:9    Function Parameters: 
 | |
| 0:?     Sequence
 | |
| 0:9      move second child to first child (temp 4-component vector of float)
 | |
| 0:?         '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
 | |
| 0:9        Function Call: @main( (temp 4-component vector of float)
 | |
| 0:?   Linker Objects
 | |
| 0:?     '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
 | |
| 0:?     'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int bound})
 | |
| 
 | |
| 
 | |
| Linked compute stage:
 | |
| 
 | |
| 
 | |
| Shader version: 450
 | |
| local_size = (4, 6, 8)
 | |
| 0:? Sequence
 | |
| 0:9  Function Definition: @main( (temp 4-component vector of float)
 | |
| 0:9    Function Parameters: 
 | |
| 0:?     Sequence
 | |
| 0:11      Sequence
 | |
| 0:11        move second child to first child (temp int)
 | |
| 0:11          'x' (temp int)
 | |
| 0:11          Constant:
 | |
| 0:11            0 (const int)
 | |
| 0:11        Loop with condition tested first
 | |
| 0:11          Loop Condition
 | |
| 0:11          Compare Less Than (temp bool)
 | |
| 0:11            'x' (temp int)
 | |
| 0:11            bound: direct index for structure (layout(offset=0 ) uniform int)
 | |
| 0:11              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int bound})
 | |
| 0:11              Constant:
 | |
| 0:11                0 (const uint)
 | |
| 0:11          No loop body
 | |
| 0:11          Loop Terminal Expression
 | |
| 0:11          Pre-Increment (temp int)
 | |
| 0:11            'x' (temp int)
 | |
| 0:14      Branch: Return with expression
 | |
| 0:?         Constant:
 | |
| 0:?           0.000000
 | |
| 0:?           0.000000
 | |
| 0:?           0.000000
 | |
| 0:?           0.000000
 | |
| 0:9  Function Definition: main( (temp void)
 | |
| 0:9    Function Parameters: 
 | |
| 0:?     Sequence
 | |
| 0:9      move second child to first child (temp 4-component vector of float)
 | |
| 0:?         '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
 | |
| 0:9        Function Call: @main( (temp 4-component vector of float)
 | |
| 0:?   Linker Objects
 | |
| 0:?     '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
 | |
| 0:?     'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int bound})
 | |
| 
 | |
| // Module Version 10000
 | |
| // Generated by (magic number): 80001
 | |
| // Id's are bound by 39
 | |
| 
 | |
|                               Capability Shader
 | |
|                1:             ExtInstImport  "GLSL.std.450"
 | |
|                               MemoryModel Logical GLSL450
 | |
|                               EntryPoint GLCompute 4  "main" 37
 | |
|                               ExecutionMode 4 LocalSize 4 6 8
 | |
|                               Name 4  "main"
 | |
|                               Name 9  "@main("
 | |
|                               Name 13  "x"
 | |
|                               Name 21  "$Global"
 | |
|                               MemberName 21($Global) 0  "bound"
 | |
|                               Name 23  ""
 | |
|                               Name 37  "@entryPointOutput"
 | |
|                               MemberDecorate 21($Global) 0 Offset 0
 | |
|                               Decorate 21($Global) Block
 | |
|                               Decorate 23 DescriptorSet 0
 | |
|                               Decorate 37(@entryPointOutput) Location 0
 | |
|                2:             TypeVoid
 | |
|                3:             TypeFunction 2
 | |
|                6:             TypeFloat 32
 | |
|                7:             TypeVector 6(float) 4
 | |
|                8:             TypeFunction 7(fvec4)
 | |
|               11:             TypeInt 32 1
 | |
|               12:             TypePointer Function 11(int)
 | |
|               14:     11(int) Constant 0
 | |
|      21($Global):             TypeStruct 11(int)
 | |
|               22:             TypePointer Uniform 21($Global)
 | |
|               23:     22(ptr) Variable Uniform
 | |
|               24:             TypePointer Uniform 11(int)
 | |
|               27:             TypeBool
 | |
|               30:     11(int) Constant 1
 | |
|               32:    6(float) Constant 0
 | |
|               33:    7(fvec4) ConstantComposite 32 32 32 32
 | |
|               36:             TypePointer Output 7(fvec4)
 | |
| 37(@entryPointOutput):     36(ptr) Variable Output
 | |
|          4(main):           2 Function None 3
 | |
|                5:             Label
 | |
|               38:    7(fvec4) FunctionCall 9(@main()
 | |
|                               Store 37(@entryPointOutput) 38
 | |
|                               Return
 | |
|                               FunctionEnd
 | |
|        9(@main():    7(fvec4) Function None 8
 | |
|               10:             Label
 | |
|            13(x):     12(ptr) Variable Function
 | |
|                               Store 13(x) 14
 | |
|                               Branch 15
 | |
|               15:             Label
 | |
|                               LoopMerge 17 18 None
 | |
|                               Branch 19
 | |
|               19:             Label
 | |
|               20:     11(int) Load 13(x)
 | |
|               25:     24(ptr) AccessChain 23 14
 | |
|               26:     11(int) Load 25
 | |
|               28:    27(bool) SLessThan 20 26
 | |
|                               BranchConditional 28 16 17
 | |
|               16:               Label
 | |
|                                 Branch 18
 | |
|               18:               Label
 | |
|               29:     11(int)   Load 13(x)
 | |
|               31:     11(int)   IAdd 29 30
 | |
|                                 Store 13(x) 31
 | |
|                                 Branch 15
 | |
|               17:             Label
 | |
|                               ReturnValue 33
 | |
|                               FunctionEnd
 |