Correct precision qualification on built-in functions.
This is a replacement commit for pull request #238. This is a design change, followed by implementation change that A) fixes the changes caused by the design change, and B) fixes some cases that were originally incorrect. The design change is to not give built-in functions default precision qualification. This is to allow the rule that the precision of some built-in functions adopt their precision qualification from the calling arguments. This is A above. A consequence of this design change is that all built-ins that are supposed to have an explicit precision qualifier must now be declared that way. So, a lot more built-in declarations now have precision qualifiers, just to keep things the same. This is B above.
This commit is contained in:
		
							parent
							
								
									f88a5c756e
								
							
						
					
					
						commit
						af459216a1
					
				@ -4,14 +4,16 @@ ERROR: 0:17: 'b' : function name is redeclaration of existing name
 | 
				
			|||||||
ERROR: 0:20: 'c' : redefinition 
 | 
					ERROR: 0:20: 'c' : redefinition 
 | 
				
			||||||
ERROR: 0:22: 'f' : redefinition 
 | 
					ERROR: 0:22: 'f' : redefinition 
 | 
				
			||||||
ERROR: 0:24: 'redefinition of built-in function' : not supported with this profile: es
 | 
					ERROR: 0:24: 'redefinition of built-in function' : not supported with this profile: es
 | 
				
			||||||
 | 
					ERROR: 0:24: 'highp' : overloaded functions must have the same parameter precision qualifiers for argument 1
 | 
				
			||||||
ERROR: 0:25: 'redefinition of built-in function' : not supported with this profile: es
 | 
					ERROR: 0:25: 'redefinition of built-in function' : not supported with this profile: es
 | 
				
			||||||
 | 
					ERROR: 0:25: 'highp' : overloaded functions must have the same parameter precision qualifiers for argument 1
 | 
				
			||||||
ERROR: 0:38: 'local function declaration' : not supported with this profile: es
 | 
					ERROR: 0:38: 'local function declaration' : not supported with this profile: es
 | 
				
			||||||
ERROR: 0:43: 'sin' : can't use function syntax on variable 
 | 
					ERROR: 0:43: 'sin' : can't use function syntax on variable 
 | 
				
			||||||
ERROR: 0:57: 'z' : undeclared identifier 
 | 
					ERROR: 0:57: 'z' : undeclared identifier 
 | 
				
			||||||
ERROR: 0:57: 'z' : redefinition 
 | 
					ERROR: 0:57: 'z' : redefinition 
 | 
				
			||||||
ERROR: 0:73: 'degrees' : can't use function syntax on variable 
 | 
					ERROR: 0:73: 'degrees' : can't use function syntax on variable 
 | 
				
			||||||
ERROR: 0:76: 'vertex-shader struct output' : not supported for this version or the enabled extensions 
 | 
					ERROR: 0:76: 'vertex-shader struct output' : not supported for this version or the enabled extensions 
 | 
				
			||||||
ERROR: 12 compilation errors.  No code generated.
 | 
					ERROR: 14 compilation errors.  No code generated.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Shader version: 100
 | 
					Shader version: 100
 | 
				
			||||||
 | 
				
			|||||||
@ -147,44 +147,44 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:69          'c2D' (smooth in lowp 2-component vector of float)
 | 
					0:69          'c2D' (smooth in lowp 2-component vector of float)
 | 
				
			||||||
0:72      move second child to first child (temp mediump 4-component vector of int)
 | 
					0:72      move second child to first child (temp mediump 4-component vector of int)
 | 
				
			||||||
0:72        'iv' (temp mediump 4-component vector of int)
 | 
					0:72        'iv' (temp mediump 4-component vector of int)
 | 
				
			||||||
0:72        texture (global mediump 4-component vector of int)
 | 
					0:72        texture (global lowp 4-component vector of int)
 | 
				
			||||||
0:72          'is2D' (uniform lowp isampler2D)
 | 
					0:72          'is2D' (uniform lowp isampler2D)
 | 
				
			||||||
0:72          'c2D' (smooth in lowp 2-component vector of float)
 | 
					0:72          'c2D' (smooth in lowp 2-component vector of float)
 | 
				
			||||||
0:73      move second child to first child (temp mediump 4-component vector of int)
 | 
					0:73      move second child to first child (temp mediump 4-component vector of int)
 | 
				
			||||||
0:73        'iv' (temp mediump 4-component vector of int)
 | 
					0:73        'iv' (temp mediump 4-component vector of int)
 | 
				
			||||||
0:73        textureProjOffset (global mediump 4-component vector of int)
 | 
					0:73        textureProjOffset (global lowp 4-component vector of int)
 | 
				
			||||||
0:73          'is2D' (uniform lowp isampler2D)
 | 
					0:73          'is2D' (uniform lowp isampler2D)
 | 
				
			||||||
0:73          'c4D' (smooth temp lowp 4-component vector of float)
 | 
					0:73          'c4D' (smooth temp lowp 4-component vector of float)
 | 
				
			||||||
0:73          'ic2D' (flat in mediump 2-component vector of int)
 | 
					0:73          'ic2D' (flat in mediump 2-component vector of int)
 | 
				
			||||||
0:74      move second child to first child (temp mediump 4-component vector of int)
 | 
					0:74      move second child to first child (temp mediump 4-component vector of int)
 | 
				
			||||||
0:74        'iv' (temp mediump 4-component vector of int)
 | 
					0:74        'iv' (temp mediump 4-component vector of int)
 | 
				
			||||||
0:74        textureProjLod (global mediump 4-component vector of int)
 | 
					0:74        textureProjLod (global lowp 4-component vector of int)
 | 
				
			||||||
0:74          'is2D' (uniform lowp isampler2D)
 | 
					0:74          'is2D' (uniform lowp isampler2D)
 | 
				
			||||||
0:74          'c3D' (smooth in lowp 3-component vector of float)
 | 
					0:74          'c3D' (smooth in lowp 3-component vector of float)
 | 
				
			||||||
0:74          'c1D' (smooth in lowp float)
 | 
					0:74          'c1D' (smooth in lowp float)
 | 
				
			||||||
0:75      move second child to first child (temp mediump 4-component vector of int)
 | 
					0:75      move second child to first child (temp mediump 4-component vector of int)
 | 
				
			||||||
0:75        'iv' (temp mediump 4-component vector of int)
 | 
					0:75        'iv' (temp mediump 4-component vector of int)
 | 
				
			||||||
0:75        textureProjGrad (global mediump 4-component vector of int)
 | 
					0:75        textureProjGrad (global lowp 4-component vector of int)
 | 
				
			||||||
0:75          'is2D' (uniform lowp isampler2D)
 | 
					0:75          'is2D' (uniform lowp isampler2D)
 | 
				
			||||||
0:75          'c3D' (smooth in lowp 3-component vector of float)
 | 
					0:75          'c3D' (smooth in lowp 3-component vector of float)
 | 
				
			||||||
0:75          'c2D' (smooth in lowp 2-component vector of float)
 | 
					0:75          'c2D' (smooth in lowp 2-component vector of float)
 | 
				
			||||||
0:75          'c2D' (smooth in lowp 2-component vector of float)
 | 
					0:75          'c2D' (smooth in lowp 2-component vector of float)
 | 
				
			||||||
0:76      move second child to first child (temp mediump 4-component vector of int)
 | 
					0:76      move second child to first child (temp mediump 4-component vector of int)
 | 
				
			||||||
0:76        'iv' (temp mediump 4-component vector of int)
 | 
					0:76        'iv' (temp mediump 4-component vector of int)
 | 
				
			||||||
0:76        texture (global mediump 4-component vector of int)
 | 
					0:76        texture (global lowp 4-component vector of int)
 | 
				
			||||||
0:76          'is3D' (uniform lowp isampler3D)
 | 
					0:76          'is3D' (uniform lowp isampler3D)
 | 
				
			||||||
0:76          'c3D' (smooth in lowp 3-component vector of float)
 | 
					0:76          'c3D' (smooth in lowp 3-component vector of float)
 | 
				
			||||||
0:76          Constant:
 | 
					0:76          Constant:
 | 
				
			||||||
0:76            4.200000
 | 
					0:76            4.200000
 | 
				
			||||||
0:77      move second child to first child (temp mediump 4-component vector of int)
 | 
					0:77      move second child to first child (temp mediump 4-component vector of int)
 | 
				
			||||||
0:77        'iv' (temp mediump 4-component vector of int)
 | 
					0:77        'iv' (temp mediump 4-component vector of int)
 | 
				
			||||||
0:77        textureLod (global mediump 4-component vector of int)
 | 
					0:77        textureLod (global lowp 4-component vector of int)
 | 
				
			||||||
0:77          'isCube' (uniform lowp isamplerCube)
 | 
					0:77          'isCube' (uniform lowp isamplerCube)
 | 
				
			||||||
0:77          'c3D' (smooth in lowp 3-component vector of float)
 | 
					0:77          'c3D' (smooth in lowp 3-component vector of float)
 | 
				
			||||||
0:77          'c1D' (smooth in lowp float)
 | 
					0:77          'c1D' (smooth in lowp float)
 | 
				
			||||||
0:78      move second child to first child (temp mediump 4-component vector of int)
 | 
					0:78      move second child to first child (temp mediump 4-component vector of int)
 | 
				
			||||||
0:78        'iv' (temp mediump 4-component vector of int)
 | 
					0:78        'iv' (temp mediump 4-component vector of int)
 | 
				
			||||||
0:78        textureFetch (global mediump 4-component vector of int)
 | 
					0:78        textureFetch (global lowp 4-component vector of int)
 | 
				
			||||||
0:78          'is2DArray' (uniform lowp isampler2DArray)
 | 
					0:78          'is2DArray' (uniform lowp isampler2DArray)
 | 
				
			||||||
0:78          'ic3D' (flat in mediump 3-component vector of int)
 | 
					0:78          'ic3D' (flat in mediump 3-component vector of int)
 | 
				
			||||||
0:78          'ic1D' (flat in mediump int)
 | 
					0:78          'ic1D' (flat in mediump int)
 | 
				
			||||||
@ -503,44 +503,44 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:69          'c2D' (smooth in lowp 2-component vector of float)
 | 
					0:69          'c2D' (smooth in lowp 2-component vector of float)
 | 
				
			||||||
0:72      move second child to first child (temp mediump 4-component vector of int)
 | 
					0:72      move second child to first child (temp mediump 4-component vector of int)
 | 
				
			||||||
0:72        'iv' (temp mediump 4-component vector of int)
 | 
					0:72        'iv' (temp mediump 4-component vector of int)
 | 
				
			||||||
0:72        texture (global mediump 4-component vector of int)
 | 
					0:72        texture (global lowp 4-component vector of int)
 | 
				
			||||||
0:72          'is2D' (uniform lowp isampler2D)
 | 
					0:72          'is2D' (uniform lowp isampler2D)
 | 
				
			||||||
0:72          'c2D' (smooth in lowp 2-component vector of float)
 | 
					0:72          'c2D' (smooth in lowp 2-component vector of float)
 | 
				
			||||||
0:73      move second child to first child (temp mediump 4-component vector of int)
 | 
					0:73      move second child to first child (temp mediump 4-component vector of int)
 | 
				
			||||||
0:73        'iv' (temp mediump 4-component vector of int)
 | 
					0:73        'iv' (temp mediump 4-component vector of int)
 | 
				
			||||||
0:73        textureProjOffset (global mediump 4-component vector of int)
 | 
					0:73        textureProjOffset (global lowp 4-component vector of int)
 | 
				
			||||||
0:73          'is2D' (uniform lowp isampler2D)
 | 
					0:73          'is2D' (uniform lowp isampler2D)
 | 
				
			||||||
0:73          'c4D' (smooth temp lowp 4-component vector of float)
 | 
					0:73          'c4D' (smooth temp lowp 4-component vector of float)
 | 
				
			||||||
0:73          'ic2D' (flat in mediump 2-component vector of int)
 | 
					0:73          'ic2D' (flat in mediump 2-component vector of int)
 | 
				
			||||||
0:74      move second child to first child (temp mediump 4-component vector of int)
 | 
					0:74      move second child to first child (temp mediump 4-component vector of int)
 | 
				
			||||||
0:74        'iv' (temp mediump 4-component vector of int)
 | 
					0:74        'iv' (temp mediump 4-component vector of int)
 | 
				
			||||||
0:74        textureProjLod (global mediump 4-component vector of int)
 | 
					0:74        textureProjLod (global lowp 4-component vector of int)
 | 
				
			||||||
0:74          'is2D' (uniform lowp isampler2D)
 | 
					0:74          'is2D' (uniform lowp isampler2D)
 | 
				
			||||||
0:74          'c3D' (smooth in lowp 3-component vector of float)
 | 
					0:74          'c3D' (smooth in lowp 3-component vector of float)
 | 
				
			||||||
0:74          'c1D' (smooth in lowp float)
 | 
					0:74          'c1D' (smooth in lowp float)
 | 
				
			||||||
0:75      move second child to first child (temp mediump 4-component vector of int)
 | 
					0:75      move second child to first child (temp mediump 4-component vector of int)
 | 
				
			||||||
0:75        'iv' (temp mediump 4-component vector of int)
 | 
					0:75        'iv' (temp mediump 4-component vector of int)
 | 
				
			||||||
0:75        textureProjGrad (global mediump 4-component vector of int)
 | 
					0:75        textureProjGrad (global lowp 4-component vector of int)
 | 
				
			||||||
0:75          'is2D' (uniform lowp isampler2D)
 | 
					0:75          'is2D' (uniform lowp isampler2D)
 | 
				
			||||||
0:75          'c3D' (smooth in lowp 3-component vector of float)
 | 
					0:75          'c3D' (smooth in lowp 3-component vector of float)
 | 
				
			||||||
0:75          'c2D' (smooth in lowp 2-component vector of float)
 | 
					0:75          'c2D' (smooth in lowp 2-component vector of float)
 | 
				
			||||||
0:75          'c2D' (smooth in lowp 2-component vector of float)
 | 
					0:75          'c2D' (smooth in lowp 2-component vector of float)
 | 
				
			||||||
0:76      move second child to first child (temp mediump 4-component vector of int)
 | 
					0:76      move second child to first child (temp mediump 4-component vector of int)
 | 
				
			||||||
0:76        'iv' (temp mediump 4-component vector of int)
 | 
					0:76        'iv' (temp mediump 4-component vector of int)
 | 
				
			||||||
0:76        texture (global mediump 4-component vector of int)
 | 
					0:76        texture (global lowp 4-component vector of int)
 | 
				
			||||||
0:76          'is3D' (uniform lowp isampler3D)
 | 
					0:76          'is3D' (uniform lowp isampler3D)
 | 
				
			||||||
0:76          'c3D' (smooth in lowp 3-component vector of float)
 | 
					0:76          'c3D' (smooth in lowp 3-component vector of float)
 | 
				
			||||||
0:76          Constant:
 | 
					0:76          Constant:
 | 
				
			||||||
0:76            4.200000
 | 
					0:76            4.200000
 | 
				
			||||||
0:77      move second child to first child (temp mediump 4-component vector of int)
 | 
					0:77      move second child to first child (temp mediump 4-component vector of int)
 | 
				
			||||||
0:77        'iv' (temp mediump 4-component vector of int)
 | 
					0:77        'iv' (temp mediump 4-component vector of int)
 | 
				
			||||||
0:77        textureLod (global mediump 4-component vector of int)
 | 
					0:77        textureLod (global lowp 4-component vector of int)
 | 
				
			||||||
0:77          'isCube' (uniform lowp isamplerCube)
 | 
					0:77          'isCube' (uniform lowp isamplerCube)
 | 
				
			||||||
0:77          'c3D' (smooth in lowp 3-component vector of float)
 | 
					0:77          'c3D' (smooth in lowp 3-component vector of float)
 | 
				
			||||||
0:77          'c1D' (smooth in lowp float)
 | 
					0:77          'c1D' (smooth in lowp float)
 | 
				
			||||||
