Locations now get assigned in order, but skipping built-ins, which can be done post flattening.
		
			
				
	
	
		
			161 lines
		
	
	
		
			6.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			161 lines
		
	
	
		
			6.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
		
			Executable File
		
	
	
	
	
hlsl.whileLoop.frag
 | 
						|
Shader version: 450
 | 
						|
gl_FragCoord origin is upper left
 | 
						|
0:? Sequence
 | 
						|
0:2  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
 | 
						|
0:2    Function Parameters: 
 | 
						|
0:2      'input' (layout(location=0 ) in 4-component vector of float)
 | 
						|
0:?     Sequence
 | 
						|
0:3      Loop with condition tested first
 | 
						|
0:3        Loop Condition
 | 
						|
0:3        Compare Not Equal (temp bool)
 | 
						|
0:3          'input' (layout(location=0 ) in 4-component vector of float)
 | 
						|
0:3          'input' (layout(location=0 ) in 4-component vector of float)
 | 
						|
0:3        Loop Body
 | 
						|
0:?         Sequence
 | 
						|
0:3          Sequence
 | 
						|
0:3            move second child to first child (temp 4-component vector of float)
 | 
						|
0:?               '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
 | 
						|
0:3              'input' (layout(location=0 ) in 4-component vector of float)
 | 
						|
0:3            Branch: Return
 | 
						|
0:4      Loop with condition tested first
 | 
						|
0:4        Loop Condition
 | 
						|
0:4        Constant:
 | 
						|
0:4          false (const bool)
 | 
						|
0:4        No loop body
 | 
						|
0:5      Loop with condition tested first
 | 
						|
0:5        Loop Condition
 | 
						|
0:5        Constant:
 | 
						|
0:5          false (const bool)
 | 
						|
0:5        No loop body
 | 
						|
0:6      Loop with condition tested first
 | 
						|
0:6        Loop Condition
 | 
						|
0:6        Constant:
 | 
						|
0:6          false (const bool)
 | 
						|
0:6        No loop body
 | 
						|
0:?   Linker Objects
 | 
						|
0:?     '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
 | 
						|
0:?     'input' (layout(location=0 ) in 4-component vector of float)
 | 
						|
 | 
						|
 | 
						|
Linked fragment stage:
 | 
						|
 | 
						|
 | 
						|
Shader version: 450
 | 
						|
gl_FragCoord origin is upper left
 | 
						|
0:? Sequence
 | 
						|
0:2  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
 | 
						|
0:2    Function Parameters: 
 | 
						|
0:2      'input' (layout(location=0 ) in 4-component vector of float)
 | 
						|
0:?     Sequence
 | 
						|
0:3      Loop with condition tested first
 | 
						|
0:3        Loop Condition
 | 
						|
0:3        Compare Not Equal (temp bool)
 | 
						|
0:3          'input' (layout(location=0 ) in 4-component vector of float)
 | 
						|
0:3          'input' (layout(location=0 ) in 4-component vector of float)
 | 
						|
0:3        Loop Body
 | 
						|
0:?         Sequence
 | 
						|
0:3          Sequence
 | 
						|
0:3            move second child to first child (temp 4-component vector of float)
 | 
						|
0:?               '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
 | 
						|
0:3              'input' (layout(location=0 ) in 4-component vector of float)
 | 
						|
0:3            Branch: Return
 | 
						|
0:4      Loop with condition tested first
 | 
						|
0:4        Loop Condition
 | 
						|
0:4        Constant:
 | 
						|
0:4          false (const bool)
 | 
						|
0:4        No loop body
 | 
						|
0:5      Loop with condition tested first
 | 
						|
0:5        Loop Condition
 | 
						|
0:5        Constant:
 | 
						|
0:5          false (const bool)
 | 
						|
0:5        No loop body
 | 
						|
0:6      Loop with condition tested first
 | 
						|
0:6        Loop Condition
 | 
						|
0:6        Constant:
 | 
						|
0:6          false (const bool)
 | 
						|
