Merge pull request #222 from Qining/support-precise

Full stack: Support *precise* qualifier
This commit is contained in:
John Kessenich 2016-05-09 20:18:33 -06:00
commit 3357d870e4
15 changed files with 3372 additions and 39 deletions

View file

@ -0,0 +1,768 @@
precise.tesc
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
Shader version: 450
Requested GL_EXT_gpu_shader5
Requested GL_EXT_shader_io_blocks
Requested GL_EXT_tessellation_shader
vertices = -1
0:? Sequence
0:5 Function Definition: minimal( (global float)
0:5 Function Parameters:
0:6 Sequence
0:6 Sequence
0:6 move second child to first child (temp float)
0:6 'result' (noContraction temp float)
0:6 Constant:
0:6 5.000000
0:7 Sequence
0:7 move second child to first child (temp float)
0:7 'a' (noContraction temp float)
0:7 Constant:
0:7 10.000000
0:8 Sequence
0:8 move second child to first child (temp float)
0:8 'b' (noContraction temp float)
0:8 Constant:
0:8 20.000000
0:9 Sequence
0:9 move second child to first child (temp float)
0:9 'c' (noContraction temp float)
0:9 Constant:
0:9 30.000000
0:10 Sequence
0:10 move second child to first child (temp float)
0:10 'd' (noContraction temp float)
0:10 Constant:
0:10 40.000000
0:11 move second child to first child (temp float)
0:11 'result' (noContraction temp float)
0:11 add (noContraction temp float)
0:11 component-wise multiply (noContraction temp float)
0:11 'a' (noContraction temp float)
0:11 'b' (noContraction temp float)
0:11 component-wise multiply (noContraction temp float)
0:11 'c' (noContraction temp float)
0:11 'd' (noContraction temp float)
0:12 Branch: Return with expression
0:12 'result' (noContraction temp float)
0:15 Function Definition: continuous_assignment( (global void)
0:15 Function Parameters:
0:16 Sequence
0:16 Sequence
0:16 move second child to first child (temp float)
0:16 'result' (noContraction temp float)
0:16 Constant:
0:16 5.000000
0:17 Sequence
0:17 move second child to first child (temp float)
0:17 'a' (noContraction temp float)
0:17 Constant:
0:17 10.000000
0:18 Sequence
0:18 move second child to first child (temp float)
0:18 'b' (noContraction temp float)
0:18 Constant:
0:18 20.000000
0:19 move second child to first child (temp float)
0:19 'result' (noContraction temp float)
0:19 move second child to first child (temp float)
0:19 'a' (noContraction temp float)
0:19 add (noContraction temp float)
0:19 'b' (noContraction temp float)
0:19 Constant:
0:19 4.000000
0:22 Function Definition: convert( (global void)
0:22 Function Parameters:
0:? Sequence
0:24 Sequence
0:24 move second child to first child (temp float)
0:24 'a' (noContraction temp float)
0:24 Constant:
0:24 10.000000
0:25 Sequence
0:25 move second child to first child (temp float)
0:25 'b' (noContraction temp float)
0:25 Constant:
0:25 20.000000
0:26 move second child to first child (temp float)
0:26 'b' (noContraction temp float)
0:26 add (noContraction temp float)
0:26 'a' (noContraction temp float)
0:26 'b' (noContraction temp float)
0:27 move second child to first child (temp double)
0:27 'result' (noContraction temp double)
0:27 Convert float to double (temp double)
0:27 'b' (noContraction temp float)
0:30 Function Definition: loop_for( (global float)
0:30 Function Parameters:
0:31 Sequence
0:31 Sequence
0:31 move second child to first child (temp float)
0:31 'r1' (noContraction temp float)
0:31 Constant:
0:31 5.000000
0:32 Sequence
0:32 move second child to first child (temp float)
0:32 'r2' (noContraction temp float)
0:32 Constant:
0:32 10.000000
0:33 Sequence
0:33 move second child to first child (temp int)
0:33 'a' (temp int)
0:33 Constant:
0:33 10 (const int)
0:34 Sequence
0:34 move second child to first child (temp int)
0:34 'b' (noContraction temp int)
0:34 Constant:
0:34 20 (const int)
0:35 Sequence
0:35 move second child to first child (temp int)
0:35 'c' (noContraction temp int)
0:35 Constant:
0:35 30 (const int)
0:36 Sequence
0:36 Sequence
0:36 move second child to first child (temp int)
0:36 'i' (noContraction temp int)
0:36 Constant:
0:36 0 (const int)
0:36 Loop with condition tested first
0:36 Loop Condition
0:36 Compare Less Than (temp bool)
0:36 'i' (temp int)
0:36 'a' (temp int)
0:36 Loop Body
0:37 Sequence
0:37 add second child into first child (noContraction temp float)
0:37 'r1' (noContraction temp float)
0:37 add (noContraction temp float)
0:37 add (noContraction temp float)
0:37 Constant:
0:37 3.120000
0:37 Convert int to float (temp float)
0:37 'b' (noContraction temp int)
0:37 Convert int to float (temp float)
0:37 'i' (noContraction temp int)
0:38 add second child into first child (noContraction temp int)
0:38 'c' (noContraction temp int)
0:38 Constant:
0:38 1 (const int)
0:36 Loop Terminal Expression
0:36 Post-Increment (noContraction temp int)
0:36 'i' (noContraction temp int)
0:40 add second child into first child (temp int)
0:40 'a' (temp int)
0:40 Constant:
0:40 1 (const int)
0:41 move second child to first child (temp float)
0:41 'r2' (noContraction temp float)
0:41 Convert int to float (temp float)
0:41 'c' (noContraction temp int)
0:42 Branch: Return with expression
0:42 Construct float (temp float)
0:42 add (temp float)
0:42 'r1' (noContraction temp float)
0:42 'r2' (noContraction temp float)
0:45 Function Definition: loop_array( (global void)
0:45 Function Parameters:
0:? Sequence
0:48 Sequence
0:48 move second child to first child (temp int)
0:48 'x' (noContraction temp int)
0:48 Constant:
0:48 22 (const int)
0:49 Sequence
0:49 move second child to first child (temp int)
0:49 'y' (noContraction temp int)
0:49 Constant:
0:49 33 (const int)
0:52 add second child into first child (noContraction temp float)
0:52 'result' (noContraction temp float)
0:52 add (noContraction temp float)
0:52 Convert int to float (temp float)
0:52 'x' (noContraction temp int)
0:52 Convert int to float (temp float)
0:52 'y' (noContraction temp int)
0:54 Sequence
0:54 Sequence
0:54 move second child to first child (temp int)
0:54 'i' (temp int)
0:54 Constant:
0:54 0 (const int)
0:54 Loop with condition tested first
0:54 Loop Condition
0:54 Compare Less Than (temp bool)
0:54 'i' (temp int)
0:54 Constant:
0:54 3 (const int)
0:54 Loop Body
0:56 Sequence
0:56 add second child into first child (noContraction temp float)
0:56 'result' (noContraction temp float)
0:56 add (noContraction temp float)
0:56 indirect index (noContraction temp float)
0:56 'a0' (temp 3-element array of float)
0:56 'i' (temp int)
0:56 Constant:
0:56 2.000000
0:58 move second child to first child (temp float)
0:58 indirect index (noContraction temp float)
0:58 'a0' (noContraction temp 3-element array of float)
0:58 'i' (temp int)
0:58 subtract (noContraction temp float)
0:58 Constant:
0:58 3.000000
0:58 Post-Increment (noContraction temp float)
0:58 'result' (noContraction temp float)
0:54 Loop Terminal Expression
0:54 Pre-Increment (temp int)
0:54 'i' (temp int)
0:62 Function Definition: loop_while( (global void)
0:62 Function Parameters:
0:63 Sequence
0:63 Sequence
0:63 move second child to first child (temp float)
0:63 'result' (noContraction temp float)
0:63 Constant:
0:63 5.000000
0:64 Sequence
0:64 move second child to first child (temp int)
0:64 'a' (noContraction temp int)
0:64 Constant:
0:64 10 (const int)
0:65 Sequence
0:65 move second child to first child (temp int)
0:65 'b' (noContraction temp int)
0:65 Constant:
0:65 20 (const int)
0:66 Loop with condition tested first
0:66 Loop Condition
0:66 Compare Less Than (temp bool)
0:66 'result' (noContraction temp float)
0:66 Constant:
0:66 10.000000
0:66 Loop Body
0:67 Sequence
0:67 add second child into first child (noContraction temp float)
0:67 'result' (noContraction temp float)
0:67 add (noContraction temp float)
0:67 Constant:
0:67 3.120000
0:67 Convert int to float (temp float)
0:67 'b' (noContraction temp int)
0:69 move second child to first child (temp float)
0:69 'result' (noContraction temp float)
0:69 Convert int to float (temp float)
0:69 add (temp int)
0:69 add (temp int)
0:69 'a' (noContraction temp int)
0:69 'b' (noContraction temp int)
0:69 Constant:
0:69 5 (const int)
0:70 move second child to first child (temp float)
0:70 'result' (noContraction temp float)
0:70 Constant:
0:70 11.100000
0:73 Function Definition: fma_not_decorated( (global float)
0:73 Function Parameters:
0:? Sequence
0:75 Sequence
0:75 move second child to first child (temp float)
0:75 'a' (noContraction temp float)
0:75 Constant:
0:75 1.000000
0:76 Sequence
0:76 move second child to first child (temp float)
0:76 'b' (noContraction temp float)
0:76 Constant:
0:76 2.000000
0:77 Sequence
0:77 move second child to first child (temp float)
0:77 'c' (noContraction temp float)
0:77 Constant:
0:77 3.000000
0:78 move second child to first child (temp float)
0:78 'b' (noContraction temp float)
0:78 add (noContraction temp float)
0:78 'b' (noContraction temp float)
0:78 'c' (noContraction temp float)
0:79 move second child to first child (temp float)
0:79 'result' (noContraction temp float)
0:79 fma (global float)
0:79 'a' (noContraction temp float)
0:79 'b' (noContraction temp float)
0:79 'c' (noContraction temp float)
0:80 Branch: Return with expression
0:80 'result' (noContraction temp float)
0:83 Function Definition: precise_return_exp_func( (noContraction temp float)
0:83 Function Parameters:
0:84 Sequence
0:84 Sequence
0:84 move second child to first child (temp float)
0:84 'a' (noContraction temp float)
0:84 Constant:
0:84 1.000000
0:85 Sequence
0:85 move second child to first child (temp float)
0:85 'b' (noContraction temp float)
0:85 Constant:
0:85 2.000000
0:86 Branch: Return with expression
0:86 add (noContraction temp float)
0:86 'a' (noContraction temp float)
0:86 'b' (noContraction temp float)
0:89 Function Definition: precise_return_val_func( (noContraction temp float)
0:89 Function Parameters:
0:90 Sequence
0:90 Sequence
0:90 move second child to first child (temp float)
0:90 'a' (noContraction temp float)
0:90 Constant:
0:90 1.000000
0:91 Sequence
0:91 move second child to first child (temp float)
0:91 'b' (noContraction temp float)
0:91 Constant:
0:91 2.000000
0:92 Sequence
0:92 move second child to first child (temp float)
0:92 'result' (noContraction temp float)
0:92 add (noContraction temp float)
0:92 'a' (noContraction temp float)
0:92 'b' (noContraction temp float)
0:93 Branch: Return with expression
0:93 'result' (noContraction temp float)
0:96 Function Definition: precise_func_parameter(f1;f1; (global float)
0:96 Function Parameters:
0:96 'b' (in float)
0:96 'c' (noContraction out float)
0:97 Sequence
0:97 Sequence
0:97 move second child to first child (temp float)
0:97 'a' (noContraction temp float)
0:97 Constant:
0:97 0.500000
0:98 move second child to first child (temp float)
0:98 'c' (noContraction out float)
0:98 add (noContraction temp float)
0:98 'a' (noContraction temp float)
0:98 'b' (noContraction in float)
0:99 Branch: Return with expression
0:99 subtract (temp float)
0:99 'a' (temp float)
0:99 'b' (in float)
0:102 Function Definition: matrix(mf23;mf32; (global 3X3 matrix of float)
0:102 Function Parameters:
0:102 'a' (in 2X3 matrix of float)
0:102 'b' (in 3X2 matrix of float)
0:103 Sequence
0:103 Sequence
0:103 move second child to first child (temp 2X3 matrix of float)
0:103 'c' (noContraction temp 2X3 matrix of float)
0:103 Constant:
0:103 1.000000
0:103 2.000000
0:103 3.000000
0:103 4.000000
0:103 5.000000
0:103 6.000000
0:105 move second child to first child (temp 3X3 matrix of float)
0:105 'result' (noContraction temp 3X3 matrix of float)
0:105 matrix-multiply (noContraction temp 3X3 matrix of float)
0:105 add (noContraction temp 2X3 matrix of float)
0:105 'a' (noContraction in 2X3 matrix of float)
0:105 'c' (noContraction temp 2X3 matrix of float)
0:105 'b' (noContraction in 3X2 matrix of float)
0:106 Branch: Return with expression
0:106 'result' (noContraction temp 3X3 matrix of float)
0:109 Function Definition: main( (global void)
0:109 Function Parameters:
0:? Linker Objects
Linked tessellation control stage:
ERROR: Linking tessellation control stage: At least one shader must specify an output layout(vertices=...)
Shader version: 450
Requested GL_EXT_gpu_shader5
Requested GL_EXT_shader_io_blocks
Requested GL_EXT_tessellation_shader
vertices = -1
0:? Sequence
0:5 Function Definition: minimal( (global float)
0:5 Function Parameters:
0:6 Sequence
0:6 Sequence
0:6 move second child to first child (temp float)
0:6 'result' (noContraction temp float)
0:6 Constant:
0:6 5.000000
0:7 Sequence
0:7 move second child to first child (temp float)
0:7 'a' (noContraction temp float)
0:7 Constant:
0:7 10.000000
0:8 Sequence
0:8 move second child to first child (temp float)
0:8 'b' (noContraction temp float)
0:8 Constant:
0:8 20.000000
0:9 Sequence
0:9 move second child to first child (temp float)
0:9 'c' (noContraction temp float)
0:9 Constant:
0:9 30.000000
0:10 Sequence
0:10 move second child to first child (temp float)
0:10 'd' (noContraction temp float)
0:10 Constant:
0:10 40.000000
0:11 move second child to first child (temp float)
0:11 'result' (noContraction temp float)
0:11 add (noContraction temp float)
0:11 component-wise multiply (noContraction temp float)
0:11 'a' (noContraction temp float)
0:11 'b' (noContraction temp float)
0:11 component-wise multiply (noContraction temp float)
0:11 'c' (noContraction temp float)
0:11 'd' (noContraction temp float)
0:12 Branch: Return with expression
0:12 'result' (noContraction temp float)
0:15 Function Definition: continuous_assignment( (global void)
0:15 Function Parameters:
0:16 Sequence
0:16 Sequence
0:16 move second child to first child (temp float)
0:16 'result' (noContraction temp float)
0:16 Constant:
0:16 5.000000
0:17 Sequence
0:17 move second child to first child (temp float)
0:17 'a' (noContraction temp float)
0:17 Constant:
0:17 10.000000
0:18 Sequence
0:18 move second child to first child (temp float)
0:18 'b' (noContraction temp float)
0:18 Constant:
0:18 20.000000
0:19 move second child to first child (temp float)
0:19 'result' (noContraction temp float)
0:19 move second child to first child (temp float)
0:19 'a' (noContraction temp float)
0:19 add (noContraction temp float)
0:19 'b' (noContraction temp float)
0:19 Constant:
0:19 4.000000
0:22 Function Definition: convert( (global void)
0:22 Function Parameters:
0:? Sequence
0:24 Sequence
0:24 move second child to first child (temp float)
0:24 'a' (noContraction temp float)
0:24 Constant:
0:24 10.000000
0:25 Sequence
0:25 move second child to first child (temp float)
0:25 'b' (noContraction temp float)
0:25 Constant:
0:25 20.000000
0:26 move second child to first child (temp float)
0:26 'b' (noContraction temp float)
0:26 add (noContraction temp float)
0:26 'a' (noContraction temp float)
0:26 'b' (noContraction temp float)
0:27 move second child to first child (temp double)
0:27 'result' (noContraction temp double)
0:27 Convert float to double (temp double)
0:27 'b' (noContraction temp float)
0:30 Function Definition: loop_for( (global float)
0:30 Function Parameters:
0:31 Sequence
0:31 Sequence
0:31 move second child to first child (temp float)
0:31 'r1' (noContraction temp float)
0:31 Constant:
0:31 5.000000
0:32 Sequence
0:32 move second child to first child (temp float)
0:32 'r2' (noContraction temp float)
0:32 Constant:
0:32 10.000000
0:33 Sequence
0:33 move second child to first child (temp int)
0:33 'a' (temp int)
0:33 Constant:
0:33 10 (const int)
0:34 Sequence
0:34 move second child to first child (temp int)
0:34 'b' (noContraction temp int)
0:34 Constant:
0:34 20 (const int)
0:35 Sequence
0:35 move second child to first child (temp int)
0:35 'c' (noContraction temp int)
0:35 Constant:
0:35 30 (const int)
0:36 Sequence
0:36 Sequence
0:36 move second child to first child (temp int)
0:36 'i' (noContraction temp int)
0:36 Constant:
0:36 0 (const int)
0:36 Loop with condition tested first
0:36 Loop Condition
0:36 Compare Less Than (temp bool)
0:36 'i' (temp int)
0:36 'a' (temp int)
0:36 Loop Body
0:37 Sequence
0:37 add second child into first child (noContraction temp float)
0:37 'r1' (noContraction temp float)
0:37 add (noContraction temp float)
0:37 add (noContraction temp float)
0:37 Constant:
0:37 3.120000
0:37 Convert int to float (temp float)
0:37 'b' (noContraction temp int)
0:37 Convert int to float (temp float)
0:37 'i' (noContraction temp int)
0:38 add second child into first child (noContraction temp int)
0:38 'c' (noContraction temp int)
0:38 Constant:
0:38 1 (const int)
0:36 Loop Terminal Expression
0:36 Post-Increment (noContraction temp int)
0:36 'i' (noContraction temp int)
0:40 add second child into first child (temp int)
0:40 'a' (temp int)
0:40 Constant:
0:40 1 (const int)
0:41 move second child to first child (temp float)
0:41 'r2' (noContraction temp float)
0:41 Convert int to float (temp float)
0:41 'c' (noContraction temp int)
0:42 Branch: Return with expression
0:42 Construct float (temp float)
0:42 add (temp float)
0:42 'r1' (noContraction temp float)
0:42 'r2' (noContraction temp float)
0:45 Function Definition: loop_array( (global void)
0:45 Function Parameters:
0:? Sequence
0:48 Sequence
0:48 move second child to first child (temp int)
0:48 'x' (noContraction temp int)
0:48 Constant:
0:48 22 (const int)
0:49 Sequence
0:49 move second child to first child (temp int)
0:49 'y' (noContraction temp int)
0:49 Constant:
0:49 33 (const int)
0:52 add second child into first child (noContraction temp float)
0:52 'result' (noContraction temp float)
0:52 add (noContraction temp float)
0:52 Convert int to float (temp float)
0:52 'x' (noContraction temp int)
0:52 Convert int to float (temp float)
0:52 'y' (noContraction temp int)
0:54 Sequence
0:54 Sequence
0:54 move second child to first child (temp int)
0:54 'i' (temp int)
0:54 Constant:
0:54 0 (const int)
0:54 Loop with condition tested first
0:54 Loop Condition
0:54 Compare Less Than (temp bool)
0:54 'i' (temp int)
0:54 Constant:
0:54 3 (const int)
0:54 Loop Body
0:56 Sequence
0:56 add second child into first child (noContraction temp float)
0:56 'result' (noContraction temp float)
0:56 add (noContraction temp float)
0:56 indirect index (noContraction temp float)
0:56 'a0' (temp 3-element array of float)
0:56 'i' (temp int)
0:56 Constant:
0:56 2.000000
0:58 move second child to first child (temp float)
0:58 indirect index (noContraction temp float)
0:58 'a0' (noContraction temp 3-element array of float)
0:58 'i' (temp int)
0:58 subtract (noContraction temp float)
0:58 Constant:
0:58 3.000000
0:58 Post-Increment (noContraction temp float)
0:58 'result' (noContraction temp float)
0:54 Loop Terminal Expression
0:54 Pre-Increment (temp int)
0:54 'i' (temp int)
0:62 Function Definition: loop_while( (global void)
0:62 Function Parameters:
0:63 Sequence
0:63 Sequence
0:63 move second child to first child (temp float)
0:63 'result' (noContraction temp float)
0:63 Constant:
0:63 5.000000
0:64 Sequence
0:64 move second child to first child (temp int)
0:64 'a' (noContraction temp int)
0:64 Constant:
0:64 10 (const int)
0:65 Sequence
0:65 move second child to first child (temp int)
0:65 'b' (noContraction temp int)
0:65 Constant:
0:65 20 (const int)
0:66 Loop with condition tested first
0:66 Loop Condition
0:66 Compare Less Than (temp bool)
0:66 'result' (noContraction temp float)
0:66 Constant:
0:66 10.000000
0:66 Loop Body
0:67 Sequence
0:67 add second child into first child (noContraction temp float)
0:67 'result' (noContraction temp float)
0:67 add (noContraction temp float)
0:67 Constant:
0:67 3.120000
0:67 Convert int to float (temp float)
0:67 'b' (noContraction temp int)
0:69 move second child to first child (temp float)
0:69 'result' (noContraction temp float)
0:69 Convert int to float (temp float)
0:69 add (temp int)
0:69 add (temp int)
0:69 'a' (noContraction temp int)
0:69 'b' (noContraction temp int)
0:69 Constant:
0:69 5 (const int)
0:70 move second child to first child (temp float)
0:70 'result' (noContraction temp float)
0:70 Constant:
0:70 11.100000
0:73 Function Definition: fma_not_decorated( (global float)
0:73 Function Parameters:
0:? Sequence
0:75 Sequence
0:75 move second child to first child (temp float)
0:75 'a' (noContraction temp float)
0:75 Constant:
0:75 1.000000
0:76 Sequence
0:76 move second child to first child (temp float)
0:76 'b' (noContraction temp float)
0:76 Constant:
0:76 2.000000
0:77 Sequence
0:77 move second child to first child (temp float)
0:77 'c' (noContraction temp float)
0:77 Constant:
0:77 3.000000
0:78 move second child to first child (temp float)
0:78 'b' (noContraction temp float)
0:78 add (noContraction temp float)
0:78 'b' (noContraction temp float)
0:78 'c' (noContraction temp float)
0:79 move second child to first child (temp float)
0:79 'result' (noContraction temp float)
0:79 fma (global float)
0:79 'a' (noContraction temp float)
0:79 'b' (noContraction temp float)
0:79 'c' (noContraction temp float)
0:80 Branch: Return with expression
0:80 'result' (noContraction temp float)
0:83 Function Definition: precise_return_exp_func( (noContraction temp float)
0:83 Function Parameters:
0:84 Sequence
0:84 Sequence
0:84 move second child to first child (temp float)
0:84 'a' (noContraction temp float)
0:84 Constant:
0:84 1.000000
0:85 Sequence
0:85 move second child to first child (temp float)
0:85 'b' (noContraction temp float)
0:85 Constant:
0:85 2.000000
0:86 Branch: Return with expression
0:86 add (noContraction temp float)
0:86 'a' (noContraction temp float)
0:86 'b' (noContraction temp float)
0:89 Function Definition: precise_return_val_func( (noContraction temp float)
0:89 Function Parameters:
0:90 Sequence
0:90 Sequence
0:90 move second child to first child (temp float)
0:90 'a' (noContraction temp float)
0:90 Constant:
0:90 1.000000
0:91 Sequence
0:91 move second child to first child (temp float)
0:91 'b' (noContraction temp float)
0:91 Constant:
0:91 2.000000
0:92 Sequence
0:92 move second child to first child (temp float)
0:92 'result' (noContraction temp float)
0:92 add (noContraction temp float)
0:92 'a' (noContraction temp float)
0:92 'b' (noContraction temp float)
0:93 Branch: Return with expression
0:93 'result' (noContraction temp float)
0:96 Function Definition: precise_func_parameter(f1;f1; (global float)
0:96 Function Parameters:
0:96 'b' (in float)
0:96 'c' (noContraction out float)
0:97 Sequence
0:97 Sequence
0:97 move second child to first child (temp float)
0:97 'a' (noContraction temp float)
0:97 Constant:
0:97 0.500000
0:98 move second child to first child (temp float)
0:98 'c' (noContraction out float)
0:98 add (noContraction temp float)
0:98 'a' (noContraction temp float)
0:98 'b' (noContraction in float)
0:99 Branch: Return with expression
0:99 subtract (temp float)
0:99 'a' (temp float)
0:99 'b' (in float)
0:102 Function Definition: matrix(mf23;mf32; (global 3X3 matrix of float)
0:102 Function Parameters:
0:102 'a' (in 2X3 matrix of float)
0:102 'b' (in 3X2 matrix of float)
0:103 Sequence
0:103 Sequence
0:103 move second child to first child (temp 2X3 matrix of float)
0:103 'c' (noContraction temp 2X3 matrix of float)
0:103 Constant:
0:103 1.000000
0:103 2.000000
0:103 3.000000
0:103 4.000000
0:103 5.000000
0:103 6.000000
0:105 move second child to first child (temp 3X3 matrix of float)
0:105 'result' (noContraction temp 3X3 matrix of float)
0:105 matrix-multiply (noContraction temp 3X3 matrix of float)
0:105 add (noContraction temp 2X3 matrix of float)
0:105 'a' (noContraction in 2X3 matrix of float)
0:105 'c' (noContraction temp 2X3 matrix of float)
0:105 'b' (noContraction in 3X2 matrix of float)
0:106 Branch: Return with expression
0:106 'result' (noContraction temp 3X3 matrix of float)
0:109 Function Definition: main( (global void)
0:109 Function Parameters:
0:? Linker Objects

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,122 @@
spv.precise.tesc
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
Linked tessellation control stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 72
Capability Tessellation
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint TessellationControl 4 "main" 12 15 20 30 40 45
ExecutionMode 4 OutputVertices 3
Source ESSL 310
SourceExtension "GL_EXT_gpu_shader5"
SourceExtension "GL_EXT_shader_io_blocks"
SourceExtension "GL_EXT_tessellation_shader"
Name 4 "main"
Name 12 "in_te_position"
Name 15 "gl_InvocationID"
Name 20 "in_tc_position"
Name 30 "gl_TessLevelInner"
Name 40 "gl_TessLevelOuter"
Name 45 "in_tc_tessParam"
Decorate 12(in_te_position) Location 0
Decorate 15(gl_InvocationID) BuiltIn InvocationId
Decorate 20(in_tc_position) Location 0
Decorate 30(gl_TessLevelInner) Patch
Decorate 30(gl_TessLevelInner) BuiltIn TessLevelInner
Decorate 40(gl_TessLevelOuter) Patch
Decorate 40(gl_TessLevelOuter) BuiltIn TessLevelOuter
Decorate 45(in_tc_tessParam) Location 1
Decorate 52 NoContraction
Decorate 53 NoContraction
Decorate 54 NoContraction
Decorate 60 NoContraction
Decorate 61 NoContraction
Decorate 62 NoContraction
Decorate 68 NoContraction
Decorate 69 NoContraction
Decorate 70 NoContraction
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 2
8: TypeInt 32 0
9: 8(int) Constant 3
10: TypeArray 7(fvec2) 9
11: TypePointer Output 10
12(in_te_position): 11(ptr) Variable Output
13: TypeInt 32 1
14: TypePointer Input 13(int)
15(gl_InvocationID): 14(ptr) Variable Input
17: 8(int) Constant 32
18: TypeArray 7(fvec2) 17
19: TypePointer Input 18
20(in_tc_position): 19(ptr) Variable Input
22: TypePointer Input 7(fvec2)
25: TypePointer Output 7(fvec2)
27: 8(int) Constant 2
28: TypeArray 6(float) 27
29: TypePointer Output 28
30(gl_TessLevelInner): 29(ptr) Variable Output
31: 13(int) Constant 0
32: 6(float) Constant 1084227584
33: TypePointer Output 6(float)
35: 13(int) Constant 1
37: 8(int) Constant 4
38: TypeArray 6(float) 37
39: TypePointer Output 38
40(gl_TessLevelOuter): 39(ptr) Variable Output
41: 6(float) Constant 1065353216
42: 6(float) Constant 1105985536
43: TypeArray 6(float) 17
44: TypePointer Input 43
45(in_tc_tessParam): 44(ptr) Variable Input
46: TypePointer Input 6(float)
49: 13(int) Constant 2
4(main): 2 Function None 3
5: Label
16: 13(int) Load 15(gl_InvocationID)
21: 13(int) Load 15(gl_InvocationID)
23: 22(ptr) AccessChain 20(in_tc_position) 21
24: 7(fvec2) Load 23
26: 25(ptr) AccessChain 12(in_te_position) 16
Store 26 24
34: 33(ptr) AccessChain 30(gl_TessLevelInner) 31
Store 34 32
36: 33(ptr) AccessChain 30(gl_TessLevelInner) 35
Store 36 32
47: 46(ptr) AccessChain 45(in_tc_tessParam) 35
48: 6(float) Load 47
50: 46(ptr) AccessChain 45(in_tc_tessParam) 49
51: 6(float) Load 50
52: 6(float) FAdd 48 51
53: 6(float) FMul 42 52
54: 6(float) FAdd 41 53
55: 33(ptr) AccessChain 40(gl_TessLevelOuter) 31
Store 55 54
56: 46(ptr) AccessChain 45(in_tc_tessParam) 49
57: 6(float) Load 56
58: 46(ptr) AccessChain 45(in_tc_tessParam) 31
59: 6(float) Load 58
60: 6(float) FAdd 57 59
61: 6(float) FMul 42 60
62: 6(float) FAdd 41 61
63: 33(ptr) AccessChain 40(gl_TessLevelOuter) 35
Store 63 62
64: 46(ptr) AccessChain 45(in_tc_tessParam) 31
65: 6(float) Load 64
66: 46(ptr) AccessChain 45(in_tc_tessParam) 35
67: 6(float) Load 66
68: 6(float) FAdd 65 67
69: 6(float) FMul 42 68
70: 6(float) FAdd 41 69
71: 33(ptr) AccessChain 40(gl_TessLevelOuter) 49
Store 71 70
Return
FunctionEnd

View file

@ -0,0 +1,192 @@
spv.precise.tese
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
Linked tessellation evaluation stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 119
Capability Tessellation
Capability TessellationPointSize
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint TessellationEvaluation 4 "main" 12 21 62 112
ExecutionMode 4 Triangles
ExecutionMode 4 SpacingEqual
ExecutionMode 4 VertexOrderCcw
Source ESSL 310
SourceExtension "GL_EXT_gpu_shader5"
SourceExtension "GL_EXT_shader_io_blocks"
SourceExtension "GL_EXT_tessellation_shader"
Name 4 "main"
Name 9 "pos"
Name 12 "gl_TessCoord"
Name 21 "in_te_position"
Name 45 "f"
Name 62 "in_f_color"
Name 73 "bits"
Name 77 "numBits"
Name 78 "i"
Name 110 "gl_PerVertex"
MemberName 110(gl_PerVertex) 0 "gl_Position"
MemberName 110(gl_PerVertex) 1 "gl_PointSize"
Name 112 ""
Decorate 12(gl_TessCoord) BuiltIn TessCoord
Decorate 21(in_te_position) Location 0
Decorate 27 NoContraction
Decorate 34 NoContraction
Decorate 35 NoContraction
Decorate 42 NoContraction
Decorate 43 NoContraction
Decorate 62(in_f_color) RelaxedPrecision
Decorate 62(in_f_color) Location 0
Decorate 67 RelaxedPrecision
Decorate 68 RelaxedPrecision
Decorate 69 RelaxedPrecision
Decorate 70 RelaxedPrecision
Decorate 97 NoContraction
Decorate 99 NoContraction
Decorate 101 NoContraction
Decorate 106 NoContraction
Decorate 109 NoContraction
MemberDecorate 110(gl_PerVertex) 0 BuiltIn Position
MemberDecorate 110(gl_PerVertex) 1 BuiltIn PointSize
Decorate 110(gl_PerVertex) Block
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 2
8: TypePointer Function 7(fvec2)
10: TypeVector 6(float) 3
11: TypePointer Input 10(fvec3)
12(gl_TessCoord): 11(ptr) Variable Input
13: TypeInt 32 0
14: 13(int) Constant 0
15: TypePointer Input 6(float)
18: 13(int) Constant 32
19: TypeArray 7(fvec2) 18
20: TypePointer Input 19
21(in_te_position): 20(ptr) Variable Input
22: TypeInt 32 1
23: 22(int) Constant 0
24: TypePointer Input 7(fvec2)
28: 13(int) Constant 1
31: 22(int) Constant 1
36: 13(int) Constant 2
39: 22(int) Constant 2
44: TypePointer Function 6(float)
46: 6(float) Constant 1077936128
57: 6(float) Constant 1056964608
60: TypeVector 6(float) 4
61: TypePointer Output 60(fvec4)
62(in_f_color): 61(ptr) Variable Output
66: 6(float) Constant 1065353216
71: TypeVector 13(int) 2
72: TypePointer Function 71(ivec2)
76: TypePointer Function 13(int)
85: TypeBool
105: 6(float) Constant 1025758986
110(gl_PerVertex): TypeStruct 60(fvec4) 6(float)
111: TypePointer Output 110(gl_PerVertex)
112: 111(ptr) Variable Output
114: 6(float) Constant 0
4(main): 2 Function None 3
5: Label
9(pos): 8(ptr) Variable Function
45(f): 44(ptr) Variable Function
73(bits): 72(ptr) Variable Function
77(numBits): 76(ptr) Variable Function
78(i): 76(ptr) Variable Function
16: 15(ptr) AccessChain 12(gl_TessCoord) 14
17: 6(float) Load 16
25: 24(ptr) AccessChain 21(in_te_position) 23
26: 7(fvec2) Load 25
27: 7(fvec2) VectorTimesScalar 26 17
29: 15(ptr) AccessChain 12(gl_TessCoord) 28
30: 6(float) Load 29
32: 24(ptr) AccessChain 21(in_te_position) 31
33: 7(fvec2) Load 32
34: 7(fvec2) VectorTimesScalar 33 30
35: 7(fvec2) FAdd 27 34
37: 15(ptr) AccessChain 12(gl_TessCoord) 36
38: 6(float) Load 37
40: 24(ptr) AccessChain 21(in_te_position) 39
41: 7(fvec2) Load 40
42: 7(fvec2) VectorTimesScalar 41 38
43: 7(fvec2) FAdd 35 42
Store 9(pos) 43
47: 15(ptr) AccessChain 12(gl_TessCoord) 14
48: 6(float) Load 47
49: 15(ptr) AccessChain 12(gl_TessCoord) 28
50: 6(float) Load 49
51: 15(ptr) AccessChain 12(gl_TessCoord) 36
52: 6(float) Load 51
53: 6(float) ExtInst 1(GLSL.std.450) 37(FMin) 50 52
54: 6(float) ExtInst 1(GLSL.std.450) 37(FMin) 48 53
55: 6(float) FMul 46 54
56: 6(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 55
58: 6(float) FMul 56 57
59: 6(float) FAdd 58 57
Store 45(f) 59
63: 10(fvec3) Load 12(gl_TessCoord)
64: 6(float) Load 45(f)
65: 10(fvec3) VectorTimesScalar 63 64
67: 6(float) CompositeExtract 65 0
68: 6(float) CompositeExtract 65 1
69: 6(float) CompositeExtract 65 2
70: 60(fvec4) CompositeConstruct 67 68 69 66
Store 62(in_f_color) 70
74: 7(fvec2) Load 9(pos)
75: 71(ivec2) Bitcast 74
Store 73(bits) 75
Store 77(numBits) 14
Store 78(i) 14
Branch 79
79: Label
LoopMerge 81 82 None
Branch 83
83: Label
84: 13(int) Load 78(i)
86: 85(bool) ULessThan 84 18
BranchConditional 86 80 81
80: Label
87: 76(ptr) AccessChain 73(bits) 14
88: 13(int) Load 87
89: 13(int) Load 78(i)
90: 13(int) ShiftLeftLogical 88 89
91: 13(int) BitwiseAnd 90 28
92: 76(ptr) AccessChain 73(bits) 28
93: 13(int) Load 92
94: 13(int) Load 78(i)
95: 13(int) ShiftLeftLogical 93 94
96: 13(int) BitwiseAnd 95 28
97: 13(int) IAdd 91 96
98: 13(int) Load 77(numBits)
99: 13(int) IAdd 98 97
Store 77(numBits) 99
Branch 82
82: Label
100: 13(int) Load 78(i)
101: 13(int) IAdd 100 31
Store 78(i) 101
Branch 79
81: Label
102: 13(int) Load 77(numBits)
103: 13(int) BitwiseAnd 102 28
104: 6(float) ConvertUToF 103
106: 6(float) FMul 104 105
107: 7(fvec2) Load 9(pos)
108: 7(fvec2) CompositeConstruct 106 106
109: 7(fvec2) FAdd 107 108
Store 9(pos) 109
113: 7(fvec2) Load 9(pos)
115: 6(float) CompositeExtract 113 0
116: 6(float) CompositeExtract 113 1
117: 60(fvec4) CompositeConstruct 115 116 114 66
118: 61(ptr) AccessChain 112 23
Store 118 117
Return
FunctionEnd