0:78      move second child to first child (temp mediump 4-component vector of int)
 | 
					0:78      move second child to first child (temp mediump 4-component vector of int)
 | 
				
			||||||
0:78        'iv' (temp mediump 4-component vector of int)
 | 
					0:78        'iv' (temp mediump 4-component vector of int)
 | 
				
			||||||
0:78        textureFetch (global mediump 4-component vector of int)
 | 
					0:78        textureFetch (global lowp 4-component vector of int)
 | 
				
			||||||
0:78          'is2DArray' (uniform lowp isampler2DArray)
 | 
					0:78          'is2DArray' (uniform lowp isampler2DArray)
 | 
				
			||||||
0:78          'ic3D' (flat in mediump 3-component vector of int)
 | 
					0:78          'ic3D' (flat in mediump 3-component vector of int)
 | 
				
			||||||
0:78          'ic1D' (flat in mediump int)
 | 
					0:78          'ic1D' (flat in mediump int)
 | 
				
			||||||
 | 
				
			|||||||
@ -193,7 +193,7 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:124      Sequence
 | 
					0:124      Sequence
 | 
				
			||||||
0:124        move second child to first child (temp highp 4-component vector of float)
 | 
					0:124        move second child to first child (temp highp 4-component vector of float)
 | 
				
			||||||
0:124          'x4' (temp highp 4-component vector of float)
 | 
					0:124          'x4' (temp highp 4-component vector of float)
 | 
				
			||||||
0:124          texture (global highp 4-component vector of float)
 | 
					0:124          texture (global lowp 4-component vector of float)
 | 
				
			||||||
0:124            's2D' (uniform lowp sampler2D)
 | 
					0:124            's2D' (uniform lowp sampler2D)
 | 
				
			||||||
0:124            'c2D' (in highp 2-component vector of float)
 | 
					0:124            'c2D' (in highp 2-component vector of float)
 | 
				
			||||||
0:125      Constant:
 | 
					0:125      Constant:
 | 
				
			||||||
@ -201,7 +201,7 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:126      Sequence
 | 
					0:126      Sequence
 | 
				
			||||||
0:126        move second child to first child (temp highp 4-component vector of float)
 | 
					0:126        move second child to first child (temp highp 4-component vector of float)
 | 
				
			||||||
0:126          'x5' (temp highp 4-component vector of float)
 | 
					0:126          'x5' (temp highp 4-component vector of float)
 | 
				
			||||||
0:126          textureProjOffset (global highp 4-component vector of float)
 | 
					0:126          textureProjOffset (global lowp 4-component vector of float)
 | 
				
			||||||
0:126            's3D' (uniform lowp sampler3D)
 | 
					0:126            's3D' (uniform lowp sampler3D)
 | 
				
			||||||
0:126            Constant:
 | 
					0:126            Constant:
 | 
				
			||||||
0:126              0.200000
 | 
					0:126              0.200000
 | 
				
			||||||
@ -217,7 +217,7 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:128      Sequence
 | 
					0:128      Sequence
 | 
				
			||||||
0:128        move second child to first child (temp highp float)
 | 
					0:128        move second child to first child (temp highp float)
 | 
				
			||||||
0:128          'x6' (temp highp float)
 | 
					0:128          'x6' (temp highp float)
 | 
				
			||||||
0:128          textureProjGradOffset (global highp float)
 | 
					0:128          textureProjGradOffset (global lowp float)
 | 
				
			||||||
0:128            's2DS' (uniform lowp sampler2DShadow)
 | 
					0:128            's2DS' (uniform lowp sampler2DShadow)
 | 
				
			||||||
0:128            'invIn' (invariant in highp 4-component vector of float)
 | 
					0:128            'invIn' (invariant in highp 4-component vector of float)
 | 
				
			||||||
0:128            Constant:
 | 
					0:128            Constant:
 | 
				
			||||||
@ -477,7 +477,7 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:124      Sequence
 | 
					0:124      Sequence
 | 
				
			||||||
0:124        move second child to first child (temp highp 4-component vector of float)
 | 
					0:124        move second child to first child (temp highp 4-component vector of float)
 | 
				
			||||||
0:124          'x4' (temp highp 4-component vector of float)
 | 
					0:124          'x4' (temp highp 4-component vector of float)
 | 
				
			||||||
0:124          texture (global highp 4-component vector of float)
 | 
					0:124          texture (global lowp 4-component vector of float)
 | 
				
			||||||
0:124            's2D' (uniform lowp sampler2D)
 | 
					0:124            's2D' (uniform lowp sampler2D)
 | 
				
			||||||
0:124            'c2D' (in highp 2-component vector of float)
 | 
					0:124            'c2D' (in highp 2-component vector of float)
 | 
				
			||||||
0:125      Constant:
 | 
					0:125      Constant:
 | 
				
			||||||
@ -485,7 +485,7 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:126      Sequence
 | 
					0:126      Sequence
 | 
				
			||||||
0:126        move second child to first child (temp highp 4-component vector of float)
 | 
					0:126        move second child to first child (temp highp 4-component vector of float)
 | 
				
			||||||
0:126          'x5' (temp highp 4-component vector of float)
 | 
					0:126          'x5' (temp highp 4-component vector of float)
 | 
				
			||||||
0:126          textureProjOffset (global highp 4-component vector of float)
 | 
					0:126          textureProjOffset (global lowp 4-component vector of float)
 | 
				
			||||||
0:126            's3D' (uniform lowp sampler3D)
 | 
					0:126            's3D' (uniform lowp sampler3D)
 | 
				
			||||||
0:126            Constant:
 | 
					0:126            Constant:
 | 
				
			||||||
0:126              0.200000
 | 
					0:126              0.200000
 | 
				
			||||||
@ -501,7 +501,7 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:128      Sequence
 | 
					0:128      Sequence
 | 
				
			||||||
0:128        move second child to first child (temp highp float)
 | 
					0:128        move second child to first child (temp highp float)
 | 
				
			||||||
0:128          'x6' (temp highp float)
 | 
					0:128          'x6' (temp highp float)
 | 
				
			||||||
0:128          textureProjGradOffset (global highp float)
 | 
					0:128          textureProjGradOffset (global lowp float)
 | 
				
			||||||
0:128            's2DS' (uniform lowp sampler2DShadow)
 | 
					0:128            's2DS' (uniform lowp sampler2DShadow)
 | 
				
			||||||
0:128            'invIn' (invariant in highp 4-component vector of float)
 | 
					0:128            'invIn' (invariant in highp 4-component vector of float)
 | 
				
			||||||
0:128            Constant:
 | 
					0:128            Constant:
 | 
				
			||||||
 | 
				
			|||||||
@ -24,18 +24,18 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:42  Function Definition: main( (global void)
 | 
					0:42  Function Definition: main( (global void)
 | 
				
			||||||
0:42    Function Parameters: 
 | 
					0:42    Function Parameters: 
 | 
				
			||||||
0:44    Sequence
 | 
					0:44    Sequence
 | 
				
			||||||
0:44      texture (global mediump 4-component vector of int)
 | 
					0:44      texture (global lowp 4-component vector of int)
 | 
				
			||||||
0:44        sampler: direct index for structure (global lowp isampler3D)
 | 
					0:44        sampler: direct index for structure (global lowp isampler3D)
 | 
				
			||||||
0:44          's' (uniform structure{global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{global mediump int a} t})
 | 
					0:44          's' (uniform structure{global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{global mediump int a} t})
 | 
				
			||||||
0:44          Constant:
 | 
					0:44          Constant:
 | 
				
			||||||
0:44            2 (const int)
 | 
					0:44            2 (const int)
 | 
				
			||||||
0:44        Construct vec3 (temp mediump 3-component vector of float)
 | 
					0:44        Construct vec3 (temp lowp 3-component vector of float)
 | 
				
			||||||
0:44          Convert int to float (temp mediump float)
 | 
					0:44          Convert int to float (temp lowp float)
 | 
				
			||||||
0:44            ni: direct index for structure (layout(column_major shared ) uniform mediump int)
 | 
					0:44            ni: direct index for structure (layout(column_major shared ) uniform mediump int)
 | 
				
			||||||
0:44              'inst' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})
 | 
					0:44              'inst' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})
 | 
				
			||||||
0:44              Constant:
 | 
					0:44              Constant:
 | 
				
			||||||
0:44                1 (const int)
 | 
					0:44                1 (const int)
 | 
				
			||||||
0:44          Convert uint to float (temp mediump float)
 | 
					0:44          Convert uint to float (temp lowp float)
 | 
				
			||||||
0:44            direct index (temp mediump uint)
 | 
					0:44            direct index (temp mediump uint)
 | 
				
			||||||
0:44              bv: direct index for structure (layout(column_major shared ) uniform mediump 4-component vector of uint)
 | 
					0:44              bv: direct index for structure (layout(column_major shared ) uniform mediump 4-component vector of uint)
 | 
				
			||||||
0:44                'anon@0' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump 4-component vector of uint bv, layout(column_major shared ) uniform mediump 2X2 matrix of float bm2, layout(column_major shared ) uniform lowp isampler2D sampler, layout(column_major shared ) uniform structure{global mediump int a} t, layout(column_major shared ) uniform structure{global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{global mediump int a} t} fbs})
 | 
					0:44                'anon@0' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump 4-component vector of uint bv, layout(column_major shared ) uniform mediump 2X2 matrix of float bm2, layout(column_major shared ) uniform lowp isampler2D sampler, layout(column_major shared ) uniform structure{global mediump int a} t, layout(column_major shared ) uniform structure{global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{global mediump int a} t} fbs})
 | 
				
			||||||
@ -43,7 +43,7 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:44                  0 (const uint)
 | 
					0:44                  0 (const uint)
 | 
				
			||||||
0:44              Constant:
 | 
					0:44              Constant:
 | 
				
			||||||
0:44                1 (const int)
 | 
					0:44                1 (const int)
 | 
				
			||||||
0:44          Convert uint to float (temp mediump float)
 | 
					0:44          Convert uint to float (temp lowp float)
 | 
				
			||||||
0:44            direct index (temp mediump uint)
 | 
					0:44            direct index (temp mediump uint)
 | 
				
			||||||
0:44              nbv: direct index for structure (layout(column_major shared ) uniform mediump 4-component vector of uint)
 | 
					0:44              nbv: direct index for structure (layout(column_major shared ) uniform mediump 4-component vector of uint)
 | 
				
			||||||
0:44                direct index (layout(column_major shared ) temp block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})
 | 
					0:44                direct index (layout(column_major shared ) temp block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})
 | 
				
			||||||
@ -92,18 +92,18 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:42  Function Definition: main( (global void)
 | 
					0:42  Function Definition: main( (global void)
 | 
				
			||||||
0:42    Function Parameters: 
 | 
					0:42    Function Parameters: 
 | 
				
			||||||
0:44    Sequence
 | 
					0:44    Sequence
 | 
				
			||||||
0:44      texture (global mediump 4-component vector of int)
 | 
					0:44      texture (global lowp 4-component vector of int)
 | 
				
			||||||
0:44        sampler: direct index for structure (global lowp isampler3D)
 | 
					0:44        sampler: direct index for structure (global lowp isampler3D)
 | 
				
			||||||
0:44          's' (uniform structure{global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{global mediump int a} t})
 | 
					0:44          's' (uniform structure{global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{global mediump int a} t})
 | 
				
			||||||
0:44          Constant:
 | 
					0:44          Constant:
 | 
				
			||||||
0:44            2 (const int)
 | 
					0:44            2 (const int)
 | 
				
			||||||
0:44        Construct vec3 (temp mediump 3-component vector of float)
 | 
					0:44        Construct vec3 (temp lowp 3-component vector of float)
 | 
				
			||||||
0:44          Convert int to float (temp mediump float)
 | 
					0:44          Convert int to float (temp lowp float)
 | 
				
			||||||
0:44            ni: direct index for structure (layout(column_major shared ) uniform mediump int)
 | 
					0:44            ni: direct index for structure (layout(column_major shared ) uniform mediump int)
 | 
				
			||||||
0:44              'inst' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})
 | 
					0:44              'inst' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})
 | 
				
			||||||
0:44              Constant:
 | 
					0:44              Constant:
 | 
				
			||||||
0:44                1 (const int)
 | 
					0:44                1 (const int)
 | 
				
			||||||
0:44          Convert uint to float (temp mediump float)
 | 
					0:44          Convert uint to float (temp lowp float)
 | 
				
			||||||
0:44            direct index (temp mediump uint)
 | 
					0:44            direct index (temp mediump uint)
 | 
				
			||||||
0:44              bv: direct index for structure (layout(column_major shared ) uniform mediump 4-component vector of uint)
 | 
					0:44              bv: direct index for structure (layout(column_major shared ) uniform mediump 4-component vector of uint)
 | 
				
			||||||
0:44                'anon@0' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump 4-component vector of uint bv, layout(column_major shared ) uniform mediump 2X2 matrix of float bm2, layout(column_major shared ) uniform lowp isampler2D sampler, layout(column_major shared ) uniform structure{global mediump int a} t, layout(column_major shared ) uniform structure{global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{global mediump int a} t} fbs})
 | 
					0:44                'anon@0' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump 4-component vector of uint bv, layout(column_major shared ) uniform mediump 2X2 matrix of float bm2, layout(column_major shared ) uniform lowp isampler2D sampler, layout(column_major shared ) uniform structure{global mediump int a} t, layout(column_major shared ) uniform structure{global mediump 4-component vector of float u, global mediump 4-component vector of uint v, global lowp isampler3D sampler, global mediump 3-component vector of float w, global structure{global mediump int a} t} fbs})
 | 
				
			||||||
@ -111,7 +111,7 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:44                  0 (const uint)
 | 
					0:44                  0 (const uint)
 | 
				
			||||||
0:44              Constant:
 | 
					0:44              Constant:
 | 
				
			||||||
0:44                1 (const int)
 | 
					0:44                1 (const int)
 | 
				
			||||||
0:44          Convert uint to float (temp mediump float)
 | 
					0:44          Convert uint to float (temp lowp float)
 | 
				
			||||||
0:44            direct index (temp mediump uint)
 | 
					0:44            direct index (temp mediump uint)
 | 
				
			||||||
0:44              nbv: direct index for structure (layout(column_major shared ) uniform mediump 4-component vector of uint)
 | 
					0:44              nbv: direct index for structure (layout(column_major shared ) uniform mediump 4-component vector of uint)
 | 
				
			||||||
0:44                direct index (layout(column_major shared ) temp block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})
 | 
					0:44                direct index (layout(column_major shared ) temp block{layout(column_major shared ) uniform mediump 4-component vector of uint nbv, layout(column_major shared ) uniform mediump int ni})
 | 
				
			||||||
 | 
				
			|||||||
@ -5,8 +5,10 @@ ERROR: 0:20: 'c' : redefinition
 | 
				
			|||||||
ERROR: 0:22: 'f' : redefinition 
 | 
					ERROR: 0:22: 'f' : redefinition 
 | 
				
			||||||
ERROR: 0:23: 'tan' : redefinition 
 | 
					ERROR: 0:23: 'tan' : redefinition 
 | 
				
			||||||
ERROR: 0:24: 'redefinition of built-in function' : not supported with this profile: es
 | 
					ERROR: 0:24: 'redefinition of built-in function' : not supported with this profile: es
 | 
				
			||||||
 | 
					ERROR: 0:24: 'highp' : overloaded functions must have the same parameter precision qualifiers for argument 1
 | 
				
			||||||
ERROR: 0:24: 'sin' : function name is redeclaration of existing name 
 | 
					ERROR: 0:24: 'sin' : function name is redeclaration of existing name 
 | 
				
			||||||
ERROR: 0:25: 'redefinition of built-in function' : not supported with this profile: es
 | 
					ERROR: 0:25: 'redefinition of built-in function' : not supported with this profile: es
 | 
				
			||||||
 | 
					ERROR: 0:25: 'highp' : overloaded functions must have the same parameter precision qualifiers for argument 1
 | 
				
			||||||