0:6        No loop body
 | 
						|
0:?   Linker Objects
 | 
						|
0:?     '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
 | 
						|
0:?     'input' (layout(location=0 ) in 4-component vector of float)
 | 
						|
 | 
						|
// Module Version 10000
 | 
						|
// Generated by (magic number): 80001
 | 
						|
// Id's are bound by 41
 | 
						|
 | 
						|
                              Capability Shader
 | 
						|
               1:             ExtInstImport  "GLSL.std.450"
 | 
						|
                              MemoryModel Logical GLSL450
 | 
						|
                              EntryPoint Fragment 4  "PixelShaderFunction" 14 22
 | 
						|
                              ExecutionMode 4 OriginUpperLeft
 | 
						|
                              Name 4  "PixelShaderFunction"
 | 
						|
                              Name 14  "input"
 | 
						|
                              Name 22  "@entryPointOutput"
 | 
						|
                              Decorate 14(input) Location 0
 | 
						|
                              Decorate 22(@entryPointOutput) Location 0
 | 
						|
               2:             TypeVoid
 | 
						|
               3:             TypeFunction 2
 | 
						|
              11:             TypeFloat 32
 | 
						|
              12:             TypeVector 11(float) 4
 | 
						|
              13:             TypePointer Input 12(fvec4)
 | 
						|
       14(input):     13(ptr) Variable Input
 | 
						|
              17:             TypeBool
 | 
						|
              18:             TypeVector 17(bool) 4
 | 
						|
              21:             TypePointer Output 12(fvec4)
 | 
						|
22(@entryPointOutput):     21(ptr) Variable Output
 | 
						|
              30:    17(bool) ConstantFalse
 | 
						|
4(PixelShaderFunction):           2 Function None 3
 | 
						|
               5:             Label
 | 
						|
                              Branch 6
 | 
						|
               6:             Label
 | 
						|
                              LoopMerge 8 9 None
 | 
						|
                              Branch 10
 | 
						|
              10:             Label
 | 
						|
              15:   12(fvec4) Load 14(input)
 | 
						|
              16:   12(fvec4) Load 14(input)
 | 
						|
              19:   18(bvec4) FOrdNotEqual 15 16
 | 
						|
              20:    17(bool) Any 19
 | 
						|
                              BranchConditional 20 7 8
 | 
						|
               7:               Label
 | 
						|
              23:   12(fvec4)   Load 14(input)
 | 
						|
                                Store 22(@entryPointOutput) 23
 | 
						|
                                Return
 | 
						|
               9:               Label
 | 
						|
                                Branch 6
 | 
						|
               8:             Label
 | 
						|
                              Branch 25
 | 
						|
              25:             Label
 | 
						|
                              LoopMerge 27 28 None
 | 
						|
                              Branch 29
 | 
						|
              29:             Label
 | 
						|
                              BranchConditional 30 26 27
 | 
						|
              26:               Label
 | 
						|
                                Branch 28
 | 
						|
              28:               Label
 | 
						|
                                Branch 25
 | 
						|
              27:             Label
 | 
						|
                              Branch 31
 | 
						|
              31:             Label
 | 
						|
                              LoopMerge 33 34 None
 | 
						|
                              Branch 35
 | 
						|
              35:             Label
 | 
						|
                              BranchConditional 30 32 33
 | 
						|
              32:               Label
 | 
						|
                                Branch 34
 | 
						|
              34:               Label
 | 
						|
                                Branch 31
 | 
						|
              33:             Label
 | 
						|
                              Branch 36
 | 
						|
              36:             Label
 | 
						|
                              LoopMerge 38 39 None
 | 
						|
                              Branch 40
 | 
						|
              40:             Label
 | 
						|
                              BranchConditional 30 37 38
 | 
						|
              37:               Label
 | 
						|
                                Branch 39
 | 
						|
              39:               Label
 | 
						|
                                Branch 36
 | 
						|
              38:             Label
 | 
						|
                              Return
 | 
						|
                              FunctionEnd
 |