 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
		
			
				
	
	
		
			567 lines
		
	
	
		
			26 KiB
		
	
	
	
		
			Plaintext
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			567 lines
		
	
	
		
			26 KiB
		
	
	
	
		
			Plaintext
		
	
	
		
			Executable File
		
	
	
	
	
| hlsl.partialInit.frag
 | |
| WARNING: 0:35: 'cgf2a' : variable with qualifier 'const' not initialized; zero initializing 
 | |
| WARNING: 0:36: 'ci' : variable with qualifier 'const' not initialized; zero initializing 
 | |
| 
 | |
| Shader version: 450
 | |
| gl_FragCoord origin is upper left
 | |
| 0:? Sequence
 | |
| 0:8  Sequence
 | |
| 0:8    move second child to first child (temp 4-component vector of float)
 | |
| 0:8      'gv' (global 4-component vector of float)
 | |
| 0:8      Constant:
 | |
| 0:8        0.000000
 | |
| 0:8        0.000000
 | |
| 0:8        1.000000
 | |
| 0:8        0.000000
 | |
| 0:9  Sequence
 | |
| 0:9    move second child to first child (temp 3-element array of float)
 | |
| 0:9      'gfa' (global 3-element array of float)
 | |
| 0:9      Constant:
 | |
| 0:9        0.000000
 | |
| 0:9        0.000000
 | |
| 0:9        0.000000
 | |