ERROR: 0:25: 'cos' : function name is redeclaration of existing name 
 | 
					ERROR: 0:25: 'cos' : function name is redeclaration of existing name 
 | 
				
			||||||
ERROR: 0:25: 'cos' : function already has a body 
 | 
					ERROR: 0:25: 'cos' : function already has a body 
 | 
				
			||||||
ERROR: 0:27: 'return' : void function cannot return a value 
 | 
					ERROR: 0:27: 'return' : void function cannot return a value 
 | 
				
			||||||
@ -18,7 +20,7 @@ ERROR: 0:43: 'sin' : can't use function syntax on variable
 | 
				
			|||||||
ERROR: 0:57: 'z' : undeclared identifier 
 | 
					ERROR: 0:57: 'z' : undeclared identifier 
 | 
				
			||||||
ERROR: 0:57: 'z' : redefinition 
 | 
					ERROR: 0:57: 'z' : redefinition 
 | 
				
			||||||
ERROR: 0:73: 'degrees' : can't use function syntax on variable 
 | 
					ERROR: 0:73: 'degrees' : can't use function syntax on variable 
 | 
				
			||||||
ERROR: 19 compilation errors.  No code generated.
 | 
					ERROR: 21 compilation errors.  No code generated.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Shader version: 300
 | 
					Shader version: 300
 | 
				
			||||||
 | 
				
			|||||||
@ -169,9 +169,9 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:28                0 (const int)
 | 
					0:28                0 (const int)
 | 
				
			||||||
0:28            'c2D' (smooth in mediump 2-component vector of float)
 | 
					0:28            'c2D' (smooth in mediump 2-component vector of float)
 | 
				
			||||||
0:29      Sequence
 | 
					0:29      Sequence
 | 
				
			||||||
0:29        move second child to first child (temp mediump 4-component vector of int)
 | 
					0:29        move second child to first child (temp highp 4-component vector of int)
 | 
				
			||||||
0:29          'iv4' (temp mediump 4-component vector of int)
 | 
					0:29          'iv4' (temp mediump 4-component vector of int)
 | 
				
			||||||
0:29          textureGatherOffset (global mediump 4-component vector of int)
 | 
					0:29          textureGatherOffset (global highp 4-component vector of int)
 | 
				
			||||||
0:29            'isamp2DA' (uniform highp isampler2DArray)
 | 
					0:29            'isamp2DA' (uniform highp isampler2DArray)
 | 
				
			||||||
0:29            Constant:
 | 
					0:29            Constant:
 | 
				
			||||||
0:29              0.100000
 | 
					0:29              0.100000
 | 
				
			||||||
@ -182,9 +182,9 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:29              1 (const int)
 | 
					0:29              1 (const int)
 | 
				
			||||||
0:29            Constant:
 | 
					0:29            Constant:
 | 
				
			||||||
0:29              3 (const int)
 | 
					0:29              3 (const int)
 | 
				
			||||||
0:30      move second child to first child (temp mediump 4-component vector of int)
 | 
					0:30      move second child to first child (temp highp 4-component vector of int)
 | 
				
			||||||
0:30        'iv4' (temp mediump 4-component vector of int)
 | 
					0:30        'iv4' (temp mediump 4-component vector of int)
 | 
				
			||||||
0:30        textureGatherOffset (global mediump 4-component vector of int)
 | 
					0:30        textureGatherOffset (global highp 4-component vector of int)
 | 
				
			||||||
0:30          'isamp2DA' (uniform highp isampler2DArray)
 | 
					0:30          'isamp2DA' (uniform highp isampler2DArray)
 | 
				
			||||||
0:30          Constant:
 | 
					0:30          Constant:
 | 
				
			||||||
0:30            0.100000
 | 
					0:30            0.100000
 | 
				
			||||||
@ -194,9 +194,9 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:30            1 (const int)
 | 
					0:30            1 (const int)
 | 
				
			||||||
0:30            1 (const int)
 | 
					0:30            1 (const int)
 | 
				
			||||||
0:30          'i' (uniform mediump int)
 | 
					0:30          'i' (uniform mediump int)
 | 
				
			||||||
0:31      move second child to first child (temp mediump 4-component vector of int)
 | 
					0:31      move second child to first child (temp highp 4-component vector of int)
 | 
				
			||||||
0:31        'iv4' (temp mediump 4-component vector of int)
 | 
					0:31        'iv4' (temp mediump 4-component vector of int)
 | 
				
			||||||
0:31        textureGatherOffset (global mediump 4-component vector of int)
 | 
					0:31        textureGatherOffset (global highp 4-component vector of int)
 | 
				
			||||||
0:31          'isamp2DA' (uniform highp isampler2DArray)
 | 
					0:31          'isamp2DA' (uniform highp isampler2DArray)
 | 
				
			||||||
0:31          Constant:
 | 
					0:31          Constant:
 | 
				
			||||||
0:31            0.100000
 | 
					0:31            0.100000
 | 
				
			||||||
@ -207,9 +207,9 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:31            1 (const int)
 | 
					0:31            1 (const int)
 | 
				
			||||||
0:31          Constant:
 | 
					0:31          Constant:
 | 
				
			||||||
0:31            4 (const int)
 | 
					0:31            4 (const int)
 | 
				
			||||||
0:32      move second child to first child (temp mediump 4-component vector of int)
 | 
					0:32      move second child to first child (temp highp 4-component vector of int)
 | 
				
			||||||
0:32        'iv4' (temp mediump 4-component vector of int)
 | 
					0:32        'iv4' (temp mediump 4-component vector of int)
 | 
				
			||||||
0:32        textureGatherOffset (global mediump 4-component vector of int)
 | 
					0:32        textureGatherOffset (global highp 4-component vector of int)
 | 
				
			||||||
0:32          'isamp2DA' (uniform highp isampler2DArray)
 | 
					0:32          'isamp2DA' (uniform highp isampler2DArray)
 | 
				
			||||||
0:32          Constant:
 | 
					0:32          Constant:
 | 
				
			||||||
0:32            0.100000
 | 
					0:32            0.100000
 | 
				
			||||||
@ -220,9 +220,9 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:32            1 (const int)
 | 
					0:32            1 (const int)
 | 
				
			||||||
0:32          Constant:
 | 
					0:32          Constant:
 | 
				
			||||||
0:32            3 (const int)
 | 
					0:32            3 (const int)
 | 
				
			||||||
0:33      move second child to first child (temp mediump 4-component vector of int)
 | 
					0:33      move second child to first child (temp highp 4-component vector of int)
 | 
				
			||||||
0:33        'iv4' (temp mediump 4-component vector of int)
 | 
					0:33        'iv4' (temp mediump 4-component vector of int)
 | 
				
			||||||
0:33        textureGatherOffset (global mediump 4-component vector of int)
 | 
					0:33        textureGatherOffset (global highp 4-component vector of int)
 | 
				
			||||||
0:33          'isamp2DA' (uniform highp isampler2DArray)
 | 
					0:33          'isamp2DA' (uniform highp isampler2DArray)
 | 
				
			||||||
0:33          Constant:
 | 
					0:33          Constant:
 | 
				
			||||||
0:33            0.100000
 | 
					0:33            0.100000
 | 
				
			||||||
@ -231,20 +231,20 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:33          Constant:
 | 
					0:33          Constant:
 | 
				
			||||||
0:33            0 (const int)
 | 
					0:33            0 (const int)
 | 
				
			||||||
0:33            0 (const int)
 | 
					0:33            0 (const int)
 | 
				
			||||||
0:34      move second child to first child (temp mediump 4-component vector of int)
 | 
					0:34      move second child to first child (temp highp 4-component vector of int)
 | 
				
			||||||
0:34        'iv4' (temp mediump 4-component vector of int)
 | 
					0:34        'iv4' (temp mediump 4-component vector of int)
 | 
				
			||||||
0:34        textureGatherOffset (global mediump 4-component vector of int)
 | 
					0:34        textureGatherOffset (global highp 4-component vector of int)
 | 
				
			||||||
0:34          'isamp2DA' (uniform highp isampler2DArray)
 | 
					0:34          'isamp2DA' (uniform highp isampler2DArray)
 | 
				
			||||||
0:34          Constant:
 | 
					0:34          Constant:
 | 
				
			||||||
0:34            0.100000
 | 
					0:34            0.100000
 | 
				
			||||||
0:34            0.100000
 | 
					0:34            0.100000
 | 
				
			||||||
0:34            0.100000
 | 
					0:34            0.100000
 | 
				
			||||||
0:34          Construct ivec2 (temp mediump 2-component vector of int)
 | 
					0:34          Construct ivec2 (temp highp 2-component vector of int)
 | 
				
			||||||
0:34            'i' (uniform mediump int)
 | 
					0:34            'i' (uniform mediump int)
 | 
				
			||||||
