Commit e88217b7 by John Kessenich

Add more TOperator: fma/frexp/ldexp, AddCarry/SubBorrow/MulExtended/Bit*/Find*,…

Add more TOperator: fma/frexp/ldexp, AddCarry/SubBorrow/MulExtended/Bit*/Find*, (un)pack4x8/2x32, ftransform. Also corrects some existing ones missing the "Op" part of their name.
parent f5b2c06b
...@@ -401,13 +401,13 @@ ERROR: node is still EOpNull! ...@@ -401,13 +401,13 @@ ERROR: node is still EOpNull!
0:95 'pv3' (temp 3-component vector of float) 0:95 'pv3' (temp 3-component vector of float)
0:96 move second child to first child (temp 3-component vector of float) 0:96 move second child to first child (temp 3-component vector of float)
0:96 'pv3' (temp 3-component vector of float) 0:96 'pv3' (temp 3-component vector of float)
0:96 Function Call: fma(vf3;vf3;vf3; (global 3-component vector of float) 0:96 fma (global 3-component vector of float)
0:96 'pv3' (temp 3-component vector of float) 0:96 'pv3' (temp 3-component vector of float)
0:96 'pv3' (temp 3-component vector of float) 0:96 'pv3' (temp 3-component vector of float)
0:96 'pv3' (temp 3-component vector of float) 0:96 'pv3' (temp 3-component vector of float)
0:97 move second child to first child (temp double) 0:97 move second child to first child (temp double)
0:97 'd' (temp double) 0:97 'd' (temp double)
0:97 Function Call: fma(d1;d1;d1; (global double) 0:97 fma (global double)
0:97 'd' (temp double) 0:97 'd' (temp double)
0:97 'd' (temp double) 0:97 'd' (temp double)
0:97 'd' (temp double) 0:97 'd' (temp double)
...@@ -1186,13 +1186,13 @@ vertices = 4 ...@@ -1186,13 +1186,13 @@ vertices = 4
0:95 'pv3' (temp 3-component vector of float) 0:95 'pv3' (temp 3-component vector of float)
0:96 move second child to first child (temp 3-component vector of float) 0:96 move second child to first child (temp 3-component vector of float)
0:96 'pv3' (temp 3-component vector of float) 0:96 'pv3' (temp 3-component vector of float)
0:96 Function Call: fma(vf3;vf3;vf3; (global 3-component vector of float) 0:96 fma (global 3-component vector of float)
0:96 'pv3' (temp 3-component vector of float) 0:96 'pv3' (temp 3-component vector of float)
0:96 'pv3' (temp 3-component vector of float) 0:96 'pv3' (temp 3-component vector of float)
0:96 'pv3' (temp 3-component vector of float) 0:96 'pv3' (temp 3-component vector of float)
0:97 move second child to first child (temp double) 0:97 move second child to first child (temp double)
0:97 'd' (temp double) 0:97 'd' (temp double)
0:97 Function Call: fma(d1;d1;d1; (global double) 0:97 fma (global double)
0:97 'd' (temp double) 0:97 'd' (temp double)
0:97 'd' (temp double) 0:97 'd' (temp double)
0:97 'd' (temp double) 0:97 'd' (temp double)
......
...@@ -398,7 +398,7 @@ ERROR: node is still EOpNull! ...@@ -398,7 +398,7 @@ ERROR: node is still EOpNull!
0:? Sequence 0:? Sequence
0:210 move second child to first child (temp mediump 2-component vector of float) 0:210 move second child to first child (temp mediump 2-component vector of float)
0:210 'h' (temp mediump 2-component vector of float) 0:210 'h' (temp mediump 2-component vector of float)
0:210 Function Call: fma(vf2;vf2;vf2; (global mediump 2-component vector of float) 0:210 fma (global mediump 2-component vector of float)
0:210 'inf' (smooth in mediump 2-component vector of float) 0:210 'inf' (smooth in mediump 2-component vector of float)
0:210 'ing' (smooth in mediump 2-component vector of float) 0:210 'ing' (smooth in mediump 2-component vector of float)
0:210 'h' (temp mediump 2-component vector of float) 0:210 'h' (temp mediump 2-component vector of float)
...@@ -434,7 +434,7 @@ ERROR: node is still EOpNull! ...@@ -434,7 +434,7 @@ ERROR: node is still EOpNull!
0:? Sequence 0:? Sequence
0:220 move second child to first child (temp mediump 2-component vector of float) 0:220 move second child to first child (temp mediump 2-component vector of float)
0:220 'h' (temp mediump 2-component vector of float) 0:220 'h' (temp mediump 2-component vector of float)
0:220 Function Call: fma(vf2;vf2;vf2; (global mediump 2-component vector of float) 0:220 fma (global mediump 2-component vector of float)
0:220 'inf' (smooth in mediump 2-component vector of float) 0:220 'inf' (smooth in mediump 2-component vector of float)
0:220 'ing' (smooth in mediump 2-component vector of float) 0:220 'ing' (smooth in mediump 2-component vector of float)
0:220 'h' (temp mediump 2-component vector of float) 0:220 'h' (temp mediump 2-component vector of float)
...@@ -1121,7 +1121,7 @@ ERROR: node is still EOpNull! ...@@ -1121,7 +1121,7 @@ ERROR: node is still EOpNull!
0:? Sequence 0:? Sequence
0:210 move second child to first child (temp mediump 2-component vector of float) 0:210 move second child to first child (temp mediump 2-component vector of float)
0:210 'h' (temp mediump 2-component vector of float) 0:210 'h' (temp mediump 2-component vector of float)
0:210 Function Call: fma(vf2;vf2;vf2; (global mediump 2-component vector of float) 0:210 fma (global mediump 2-component vector of float)
0:210 'inf' (smooth in mediump 2-component vector of float) 0:210 'inf' (smooth in mediump 2-component vector of float)
0:210 'ing' (smooth in mediump 2-component vector of float) 0:210 'ing' (smooth in mediump 2-component vector of float)
0:210 'h' (temp mediump 2-component vector of float) 0:210 'h' (temp mediump 2-component vector of float)
...@@ -1157,7 +1157,7 @@ ERROR: node is still EOpNull! ...@@ -1157,7 +1157,7 @@ ERROR: node is still EOpNull!
0:? Sequence 0:? Sequence
0:220 move second child to first child (temp mediump 2-component vector of float) 0:220 move second child to first child (temp mediump 2-component vector of float)
0:220 'h' (temp mediump 2-component vector of float) 0:220 'h' (temp mediump 2-component vector of float)
0:220 Function Call: fma(vf2;vf2;vf2; (global mediump 2-component vector of float) 0:220 fma (global mediump 2-component vector of float)
0:220 'inf' (smooth in mediump 2-component vector of float) 0:220 'inf' (smooth in mediump 2-component vector of float)
0:220 'ing' (smooth in mediump 2-component vector of float) 0:220 'ing' (smooth in mediump 2-component vector of float)
0:220 'h' (temp mediump 2-component vector of float) 0:220 'h' (temp mediump 2-component vector of float)
......
...@@ -196,7 +196,7 @@ ERROR: node is still EOpNull! ...@@ -196,7 +196,7 @@ ERROR: node is still EOpNull!
0:? Sequence 0:? Sequence
0:95 move second child to first child (temp highp float) 0:95 move second child to first child (temp highp float)
0:95 'd' (temp highp float) 0:95 'd' (temp highp float)
0:95 Function Call: fma(f1;f1;f1; (global highp float) 0:95 fma (global highp float)
0:95 'd' (temp highp float) 0:95 'd' (temp highp float)
0:95 'd' (temp highp float) 0:95 'd' (temp highp float)
0:95 'd' (temp highp float) 0:95 'd' (temp highp float)
...@@ -230,13 +230,13 @@ ERROR: node is still EOpNull! ...@@ -230,13 +230,13 @@ ERROR: node is still EOpNull!
0:126 'pv3' (temp highp 3-component vector of float) 0:126 'pv3' (temp highp 3-component vector of float)
0:127 move second child to first child (temp highp 3-component vector of float) 0:127 move second child to first child (temp highp 3-component vector of float)
0:127 'pv3' (temp highp 3-component vector of float) 0:127 'pv3' (temp highp 3-component vector of float)
0:127 Function Call: fma(vf3;vf3;vf3; (global highp 3-component vector of float) 0:127 fma (global highp 3-component vector of float)
0:127 'pv3' (temp highp 3-component vector of float) 0:127 'pv3' (temp highp 3-component vector of float)
0:127 'pv3' (temp highp 3-component vector of float) 0:127 'pv3' (temp highp 3-component vector of float)
0:127 'pv3' (temp highp 3-component vector of float) 0:127 'pv3' (temp highp 3-component vector of float)
0:128 move second child to first child (temp highp float) 0:128 move second child to first child (temp highp float)
0:128 'd' (temp highp float) 0:128 'd' (temp highp float)
0:128 Function Call: fma(f1;f1;f1; (global highp float) 0:128 fma (global highp float)
0:128 'd' (temp highp float) 0:128 'd' (temp highp float)
0:128 'd' (temp highp float) 0:128 'd' (temp highp float)
0:128 'd' (temp highp float) 0:128 'd' (temp highp float)
...@@ -458,7 +458,7 @@ ERROR: node is still EOpNull! ...@@ -458,7 +458,7 @@ ERROR: node is still EOpNull!
0:? Sequence 0:? Sequence
0:95 move second child to first child (temp highp float) 0:95 move second child to first child (temp highp float)
0:95 'd' (temp highp float) 0:95 'd' (temp highp float)
0:95 Function Call: fma(f1;f1;f1; (global highp float) 0:95 fma (global highp float)
0:95 'd' (temp highp float) 0:95 'd' (temp highp float)
0:95 'd' (temp highp float) 0:95 'd' (temp highp float)
0:95 'd' (temp highp float) 0:95 'd' (temp highp float)
...@@ -492,13 +492,13 @@ ERROR: node is still EOpNull! ...@@ -492,13 +492,13 @@ ERROR: node is still EOpNull!
0:126 'pv3' (temp highp 3-component vector of float) 0:126 'pv3' (temp highp 3-component vector of float)
0:127 move second child to first child (temp highp 3-component vector of float) 0:127 move second child to first child (temp highp 3-component vector of float)
0:127 'pv3' (temp highp 3-component vector of float) 0:127 'pv3' (temp highp 3-component vector of float)
0:127 Function Call: fma(vf3;vf3;vf3; (global highp 3-component vector of float) 0:127 fma (global highp 3-component vector of float)
0:127 'pv3' (temp highp 3-component vector of float) 0:127 'pv3' (temp highp 3-component vector of float)
0:127 'pv3' (temp highp 3-component vector of float) 0:127 'pv3' (temp highp 3-component vector of float)
0:127 'pv3' (temp highp 3-component vector of float) 0:127 'pv3' (temp highp 3-component vector of float)
0:128 move second child to first child (temp highp float) 0:128 move second child to first child (temp highp float)
0:128 'd' (temp highp float) 0:128 'd' (temp highp float)
0:128 Function Call: fma(f1;f1;f1; (global highp float) 0:128 fma (global highp float)
0:128 'd' (temp highp float) 0:128 'd' (temp highp float)
0:128 'd' (temp highp float) 0:128 'd' (temp highp float)
0:128 'd' (temp highp float) 0:128 'd' (temp highp float)
......
...@@ -266,37 +266,37 @@ ERROR: node is still EOpNull! ...@@ -266,37 +266,37 @@ ERROR: node is still EOpNull!
0:84 'in4' (smooth in 4-component vector of float) 0:84 'in4' (smooth in 4-component vector of float)
0:89 move second child to first child (temp 2-component vector of float) 0:89 move second child to first child (temp 2-component vector of float)
0:89 'v2' (temp 2-component vector of float) 0:89 'v2' (temp 2-component vector of float)
0:89 Function Call: frexp(vf2;vi2; (global 2-component vector of float) 0:89 frexp (global 2-component vector of float)
0:89 'v2' (temp 2-component vector of float) 0:89 'v2' (temp 2-component vector of float)
0:89 'i2' (temp 2-component vector of int) 0:89 'i2' (temp 2-component vector of int)
0:90 move second child to first child (temp 3-component vector of float) 0:90 move second child to first child (temp 3-component vector of float)
0:90 'v3' (temp 3-component vector of float) 0:90 'v3' (temp 3-component vector of float)
0:90 Function Call: ldexp(vf3;vi3; (global 3-component vector of float) 0:90 ldexp (global 3-component vector of float)
0:90 'v3' (temp 3-component vector of float) 0:90 'v3' (temp 3-component vector of float)
0:90 'i3' (temp 3-component vector of int) 0:90 'i3' (temp 3-component vector of int)
0:92 move second child to first child (temp uint) 0:92 move second child to first child (temp uint)
0:92 'u1' (temp uint) 0:92 'u1' (temp uint)
0:92 Function Call: packUnorm4x8(vf4; (global uint) 0:92 PackUnorm4x8 (global uint)
0:92 'v4' (temp 4-component vector of float) 0:92 'v4' (temp 4-component vector of float)
0:93 move second child to first child (temp uint) 0:93 move second child to first child (temp uint)
0:93 'u1' (temp uint) 0:93 'u1' (temp uint)
0:93 Function Call: packSnorm4x8(vf4; (global uint) 0:93 PackSnorm4x8 (global uint)
0:93 'v4' (temp 4-component vector of float) 0:93 'v4' (temp 4-component vector of float)
0:94 move second child to first child (temp 4-component vector of float) 0:94 move second child to first child (temp 4-component vector of float)
0:94 'v4' (temp 4-component vector of float) 0:94 'v4' (temp 4-component vector of float)
0:94 Function Call: unpackUnorm4x8(u1; (global 4-component vector of float) 0:94 UnpackUnorm4x8 (global 4-component vector of float)
0:94 'u1' (temp uint) 0:94 'u1' (temp uint)
0:95 move second child to first child (temp 4-component vector of float) 0:95 move second child to first child (temp 4-component vector of float)
0:95 'v4' (temp 4-component vector of float) 0:95 'v4' (temp 4-component vector of float)
0:95 Function Call: unpackSnorm4x8(u1; (global 4-component vector of float) 0:95 UnpackSnorm4x8 (global 4-component vector of float)
0:95 'u1' (temp uint) 0:95 'u1' (temp uint)
0:99 move second child to first child (temp double) 0:99 move second child to first child (temp double)
0:99 'd' (temp double) 0:99 'd' (temp double)
0:99 Function Call: packDouble2x32(vu2; (global double) 0:99 PackUnorm4x8 (global double)
0:99 'u2' (temp 2-component vector of uint) 0:99 'u2' (temp 2-component vector of uint)
0:100 move second child to first child (temp 2-component vector of uint) 0:100 move second child to first child (temp 2-component vector of uint)
0:100 'u2' (temp 2-component vector of uint) 0:100 'u2' (temp 2-component vector of uint)
0:100 Function Call: unpackDouble2x32(d1; (global 2-component vector of uint) 0:100 UnpackUnorm4x8 (global 2-component vector of uint)
0:100 'd' (temp double) 0:100 'd' (temp double)
0:? Linker Objects 0:? Linker Objects
0:? 'c2D' (smooth in 2-component vector of float) 0:? 'c2D' (smooth in 2-component vector of float)
...@@ -569,37 +569,37 @@ ERROR: node is still EOpNull! ...@@ -569,37 +569,37 @@ ERROR: node is still EOpNull!
0:84 'in4' (smooth in 4-component vector of float) 0:84 'in4' (smooth in 4-component vector of float)
0:89 move second child to first child (temp 2-component vector of float) 0:89 move second child to first child (temp 2-component vector of float)
0:89 'v2' (temp 2-component vector of float) 0:89 'v2' (temp 2-component vector of float)
0:89 Function Call: frexp(vf2;vi2; (global 2-component vector of float) 0:89 frexp (global 2-component vector of float)
0:89 'v2' (temp 2-component vector of float) 0:89 'v2' (temp 2-component vector of float)
0:89 'i2' (temp 2-component vector of int) 0:89 'i2' (temp 2-component vector of int)
0:90 move second child to first child (temp 3-component vector of float) 0:90 move second child to first child (temp 3-component vector of float)
0:90 'v3' (temp 3-component vector of float) 0:90 'v3' (temp 3-component vector of float)
0:90 Function Call: ldexp(vf3;vi3; (global 3-component vector of float) 0:90 ldexp (global 3-component vector of float)
0:90 'v3' (temp 3-component vector of float) 0:90 'v3' (temp 3-component vector of float)
0:90 'i3' (temp 3-component vector of int) 0:90 'i3' (temp 3-component vector of int)
0:92 move second child to first child (temp uint) 0:92 move second child to first child (temp uint)
0:92 'u1' (temp uint) 0:92 'u1' (temp uint)
0:92 Function Call: packUnorm4x8(vf4; (global uint) 0:92 PackUnorm4x8 (global uint)
0:92 'v4' (temp 4-component vector of float) 0:92 'v4' (temp 4-component vector of float)
0:93 move second child to first child (temp uint) 0:93 move second child to first child (temp uint)
0:93 'u1' (temp uint) 0:93 'u1' (temp uint)
0:93 Function Call: packSnorm4x8(vf4; (global uint) 0:93 PackSnorm4x8 (global uint)
0:93 'v4' (temp 4-component vector of float) 0:93 'v4' (temp 4-component vector of float)
0:94 move second child to first child (temp 4-component vector of float) 0:94 move second child to first child (temp 4-component vector of float)
0:94 'v4' (temp 4-component vector of float) 0:94 'v4' (temp 4-component vector of float)
0:94 Function Call: unpackUnorm4x8(u1; (global 4-component vector of float) 0:94 UnpackUnorm4x8 (global 4-component vector of float)
0:94 'u1' (temp uint) 0:94 'u1' (temp uint)
0:95 move second child to first child (temp 4-component vector of float) 0:95 move second child to first child (temp 4-component vector of float)
0:95 'v4' (temp 4-component vector of float) 0:95 'v4' (temp 4-component vector of float)
0:95 Function Call: unpackSnorm4x8(u1; (global 4-component vector of float) 0:95 UnpackSnorm4x8 (global 4-component vector of float)
0:95 'u1' (temp uint) 0:95 'u1' (temp uint)
0:99 move second child to first child (temp double) 0:99 move second child to first child (temp double)
0:99 'd' (temp double) 0:99 'd' (temp double)
0:99 Function Call: packDouble2x32(vu2; (global double) 0:99 PackUnorm4x8 (global double)
0:99 'u2' (temp 2-component vector of uint) 0:99 'u2' (temp 2-component vector of uint)
0:100 move second child to first child (temp 2-component vector of uint) 0:100 move second child to first child (temp 2-component vector of uint)
0:100 'u2' (temp 2-component vector of uint) 0:100 'u2' (temp 2-component vector of uint)
0:100 Function Call: unpackDouble2x32(d1; (global 2-component vector of uint) 0:100 UnpackUnorm4x8 (global 2-component vector of uint)
0:100 'd' (temp double) 0:100 'd' (temp double)
0:? Linker Objects 0:? Linker Objects
0:? 'c2D' (smooth in 2-component vector of float) 0:? 'c2D' (smooth in 2-component vector of float)
......
...@@ -187,13 +187,13 @@ ERROR: node is still EOpNull! ...@@ -187,13 +187,13 @@ ERROR: node is still EOpNull!
0:95 'pv3' (temp 3-component vector of float) 0:95 'pv3' (temp 3-component vector of float)
0:96 move second child to first child (temp 3-component vector of float) 0:96 move second child to first child (temp 3-component vector of float)
0:96 'pv3' (temp 3-component vector of float) 0:96 'pv3' (temp 3-component vector of float)
0:96 Function Call: fma(vf3;vf3;vf3; (global 3-component vector of float) 0:96 fma (global 3-component vector of float)
0:96 'pv3' (temp 3-component vector of float) 0:96 'pv3' (temp 3-component vector of float)
0:96 'pv3' (temp 3-component vector of float) 0:96 'pv3' (temp 3-component vector of float)
0:96 'pv3' (temp 3-component vector of float) 0:96 'pv3' (temp 3-component vector of float)
0:97 move second child to first child (temp double) 0:97 move second child to first child (temp double)
0:97 'd' (temp double) 0:97 'd' (temp double)
0:97 Function Call: fma(d1;d1;d1; (global double) 0:97 fma (global double)
0:97 'd' (temp double) 0:97 'd' (temp double)
0:97 'd' (temp double) 0:97 'd' (temp double)
0:97 'd' (temp double) 0:97 'd' (temp double)
...@@ -385,13 +385,13 @@ ERROR: node is still EOpNull! ...@@ -385,13 +385,13 @@ ERROR: node is still EOpNull!
0:95 'pv3' (temp 3-component vector of float) 0:95 'pv3' (temp 3-component vector of float)
0:96 move second child to first child (temp 3-component vector of float) 0:96 move second child to first child (temp 3-component vector of float)
0:96 'pv3' (temp 3-component vector of float) 0:96 'pv3' (temp 3-component vector of float)
0:96 Function Call: fma(vf3;vf3;vf3; (global 3-component vector of float) 0:96 fma (global 3-component vector of float)
0:96 'pv3' (temp 3-component vector of float) 0:96 'pv3' (temp 3-component vector of float)
0:96 'pv3' (temp 3-component vector of float) 0:96 'pv3' (temp 3-component vector of float)
0:96 'pv3' (temp 3-component vector of float) 0:96 'pv3' (temp 3-component vector of float)
0:97 move second child to first child (temp double) 0:97 move second child to first child (temp double)
0:97 'd' (temp double) 0:97 'd' (temp double)
0:97 Function Call: fma(d1;d1;d1; (global double) 0:97 fma (global double)
0:97 'd' (temp double) 0:97 'd' (temp double)
0:97 'd' (temp double) 0:97 'd' (temp double)
0:97 'd' (temp double) 0:97 'd' (temp double)
......
...@@ -140,7 +140,7 @@ enum TOperator { ...@@ -140,7 +140,7 @@ enum TOperator {
EOpMethod, EOpMethod,
// //
// Built-in functions potentially mapped to operators // Built-in functions mapped to operators
// //
EOpRadians, EOpRadians,
...@@ -185,6 +185,11 @@ enum TOperator { ...@@ -185,6 +185,11 @@ enum TOperator {
EOpIsNan, EOpIsNan,
EOpIsInf, EOpIsInf,
EOpFma,
EFrexp,
ELdexp,
EOpFloatBitsToInt, EOpFloatBitsToInt,
EOpFloatBitsToUint, EOpFloatBitsToUint,
EOpIntBitsToFloat, EOpIntBitsToFloat,
...@@ -193,8 +198,14 @@ enum TOperator { ...@@ -193,8 +198,14 @@ enum TOperator {
EOpUnpackSnorm2x16, EOpUnpackSnorm2x16,
EOpPackUnorm2x16, EOpPackUnorm2x16,
EOpUnpackUnorm2x16, EOpUnpackUnorm2x16,
EOpPackSnorm4x8,
EOpUnpackSnorm4x8,
EOpPackUnorm4x8,
EOpUnpackUnorm4x8,
EOpPackHalf2x16, EOpPackHalf2x16,
EOpUnpackHalf2x16, EOpUnpackHalf2x16,
EOpPackDouble2x32,
EOpUnpackDouble2x32,
EOpLength, EOpLength,
EOpDistance, EOpDistance,
...@@ -221,6 +232,8 @@ enum TOperator { ...@@ -221,6 +232,8 @@ enum TOperator {
EOpMatrixInverse, EOpMatrixInverse,
EOpTranspose, EOpTranspose,
EOpFtransform,
EOpEmitVertex, // geometry only EOpEmitVertex, // geometry only
EOpEndPrimitive, // geometry only EOpEndPrimitive, // geometry only
EOpEmitStreamVertex, // geometry only EOpEmitStreamVertex, // geometry only
...@@ -340,46 +353,61 @@ enum TOperator { ...@@ -340,46 +353,61 @@ enum TOperator {
// N.B. The following is not being used yet, pending input, as switching // N.B. The following is not being used yet, pending input, as switching
// to it from the current text-based approach will break existing consumers. // to it from the current text-based approach will break existing consumers.
EImageQuerySize, EOpImageQuerySize,
EImageQuerySamples, EOpImageQuerySamples,
EImageLoad, EOpImageLoad,
EImageStore, EOpImageStore,
EImageAtomicAdd, EOpImageAtomicAdd,
EImageAtomicMin, EOpImageAtomicMin,
EImageAtomicMax, EOpImageAtomicMax,
EImageAtomicAnd, EOpImageAtomicAnd,
EImageAtomicOr, EOpImageAtomicOr,
EImageAtomicXor, EOpImageAtomicXor,
EImageAtomicExchange, EOpImageAtomicExchange,
EImageAtomicCompSwap, EOpImageAtomicCompSwap,
// //
// Texture operations // Texture operations
// //
ETextureGuardBegin, EOpTextureGuardBegin,
ETextureQuerySize, EOpTextureQuerySize,
ETextureQueryLod, EOpTextureQueryLod,
ETextureQueryLevels, EOpTextureQueryLevels,
ETextureQuerySamples, EOpTextureQuerySamples,
ETexture, EOpTexture,
ETextureProj, EOpTextureProj,
ETextureLod, EOpTextureLod,
ETextureOffset, EOpTextureOffset,
ETextureFetch, EOpTextureFetch,
ETextureFetchOffset, EOpTextureFetchOffset,
ETextureProjOffset, EOpTextureProjOffset,
ETextureLodOffset, EOpTextureLodOffset,
ETextureProjLod, EOpTextureProjLod,
ETextureProjLodOffset, EOpTextureProjLodOffset,
ETextureGrad, EOpTextureGrad,
ETextureGradOffset, EOpTextureGradOffset,
ETextureProjGrad, EOpTextureProjGrad,
ETextureProjGradOffset, EOpTextureProjGradOffset,
ETextureGather, EOpTextureGather,
ETextureGatherOffset, EOpTextureGatherOffset,
ETextureGatherOffsets, EOpTextureGatherOffsets,
ETextureGuardEnd, EOpTextureGuardEnd,
//
// Integer operations
//
EOpAddCarry,
EOpSubBorrow,
EOpUMulExtended,
EOpIMulExtended,
EOpBitfieldExtract,
EOpBitfieldInsert,
EOpBitFieldReverse,
EOpBitCount,
EOpFindLSB,
EOpFindMSB,
}; };
class TIntermTraverser; class TIntermTraverser;
......
...@@ -2,5 +2,5 @@ ...@@ -2,5 +2,5 @@
// For the version, it uses the latest git tag followed by the number of commits. // For the version, it uses the latest git tag followed by the number of commits.
// For the date, it uses the current date (when then script is run). // For the date, it uses the current date (when then script is run).
#define GLSLANG_REVISION "2.3.721" #define GLSLANG_REVISION "2.3.723"
#define GLSLANG_DATE "18-Aug-2015" #define GLSLANG_DATE "18-Aug-2015"
...@@ -268,6 +268,13 @@ bool TOutputTraverser::visitUnary(TVisit /* visit */, TIntermUnary* node) ...@@ -268,6 +268,13 @@ bool TOutputTraverser::visitUnary(TVisit /* visit */, TIntermUnary* node)
case EOpPackHalf2x16: out.debug << "packHalf2x16"; break; case EOpPackHalf2x16: out.debug << "packHalf2x16"; break;
case EOpUnpackHalf2x16: out.debug << "unpackHalf2x16"; break; case EOpUnpackHalf2x16: out.debug << "unpackHalf2x16"; break;
case EOpPackSnorm4x8: out.debug << "PackSnorm4x8"; break;
case EOpUnpackSnorm4x8: out.debug << "UnpackSnorm4x8"; break;
case EOpPackUnorm4x8: out.debug << "PackUnorm4x8"; break;
case EOpUnpackUnorm4x8: out.debug << "UnpackUnorm4x8"; break;
case EOpPackDouble2x32: out.debug << "PackDouble2x32"; break;
case EOpUnpackDouble2x32: out.debug << "UnpackDouble2x32"; break;
case EOpLength: out.debug << "length"; break; case EOpLength: out.debug << "length"; break;
case EOpNormalize: out.debug << "normalize"; break; case EOpNormalize: out.debug << "normalize"; break;
case EOpDPdx: out.debug << "dPdx"; break; case EOpDPdx: out.debug << "dPdx"; break;
...@@ -295,6 +302,19 @@ bool TOutputTraverser::visitUnary(TVisit /* visit */, TIntermUnary* node) ...@@ -295,6 +302,19 @@ bool TOutputTraverser::visitUnary(TVisit /* visit */, TIntermUnary* node)
case EOpAtomicCounterDecrement: out.debug << "AtomicCounterDecrement";break; case EOpAtomicCounterDecrement: out.debug << "AtomicCounterDecrement";break;
case EOpAtomicCounter: out.debug << "AtomicCounter"; break; case EOpAtomicCounter: out.debug << "AtomicCounter"; break;
case EOpTextureQuerySize: out.debug << "textureSize"; break;
case EOpTextureQueryLod: out.debug << "textureQueryLod"; break;
case EOpTextureQueryLevels: out.debug << "textureQueryLevels"; break;
case EOpTextureQuerySamples: out.debug << "textureSamples"; break;
case EOpImageQuerySize: out.debug << "imageQuerySize"; break;
case EOpImageQuerySamples: out.debug << "imageQuerySamples"; break;
case EOpImageLoad: out.debug << "imageLoad"; break;
case EOpBitFieldReverse: out.debug << "bitFieldReverse"; break;
case EOpBitCount: out.debug << "bitCount"; break;
case EOpFindLSB: out.debug << "findLSB"; break;
case EOpFindMSB: out.debug << "findMSB"; break;
default: out.debug.message(EPrefixError, "Bad unary op"); default: out.debug.message(EPrefixError, "Bad unary op");
} }
...@@ -410,40 +430,51 @@ bool TOutputTraverser::visitAggregate(TVisit /* visit */, TIntermAggregate* node ...@@ -410,40 +430,51 @@ bool TOutputTraverser::visitAggregate(TVisit /* visit */, TIntermAggregate* node
case EOpAtomicExchange: out.debug << "AtomicExchange"; break; case EOpAtomicExchange: out.debug << "AtomicExchange"; break;
case EOpAtomicCompSwap: out.debug << "AtomicCompSwap"; break; case EOpAtomicCompSwap: out.debug << "AtomicCompSwap"; break;
case EImageQuerySize: out.debug << "imageQuerySize"; break; case EOpImageQuerySize: out.debug << "imageQuerySize"; break;
case EImageQuerySamples: out.debug << "imageQuerySamples"; break; case EOpImageQuerySamples: out.debug << "imageQuerySamples"; break;
case EImageLoad: out.debug << "imageLoad"; break; case EOpImageLoad: out.debug << "imageLoad"; break;
case EImageStore: out.debug << "imageStore"; break; case EOpImageStore: out.debug << "imageStore"; break;
case EImageAtomicAdd: out.debug << "imageAtomicAdd"; break; case EOpImageAtomicAdd: out.debug << "imageAtomicAdd"; break;
case EImageAtomicMin: out.debug << "imageAtomicMin"; break; case EOpImageAtomicMin: out.debug << "imageAtomicMin"; break;
case EImageAtomicMax: out.debug << "imageAtomicMax"; break; case EOpImageAtomicMax: out.debug << "imageAtomicMax"; break;
case EImageAtomicAnd: out.debug << "imageAtomicAnd"; break; case EOpImageAtomicAnd: out.debug << "imageAtomicAnd"; break;
case EImageAtomicOr: out.debug << "imageAtomicOr"; break; case EOpImageAtomicOr: out.debug << "imageAtomicOr"; break;
case EImageAtomicXor: out.debug << "imageAtomicXor"; break; case EOpImageAtomicXor: out.debug << "imageAtomicXor"; break;
case EImageAtomicExchange: out.debug << "imageAtomicExchange"; break; case EOpImageAtomicExchange: out.debug << "imageAtomicExchange"; break;
case EImageAtomicCompSwap: out.debug << "imageAtomicCompSwap"; break; case EOpImageAtomicCompSwap: out.debug << "imageAtomicCompSwap"; break;
case ETextureQuerySize: out.debug << "textureSize"; break; case EOpTextureQuerySize: out.debug << "textureSize"; break;
case ETextureQueryLod: out.debug << "textureQueryLod"; break; case EOpTextureQueryLod: out.debug << "textureQueryLod"; break;
case ETextureQueryLevels: out.debug << "textureQueryLevels"; break; case EOpTextureQueryLevels: out.debug << "textureQueryLevels"; break;
case ETextureQuerySamples: out.debug << "textureSamples"; break; case EOpTextureQuerySamples: out.debug << "textureSamples"; break;
case ETexture: out.debug << "texture"; break; case EOpTexture: out.debug << "texture"; break;
case ETextureProj: out.debug << "textureProj"; break; case EOpTextureProj: out.debug << "textureProj"; break;
case ETextureLod: out.debug << "textureLod"; break; case EOpTextureLod: out.debug << "textureLod"; break;
case ETextureOffset: out.debug << "textureOffset"; break; case EOpTextureOffset: out.debug << "textureOffset"; break;
case ETextureFetch: out.debug << "textureFetch"; break; case EOpTextureFetch: out.debug << "textureFetch"; break;
case ETextureFetchOffset: out.debug << "textureFetchOffset"; break; case EOpTextureFetchOffset: out.debug << "textureFetchOffset"; break;
case ETextureProjOffset: out.debug << "textureProjOffset"; break; case EOpTextureProjOffset: out.debug << "textureProjOffset"; break;
case ETextureLodOffset: out.debug << "textureLodOffset"; break; case EOpTextureLodOffset: out.debug << "textureLodOffset"; break;
case ETextureProjLod: out.debug << "textureProjLod"; break; case EOpTextureProjLod: out.debug << "textureProjLod"; break;
case ETextureProjLodOffset: out.debug << "textureProjLodOffset"; break; case EOpTextureProjLodOffset: out.debug << "textureProjLodOffset"; break;
case ETextureGrad: out.debug << "textureGrad"; break; case EOpTextureGrad: out.debug << "textureGrad"; break;
case ETextureGradOffset: out.debug << "textureGradOffset"; break; case EOpTextureGradOffset: out.debug << "textureGradOffset"; break;
case ETextureProjGrad: out.debug << "textureProjGrad"; break; case EOpTextureProjGrad: out.debug << "textureProjGrad"; break;
case ETextureProjGradOffset: out.debug << "textureProjGradOffset"; break; case EOpTextureProjGradOffset: out.debug << "textureProjGradOffset"; break;
case ETextureGather: out.debug << "textureGather"; break; case EOpTextureGather: out.debug << "textureGather"; break;
case ETextureGatherOffset: out.debug << "textureGatherOffset"; break; case EOpTextureGatherOffset: out.debug << "textureGatherOffset"; break;
case ETextureGatherOffsets: out.debug << "textureGatherOffsets"; break; case EOpTextureGatherOffsets: out.debug << "textureGatherOffsets"; break;
case EOpAddCarry: out.debug << "addCarry"; break;
case EOpSubBorrow: out.debug << "subBorrow"; break;
case EOpUMulExtended: out.debug << "uMulExtended"; break;
case EOpIMulExtended: out.debug << "iMulExtended"; break;
case EOpBitfieldExtract: out.debug << "bitfieldExtract"; break;
case EOpBitfieldInsert: out.debug << "bitfieldInsert"; break;
case EOpFma: out.debug << "fma"; break;
case EFrexp: out.debug << "frexp"; break;
case ELdexp: out.debug << "ldexp"; break;
default: out.debug.message(EPrefixError, "Bad aggregation op"); default: out.debug.message(EPrefixError, "Bad aggregation op");
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment