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:
John Kessenich
2016-05-03 19:34:00 -06:00
parent f88a5c756e
commit af459216a1
13 changed files with 213 additions and 199 deletions

View File

@@ -147,44 +147,44 @@ ERROR: node is still EOpNull!
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 '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 '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 '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 'c4D' (smooth temp lowp 4-component vector of float)
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 '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 'c3D' (smooth in lowp 3-component vector of 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 '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 '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: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 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 'c3D' (smooth in lowp 3-component vector of float)
0:76 Constant:
0:76 4.200000
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 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 'c3D' (smooth in lowp 3-component vector of 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 '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 'ic3D' (flat in mediump 3-component vector of 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: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 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 '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 '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 'c4D' (smooth temp lowp 4-component vector of float)
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 '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 'c3D' (smooth in lowp 3-component vector of 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 '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 '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: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 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 'c3D' (smooth in lowp 3-component vector of float)
0:76 Constant:
0:76 4.200000
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 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 'c3D' (smooth in lowp 3-component vector of 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 '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 'ic3D' (flat in mediump 3-component vector of int)
0:78 'ic1D' (flat in mediump int)