0:38  Function Definition: foo23( (global void)
 | 
					0:38  Function Definition: foo23( (global void)
 | 
				
			||||||
0:38    Function Parameters: 
 | 
					0:38    Function Parameters: 
 | 
				
			||||||
0:?     Sequence
 | 
					0:?     Sequence
 | 
				
			||||||
0:42      textureProjGradOffset (global mediump 4-component vector of uint)
 | 
					0:42      textureProjGradOffset (global highp 4-component vector of uint)
 | 
				
			||||||
0:42        'usamp2d' (uniform highp usampler2D)
 | 
					0:42        'usamp2d' (uniform highp usampler2D)
 | 
				
			||||||
0:42        'outp' (out mediump 4-component vector of float)
 | 
					0:42        'outp' (out mediump 4-component vector of float)
 | 
				
			||||||
0:42        Constant:
 | 
					0:42        Constant:
 | 
				
			||||||
@ -253,9 +253,9 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:42        Constant:
 | 
					0:42        Constant:
 | 
				
			||||||
0:42          0.000000
 | 
					0:42          0.000000
 | 
				
			||||||
0:42          0.000000
 | 
					0:42          0.000000
 | 
				
			||||||
0:42        Convert float to int (temp mediump 2-component vector of int)
 | 
					0:42        Convert float to int (temp highp 2-component vector of int)
 | 
				
			||||||
0:42          'c2D' (smooth in mediump 2-component vector of float)
 | 
					0:42          'c2D' (smooth in mediump 2-component vector of float)
 | 
				
			||||||
0:43      textureProjGradOffset (global mediump 4-component vector of uint)
 | 
					0:43      textureProjGradOffset (global highp 4-component vector of uint)
 | 
				
			||||||
0:43        'usamp2d' (uniform highp usampler2D)
 | 
					0:43        'usamp2d' (uniform highp usampler2D)
 | 
				
			||||||
0:43        'outp' (out mediump 4-component vector of float)
 | 
					0:43        'outp' (out mediump 4-component vector of float)
 | 
				
			||||||
0:43        Constant:
 | 
					0:43        Constant:
 | 
				
			||||||
@ -267,7 +267,7 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:43        Constant:
 | 
					0:43        Constant:
 | 
				
			||||||
0:43          3 (const int)
 | 
					0:43          3 (const int)
 | 
				
			||||||
0:43          4 (const int)
 | 
					0:43          4 (const int)
 | 
				
			||||||
0:44      textureProjGradOffset (global mediump 4-component vector of uint)
 | 
					0:44      textureProjGradOffset (global highp 4-component vector of uint)
 | 
				
			||||||
0:44        'usamp2d' (uniform highp usampler2D)
 | 
					0:44        'usamp2d' (uniform highp usampler2D)
 | 
				
			||||||
0:44        'outp' (out mediump 4-component vector of float)
 | 
					0:44        'outp' (out mediump 4-component vector of float)
 | 
				
			||||||
0:44        Constant:
 | 
					0:44        Constant:
 | 
				
			||||||
@ -279,7 +279,7 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:44        Constant:
 | 
					0:44        Constant:
 | 
				
			||||||
0:44          15 (const int)
 | 
					0:44          15 (const int)
 | 
				
			||||||
0:44          16 (const int)
 | 
					0:44          16 (const int)
 | 
				
			||||||
0:45      textureProjGradOffset (global mediump 4-component vector of uint)
 | 
					0:45      textureProjGradOffset (global highp 4-component vector of uint)
 | 
				
			||||||
0:45        'usamp2d' (uniform highp usampler2D)
 | 
					0:45        'usamp2d' (uniform highp usampler2D)
 | 
				
			||||||
0:45        'outp' (out mediump 4-component vector of float)
 | 
					0:45        'outp' (out mediump 4-component vector of float)
 | 
				
			||||||
0:45        Constant:
 | 
					0:45        Constant:
 | 
				
			||||||
@ -526,7 +526,7 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:251      Sequence
 | 
					0:251      Sequence
 | 
				
			||||||
0:251        move second child to first child (temp highp 4-component vector of int)
 | 
					0:251        move second child to first child (temp highp 4-component vector of int)
 | 
				
			||||||
0:251          'b6' (temp highp 4-component vector of int)
 | 
					0:251          'b6' (temp highp 4-component vector of int)
 | 
				
			||||||
0:251          texture (global mediump 4-component vector of int)
 | 
					0:251          texture (global highp 4-component vector of int)
 | 
				
			||||||
0:251            'CA6' (uniform highp isamplerCubeArray)
 | 
					0:251            'CA6' (uniform highp isamplerCubeArray)
 | 
				
			||||||
0:251            Constant:
 | 
					0:251            Constant:
 | 
				
			||||||
0:251              0.500000
 | 
					0:251              0.500000
 | 
				
			||||||
@ -538,7 +538,7 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:252      Sequence
 | 
					0:252      Sequence
 | 
				
			||||||
0:252        move second child to first child (temp highp 4-component vector of uint)
 | 
					0:252        move second child to first child (temp highp 4-component vector of uint)
 | 
				
			||||||
0:252          'b7' (temp highp 4-component vector of uint)
 | 
					0:252          'b7' (temp highp 4-component vector of uint)
 | 
				
			||||||
0:252          texture (global mediump 4-component vector of uint)
 | 
					0:252          texture (global highp 4-component vector of uint)
 | 
				
			||||||
0:252            'CA7' (uniform highp usamplerCubeArray)
 | 
					0:252            'CA7' (uniform highp usamplerCubeArray)
 | 
				
			||||||
0:252            Constant:
 | 
					0:252            Constant:
 | 
				
			||||||
0:252              0.500000
 | 
					0:252              0.500000
 | 
				
			||||||
@ -611,59 +611,59 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:283  Function Definition: badImageAtom( (global void)
 | 
					0:283  Function Definition: badImageAtom( (global void)
 | 
				
			||||||
0:283    Function Parameters: 
 | 
					0:283    Function Parameters: 
 | 
				
			||||||
0:?     Sequence
 | 
					0:?     Sequence
 | 
				
			||||||
0:289      imageAtomicAdd (global mediump int)
 | 
					0:289      imageAtomicAdd (global highp int)
 | 
				
			||||||
0:289        'im2Di' (layout(r32i ) uniform highp iimage2D)
 | 
					0:289        'im2Di' (layout(r32i ) uniform highp iimage2D)
 | 
				
			||||||
0:289        'P' (uniform mediump 2-component vector of int)
 | 
					0:289        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:289        'dati' (temp mediump int)
 | 
					0:289        'dati' (temp mediump int)
 | 
				
			||||||
0:290      imageAtomicAdd (global mediump uint)
 | 
					0:290      imageAtomicAdd (global highp uint)
 | 
				
			||||||
0:290        'im2Du' (layout(r32ui ) uniform highp uimage2D)
 | 
					0:290        'im2Du' (layout(r32ui ) uniform highp uimage2D)
 | 
				
			||||||
0:290        'P' (uniform mediump 2-component vector of int)
 | 
					0:290        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:290        'datu' (temp mediump uint)
 | 
					0:290        'datu' (temp mediump uint)
 | 
				
			||||||
0:291      imageAtomicMin (global mediump int)
 | 
					0:291      imageAtomicMin (global highp int)
 | 
				
			||||||
0:291        'im2Di' (layout(r32i ) uniform highp iimage2D)
 | 
					0:291        'im2Di' (layout(r32i ) uniform highp iimage2D)
 | 
				
			||||||
0:291        'P' (uniform mediump 2-component vector of int)
 | 
					0:291        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:291        'dati' (temp mediump int)
 | 
					0:291        'dati' (temp mediump int)
 | 
				
			||||||
0:292      imageAtomicMin (global mediump uint)
 | 
					0:292      imageAtomicMin (global highp uint)
 | 
				
			||||||
0:292        'im2Du' (layout(r32ui ) uniform highp uimage2D)
 | 
					0:292        'im2Du' (layout(r32ui ) uniform highp uimage2D)
 | 
				
			||||||
0:292        'P' (uniform mediump 2-component vector of int)
 | 
					0:292        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:292        'datu' (temp mediump uint)
 | 
					0:292        'datu' (temp mediump uint)
 | 
				
			||||||
0:293      imageAtomicMax (global mediump int)
 | 
					0:293      imageAtomicMax (global highp int)
 | 
				
			||||||
0:293        'im2Di' (layout(r32i ) uniform highp iimage2D)
 | 
					0:293        'im2Di' (layout(r32i ) uniform highp iimage2D)
 | 
				
			||||||
0:293        'P' (uniform mediump 2-component vector of int)
 | 
					0:293        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:293        'dati' (temp mediump int)
 | 
					0:293        'dati' (temp mediump int)
 | 
				
			||||||
0:294      imageAtomicMax (global mediump uint)
 | 
					0:294      imageAtomicMax (global highp uint)
 | 
				
			||||||
0:294        'im2Du' (layout(r32ui ) uniform highp uimage2D)
 | 
					0:294        'im2Du' (layout(r32ui ) uniform highp uimage2D)
 | 
				
			||||||
0:294        'P' (uniform mediump 2-component vector of int)
 | 
					0:294        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:294        'datu' (temp mediump uint)
 | 
					0:294        'datu' (temp mediump uint)
 | 
				
			||||||
0:295      imageAtomicAnd (global mediump int)
 | 
					0:295      imageAtomicAnd (global highp int)
 | 
				
			||||||
0:295        'im2Di' (layout(r32i ) uniform highp iimage2D)
 | 
					0:295        'im2Di' (layout(r32i ) uniform highp iimage2D)
 | 
				
			||||||
0:295        'P' (uniform mediump 2-component vector of int)
 | 
					0:295        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:295        'dati' (temp mediump int)
 | 
					0:295        'dati' (temp mediump int)
 | 
				
			||||||
0:296      imageAtomicAnd (global mediump uint)
 | 
					0:296      imageAtomicAnd (global highp uint)
 | 
				
			||||||
0:296        'im2Du' (layout(r32ui ) uniform highp uimage2D)
 | 
					0:296        'im2Du' (layout(r32ui ) uniform highp uimage2D)
 | 
				
			||||||
0:296        'P' (uniform mediump 2-component vector of int)
 | 
					0:296        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:296        'datu' (temp mediump uint)
 | 
					0:296        'datu' (temp mediump uint)
 | 
				
			||||||
0:297      imageAtomicOr (global mediump int)
 | 
					0:297      imageAtomicOr (global highp int)
 | 
				
			||||||
0:297        'im2Di' (layout(r32i ) uniform highp iimage2D)
 | 
					0:297        'im2Di' (layout(r32i ) uniform highp iimage2D)
 | 
				
			||||||
0:297        'P' (uniform mediump 2-component vector of int)
 | 
					0:297        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:297        'dati' (temp mediump int)
 | 
					0:297        'dati' (temp mediump int)
 | 
				
			||||||
0:298      imageAtomicOr (global mediump uint)
 | 
					0:298      imageAtomicOr (global highp uint)
 | 
				
			||||||
0:298        'im2Du' (layout(r32ui ) uniform highp uimage2D)
 | 
					0:298        'im2Du' (layout(r32ui ) uniform highp uimage2D)
 | 
				
			||||||
0:298        'P' (uniform mediump 2-component vector of int)
 | 
					0:298        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:298        'datu' (temp mediump uint)
 | 
					0:298        'datu' (temp mediump uint)
 | 
				
			||||||
0:299      imageAtomicXor (global mediump int)
 | 
					0:299      imageAtomicXor (global highp int)
 | 
				
			||||||
0:299        'im2Di' (layout(r32i ) uniform highp iimage2D)
 | 
					0:299        'im2Di' (layout(r32i ) uniform highp iimage2D)
 | 
				
			||||||
0:299        'P' (uniform mediump 2-component vector of int)
 | 
					0:299        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:299        'dati' (temp mediump int)
 | 
					0:299        'dati' (temp mediump int)
 | 
				
			||||||
0:300      imageAtomicXor (global mediump uint)
 | 
					0:300      imageAtomicXor (global highp uint)
 | 
				
			||||||
0:300        'im2Du' (layout(r32ui ) uniform highp uimage2D)
 | 
					0:300        'im2Du' (layout(r32ui ) uniform highp uimage2D)
 | 
				
			||||||
0:300        'P' (uniform mediump 2-component vector of int)
 | 
					0:300        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:300        'datu' (temp mediump uint)
 | 
					0:300        'datu' (temp mediump uint)
 | 
				
			||||||
0:301      imageAtomicExchange (global mediump int)
 | 
					0:301      imageAtomicExchange (global highp int)
 | 
				
			||||||
0:301        'im2Di' (layout(r32i ) uniform highp iimage2D)
 | 
					0:301        'im2Di' (layout(r32i ) uniform highp iimage2D)
 | 
				
			||||||
0:301        'P' (uniform mediump 2-component vector of int)
 | 
					0:301        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:301        'dati' (temp mediump int)
 | 
					0:301        'dati' (temp mediump int)
 | 
				
			||||||
0:302      imageAtomicExchange (global mediump uint)
 | 
					0:302      imageAtomicExchange (global highp uint)
 | 
				
			||||||
0:302        'im2Du' (layout(r32ui ) uniform highp uimage2D)
 | 
					0:302        'im2Du' (layout(r32ui ) uniform highp uimage2D)
 | 
				
			||||||
0:302        'P' (uniform mediump 2-component vector of int)
 | 
					0:302        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:302        'datu' (temp mediump uint)
 | 
					0:302        'datu' (temp mediump uint)
 | 
				
			||||||
@ -671,13 +671,13 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:303        'im2Df' (layout(r32f ) uniform highp image2D)
 | 
					0:303        'im2Df' (layout(r32f ) uniform highp image2D)
 | 
				
			||||||
0:303        'P' (uniform mediump 2-component vector of int)
 | 
					0:303        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:303        'datf' (temp mediump float)
 | 
					0:303        'datf' (temp mediump float)
 | 
				
			||||||
0:304      imageAtomicCompSwap (global mediump int)
 | 
					0:304      imageAtomicCompSwap (global highp int)
 | 
				
			||||||
0:304        'im2Di' (layout(r32i ) uniform highp iimage2D)
 | 
					0:304        'im2Di' (layout(r32i ) uniform highp iimage2D)
 | 
				
			||||||
0:304        'P' (uniform mediump 2-component vector of int)
 | 
					0:304        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:304        Constant:
 | 
					0:304        Constant:
 | 
				
			||||||
0:304          3 (const int)
 | 
					0:304          3 (const int)
 | 
				
			||||||
0:304        'dati' (temp mediump int)
 | 
					0:304        'dati' (temp mediump int)
 | 
				
			||||||
0:305      imageAtomicCompSwap (global mediump uint)
 | 
					0:305      imageAtomicCompSwap (global highp uint)
 | 
				
			||||||
0:305        'im2Du' (layout(r32ui ) uniform highp uimage2D)
 | 
					0:305        'im2Du' (layout(r32ui ) uniform highp uimage2D)
 | 
				
			||||||
0:305        'P' (uniform mediump 2-component vector of int)
 | 
					0:305        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:305        Constant:
 | 
					0:305        Constant:
 | 
				
			||||||
@ -686,59 +686,59 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:316  Function Definition: goodImageAtom( (global void)
 | 
					0:316  Function Definition: goodImageAtom( (global void)
 | 
				
			||||||
0:316    Function Parameters: 
 | 
					0:316    Function Parameters: 
 | 
				
			||||||
0:?     Sequence
 | 
					0:?     Sequence
 | 
				
			||||||
0:322      imageAtomicAdd (global mediump int)
 | 
					0:322      imageAtomicAdd (global highp int)
 | 
				
			||||||
0:322        'im2Di' (layout(r32i ) uniform highp iimage2D)
 | 
					0:322        'im2Di' (layout(r32i ) uniform highp iimage2D)
 | 
				
			||||||
0:322        'P' (uniform mediump 2-component vector of int)
 | 
					0:322        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:322        'dati' (temp mediump int)
 | 
					0:322        'dati' (temp mediump int)
 | 
				
			||||||
0:323      imageAtomicAdd (global mediump uint)
 | 
					0:323      imageAtomicAdd (global highp uint)
 | 
				
			||||||
0:323        'im2Du' (layout(r32ui ) uniform highp uimage2D)
 | 
					0:323        'im2Du' (layout(r32ui ) uniform highp uimage2D)
 | 
				
			||||||
0:323        'P' (uniform mediump 2-component vector of int)
 | 
					0:323        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:323        'datu' (temp mediump uint)
 | 
					0:323        'datu' (temp mediump uint)
 | 
				
			||||||
0:324      imageAtomicMin (global mediump int)
 | 
					0:324      imageAtomicMin (global highp int)
 | 
				
			||||||
0:324        'im2Di' (layout(r32i ) uniform highp iimage2D)
 | 
					0:324        'im2Di' (layout(r32i ) uniform highp iimage2D)
 | 
				
			||||||
0:324        'P' (uniform mediump 2-component vector of int)
 | 
					0:324        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:324        'dati' (temp mediump int)
 | 
					0:324        'dati' (temp mediump int)
 | 
				
			||||||
0:325      imageAtomicMin (global mediump uint)
 | 
					0:325      imageAtomicMin (global highp uint)
 | 
				
			||||||
0:325        'im2Du' (layout(r32ui ) uniform highp uimage2D)
 | 
					0:325        'im2Du' (layout(r32ui ) uniform highp uimage2D)
 | 
				
			||||||
0:325        'P' (uniform mediump 2-component vector of int)
 | 
					0:325        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:325        'datu' (temp mediump uint)
 | 
					0:325        'datu' (temp mediump uint)
 | 
				
			||||||
0:326      imageAtomicMax (global mediump int)
 | 
					0:326      imageAtomicMax (global highp int)
 | 
				
			||||||
0:326        'im2Di' (layout(r32i ) uniform highp iimage2D)
 | 
					0:326        'im2Di' (layout(r32i ) uniform highp iimage2D)
 | 
				
			||||||
0:326        'P' (uniform mediump 2-component vector of int)
 | 
					0:326        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:326        'dati' (temp mediump int)
 | 
					0:326        'dati' (temp mediump int)
 | 
				
			||||||
0:327      imageAtomicMax (global mediump uint)
 | 
					0:327      imageAtomicMax (global highp uint)
 | 
				
			||||||
0:327        'im2Du' (layout(r32ui ) uniform highp uimage2D)
 | 
					0:327        'im2Du' (layout(r32ui ) uniform highp uimage2D)
 | 
				
			||||||
0:327        'P' (uniform mediump 2-component vector of int)
 | 
					0:327        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:327        'datu' (temp mediump uint)
 | 
					0:327        'datu' (temp mediump uint)
 | 
				
			||||||
0:328      imageAtomicAnd (global mediump int)
 | 
					0:328      imageAtomicAnd (global highp int)
 | 
				
			||||||
0:328        'im2Di' (layout(r32i ) uniform highp iimage2D)
 | 
					0:328        'im2Di' (layout(r32i ) uniform highp iimage2D)
 | 
				
			||||||
0:328        'P' (uniform mediump 2-component vector of int)
 | 
					0:328        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:328        'dati' (temp mediump int)
 | 
					0:328        'dati' (temp mediump int)
 | 
				
			||||||
0:329      imageAtomicAnd (global mediump uint)
 | 
					0:329      imageAtomicAnd (global highp uint)
 | 
				
			||||||
0:329        'im2Du' (layout(r32ui ) uniform highp uimage2D)
 | 
					0:329        'im2Du' (layout(r32ui ) uniform highp uimage2D)
 | 
				
			||||||
0:329        'P' (uniform mediump 2-component vector of int)
 | 
					0:329        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:329        'datu' (temp mediump uint)
 | 
					0:329        'datu' (temp mediump uint)
 | 
				
			||||||
0:330      imageAtomicOr (global mediump int)
 | 
					0:330      imageAtomicOr (global highp int)
 | 
				
			||||||
0:330        'im2Di' (layout(r32i ) uniform highp iimage2D)
 | 
					0:330        'im2Di' (layout(r32i ) uniform highp iimage2D)
 | 
				
			||||||
0:330        'P' (uniform mediump 2-component vector of int)
 | 
					0:330        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:330        'dati' (temp mediump int)
 | 
					0:330        'dati' (temp mediump int)
 | 
				
			||||||
0:331      imageAtomicOr (global mediump uint)
 | 
					0:331      imageAtomicOr (global highp uint)
 | 
				
			||||||
0:331        'im2Du' (layout(r32ui ) uniform highp uimage2D)
 | 
					0:331        'im2Du' (layout(r32ui ) uniform highp uimage2D)
 | 
				
			||||||
0:331        'P' (uniform mediump 2-component vector of int)
 | 
					0:331        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:331        'datu' (temp mediump uint)
 | 
					0:331        'datu' (temp mediump uint)
 | 
				
			||||||
0:332      imageAtomicXor (global mediump int)
 | 
					0:332      imageAtomicXor (global highp int)
 | 
				
			||||||
0:332        'im2Di' (layout(r32i ) uniform highp iimage2D)
 | 
					0:332        'im2Di' (layout(r32i ) uniform highp iimage2D)
 | 
				
			||||||
0:332        'P' (uniform mediump 2-component vector of int)
 | 
					0:332        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:332        'dati' (temp mediump int)
 | 
					0:332        'dati' (temp mediump int)
 | 
				
			||||||
0:333      imageAtomicXor (global mediump uint)
 | 
					0:333      imageAtomicXor (global highp uint)
 | 
				
			||||||
0:333        'im2Du' (layout(r32ui ) uniform highp uimage2D)
 | 
					0:333        'im2Du' (layout(r32ui ) uniform highp uimage2D)
 | 
				
			||||||
0:333        'P' (uniform mediump 2-component vector of int)
 | 
					0:333        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:333        'datu' (temp mediump uint)
 | 
					0:333        'datu' (temp mediump uint)
 | 
				
			||||||
0:334      imageAtomicExchange (global mediump int)
 | 
					0:334      imageAtomicExchange (global highp int)
 | 
				
			||||||
0:334        'im2Di' (layout(r32i ) uniform highp iimage2D)
 | 
					0:334        'im2Di' (layout(r32i ) uniform highp iimage2D)
 | 
				
			||||||
0:334        'P' (uniform mediump 2-component vector of int)
 | 
					0:334        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:334        'dati' (temp mediump int)
 | 
					0:334        'dati' (temp mediump int)
 | 
				
			||||||
0:335      imageAtomicExchange (global mediump uint)
 | 
					0:335      imageAtomicExchange (global highp uint)
 | 
				
			||||||
0:335        'im2Du' (layout(r32ui ) uniform highp uimage2D)
 | 
					0:335        'im2Du' (layout(r32ui ) uniform highp uimage2D)
 | 
				
			||||||
0:335        'P' (uniform mediump 2-component vector of int)
 | 
					0:335        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:335        'datu' (temp mediump uint)
 | 
					0:335        'datu' (temp mediump uint)
 | 
				
			||||||
@ -746,23 +746,23 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:336        'im2Df' (layout(r32f ) uniform highp image2D)
 | 
					0:336        'im2Df' (layout(r32f ) uniform highp image2D)
 | 
				
			||||||
0:336        'P' (uniform mediump 2-component vector of int)
 | 
					0:336        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:336        'datf' (temp mediump float)
 | 
					0:336        'datf' (temp mediump float)
 | 
				
			||||||
0:337      imageAtomicCompSwap (global mediump int)
 | 
					0:337      imageAtomicCompSwap (global highp int)
 | 
				
			||||||
0:337        'im2Di' (layout(r32i ) uniform highp iimage2D)
 | 
					0:337        'im2Di' (layout(r32i ) uniform highp iimage2D)
 | 
				
			||||||
0:337        'P' (uniform mediump 2-component vector of int)
 | 
					0:337        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:337        Constant:
 | 
					0:337        Constant:
 | 
				
			||||||
0:337          3 (const int)
 | 
					0:337          3 (const int)
 | 
				
			||||||
0:337        'dati' (temp mediump int)
 | 
					0:337        'dati' (temp mediump int)
 | 
				
			||||||
0:338      imageAtomicCompSwap (global mediump uint)
 | 
					0:338      imageAtomicCompSwap (global highp uint)
 | 
				
			||||||
0:338        'im2Du' (layout(r32ui ) uniform highp uimage2D)
 | 
					0:338        'im2Du' (layout(r32ui ) uniform highp uimage2D)
 | 
				
			||||||
0:338        'P' (uniform mediump 2-component vector of int)
 | 
					0:338        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:338        Constant:
 | 
					0:338        Constant:
 | 
				
			||||||
0:338          5 (const uint)
 | 
					0:338          5 (const uint)
 | 
				
			||||||
0:338        'datu' (temp mediump uint)
 | 
					0:338        'datu' (temp mediump uint)
 | 
				
			||||||
0:340      imageAtomicMax (global mediump int)
 | 
					0:340      imageAtomicMax (global highp int)
 | 
				
			||||||
0:340        'badIm2Di' (layout(rgba16i ) uniform highp iimage2D)
 | 
					0:340        'badIm2Di' (layout(rgba16i ) uniform highp iimage2D)
 | 
				
			||||||
0:340        'P' (uniform mediump 2-component vector of int)
 | 
					0:340        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:340        'dati' (temp mediump int)
 | 
					0:340        'dati' (temp mediump int)
 | 
				
			||||||
0:341      imageAtomicMax (global mediump uint)
 | 
					0:341      imageAtomicMax (global highp uint)
 | 
				
			||||||
0:341        'badIm2Du' (layout(rgba8ui ) uniform highp uimage2D)
 | 
					0:341        'badIm2Du' (layout(rgba8ui ) uniform highp uimage2D)
 | 
				
			||||||
0:341        'P' (uniform mediump 2-component vector of int)
 | 
					0:341        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:341        'datu' (temp mediump uint)
 | 
					0:341        'datu' (temp mediump uint)
 | 
				
			||||||
@ -1050,9 +1050,9 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:28                0 (const int)
 | 
					0:28                0 (const int)
 | 
				
			||||||
0:28            'c2D' (smooth in mediump 2-component vector of float)
 | 
					0:28            'c2D' (smooth in mediump 2-component vector of float)
 | 
				
			||||||
0:29      Sequence
 | 
					0:29      Sequence
 | 
				
			||||||
0:29        move second child to first child (temp mediump 4-component vector of int)
 | 
					0:29        move second child to first child (temp highp 4-component vector of int)
 | 
				
			||||||
0:29          'iv4' (temp mediump 4-component vector of int)
 | 
					0:29          'iv4' (temp mediump 4-component vector of int)
 | 
				
			||||||
0:29          textureGatherOffset (global mediump 4-component vector of int)
 | 
					0:29          textureGatherOffset (global highp 4-component vector of int)
 | 
				
			||||||
0:29            'isamp2DA' (uniform highp isampler2DArray)
 | 
					0:29            'isamp2DA' (uniform highp isampler2DArray)
 | 
				
			||||||
0:29            Constant:
 | 
					0:29            Constant:
 | 
				
			||||||
0:29              0.100000
 | 
					0:29              0.100000
 | 
				
			||||||
@ -1063,9 +1063,9 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:29              1 (const int)
 | 
					0:29              1 (const int)
 | 
				
			||||||
0:29            Constant:
 | 
					0:29            Constant:
 | 
				
			||||||
0:29              3 (const int)
 | 
					0:29              3 (const int)
 | 
				
			||||||
0:30      move second child to first child (temp mediump 4-component vector of int)
 | 
					0:30      move second child to first child (temp highp 4-component vector of int)
 | 
				
			||||||
0:30        'iv4' (temp mediump 4-component vector of int)
 | 
					0:30        'iv4' (temp mediump 4-component vector of int)
 | 
				
			||||||
0:30        textureGatherOffset (global mediump 4-component vector of int)
 | 
					0:30        textureGatherOffset (global highp 4-component vector of int)
 | 
				
			||||||
0:30          'isamp2DA' (uniform highp isampler2DArray)
 | 
					0:30          'isamp2DA' (uniform highp isampler2DArray)
 | 
				
			||||||
0:30          Constant:
 | 
					0:30          Constant:
 | 
				
			||||||
0:30            0.100000
 | 
					0:30            0.100000
 | 
				
			||||||
@ -1075,9 +1075,9 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:30            1 (const int)
 | 
					0:30            1 (const int)
 | 
				
			||||||
0:30            1 (const int)
 | 
					0:30            1 (const int)
 | 
				
			||||||
0:30          'i' (uniform mediump int)
 | 
					0:30          'i' (uniform mediump int)
 | 
				
			||||||
0:31      move second child to first child (temp mediump 4-component vector of int)
 | 
					0:31      move second child to first child (temp highp 4-component vector of int)
 | 
				
			||||||
0:31        'iv4' (temp mediump 4-component vector of int)
 | 
					0:31        'iv4' (temp mediump 4-component vector of int)
 | 
				
			||||||
0:31        textureGatherOffset (global mediump 4-component vector of int)
 | 
					0:31        textureGatherOffset (global highp 4-component vector of int)
 | 
				
			||||||
0:31          'isamp2DA' (uniform highp isampler2DArray)
 | 
					0:31          'isamp2DA' (uniform highp isampler2DArray)
 | 
				
			||||||
0:31          Constant:
 | 
					0:31          Constant:
 | 
				
			||||||
0:31            0.100000
 | 
					0:31            0.100000
 | 
				
			||||||
@ -1088,9 +1088,9 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:31            1 (const int)
 | 
					0:31            1 (const int)
 | 
				
			||||||
0:31          Constant:
 | 
					0:31          Constant:
 | 
				
			||||||
0:31            4 (const int)
 | 
					0:31            4 (const int)
 | 
				
			||||||
0:32      move second child to first child (temp mediump 4-component vector of int)
 | 
					0:32      move second child to first child (temp highp 4-component vector of int)
 | 
				
			||||||
0:32        'iv4' (temp mediump 4-component vector of int)
 | 
					0:32        'iv4' (temp mediump 4-component vector of int)
 | 
				
			||||||
0:32        textureGatherOffset (global mediump 4-component vector of int)
 | 
					0:32        textureGatherOffset (global highp 4-component vector of int)
 | 
				
			||||||
0:32          'isamp2DA' (uniform highp isampler2DArray)
 | 
					0:32          'isamp2DA' (uniform highp isampler2DArray)
 | 
				
			||||||
0:32          Constant:
 | 
					0:32          Constant:
 | 
				
			||||||
0:32            0.100000
 | 
					0:32            0.100000
 | 
				
			||||||
@ -1101,9 +1101,9 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:32            1 (const int)
 | 
					0:32            1 (const int)
 | 
				
			||||||
0:32          Constant:
 | 
					0:32          Constant:
 | 
				
			||||||
0:32            3 (const int)
 | 
					0:32            3 (const int)
 | 
				
			||||||
0:33      move second child to first child (temp mediump 4-component vector of int)
 | 
					0:33      move second child to first child (temp highp 4-component vector of int)
 | 
				
			||||||
0:33        'iv4' (temp mediump 4-component vector of int)
 | 
					0:33        'iv4' (temp mediump 4-component vector of int)
 | 
				
			||||||
0:33        textureGatherOffset (global mediump 4-component vector of int)
 | 
					0:33        textureGatherOffset (global highp 4-component vector of int)
 | 
				
			||||||
0:33          'isamp2DA' (uniform highp isampler2DArray)
 | 
					0:33          'isamp2DA' (uniform highp isampler2DArray)
 | 
				
			||||||
0:33          Constant:
 | 
					0:33          Constant:
 | 
				
			||||||
0:33            0.100000
 | 
					0:33            0.100000
 | 
				
			||||||
@ -1112,20 +1112,20 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:33          Constant:
 | 
					0:33          Constant:
 | 
				
			||||||
0:33            0 (const int)
 | 
					0:33            0 (const int)
 | 
				
			||||||
0:33            0 (const int)
 | 
					0:33            0 (const int)
 | 
				
			||||||
0:34      move second child to first child (temp mediump 4-component vector of int)
 | 
					0:34      move second child to first child (temp highp 4-component vector of int)
 | 
				
			||||||
0:34        'iv4' (temp mediump 4-component vector of int)
 | 
					0:34        'iv4' (temp mediump 4-component vector of int)
 | 
				
			||||||
0:34        textureGatherOffset (global mediump 4-component vector of int)
 | 
					0:34        textureGatherOffset (global highp 4-component vector of int)
 | 
				
			||||||
0:34          'isamp2DA' (uniform highp isampler2DArray)
 | 
					0:34          'isamp2DA' (uniform highp isampler2DArray)
 | 
				
			||||||
0:34          Constant:
 | 
					0:34          Constant:
 | 
				
			||||||
0:34            0.100000
 | 
					0:34            0.100000
 | 
				
			||||||
0:34            0.100000
 | 
					0:34            0.100000
 | 
				
			||||||
0:34            0.100000
 | 
					0:34            0.100000
 | 
				
			||||||
0:34          Construct ivec2 (temp mediump 2-component vector of int)
 | 
					0:34          Construct ivec2 (temp highp 2-component vector of int)
 | 
				
			||||||
0:34            'i' (uniform mediump int)
 | 
					0:34            'i' (uniform mediump int)
 | 
				
			||||||
0:38  Function Definition: foo23( (global void)
 | 
					0:38  Function Definition: foo23( (global void)
 | 
				
			||||||
0:38    Function Parameters: 
 | 
					0:38    Function Parameters: 
 | 
				
			||||||
0:?     Sequence
 | 
					0:?     Sequence
 | 
				
			||||||
0:42      textureProjGradOffset (global mediump 4-component vector of uint)
 | 
					0:42      textureProjGradOffset (global highp 4-component vector of uint)
 | 
				
			||||||
0:42        'usamp2d' (uniform highp usampler2D)
 | 
					0:42        'usamp2d' (uniform highp usampler2D)
 | 
				
			||||||
0:42        'outp' (out mediump 4-component vector of float)
 | 
					0:42        'outp' (out mediump 4-component vector of float)
 | 
				
			||||||
0:42        Constant:
 | 
					0:42        Constant:
 | 
				
			||||||
@ -1134,9 +1134,9 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:42        Constant:
 | 
					0:42        Constant:
 | 
				
			||||||
0:42          0.000000
 | 
					0:42          0.000000
 | 
				
			||||||
0:42          0.000000
 | 
					0:42          0.000000
 | 
				
			||||||
0:42        Convert float to int (temp mediump 2-component vector of int)
 | 
					0:42        Convert float to int (temp highp 2-component vector of int)
 | 
				
			||||||
0:42          'c2D' (smooth in mediump 2-component vector of float)
 | 
					0:42          'c2D' (smooth in mediump 2-component vector of float)
 | 
				
			||||||
0:43      textureProjGradOffset (global mediump 4-component vector of uint)
 | 
					0:43      textureProjGradOffset (global highp 4-component vector of uint)
 | 
				
			||||||
0:43        'usamp2d' (uniform highp usampler2D)
 | 
					0:43        'usamp2d' (uniform highp usampler2D)
 | 
				
			||||||
0:43        'outp' (out mediump 4-component vector of float)
 | 
					0:43        'outp' (out mediump 4-component vector of float)
 | 
				
			||||||
0:43        Constant:
 | 
					0:43        Constant:
 | 
				
			||||||
@ -1148,7 +1148,7 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:43        Constant:
 | 
					0:43        Constant:
 | 
				
			||||||
0:43          3 (const int)
 | 
					0:43          3 (const int)
 | 
				
			||||||
0:43          4 (const int)
 | 
					0:43          4 (const int)
 | 
				
			||||||
0:44      textureProjGradOffset (global mediump 4-component vector of uint)
 | 
					0:44      textureProjGradOffset (global highp 4-component vector of uint)
 | 
				
			||||||
0:44        'usamp2d' (uniform highp usampler2D)
 | 
					0:44        'usamp2d' (uniform highp usampler2D)
 | 
				
			||||||
0:44        'outp' (out mediump 4-component vector of float)
 | 
					0:44        'outp' (out mediump 4-component vector of float)
 | 
				
			||||||
0:44        Constant:
 | 
					0:44        Constant:
 | 
				
			||||||
@ -1160,7 +1160,7 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:44        Constant:
 | 
					0:44        Constant:
 | 
				
			||||||
0:44          15 (const int)
 | 
					0:44          15 (const int)
 | 
				
			||||||
0:44          16 (const int)
 | 
					0:44          16 (const int)
 | 
				
			||||||
0:45      textureProjGradOffset (global mediump 4-component vector of uint)
 | 
					0:45      textureProjGradOffset (global highp 4-component vector of uint)
 | 
				
			||||||
0:45        'usamp2d' (uniform highp usampler2D)
 | 
					0:45        'usamp2d' (uniform highp usampler2D)
 | 
				
			||||||
0:45        'outp' (out mediump 4-component vector of float)
 | 
					0:45        'outp' (out mediump 4-component vector of float)
 | 
				
			||||||
0:45        Constant:
 | 
					0:45        Constant:
 | 
				
			||||||
@ -1407,7 +1407,7 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:251      Sequence
 | 
					0:251      Sequence
 | 
				
			||||||
0:251        move second child to first child (temp highp 4-component vector of int)
 | 
					0:251        move second child to first child (temp highp 4-component vector of int)
 | 
				
			||||||
0:251          'b6' (temp highp 4-component vector of int)
 | 
					0:251          'b6' (temp highp 4-component vector of int)
 | 
				
			||||||
0:251          texture (global mediump 4-component vector of int)
 | 
					0:251          texture (global highp 4-component vector of int)
 | 
				
			||||||
0:251            'CA6' (uniform highp isamplerCubeArray)
 | 
					0:251            'CA6' (uniform highp isamplerCubeArray)
 | 
				
			||||||
0:251            Constant:
 | 
					0:251            Constant:
 | 
				
			||||||
0:251              0.500000
 | 
					0:251              0.500000
 | 
				
			||||||
@ -1419,7 +1419,7 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:252      Sequence
 | 
					0:252      Sequence
 | 
				
			||||||
0:252        move second child to first child (temp highp 4-component vector of uint)
 | 
					0:252        move second child to first child (temp highp 4-component vector of uint)
 | 
				
			||||||
0:252          'b7' (temp highp 4-component vector of uint)
 | 
					0:252          'b7' (temp highp 4-component vector of uint)
 | 
				
			||||||
0:252          texture (global mediump 4-component vector of uint)
 | 
					0:252          texture (global highp 4-component vector of uint)
 | 
				
			||||||
0:252            'CA7' (uniform highp usamplerCubeArray)
 | 
					0:252            'CA7' (uniform highp usamplerCubeArray)
 | 
				
			||||||
0:252            Constant:
 | 
					0:252            Constant:
 | 
				
			||||||
0:252              0.500000
 | 
					0:252              0.500000
 | 
				
			||||||
@ -1492,59 +1492,59 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:283  Function Definition: badImageAtom( (global void)
 | 
					0:283  Function Definition: badImageAtom( (global void)
 | 
				
			||||||
0:283    Function Parameters: 
 | 
					0:283    Function Parameters: 
 | 
				
			||||||
0:?     Sequence
 | 
					0:?     Sequence
 | 
				
			||||||
0:289      imageAtomicAdd (global mediump int)
 | 
					0:289      imageAtomicAdd (global highp int)
 | 
				
			||||||
0:289        'im2Di' (layout(r32i ) uniform highp iimage2D)
 | 
					0:289        'im2Di' (layout(r32i ) uniform highp iimage2D)
 | 
				
			||||||
0:289        'P' (uniform mediump 2-component vector of int)
 | 
					0:289        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:289        'dati' (temp mediump int)
 | 
					0:289        'dati' (temp mediump int)
 | 
				
			||||||
0:290      imageAtomicAdd (global mediump uint)
 | 
					0:290      imageAtomicAdd (global highp uint)
 | 
				
			||||||
0:290        'im2Du' (layout(r32ui ) uniform highp uimage2D)
 | 
					0:290        'im2Du' (layout(r32ui ) uniform highp uimage2D)
 | 
				
			||||||
0:290        'P' (uniform mediump 2-component vector of int)
 | 
					0:290        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:290        'datu' (temp mediump uint)
 | 
					0:290        'datu' (temp mediump uint)
 | 
				
			||||||
0:291      imageAtomicMin (global mediump int)
 | 
					0:291      imageAtomicMin (global highp int)
 | 
				
			||||||
0:291        'im2Di' (layout(r32i ) uniform highp iimage2D)
 | 
					0:291        'im2Di' (layout(r32i ) uniform highp iimage2D)
 | 
				
			||||||
0:291        'P' (uniform mediump 2-component vector of int)
 | 
					0:291        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:291        'dati' (temp mediump int)
 | 
					0:291        'dati' (temp mediump int)
 | 
				
			||||||
0:292      imageAtomicMin (global mediump uint)
 | 
					0:292      imageAtomicMin (global highp uint)
 | 
				
			||||||
0:292        'im2Du' (layout(r32ui ) uniform highp uimage2D)
 | 
					0:292        'im2Du' (layout(r32ui ) uniform highp uimage2D)
 | 
				
			||||||
0:292        'P' (uniform mediump 2-component vector of int)
 | 
					0:292        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:292        'datu' (temp mediump uint)
 | 
					0:292        'datu' (temp mediump uint)
 | 
				
			||||||
0:293      imageAtomicMax (global mediump int)
 | 
					0:293      imageAtomicMax (global highp int)
 | 
				
			||||||
0:293        'im2Di' (layout(r32i ) uniform highp iimage2D)
 | 
					0:293        'im2Di' (layout(r32i ) uniform highp iimage2D)
 | 
				
			||||||
0:293        'P' (uniform mediump 2-component vector of int)
 | 
					0:293        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:293        'dati' (temp mediump int)
 | 
					0:293        'dati' (temp mediump int)
 | 
				
			||||||
0:294      imageAtomicMax (global mediump uint)
 | 
					0:294      imageAtomicMax (global highp uint)
 | 
				
			||||||
0:294        'im2Du' (layout(r32ui ) uniform highp uimage2D)
 | 
					0:294        'im2Du' (layout(r32ui ) uniform highp uimage2D)
 | 
				
			||||||
0:294        'P' (uniform mediump 2-component vector of int)
 | 
					0:294        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:294        'datu' (temp mediump uint)
 | 
					0:294        'datu' (temp mediump uint)
 | 
				
			||||||
0:295      imageAtomicAnd (global mediump int)
 | 
					0:295      imageAtomicAnd (global highp int)
 | 
				
			||||||
0:295        'im2Di' (layout(r32i ) uniform highp iimage2D)
 | 
					0:295        'im2Di' (layout(r32i ) uniform highp iimage2D)
 | 
				
			||||||
0:295        'P' (uniform mediump 2-component vector of int)
 | 
					0:295        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:295        'dati' (temp mediump int)
 | 
					0:295        'dati' (temp mediump int)
 | 
				
			||||||
0:296      imageAtomicAnd (global mediump uint)
 | 
					0:296      imageAtomicAnd (global highp uint)
 | 
				
			||||||
0:296        'im2Du' (layout(r32ui ) uniform highp uimage2D)
 | 
					0:296        'im2Du' (layout(r32ui ) uniform highp uimage2D)
 | 
				
			||||||
0:296        'P' (uniform mediump 2-component vector of int)
 | 
					0:296        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:296        'datu' (temp mediump uint)
 | 
					0:296        'datu' (temp mediump uint)
 | 
				
			||||||
0:297      imageAtomicOr (global mediump int)
 | 
					0:297      imageAtomicOr (global highp int)
 | 
				
			||||||
0:297        'im2Di' (layout(r32i ) uniform highp iimage2D)
 | 
					0:297        'im2Di' (layout(r32i ) uniform highp iimage2D)
 | 
				
			||||||
0:297        'P' (uniform mediump 2-component vector of int)
 | 
					0:297        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:297        'dati' (temp mediump int)
 | 
					0:297        'dati' (temp mediump int)
 | 
				
			||||||
0:298      imageAtomicOr (global mediump uint)
 | 
					0:298      imageAtomicOr (global highp uint)
 | 
				
			||||||
0:298        'im2Du' (layout(r32ui ) uniform highp uimage2D)
 | 
					0:298        'im2Du' (layout(r32ui ) uniform highp uimage2D)
 | 
				
			||||||
0:298        'P' (uniform mediump 2-component vector of int)
 | 
					0:298        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:298        'datu' (temp mediump uint)
 | 
					0:298        'datu' (temp mediump uint)
 | 
				
			||||||
0:299      imageAtomicXor (global mediump int)
 | 
					0:299      imageAtomicXor (global highp int)
 | 
				
			||||||
0:299        'im2Di' (layout(r32i ) uniform highp iimage2D)
 | 
					0:299        'im2Di' (layout(r32i ) uniform highp iimage2D)
 | 
				
			||||||
0:299        'P' (uniform mediump 2-component vector of int)
 | 
					0:299        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:299        'dati' (temp mediump int)
 | 
					0:299        'dati' (temp mediump int)
 | 
				
			||||||
0:300      imageAtomicXor (global mediump uint)
 | 
					0:300      imageAtomicXor (global highp uint)
 | 
				
			||||||
0:300        'im2Du' (layout(r32ui ) uniform highp uimage2D)
 | 
					0:300        'im2Du' (layout(r32ui ) uniform highp uimage2D)
 | 
				
			||||||
0:300        'P' (uniform mediump 2-component vector of int)
 | 
					0:300        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:300        'datu' (temp mediump uint)
 | 
					0:300        'datu' (temp mediump uint)
 | 
				
			||||||
0:301      imageAtomicExchange (global mediump int)
 | 
					0:301      imageAtomicExchange (global highp int)
 | 
				
			||||||
0:301        'im2Di' (layout(r32i ) uniform highp iimage2D)
 | 
					0:301        'im2Di' (layout(r32i ) uniform highp iimage2D)
 | 
				
			||||||
0:301        'P' (uniform mediump 2-component vector of int)
 | 
					0:301        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:301        'dati' (temp mediump int)
 | 
					0:301        'dati' (temp mediump int)
 | 
				
			||||||
0:302      imageAtomicExchange (global mediump uint)
 | 
					0:302      imageAtomicExchange (global highp uint)
 | 
				
			||||||
0:302        'im2Du' (layout(r32ui ) uniform highp uimage2D)
 | 
					0:302        'im2Du' (layout(r32ui ) uniform highp uimage2D)
 | 
				
			||||||
0:302        'P' (uniform mediump 2-component vector of int)
 | 
					0:302        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:302        'datu' (temp mediump uint)
 | 
					0:302        'datu' (temp mediump uint)
 | 
				
			||||||
@ -1552,13 +1552,13 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:303        'im2Df' (layout(r32f ) uniform highp image2D)
 | 
					0:303        'im2Df' (layout(r32f ) uniform highp image2D)
 | 
				
			||||||
0:303        'P' (uniform mediump 2-component vector of int)
 | 
					0:303        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:303        'datf' (temp mediump float)
 | 
					0:303        'datf' (temp mediump float)
 | 
				
			||||||
0:304      imageAtomicCompSwap (global mediump int)
 | 
					0:304      imageAtomicCompSwap (global highp int)
 | 
				
			||||||
0:304        'im2Di' (layout(r32i ) uniform highp iimage2D)
 | 
					0:304        'im2Di' (layout(r32i ) uniform highp iimage2D)
 | 
				
			||||||
0:304        'P' (uniform mediump 2-component vector of int)
 | 
					0:304        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:304        Constant:
 | 
					0:304        Constant:
 | 
				
			||||||
0:304          3 (const int)
 | 
					0:304          3 (const int)
 | 
				
			||||||
0:304        'dati' (temp mediump int)
 | 
					0:304        'dati' (temp mediump int)
 | 
				
			||||||
0:305      imageAtomicCompSwap (global mediump uint)
 | 
					0:305      imageAtomicCompSwap (global highp uint)
 | 
				
			||||||
0:305        'im2Du' (layout(r32ui ) uniform highp uimage2D)
 | 
					0:305        'im2Du' (layout(r32ui ) uniform highp uimage2D)
 | 
				
			||||||
0:305        'P' (uniform mediump 2-component vector of int)
 | 
					0:305        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:305        Constant:
 | 
					0:305        Constant:
 | 
				
			||||||
@ -1567,59 +1567,59 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:316  Function Definition: goodImageAtom( (global void)
 | 
					0:316  Function Definition: goodImageAtom( (global void)
 | 
				
			||||||
0:316    Function Parameters: 
 | 
					0:316    Function Parameters: 
 | 
				
			||||||
0:?     Sequence
 | 
					0:?     Sequence
 | 
				
			||||||
0:322      imageAtomicAdd (global mediump int)
 | 
					0:322      imageAtomicAdd (global highp int)
 | 
				
			||||||
0:322        'im2Di' (layout(r32i ) uniform highp iimage2D)
 | 
					0:322        'im2Di' (layout(r32i ) uniform highp iimage2D)
 | 
				
			||||||
0:322        'P' (uniform mediump 2-component vector of int)
 | 
					0:322        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:322        'dati' (temp mediump int)
 | 
					0:322        'dati' (temp mediump int)
 | 
				
			||||||
0:323      imageAtomicAdd (global mediump uint)
 | 
					0:323      imageAtomicAdd (global highp uint)
 | 
				
			||||||
0:323        'im2Du' (layout(r32ui ) uniform highp uimage2D)
 | 
					0:323        'im2Du' (layout(r32ui ) uniform highp uimage2D)
 | 
				
			||||||
0:323        'P' (uniform mediump 2-component vector of int)
 | 
					0:323        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:323        'datu' (temp mediump uint)
 | 
					0:323        'datu' (temp mediump uint)
 | 
				
			||||||
0:324      imageAtomicMin (global mediump int)
 | 
					0:324      imageAtomicMin (global highp int)
 | 
				
			||||||
0:324        'im2Di' (layout(r32i ) uniform highp iimage2D)
 | 
					0:324        'im2Di' (layout(r32i ) uniform highp iimage2D)
 | 
				
			||||||
0:324        'P' (uniform mediump 2-component vector of int)
 | 
					0:324        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:324        'dati' (temp mediump int)
 | 
					0:324        'dati' (temp mediump int)
 | 
				
			||||||
0:325      imageAtomicMin (global mediump uint)
 | 
					0:325      imageAtomicMin (global highp uint)
 | 
				
			||||||
0:325        'im2Du' (layout(r32ui ) uniform highp uimage2D)
 | 
					0:325        'im2Du' (layout(r32ui ) uniform highp uimage2D)
 | 
				
			||||||
0:325        'P' (uniform mediump 2-component vector of int)
 | 
					0:325        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:325        'datu' (temp mediump uint)
 | 
					0:325        'datu' (temp mediump uint)
 | 
				
			||||||
0:326      imageAtomicMax (global mediump int)
 | 
					0:326      imageAtomicMax (global highp int)
 | 
				
			||||||
0:326        'im2Di' (layout(r32i ) uniform highp iimage2D)
 | 
					0:326        'im2Di' (layout(r32i ) uniform highp iimage2D)
 | 
				
			||||||
0:326        'P' (uniform mediump 2-component vector of int)
 | 
					0:326        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:326        'dati' (temp mediump int)
 | 
					0:326        'dati' (temp mediump int)
 | 
				
			||||||
0:327      imageAtomicMax (global mediump uint)
 | 
					0:327      imageAtomicMax (global highp uint)
 | 
				
			||||||
0:327        'im2Du' (layout(r32ui ) uniform highp uimage2D)
 | 
					0:327        'im2Du' (layout(r32ui ) uniform highp uimage2D)
 | 
				
			||||||
0:327        'P' (uniform mediump 2-component vector of int)
 | 
					0:327        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:327        'datu' (temp mediump uint)
 | 
					0:327        'datu' (temp mediump uint)
 | 
				
			||||||
0:328      imageAtomicAnd (global mediump int)
 | 
					0:328      imageAtomicAnd (global highp int)
 | 
				
			||||||
0:328        'im2Di' (layout(r32i ) uniform highp iimage2D)
 | 
					0:328        'im2Di' (layout(r32i ) uniform highp iimage2D)
 | 
				
			||||||
0:328        'P' (uniform mediump 2-component vector of int)
 | 
					0:328        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:328        'dati' (temp mediump int)
 | 
					0:328        'dati' (temp mediump int)
 | 
				
			||||||
0:329      imageAtomicAnd (global mediump uint)
 | 
					0:329      imageAtomicAnd (global highp uint)
 | 
				
			||||||
0:329        'im2Du' (layout(r32ui ) uniform highp uimage2D)
 | 
					0:329        'im2Du' (layout(r32ui ) uniform highp uimage2D)
 | 
				
			||||||
0:329        'P' (uniform mediump 2-component vector of int)
 | 
					0:329        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:329        'datu' (temp mediump uint)
 | 
					0:329        'datu' (temp mediump uint)
 | 
				
			||||||
0:330      imageAtomicOr (global mediump int)
 | 
					0:330      imageAtomicOr (global highp int)
 | 
				
			||||||
0:330        'im2Di' (layout(r32i ) uniform highp iimage2D)
 | 
					0:330        'im2Di' (layout(r32i ) uniform highp iimage2D)
 | 
				
			||||||
0:330        'P' (uniform mediump 2-component vector of int)
 | 
					0:330        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:330        'dati' (temp mediump int)
 | 
					0:330        'dati' (temp mediump int)
 | 
				
			||||||
0:331      imageAtomicOr (global mediump uint)
 | 
					0:331      imageAtomicOr (global highp uint)
 | 
				
			||||||
0:331        'im2Du' (layout(r32ui ) uniform highp uimage2D)
 | 
					0:331        'im2Du' (layout(r32ui ) uniform highp uimage2D)
 | 
				
			||||||
0:331        'P' (uniform mediump 2-component vector of int)
 | 
					0:331        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:331        'datu' (temp mediump uint)
 | 
					0:331        'datu' (temp mediump uint)
 | 
				
			||||||
0:332      imageAtomicXor (global mediump int)
 | 
					0:332      imageAtomicXor (global highp int)
 | 
				
			||||||
0:332        'im2Di' (layout(r32i ) uniform highp iimage2D)
 | 
					0:332        'im2Di' (layout(r32i ) uniform highp iimage2D)
 | 
				
			||||||
0:332        'P' (uniform mediump 2-component vector of int)
 | 
					0:332        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:332        'dati' (temp mediump int)
 | 
					0:332        'dati' (temp mediump int)
 | 
				
			||||||
0:333      imageAtomicXor (global mediump uint)
 | 
					0:333      imageAtomicXor (global highp uint)
 | 
				
			||||||
0:333        'im2Du' (layout(r32ui ) uniform highp uimage2D)
 | 
					0:333        'im2Du' (layout(r32ui ) uniform highp uimage2D)
 | 
				
			||||||
0:333        'P' (uniform mediump 2-component vector of int)
 | 
					0:333        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:333        'datu' (temp mediump uint)
 | 
					0:333        'datu' (temp mediump uint)
 | 
				
			||||||
0:334      imageAtomicExchange (global mediump int)
 | 
					0:334      imageAtomicExchange (global highp int)
 | 
				
			||||||
0:334        'im2Di' (layout(r32i ) uniform highp iimage2D)
 | 
					0:334        'im2Di' (layout(r32i ) uniform highp iimage2D)
 | 
				
			||||||
0:334        'P' (uniform mediump 2-component vector of int)
 | 
					0:334        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:334        'dati' (temp mediump int)
 | 
					0:334        'dati' (temp mediump int)
 | 
				
			||||||
0:335      imageAtomicExchange (global mediump uint)
 | 
					0:335      imageAtomicExchange (global highp uint)
 | 
				
			||||||
0:335        'im2Du' (layout(r32ui ) uniform highp uimage2D)
 | 
					0:335        'im2Du' (layout(r32ui ) uniform highp uimage2D)
 | 
				
			||||||
0:335        'P' (uniform mediump 2-component vector of int)
 | 
					0:335        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:335        'datu' (temp mediump uint)
 | 
					0:335        'datu' (temp mediump uint)
 | 
				
			||||||
@ -1627,23 +1627,23 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:336        'im2Df' (layout(r32f ) uniform highp image2D)
 | 
					0:336        'im2Df' (layout(r32f ) uniform highp image2D)
 | 
				
			||||||
0:336        'P' (uniform mediump 2-component vector of int)
 | 
					0:336        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:336        'datf' (temp mediump float)
 | 
					0:336        'datf' (temp mediump float)
 | 
				
			||||||
0:337      imageAtomicCompSwap (global mediump int)
 | 
					0:337      imageAtomicCompSwap (global highp int)
 | 
				
			||||||
0:337        'im2Di' (layout(r32i ) uniform highp iimage2D)
 | 
					0:337        'im2Di' (layout(r32i ) uniform highp iimage2D)
 | 
				
			||||||
0:337        'P' (uniform mediump 2-component vector of int)
 | 
					0:337        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:337        Constant:
 | 
					0:337        Constant:
 | 
				
			||||||
0:337          3 (const int)
 | 
					0:337          3 (const int)
 | 
				
			||||||
0:337        'dati' (temp mediump int)
 | 
					0:337        'dati' (temp mediump int)
 | 
				
			||||||
0:338      imageAtomicCompSwap (global mediump uint)
 | 
					0:338      imageAtomicCompSwap (global highp uint)
 | 
				
			||||||
0:338        'im2Du' (layout(r32ui ) uniform highp uimage2D)
 | 
					0:338        'im2Du' (layout(r32ui ) uniform highp uimage2D)
 | 
				
			||||||
0:338        'P' (uniform mediump 2-component vector of int)
 | 
					0:338        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:338        Constant:
 | 
					0:338        Constant:
 | 
				
			||||||
0:338          5 (const uint)
 | 
					0:338          5 (const uint)
 | 
				
			||||||
0:338        'datu' (temp mediump uint)
 | 
					0:338        'datu' (temp mediump uint)
 | 
				
			||||||
0:340      imageAtomicMax (global mediump int)
 | 
					0:340      imageAtomicMax (global highp int)
 | 
				
			||||||
0:340        'badIm2Di' (layout(rgba16i ) uniform highp iimage2D)
 | 
					0:340        'badIm2Di' (layout(rgba16i ) uniform highp iimage2D)
 | 
				
			||||||
0:340        'P' (uniform mediump 2-component vector of int)
 | 
					0:340        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:340        'dati' (temp mediump int)
 | 
					0:340        'dati' (temp mediump int)
 | 
				
			||||||
0:341      imageAtomicMax (global mediump uint)
 | 
					0:341      imageAtomicMax (global highp uint)
 | 
				
			||||||
0:341        'badIm2Du' (layout(rgba8ui ) uniform highp uimage2D)
 | 
					0:341        'badIm2Du' (layout(rgba8ui ) uniform highp uimage2D)
 | 
				
			||||||
0:341        'P' (uniform mediump 2-component vector of int)
 | 
					0:341        'P' (uniform mediump 2-component vector of int)
 | 
				
			||||||
0:341        'datu' (temp mediump uint)
 | 
					0:341        'datu' (temp mediump uint)
 | 
				
			||||||
 | 
				
			|||||||
@ -186,11 +186,11 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:33          'u3' (temp highp 3-component vector of uint)
 | 
					0:33          'u3' (temp highp 3-component vector of uint)
 | 
				
			||||||
0:34      move second child to first child (temp highp 2-component vector of int)
 | 
					0:34      move second child to first child (temp highp 2-component vector of int)
 | 
				
			||||||
0:34        'i2' (temp highp 2-component vector of int)
 | 
					0:34        'i2' (temp highp 2-component vector of int)
 | 
				
			||||||
0:34        findLSB (global highp 2-component vector of int)
 | 
					0:34        findLSB (global lowp 2-component vector of int)
 | 
				
			||||||
0:34          'i2' (temp highp 2-component vector of int)
 | 
					0:34          'i2' (temp highp 2-component vector of int)
 | 
				
			||||||
0:35      move second child to first child (temp highp 4-component vector of int)
 | 
					0:35      move second child to first child (temp highp 4-component vector of int)
 | 
				
			||||||
0:35        'i4' (temp highp 4-component vector of int)
 | 
					0:35        'i4' (temp highp 4-component vector of int)
 | 
				
			||||||
0:35        findLSB (global highp 4-component vector of int)
 | 
					0:35        findLSB (global lowp 4-component vector of int)
 | 
				
			||||||
0:35          'u4' (temp highp 4-component vector of uint)
 | 
					0:35          'u4' (temp highp 4-component vector of uint)
 | 
				
			||||||
0:36      move second child to first child (temp highp int)
 | 
					0:36      move second child to first child (temp highp int)
 | 
				
			||||||
0:36        'i1' (temp highp int)
 | 
					0:36        'i1' (temp highp int)
 | 
				
			||||||
@ -1117,11 +1117,11 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:33          'u3' (temp highp 3-component vector of uint)
 | 
					0:33          'u3' (temp highp 3-component vector of uint)
 | 
				
			||||||
0:34      move second child to first child (temp highp 2-component vector of int)
 | 
					0:34      move second child to first child (temp highp 2-component vector of int)
 | 
				
			||||||
0:34        'i2' (temp highp 2-component vector of int)
 | 
					0:34        'i2' (temp highp 2-component vector of int)
 | 
				
			||||||
0:34        findLSB (global highp 2-component vector of int)
 | 
					0:34        findLSB (global lowp 2-component vector of int)
 | 
				
			||||||
0:34          'i2' (temp highp 2-component vector of int)
 | 
					0:34          'i2' (temp highp 2-component vector of int)
 | 
				
			||||||
0:35      move second child to first child (temp highp 4-component vector of int)
 | 
					0:35      move second child to first child (temp highp 4-component vector of int)
 | 
				
			||||||
0:35        'i4' (temp highp 4-component vector of int)
 | 
					0:35        'i4' (temp highp 4-component vector of int)
 | 
				
			||||||
0:35        findLSB (global highp 4-component vector of int)
 | 
					0:35        findLSB (global lowp 4-component vector of int)
 | 
				
			||||||
0:35          'u4' (temp highp 4-component vector of uint)
 | 
					0:35          'u4' (temp highp 4-component vector of uint)
 | 
				
			||||||
0:36      move second child to first child (temp highp int)
 | 
					0:36      move second child to first child (temp highp int)
 | 
				
			||||||
0:36        'i1' (temp highp int)
 | 
					0:36        'i1' (temp highp int)
 | 
				
			||||||
 | 
				
			|||||||
@ -13,7 +13,7 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:20      Sequence
 | 
					0:20      Sequence
 | 
				
			||||||
0:20        move second child to first child (temp highp 4-component vector of float)
 | 
					0:20        move second child to first child (temp highp 4-component vector of float)
 | 
				
			||||||
0:20          't' (temp highp 4-component vector of float)
 | 
					0:20          't' (temp highp 4-component vector of float)
 | 
				
			||||||
0:20          texture (global highp 4-component vector of float)
 | 
					0:20          texture (global lowp 4-component vector of float)
 | 
				
			||||||
0:20            's2D' (uniform lowp sampler2D)
 | 
					0:20            's2D' (uniform lowp sampler2D)
 | 
				
			||||||
0:20            Constant:
 | 
					0:20            Constant:
 | 
				
			||||||
0:20              0.100000
 | 
					0:20              0.100000
 | 
				
			||||||
@ -27,7 +27,7 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:21            0.200000
 | 
					0:21            0.200000
 | 
				
			||||||
0:22      add second child into first child (temp highp 4-component vector of float)
 | 
					0:22      add second child into first child (temp highp 4-component vector of float)
 | 
				
			||||||
0:22        't' (temp highp 4-component vector of float)
 | 
					0:22        't' (temp highp 4-component vector of float)
 | 
				
			||||||
0:22        texture (global highp float)
 | 
					0:22        texture (global mediump float)
 | 
				
			||||||
0:22          's2dAS' (uniform mediump sampler2DArrayShadow)
 | 
					0:22          's2dAS' (uniform mediump sampler2DArrayShadow)
 | 
				
			||||||
0:22          Constant:
 | 
					0:22          Constant:
 | 
				
			||||||
0:22            0.500000
 | 
					0:22            0.500000
 | 
				
			||||||
@ -61,7 +61,7 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:20      Sequence
 | 
					0:20      Sequence
 | 
				
			||||||
0:20        move second child to first child (temp highp 4-component vector of float)
 | 
					0:20        move second child to first child (temp highp 4-component vector of float)
 | 
				
			||||||
0:20          't' (temp highp 4-component vector of float)
 | 
					0:20          't' (temp highp 4-component vector of float)
 | 
				
			||||||
0:20          texture (global highp 4-component vector of float)
 | 
					0:20          texture (global lowp 4-component vector of float)
 | 
				
			||||||
0:20            's2D' (uniform lowp sampler2D)
 | 
					0:20            's2D' (uniform lowp sampler2D)
 | 
				
			||||||
0:20            Constant:
 | 
					0:20            Constant:
 | 
				
			||||||
0:20              0.100000
 | 
					0:20              0.100000
 | 
				
			||||||
@ -75,7 +75,7 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:21            0.200000
 | 
					0:21            0.200000
 | 
				
			||||||
0:22      add second child into first child (temp highp 4-component vector of float)
 | 
					0:22      add second child into first child (temp highp 4-component vector of float)
 | 
				
			||||||
0:22        't' (temp highp 4-component vector of float)
 | 
					0:22        't' (temp highp 4-component vector of float)
 | 
				
			||||||
0:22        texture (global highp float)
 | 
					0:22        texture (global mediump float)
 | 
				
			||||||
0:22          's2dAS' (uniform mediump sampler2DArrayShadow)
 | 
					0:22          's2dAS' (uniform mediump sampler2DArrayShadow)
 | 
				
			||||||
0:22          Constant:
 | 
					0:22          Constant:
 | 
				
			||||||
0:22            0.500000
 | 
					0:22            0.500000
 | 
				
			||||||
 | 
				
			|||||||
@ -44,6 +44,8 @@ Linked vertex stage:
 | 
				
			|||||||
                              Name 173  "u3"
 | 
					                              Name 173  "u3"
 | 
				
			||||||
                              Name 182  "i3"
 | 
					                              Name 182  "i3"
 | 
				
			||||||
                              Name 247  "v4"
 | 
					                              Name 247  "v4"
 | 
				
			||||||
 | 
					                              Decorate 223 RelaxedPrecision
 | 
				
			||||||
 | 
					                              Decorate 230 RelaxedPrecision
 | 
				
			||||||
                              Decorate 261 RelaxedPrecision
 | 
					                              Decorate 261 RelaxedPrecision
 | 
				
			||||||
                              Decorate 265 RelaxedPrecision
 | 
					                              Decorate 265 RelaxedPrecision
 | 
				
			||||||
               2:             TypeVoid
 | 
					               2:             TypeVoid
 | 
				
			||||||
 | 
				
			|||||||
@ -113,7 +113,7 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:55        true case
 | 
					0:55        true case
 | 
				
			||||||
0:56        move second child to first child (temp mediump 4-component vector of uint)
 | 
					0:56        move second child to first child (temp mediump 4-component vector of uint)
 | 
				
			||||||
0:56          'c' (out mediump 4-component vector of uint)
 | 
					0:56          'c' (out mediump 4-component vector of uint)
 | 
				
			||||||
0:56          texture (global mediump 4-component vector of uint)
 | 
					0:56          texture (global lowp 4-component vector of uint)
 | 
				
			||||||
0:56            'usampler' (uniform lowp usampler2D)
 | 
					0:56            'usampler' (uniform lowp usampler2D)
 | 
				
			||||||
0:56            'tc' (smooth in highp 2-component vector of float)
 | 
					0:56            'tc' (smooth in highp 2-component vector of float)
 | 
				
			||||||
0:57      Test condition and select (temp void)
 | 
					0:57      Test condition and select (temp void)
 | 
				
			||||||
@ -124,7 +124,7 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:57        true case
 | 
					0:57        true case
 | 
				
			||||||
0:58        move second child to first child (temp mediump 4-component vector of uint)
 | 
					0:58        move second child to first child (temp mediump 4-component vector of uint)
 | 
				
			||||||
0:58          'c' (out mediump 4-component vector of uint)
 | 
					0:58          'c' (out mediump 4-component vector of uint)
 | 
				
			||||||
0:58          texture (global mediump 4-component vector of uint)
 | 
					0:58          texture (global lowp 4-component vector of uint)
 | 
				
			||||||
0:58            'usampler' (uniform lowp usampler2D)
 | 
					0:58            'usampler' (uniform lowp usampler2D)
 | 
				
			||||||
0:58            add (temp highp 2-component vector of float)
 | 
					0:58            add (temp highp 2-component vector of float)
 | 
				
			||||||
0:58              'tc' (smooth in highp 2-component vector of float)
 | 
					0:58              'tc' (smooth in highp 2-component vector of float)
 | 
				
			||||||
@ -139,7 +139,7 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:59        true case
 | 
					0:59        true case
 | 
				
			||||||
0:60        move second child to first child (temp mediump 4-component vector of uint)
 | 
					0:60        move second child to first child (temp mediump 4-component vector of uint)
 | 
				
			||||||
0:60          'c' (out mediump 4-component vector of uint)
 | 
					0:60          'c' (out mediump 4-component vector of uint)
 | 
				
			||||||
0:60          texture (global mediump 4-component vector of uint)
 | 
					0:60          texture (global lowp 4-component vector of uint)
 | 
				
			||||||
0:60            'usampler' (uniform lowp usampler2D)
 | 
					0:60            'usampler' (uniform lowp usampler2D)
 | 
				
			||||||
0:60            subtract (temp highp 2-component vector of float)
 | 
					0:60            subtract (temp highp 2-component vector of float)
 | 
				
			||||||
0:60              'tc' (smooth in highp 2-component vector of float)
 | 
					0:60              'tc' (smooth in highp 2-component vector of float)
 | 
				
			||||||
@ -412,7 +412,7 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:55        true case
 | 
					0:55        true case
 | 
				
			||||||
0:56        move second child to first child (temp mediump 4-component vector of uint)
 | 
					0:56        move second child to first child (temp mediump 4-component vector of uint)
 | 
				
			||||||
0:56          'c' (out mediump 4-component vector of uint)
 | 
					0:56          'c' (out mediump 4-component vector of uint)
 | 
				
			||||||
0:56          texture (global mediump 4-component vector of uint)
 | 
					0:56          texture (global lowp 4-component vector of uint)
 | 
				
			||||||
0:56            'usampler' (uniform lowp usampler2D)
 | 
					0:56            'usampler' (uniform lowp usampler2D)
 | 
				
			||||||
0:56            'tc' (smooth in highp 2-component vector of float)
 | 
					0:56            'tc' (smooth in highp 2-component vector of float)
 | 
				
			||||||
0:57      Test condition and select (temp void)
 | 
					0:57      Test condition and select (temp void)
 | 
				
			||||||
@ -423,7 +423,7 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:57        true case
 | 
					0:57        true case
 | 
				
			||||||
0:58        move second child to first child (temp mediump 4-component vector of uint)
 | 
					0:58        move second child to first child (temp mediump 4-component vector of uint)
 | 
				
			||||||
0:58          'c' (out mediump 4-component vector of uint)
 | 
					0:58          'c' (out mediump 4-component vector of uint)
 | 
				
			||||||
0:58          texture (global mediump 4-component vector of uint)
 | 
					0:58          texture (global lowp 4-component vector of uint)
 | 
				
			||||||
0:58            'usampler' (uniform lowp usampler2D)
 | 
					0:58            'usampler' (uniform lowp usampler2D)
 | 
				
			||||||
0:58            add (temp highp 2-component vector of float)
 | 
					0:58            add (temp highp 2-component vector of float)
 | 
				
			||||||
0:58              'tc' (smooth in highp 2-component vector of float)
 | 
					0:58              'tc' (smooth in highp 2-component vector of float)
 | 
				
			||||||
@ -438,7 +438,7 @@ ERROR: node is still EOpNull!
 | 
				
			|||||||
0:59        true case
 | 
					0:59        true case
 | 
				
			||||||
0:60        move second child to first child (temp mediump 4-component vector of uint)
 | 
					0:60        move second child to first child (temp mediump 4-component vector of uint)
 | 
				
			||||||
0:60          'c' (out mediump 4-component vector of uint)
 | 
					0:60          'c' (out mediump 4-component vector of uint)
 | 
				
			||||||
0:60          texture (global mediump 4-component vector of uint)
 | 
					0:60          texture (global lowp 4-component vector of uint)
 | 
				
			||||||
0:60            'usampler' (uniform lowp usampler2D)
 | 
					0:60            'usampler' (uniform lowp usampler2D)
 | 
				
			||||||
0:60            subtract (temp highp 2-component vector of float)
 | 
					0:60            subtract (temp highp 2-component vector of float)
 | 
				
			||||||
0:60              'tc' (smooth in highp 2-component vector of float)
 | 
					0:60              'tc' (smooth in highp 2-component vector of float)
 | 
				
			||||||
 | 
				
			|||||||
@ -1242,15 +1242,15 @@ void TBuiltIns::initialize(int version, EProfile profile, int spv, int vulkan)
 | 
				
			|||||||
    if ((profile == EEsProfile && version >= 310) ||
 | 
					    if ((profile == EEsProfile && version >= 310) ||
 | 
				
			||||||
        (profile != EEsProfile && version >= 400)) {
 | 
					        (profile != EEsProfile && version >= 400)) {
 | 
				
			||||||
        commonBuiltins.append(
 | 
					        commonBuiltins.append(
 | 
				
			||||||
            " uint uaddCarry( uint,  uint, out  uint carry);"
 | 
					            "highp  uint uaddCarry( uint,  uint, out  uint carry);"
 | 
				
			||||||
            "uvec2 uaddCarry(uvec2, uvec2, out uvec2 carry);"
 | 
					            "highp uvec2 uaddCarry(uvec2, uvec2, out uvec2 carry);"
 | 
				
			||||||
            "uvec3 uaddCarry(uvec3, uvec3, out uvec3 carry);"
 | 
					            "highp uvec3 uaddCarry(uvec3, uvec3, out uvec3 carry);"
 | 
				
			||||||
            "uvec4 uaddCarry(uvec4, uvec4, out uvec4 carry);"
 | 
					            "highp uvec4 uaddCarry(uvec4, uvec4, out uvec4 carry);"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            " uint usubBorrow( uint,  uint, out  uint borrow);"
 | 
					            "highp  uint usubBorrow( uint,  uint, out  uint borrow);"
 | 
				
			||||||
            "uvec2 usubBorrow(uvec2, uvec2, out uvec2 borrow);"
 | 
					            "highp uvec2 usubBorrow(uvec2, uvec2, out uvec2 borrow);"
 | 
				
			||||||
            "uvec3 usubBorrow(uvec3, uvec3, out uvec3 borrow);"
 | 
					            "highp uvec3 usubBorrow(uvec3, uvec3, out uvec3 borrow);"
 | 
				
			||||||
            "uvec4 usubBorrow(uvec4, uvec4, out uvec4 borrow);"
 | 
					            "highp uvec4 usubBorrow(uvec4, uvec4, out uvec4 borrow);"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            "void umulExtended( uint,  uint, out  uint, out  uint lsb);"
 | 
					            "void umulExtended( uint,  uint, out  uint, out  uint lsb);"
 | 
				
			||||||
            "void umulExtended(uvec2, uvec2, out uvec2, out uvec2 lsb);"
 | 
					            "void umulExtended(uvec2, uvec2, out uvec2, out uvec2 lsb);"
 | 
				
			||||||
@ -1302,15 +1302,15 @@ void TBuiltIns::initialize(int version, EProfile profile, int spv, int vulkan)
 | 
				
			|||||||
            "ivec3 bitCount(uvec3);"
 | 
					            "ivec3 bitCount(uvec3);"
 | 
				
			||||||
            "ivec4 bitCount(uvec4);"
 | 
					            "ivec4 bitCount(uvec4);"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            "  int findLSB(  int);"
 | 
					            "lowp   int findLSB(  int);"
 | 
				
			||||||
            "ivec2 findLSB(ivec2);"
 | 
					            "lowp ivec2 findLSB(ivec2);"
 | 
				
			||||||
            "ivec3 findLSB(ivec3);"
 | 
					            "lowp ivec3 findLSB(ivec3);"
 | 
				
			||||||
            "ivec4 findLSB(ivec4);"
 | 
					            "lowp ivec4 findLSB(ivec4);"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            "  int findLSB( uint);"
 | 
					            "lowp   int findLSB( uint);"
 | 
				
			||||||
            "ivec2 findLSB(uvec2);"
 | 
					            "lowp ivec2 findLSB(uvec2);"
 | 
				
			||||||
            "ivec3 findLSB(uvec3);"
 | 
					            "lowp ivec3 findLSB(uvec3);"
 | 
				
			||||||
            "ivec4 findLSB(uvec4);"
 | 
					            "lowp ivec4 findLSB(uvec4);"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            "  int findMSB(  int);"
 | 
					            "  int findMSB(  int);"
 | 
				
			||||||
            "ivec2 findMSB(ivec2);"
 | 
					            "ivec2 findMSB(ivec2);"
 | 
				
			||||||
@ -1731,14 +1731,14 @@ void TBuiltIns::initialize(int version, EProfile profile, int spv, int vulkan)
 | 
				
			|||||||
    if ((profile != EEsProfile && version >= 430) ||
 | 
					    if ((profile != EEsProfile && version >= 430) ||
 | 
				
			||||||
        (profile == EEsProfile && version >= 310)) {
 | 
					        (profile == EEsProfile && version >= 310)) {
 | 
				
			||||||
        stageBuiltins[EShLangCompute].append(
 | 
					        stageBuiltins[EShLangCompute].append(
 | 
				
			||||||
            "in uvec3 gl_NumWorkGroups;"
 | 
					            "in    highp uvec3 gl_NumWorkGroups;"
 | 
				
			||||||
            "const uvec3 gl_WorkGroupSize = uvec3(1,1,1);"
 | 
					            "const highp uvec3 gl_WorkGroupSize = uvec3(1,1,1);"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            "in uvec3 gl_WorkGroupID;"
 | 
					            "in highp uvec3 gl_WorkGroupID;"
 | 
				
			||||||
            "in uvec3 gl_LocalInvocationID;"
 | 
					            "in highp uvec3 gl_LocalInvocationID;"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            "in uvec3 gl_GlobalInvocationID;"
 | 
					            "in highp uvec3 gl_GlobalInvocationID;"
 | 
				
			||||||
            "in uint gl_LocalInvocationIndex;"
 | 
					            "in highp uint gl_LocalInvocationIndex;"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            "\n");
 | 
					            "\n");
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@ -1976,12 +1976,12 @@ void TBuiltIns::initialize(int version, EProfile profile, int spv, int vulkan)
 | 
				
			|||||||
            "in highp int gl_InvocationID;"
 | 
					            "in highp int gl_InvocationID;"
 | 
				
			||||||
            "\n"
 | 
					            "\n"
 | 
				
			||||||
            "out gl_PerVertex {"
 | 
					            "out gl_PerVertex {"
 | 
				
			||||||
                "vec4 gl_Position;"
 | 
					                "highp vec4 gl_Position;"
 | 
				
			||||||
                "float gl_PointSize;"
 | 
					                "highp float gl_PointSize;"
 | 
				
			||||||
            "};"
 | 
					            "};"
 | 
				
			||||||
            "\n"
 | 
					            "\n"
 | 
				
			||||||
            "out int gl_PrimitiveID;"
 | 
					            "out highp int gl_PrimitiveID;"
 | 
				
			||||||
            "out int gl_Layer;"
 | 
					            "out highp int gl_Layer;"
 | 
				
			||||||
            "\n"
 | 
					            "\n"
 | 
				
			||||||
            );
 | 
					            );
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@ -2102,8 +2102,8 @@ void TBuiltIns::initialize(int version, EProfile profile, int spv, int vulkan)
 | 
				
			|||||||
            "patch in highp float gl_TessLevelInner[2];"
 | 
					            "patch in highp float gl_TessLevelInner[2];"
 | 
				
			||||||
                
 | 
					                
 | 
				
			||||||
            "out gl_PerVertex {"
 | 
					            "out gl_PerVertex {"
 | 
				
			||||||
                "vec4 gl_Position;"
 | 
					                "highp vec4 gl_Position;"
 | 
				
			||||||
                "float gl_PointSize;"
 | 
					                "highp float gl_PointSize;"
 | 
				
			||||||
            );
 | 
					            );
 | 
				
			||||||
        stageBuiltins[EShLangTessEvaluation].append(
 | 
					        stageBuiltins[EShLangTessEvaluation].append(
 | 
				
			||||||
            "};"
 | 
					            "};"
 | 
				
			||||||
@ -2444,6 +2444,8 @@ void TBuiltIns::addImageFunctions(TSampler sampler, TString& typeName, int versi
 | 
				
			|||||||
    if (sampler.ms)
 | 
					    if (sampler.ms)
 | 
				
			||||||
        imageParams.append(", int");
 | 
					        imageParams.append(", int");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (profile == EEsProfile)
 | 
				
			||||||
 | 
					        commonBuiltins.append("highp ");
 | 
				
			||||||
    commonBuiltins.append(prefixes[sampler.type]);
 | 
					    commonBuiltins.append(prefixes[sampler.type]);
 | 
				
			||||||
    commonBuiltins.append("vec4 imageLoad(readonly volatile coherent ");
 | 
					    commonBuiltins.append("vec4 imageLoad(readonly volatile coherent ");
 | 
				
			||||||
    commonBuiltins.append(imageParams);
 | 
					    commonBuiltins.append(imageParams);
 | 
				
			||||||
@ -2467,7 +2469,7 @@ void TBuiltIns::addImageFunctions(TSampler sampler, TString& typeName, int versi
 | 
				
			|||||||
    if ( profile != EEsProfile ||
 | 
					    if ( profile != EEsProfile ||
 | 
				
			||||||
        (profile == EEsProfile && version >= 310)) {
 | 
					        (profile == EEsProfile && version >= 310)) {
 | 
				
			||||||
        if (sampler.type == EbtInt || sampler.type == EbtUint) {
 | 
					        if (sampler.type == EbtInt || sampler.type == EbtUint) {
 | 
				
			||||||
            const char* dataType = sampler.type == EbtInt ? "int" : "uint";
 | 
					            const char* dataType = sampler.type == EbtInt ? "highp int" : "highp uint";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            const int numBuiltins = 7;
 | 
					            const int numBuiltins = 7;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -69,7 +69,7 @@ TParseContext::TParseContext(TSymbolTable& symbolTable, TIntermediate& interm, b
 | 
				
			|||||||
    for (int type = 0; type < maxSamplerIndex; ++type)
 | 
					    for (int type = 0; type < maxSamplerIndex; ++type)
 | 
				
			||||||
        defaultSamplerPrecision[type] = EpqNone;
 | 
					        defaultSamplerPrecision[type] = EpqNone;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // replace with real defaults for those that have them
 | 
					    // replace with real precision defaults for those that have them
 | 
				
			||||||
    if (profile == EEsProfile) {
 | 
					    if (profile == EEsProfile) {
 | 
				
			||||||
        TSampler sampler;
 | 
					        TSampler sampler;
 | 
				
			||||||
        sampler.set(EbtFloat, Esd2D);
 | 
					        sampler.set(EbtFloat, Esd2D);
 | 
				
			||||||
@ -80,6 +80,11 @@ TParseContext::TParseContext(TSymbolTable& symbolTable, TIntermediate& interm, b
 | 
				
			|||||||
        sampler.external = true;
 | 
					        sampler.external = true;
 | 
				
			||||||
        defaultSamplerPrecision[computeSamplerTypeIndex(sampler)] = EpqLow;
 | 
					        defaultSamplerPrecision[computeSamplerTypeIndex(sampler)] = EpqLow;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // If we are parsing built-in computational variables/functions, it is meaningful to record
 | 
				
			||||||
 | 
					        // whether the built-in has no precision qualifier, as that ambiguity
 | 
				
			||||||
 | 
					        // is used to resolve the precision from the supplied arguments/operands instead.
 | 
				
			||||||
 | 
					        // So, we don't actually want to replace EpqNone with a default precision for built-ins.
 | 
				
			||||||
 | 
					        if (! parsingBuiltins) {
 | 
				
			||||||
            switch (language) {
 | 
					            switch (language) {
 | 
				
			||||||
            case EShLangFragment:
 | 
					            case EShLangFragment:
 | 
				
			||||||
                defaultPrecision[EbtInt] = EpqMedium;
 | 
					                defaultPrecision[EbtInt] = EpqMedium;
 | 
				
			||||||
@ -91,6 +96,7 @@ TParseContext::TParseContext(TSymbolTable& symbolTable, TIntermediate& interm, b
 | 
				
			|||||||
                defaultPrecision[EbtFloat] = EpqHigh;
 | 
					                defaultPrecision[EbtFloat] = EpqHigh;
 | 
				
			||||||
                break;
 | 
					                break;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        defaultPrecision[EbtSampler] = EpqLow;
 | 
					        defaultPrecision[EbtSampler] = EpqLow;
 | 
				
			||||||
        defaultPrecision[EbtAtomicUint] = EpqHigh;
 | 
					        defaultPrecision[EbtAtomicUint] = EpqHigh;
 | 
				
			||||||
 | 
				
			|||||||
@ -334,7 +334,7 @@ protected:
 | 
				
			|||||||
    TParseContext(TParseContext&);
 | 
					    TParseContext(TParseContext&);
 | 
				
			||||||
    TParseContext& operator=(TParseContext&);
 | 
					    TParseContext& operator=(TParseContext&);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    bool parsingBuiltins;        // true if parsing built-in symbols/functions
 | 
					    const bool parsingBuiltins;        // true if parsing built-in symbols/functions
 | 
				
			||||||
    static const int maxSamplerIndex = EsdNumDims * (EbtNumTypes * (2 * 2 * 2)); // see computeSamplerTypeIndex()
 | 
					    static const int maxSamplerIndex = EsdNumDims * (EbtNumTypes * (2 * 2 * 2)); // see computeSamplerTypeIndex()
 | 
				
			||||||
    TPrecisionQualifier defaultSamplerPrecision[maxSamplerIndex];
 | 
					    TPrecisionQualifier defaultSamplerPrecision[maxSamplerIndex];
 | 
				
			||||||
    bool afterEOF;
 | 
					    bool afterEOF;
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user