| 0:18  Function Definition: @PixelShaderFunction(vf4; (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
 | |
| 0:18    Function Parameters: 
 | |
| 0:18      'input' (in 4-component vector of float)
 | |
| 0:?     Sequence
 | |
| 0:19      Sequence
 | |
| 0:19        move second child to first child (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
 | |
| 0:19          'o2' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
 | |
| 0:19          Constant:
 | |
| 0:19            3 (const int)
 | |
| 0:19            0.000000
 | |
| 0:19            false (const bool)
 | |
| 0:19            0.000000
 | |
| 0:19            0.000000
 | |
| 0:19            0.000000
 | |
| 0:19            0.000000
 | |
| 0:21      move second child to first child (temp 4-component vector of float)
 | |
| 0:21        v: direct index for structure (temp 4-component vector of float)
 | |
| 0:21          'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
 | |
| 0:21          Constant:
 | |
| 0:21            3 (const int)
 | |
| 0:21        vector-scale (temp 4-component vector of float)
 | |
| 0:21          'gv' (global 4-component vector of float)
 | |
| 0:21          direct index (temp float)
 | |
| 0:21            'gfa' (global 3-element array of float)
 | |
| 0:21            Constant:
 | |
| 0:21              2 (const int)
 | |
| 0:22      Sequence
 | |
| 0:22        move second child to first child (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
 | |
| 0:22          'o1' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
 | |
| 0:22          Constant:
 | |
| 0:22            0 (const int)
 | |
| 0:22            0.000000
 | |
| 0:22            false (const bool)
 | |
| 0:22            0.000000
 | |
| 0:22            0.000000
 | |
| 0:22            0.000000
 | |
| 0:22            0.000000
 | |
| 0:23      Sequence
 | |
| 0:23        move second child to first child (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
 | |
| 0:23          'o3' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
 | |
| 0:23          Constant:
 | |
| 0:23            0 (const int)
 | |
| 0:23            0.000000
 | |
| 0:23            false (const bool)
 | |
| 0:23            0.000000
 | |
| 0:23            0.000000
 | |
| 0:23            0.000000
 | |
| 0:23            0.000000
 | |
| 0:24      move second child to first child (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
 | |
| 0:24        'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
 | |
| 0:24        Constant:
 | |
| 0:24          0 (const int)
 | |
| 0:24          0.000000
 | |
| 0:24          false (const bool)
 | |
| 0:24          0.000000
 | |
| 0:24          0.000000
 | |
| 0:24          0.000000
 | |
| 0:24          0.000000
 | |
| 0:25      move second child to first child (temp bool)
 | |
| 0:25        c: direct index for structure (temp bool)
 | |
| 0:25          'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
 | |
| 0:25          Constant:
 | |
| 0:25            2 (const int)
 | |
| 0:25        c: direct index for structure (temp bool)
 | |
| 0:25          'o1' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
 | |
| 0:25          Constant:
 | |
| 0:25            2 (const int)
 | |
| 0:26      Sequence
 | |
| 0:26        move second child to first child (temp structure{temp 4X3 matrix of float m, temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v} os, temp bool b})
 | |
| 0:26          'nest' (temp structure{temp 4X3 matrix of float m, temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v} os, temp bool b})
 | |
| 0:26          Constant:
 | |
| 0:26            0.000000
 | |
| 0:26            0.000000
 | |
| 0:26            0.000000
 | |
| 0:26            0.000000
 | |
| 0:26            0.000000
 | |
| 0:26            0.000000
 | |
| 0:26            0.000000
 | |
| 0:26            0.000000
 | |
| 0:26            0.000000
 | |
| 0:26            0.000000
 | |
| 0:26            0.000000
 | |
| 0:26            0.000000
 | |
| 0:26            0 (const int)
 | |
| 0:26            0.000000
 | |
| 0:26            false (const bool)
 | |
| 0:26            0.000000
 | |
| 0:26            0.000000
 | |
| 0:26            0.000000
 | |
| 0:26            0.000000
 | |
| 0:26            false (const bool)
 | |
| 0:28      Sequence
 | |
| 0:28        move second child to first child (temp 4-element array of 2-component vector of float)
 | |
| 0:28          'gf2a' (temp 4-element array of 2-component vector of float)
 | |
| 0:28          Constant:
 | |
| 0:28            0.000000
 | |
| 0:28            0.000000
 | |
| 0:28            0.000000
 | |
| 0:28            0.000000
 | |
| 0:28            0.000000
 | |
| 0:28            0.000000
 | |
| 0:28            0.000000
 | |
| 0:28            0.000000
 | |
| 0:29      Sequence
 | |
| 0:29        move second child to first child (temp int)
 | |
| 0:29          'cgi' (temp int)
 | |
| 0:29          Constant:
 | |
| 0:29            0 (const int)
 | |
| 0:30      move second child to first child (temp float)
 | |
| 0:30        b: direct index for structure (temp float)
 | |
| 0:30          'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
 | |
| 0:30          Constant:
 | |
| 0:30            1 (const int)
 | |
| 0:30        component-wise multiply (temp float)
 | |
| 0:30          direct index (temp float)
 | |
| 0:30            direct index (temp 2-component vector of float)
 | |
| 0:30              'gf2a' (temp 4-element array of 2-component vector of float)
 | |
| 0:30              Constant:
 | |
| 0:30                2 (const int)
 | |
| 0:30            Constant:
 | |
| 0:30              1 (const int)
 | |
| 0:30          Convert int to float (temp float)
 | |
| 0:30            'cgi' (temp int)
 | |
| 0:32      Branch: Return with expression
 | |
| 0:32        'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
 | |
| 0:18  Function Definition: PixelShaderFunction( (temp void)
 | |
| 0:18    Function Parameters: 
 | |
| 0:?     Sequence
 | |
| 0:18      move second child to first child (temp 4-component vector of float)
 | |
| 0:?         'input' (temp 4-component vector of float)
 | |
| 0:?         'input' (layout(location=0 ) in 4-component vector of float)
 | |
| 0:18      Sequence
 | |
| 0:18        move second child to first child (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
 | |
| 0:18          'flattenTemp' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
 | |
| 0:18          Function Call: @PixelShaderFunction(vf4; (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
 | |
| 0:?             'input' (temp 4-component vector of float)
 | |
| 0:18        move second child to first child (temp int)
 | |
| 0:?           'a' (layout(location=0 ) out int)
 | |
| 0:18          a: direct index for structure (temp int)
 | |
| 0:18            'flattenTemp' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
 | |
| 0:18            Constant:
 | |
| 0:18              0 (const int)
 | |
| 0:18        move second child to first child (temp float)
 | |
| 0:?           'b' (layout(location=1 ) out float)
 | |
| 0:18          b: direct index for structure (temp float)
 | |
| 0:18            'flattenTemp' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
 | |
| 0:18            Constant:
 | |
| 0:18              1 (const int)
 | |
| 0:18        move second child to first child (temp bool)
 | |
| 0:?           'c' (layout(location=2 ) out bool)
 | |
| 0:18          c: direct index for structure (temp bool)
 | |
| 0:18            'flattenTemp' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
 | |
| 0:18            Constant:
 | |
| 0:18              2 (const int)
 | |
| 0:18        move second child to first child (temp 4-component vector of float)
 | |
| 0:?           'v' (layout(location=3 ) out 4-component vector of float)
 | |
| 0:18          v: direct index for structure (temp 4-component vector of float)
 | |
| 0:18            'flattenTemp' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
 | |
| 0:18            Constant:
 | |
| 0:18              3 (const int)
 | |
| 0:?   Linker Objects
 | |
| 0:?     'gv' (global 4-component vector of float)
 | |
| 0:?     'gfa' (global 3-element array of float)
 | |
| 0:?     'a' (layout(location=0 ) out int)
 | |
| 0:?     'b' (layout(location=1 ) out float)
 | |
| 0:?     'c' (layout(location=2 ) out bool)
 | |
| 0:?     'v' (layout(location=3 ) out 4-component vector of float)
 | |
| 0:?     'input' (layout(location=0 ) in 4-component vector of float)
 | |
| 0:?     'cgf2a' (const 3-element array of 2-component vector of float)
 | |
| 0:?       0.000000
 | |
| 0:?       0.000000
 | |
| 0:?       0.000000
 | |
| 0:?       0.000000
 | |
| 0:?       0.000000
 | |
| 0:?       0.000000
 | |
| 0:?     'ci' (const int)
 | |
| 0:?       0 (const int)
 | |
| 
 | |
| 
 | |
| Linked fragment stage:
 | |
| 
 | |
| 
 | |
| Shader version: 450
 | |
| gl_FragCoord origin is upper left
 | |
| 0:? Sequence
 | |
| 0:8  Sequence
 | |
| 0:8    move second child to first child (temp 4-component vector of float)
 | |
| 0:8      'gv' (global 4-component vector of float)
 | |
| 0:8      Constant:
 | |
| 0:8        0.000000
 | |
| 0:8        0.000000
 | |
| 0:8        1.000000
 | |
| 0:8        0.000000
 | |
| 0:9  Sequence
 | |
| 0:9    move second child to first child (temp 3-element array of float)
 | |
| 0:9      'gfa' (global 3-element array of float)
 | |
| 0:9      Constant:
 | |
| 0:9        0.000000
 | |
| 0:9        0.000000
 | |
| 0:9        0.000000
 | |
| 0:18  Function Definition: @PixelShaderFunction(vf4; (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
 | |
| 0:18    Function Parameters: 
 | |
| 0:18      'input' (in 4-component vector of float)
 | |
| 0:?     Sequence
 | |
| 0:19      Sequence
 | |
| 0:19        move second child to first child (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
 | |
| 0:19          'o2' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
 | |
| 0:19          Constant:
 | |
| 0:19            3 (const int)
 | |
| 0:19            0.000000
 | |
| 0:19            false (const bool)
 | |
| 0:19            0.000000
 | |
| 0:19            0.000000
 | |
| 0:19            0.000000
 | |
| 0:19            0.000000
 | |
| 0:21      move second child to first child (temp 4-component vector of float)
 | |
| 0:21        v: direct index for structure (temp 4-component vector of float)
 | |
| 0:21          'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
 | |
| 0:21          Constant:
 | |
| 0:21            3 (const int)
 | |
| 0:21        vector-scale (temp 4-component vector of float)
 | |
| 0:21          'gv' (global 4-component vector of float)
 | |
| 0:21          direct index (temp float)
 | |
| 0:21            'gfa' (global 3-element array of float)
 | |
| 0:21            Constant:
 | |
| 0:21              2 (const int)
 | |
| 0:22      Sequence
 | |
| 0:22        move second child to first child (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
 | |
| 0:22          'o1' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
 | |
| 0:22          Constant:
 | |
| 0:22            0 (const int)
 | |
| 0:22            0.000000
 | |
| 0:22            false (const bool)
 | |
| 0:22            0.000000
 | |
| 0:22            0.000000
 | |
| 0:22            0.000000
 | |
| 0:22            0.000000
 | |
| 0:23      Sequence
 | |
| 0:23        move second child to first child (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
 | |
| 0:23          'o3' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
 | |
| 0:23          Constant:
 | |
| 0:23            0 (const int)
 | |
| 0:23            0.000000
 | |
| 0:23            false (const bool)
 | |
| 0:23            0.000000
 | |
| 0:23            0.000000
 | |
| 0:23            0.000000
 | |
| 0:23            0.000000
 | |
| 0:24      move second child to first child (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
 | |
| 0:24        'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
 | |
| 0:24        Constant:
 | |
| 0:24          0 (const int)
 | |
| 0:24          0.000000
 | |
| 0:24          false (const bool)
 | |
| 0:24          0.000000
 | |
| 0:24          0.000000
 | |
| 0:24          0.000000
 | |
| 0:24          0.000000
 | |
| 0:25      move second child to first child (temp bool)
 | |
| 0:25        c: direct index for structure (temp bool)
 | |
| 0:25          'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
 | |
| 0:25          Constant:
 | |
| 0:25            2 (const int)
 | |
| 0:25        c: direct index for structure (temp bool)
 | |
| 0:25          'o1' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
 | |
| 0:25          Constant:
 | |
| 0:25            2 (const int)
 | |
| 0:26      Sequence
 | |
| 0:26        move second child to first child (temp structure{temp 4X3 matrix of float m, temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v} os, temp bool b})
 | |
| 0:26          'nest' (temp structure{temp 4X3 matrix of float m, temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v} os, temp bool b})
 | |
| 0:26          Constant:
 | |
| 0:26            0.000000
 | |
| 0:26            0.000000
 | |
| 0:26            0.000000
 | |
| 0:26            0.000000
 | |
| 0:26            0.000000
 | |
| 0:26            0.000000
 | |
| 0:26            0.000000
 | |
| 0:26            0.000000
 | |
| 0:26            0.000000
 | |
| 0:26            0.000000
 | |
| 0:26            0.000000
 | |
| 0:26            0.000000
 | |
| 0:26            0 (const int)
 | |
| 0:26            0.000000
 | |
| 0:26            false (const bool)
 | |
| 0:26            0.000000
 | |
| 0:26            0.000000
 | |
| 0:26            0.000000
 | |
| 0:26            0.000000
 | |
| 0:26            false (const bool)
 | |
| 0:28      Sequence
 | |
| 0:28        move second child to first child (temp 4-element array of 2-component vector of float)
 | |
| 0:28          'gf2a' (temp 4-element array of 2-component vector of float)
 | |
| 0:28          Constant:
 | |
| 0:28            0.000000
 | |
| 0:28            0.000000
 | |
| 0:28            0.000000
 | |
| 0:28            0.000000
 | |
| 0:28            0.000000
 | |
| 0:28            0.000000
 | |
| 0:28            0.000000
 | |
| 0:28            0.000000
 | |
| 0:29      Sequence
 | |
| 0:29        move second child to first child (temp int)
 | |
| 0:29          'cgi' (temp int)
 | |
| 0:29          Constant:
 | |
| 0:29            0 (const int)
 | |
| 0:30      move second child to first child (temp float)
 | |
| 0:30        b: direct index for structure (temp float)
 | |
| 0:30          'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
 | |
| 0:30          Constant:
 | |
| 0:30            1 (const int)
 | |
| 0:30        component-wise multiply (temp float)
 | |
| 0:30          direct index (temp float)
 | |
| 0:30            direct index (temp 2-component vector of float)
 | |
| 0:30              'gf2a' (temp 4-element array of 2-component vector of float)
 | |
| 0:30              Constant:
 | |
| 0:30                2 (const int)
 | |
| 0:30            Constant:
 | |
| 0:30              1 (const int)
 | |
| 0:30          Convert int to float (temp float)
 | |
| 0:30            'cgi' (temp int)
 | |
| 0:32      Branch: Return with expression
 | |
| 0:32        'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
 | |
| 0:18  Function Definition: PixelShaderFunction( (temp void)
 | |
| 0:18    Function Parameters: 
 | |
| 0:?     Sequence
 | |
| 0:18      move second child to first child (temp 4-component vector of float)
 | |
| 0:?         'input' (temp 4-component vector of float)
 | |
| 0:?         'input' (layout(location=0 ) in 4-component vector of float)
 | |
| 0:18      Sequence
 | |
| 0:18        move second child to first child (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
 | |
| 0:18          'flattenTemp' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
 | |
| 0:18          Function Call: @PixelShaderFunction(vf4; (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
 | |
| 0:?             'input' (temp 4-component vector of float)
 | |
| 0:18        move second child to first child (temp int)
 | |
| 0:?           'a' (layout(location=0 ) out int)
 | |
| 0:18          a: direct index for structure (temp int)
 | |
| 0:18            'flattenTemp' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
 | |
| 0:18            Constant:
 | |
| 0:18              0 (const int)
 | |
| 0:18        move second child to first child (temp float)
 | |
| 0:?           'b' (layout(location=1 ) out float)
 | |
| 0:18          b: direct index for structure (temp float)
 | |
| 0:18            'flattenTemp' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
 | |
| 0:18            Constant:
 | |
| 0:18              1 (const int)
 | |
| 0:18        move second child to first child (temp bool)
 | |
| 0:?           'c' (layout(location=2 ) out bool)
 | |
| 0:18          c: direct index for structure (temp bool)
 | |
| 0:18            'flattenTemp' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
 | |
| 0:18            Constant:
 | |
| 0:18              2 (const int)
 | |
| 0:18        move second child to first child (temp 4-component vector of float)
 | |
| 0:?           'v' (layout(location=3 ) out 4-component vector of float)
 | |
| 0:18          v: direct index for structure (temp 4-component vector of float)
 | |
| 0:18            'flattenTemp' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v})
 | |
| 0:18            Constant:
 | |
| 0:18              3 (const int)
 | |
| 0:?   Linker Objects
 | |
| 0:?     'gv' (global 4-component vector of float)
 | |
| 0:?     'gfa' (global 3-element array of float)
 | |
| 0:?     'a' (layout(location=0 ) out int)
 | |
| 0:?     'b' (layout(location=1 ) out float)
 | |
| 0:?     'c' (layout(location=2 ) out bool)
 | |
| 0:?     'v' (layout(location=3 ) out 4-component vector of float)
 | |
| 0:?     'input' (layout(location=0 ) in 4-component vector of float)
 | |
| 0:?     'cgf2a' (const 3-element array of 2-component vector of float)
 | |
| 0:?       0.000000
 | |
| 0:?       0.000000
 | |
| 0:?       0.000000
 | |
| 0:?       0.000000
 | |
| 0:?       0.000000
 | |
| 0:?       0.000000
 | |
| 0:?     'ci' (const int)
 | |
| 0:?       0 (const int)
 | |
| 
 | |
| // Module Version 10000
 | |
| // Generated by (magic number): 80001
 | |
| // Id's are bound by 104
 | |
| 
 | |
|                               Capability Shader
 | |
|                1:             ExtInstImport  "GLSL.std.450"
 | |
|                               MemoryModel Logical GLSL450
 | |
|                               EntryPoint Fragment 4  "PixelShaderFunction" 80 87 91 95 99
 | |
|                               ExecutionMode 4 OriginUpperLeft
 | |
|                               Name 4  "PixelShaderFunction"
 | |
|                               Name 11  "outs"
 | |
|                               MemberName 11(outs) 0  "a"
 | |
|                               MemberName 11(outs) 1  "b"
 | |
|                               MemberName 11(outs) 2  "c"
 | |
|                               MemberName 11(outs) 3  "v"
 | |
|                               Name 14  "@PixelShaderFunction(vf4;"
 | |
|                               Name 13  "input"
 | |
|                               Name 17  "gv"
 | |
|                               Name 25  "gfa"
 | |
|                               Name 28  "o2"
 | |
|                               Name 33  "o4"
 | |
|                               Name 41  "o1"
 | |
|                               Name 44  "o3"
 | |
|                               Name 51  "Nest"
 | |
|                               MemberName 51(Nest) 0  "m"
 | |
|                               MemberName 51(Nest) 1  "os"
 | |
|                               MemberName 51(Nest) 2  "b"
 | |
|                               Name 53  "nest"
 | |
|                               Name 61  "gf2a"
 | |
|                               Name 65  "cgi"
 | |
|                               Name 78  "input"
 | |
|                               Name 80  "input"
 | |
|                               Name 82  "flattenTemp"
 | |
|                               Name 83  "param"
 | |
|                               Name 87  "a"
 | |
|                               Name 91  "b"
 | |
|                               Name 95  "c"
 | |
|                               Name 99  "v"
 | |
|                               Decorate 80(input) Location 0
 | |
|                               Decorate 87(a) Location 0
 | |
|                               Decorate 91(b) Location 1
 | |
|                               Decorate 95(c) Location 2
 | |
|                               Decorate 99(v) Location 3
 | |
|                2:             TypeVoid
 | |
|                3:             TypeFunction 2
 | |
|                6:             TypeFloat 32
 | |
|                7:             TypeVector 6(float) 4
 | |
|                8:             TypePointer Function 7(fvec4)
 | |
|                9:             TypeInt 32 1
 | |
|               10:             TypeBool
 | |
|         11(outs):             TypeStruct 9(int) 6(float) 10(bool) 7(fvec4)
 | |
|               12:             TypeFunction 11(outs) 8(ptr)
 | |
|               16:             TypePointer Private 7(fvec4)
 | |
|           17(gv):     16(ptr) Variable Private
 | |
|               18:    6(float) Constant 0
 | |
|               19:    6(float) Constant 1065353216
 | |
|               20:    7(fvec4) ConstantComposite 18 18 19 18
 | |
|               21:             TypeInt 32 0
 | |
|               22:     21(int) Constant 3
 | |
|               23:             TypeArray 6(float) 22
 | |
|               24:             TypePointer Private 23
 | |
|          25(gfa):     24(ptr) Variable Private
 | |
|               26:          23 ConstantComposite 18 18 18
 | |
|               27:             TypePointer Function 11(outs)
 | |
|               29:      9(int) Constant 3
 | |
|               30:    10(bool) ConstantFalse
 | |
|               31:    7(fvec4) ConstantComposite 18 18 18 18
 | |
|               32:    11(outs) ConstantComposite 29 18 30 31
 | |
|               35:      9(int) Constant 2
 | |
|               36:             TypePointer Private 6(float)
 | |
|               42:      9(int) Constant 0
 | |
|               43:    11(outs) ConstantComposite 42 18 30 31
 | |
|               45:             TypePointer Function 10(bool)
 | |
|               49:             TypeVector 6(float) 3
 | |
|               50:             TypeMatrix 49(fvec3) 4
 | |
|         51(Nest):             TypeStruct 50 11(outs) 10(bool)
 | |
|               52:             TypePointer Function 51(Nest)
 | |
|               54:   49(fvec3) ConstantComposite 18 18 18
 | |
|               55:          50 ConstantComposite 54 54 54 54
 | |
|               56:    51(Nest) ConstantComposite 55 43 30
 | |
|               57:             TypeVector 6(float) 2
 | |
|               58:     21(int) Constant 4
 | |
|               59:             TypeArray 57(fvec2) 58
 | |
|               60:             TypePointer Function 59
 | |
|               62:   57(fvec2) ConstantComposite 18 18
 | |
|               63:          59 ConstantComposite 62 62 62 62
 | |
|               64:             TypePointer Function 9(int)
 | |
|               66:      9(int) Constant 1
 | |
|               67:     21(int) Constant 1
 | |
|               68:             TypePointer Function 6(float)
 | |
|               79:             TypePointer Input 7(fvec4)
 | |
|        80(input):     79(ptr) Variable Input
 | |
|               86:             TypePointer Output 9(int)
 | |
|            87(a):     86(ptr) Variable Output
 | |
|               90:             TypePointer Output 6(float)
 | |
|            91(b):     90(ptr) Variable Output
 | |
|               94:             TypePointer Output 10(bool)
 | |
|            95(c):     94(ptr) Variable Output
 | |
|               98:             TypePointer Output 7(fvec4)
 | |
|            99(v):     98(ptr) Variable Output
 | |
|              102:             TypeArray 57(fvec2) 22
 | |
|              103:         102 ConstantComposite 62 62 62
 | |
| 4(PixelShaderFunction):           2 Function None 3
 | |
|                5:             Label
 | |
|        78(input):      8(ptr) Variable Function
 | |
|  82(flattenTemp):     27(ptr) Variable Function
 | |
|        83(param):      8(ptr) Variable Function
 | |
|                               Store 17(gv) 20
 | |
|                               Store 25(gfa) 26
 | |
|               81:    7(fvec4) Load 80(input)
 | |
|                               Store 78(input) 81
 | |
|               84:    7(fvec4) Load 78(input)
 | |
|                               Store 83(param) 84
 | |
|               85:    11(outs) FunctionCall 14(@PixelShaderFunction(vf4;) 83(param)
 | |
|                               Store 82(flattenTemp) 85
 | |
|               88:     64(ptr) AccessChain 82(flattenTemp) 42
 | |
|               89:      9(int) Load 88
 | |
|                               Store 87(a) 89
 | |
|               92:     68(ptr) AccessChain 82(flattenTemp) 66
 | |
|               93:    6(float) Load 92
 | |
|                               Store 91(b) 93
 | |
|               96:     45(ptr) AccessChain 82(flattenTemp) 35
 | |
|               97:    10(bool) Load 96
 | |
|                               Store 95(c) 97
 | |
|              100:      8(ptr) AccessChain 82(flattenTemp) 29
 | |
|              101:    7(fvec4) Load 100
 | |
|                               Store 99(v) 101
 | |
|                               Return
 | |
|                               FunctionEnd
 | |
| 14(@PixelShaderFunction(vf4;):    11(outs) Function None 12
 | |
|        13(input):      8(ptr) FunctionParameter
 | |
|               15:             Label
 | |
|           28(o2):     27(ptr) Variable Function
 | |
|           33(o4):     27(ptr) Variable Function
 | |
|           41(o1):     27(ptr) Variable Function
 | |
|           44(o3):     27(ptr) Variable Function
 | |
|         53(nest):     52(ptr) Variable Function
 | |
|         61(gf2a):     60(ptr) Variable Function
 | |
|          65(cgi):     64(ptr) Variable Function
 | |
|                               Store 28(o2) 32
 | |
|               34:    7(fvec4) Load 17(gv)
 | |
|               37:     36(ptr) AccessChain 25(gfa) 35
 | |
|               38:    6(float) Load 37
 | |
|               39:    7(fvec4) VectorTimesScalar 34 38
 | |
|               40:      8(ptr) AccessChain 33(o4) 29
 | |
|                               Store 40 39
 | |
|                               Store 41(o1) 43
 | |
|                               Store 44(o3) 43
 | |
|                               Store 33(o4) 43
 | |
|               46:     45(ptr) AccessChain 41(o1) 35
 | |
|               47:    10(bool) Load 46
 | |
|               48:     45(ptr) AccessChain 33(o4) 35
 | |
|                               Store 48 47
 | |
|                               Store 53(nest) 56
 | |
|                               Store 61(gf2a) 63
 | |
|                               Store 65(cgi) 42
 | |
|               69:     68(ptr) AccessChain 61(gf2a) 35 67
 | |
|               70:    6(float) Load 69
 | |
|               71:      9(int) Load 65(cgi)
 | |
|               72:    6(float) ConvertSToF 71
 | |
|               73:    6(float) FMul 70 72
 | |
|               74:     68(ptr) AccessChain 33(o4) 66
 | |
|                               Store 74 73
 | |
|               75:    11(outs) Load 33(o4)
 | |
|                               ReturnValue 75
 | |
|                               FunctionEnd
 |