Front-end: Don't lower precision of bit operations taking highp inputs.

See issue #350 for detail.  This may be an ESSL specification issue.
This commit is contained in:
John Kessenich
2016-06-30 16:46:24 -06:00
parent ae3e77308c
commit f5dcdf0123
4 changed files with 52 additions and 60 deletions

View File

@@ -161,9 +161,9 @@ ERROR: node is still EOpNull!
0:62 packSnorm2x16 (global highp uint)
0:62 'v2a' (global mediump 2-component vector of float)
0:63 Sequence
0:63 move second child to first child (temp highp 2-component vector of float)
0:63 move second child to first child (temp mediump 2-component vector of float)
0:63 'v20' (temp mediump 2-component vector of float)
0:63 unpackSnorm2x16 (global highp 2-component vector of float)
0:63 unpackSnorm2x16 (global mediump 2-component vector of float)
0:63 'uy' (global mediump uint)
0:64 Sequence
0:64 move second child to first child (temp highp uint)
@@ -368,9 +368,9 @@ ERROR: node is still EOpNull!
0:62 packSnorm2x16 (global highp uint)
0:62 'v2a' (global mediump 2-component vector of float)
0:63 Sequence
0:63 move second child to first child (temp highp 2-component vector of float)
0:63 move second child to first child (temp mediump 2-component vector of float)
0:63 'v20' (temp mediump 2-component vector of float)
0:63 unpackSnorm2x16 (global highp 2-component vector of float)
0:63 unpackSnorm2x16 (global mediump 2-component vector of float)
0:63 'uy' (global mediump uint)
0:64 Sequence
0:64 move second child to first child (temp highp uint)

View File

@@ -179,27 +179,27 @@ ERROR: node is still EOpNull!
0:31 'u4' (temp highp 4-component vector of uint)
0:32 move second child to first child (temp highp int)
0:32 'i1' (temp highp int)
0:32 bitCount (global lowp int)
0:32 bitCount (global highp int)
0:32 'i1' (temp highp int)
0:33 move second child to first child (temp highp 3-component vector of int)
0:33 'i3' (temp highp 3-component vector of int)
0:33 bitCount (global lowp 3-component vector of int)
0:33 bitCount (global highp 3-component vector of int)
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 'i2' (temp highp 2-component vector of int)
0:34 findLSB (global lowp 2-component vector of int)
0:34 findLSB (global 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 'i4' (temp highp 4-component vector of int)
0:35 findLSB (global lowp 4-component vector of int)
0:35 findLSB (global highp 4-component vector of int)
0:35 'u4' (temp highp 4-component vector of uint)
0:36 move second child to first child (temp highp int)
0:36 'i1' (temp highp int)
0:36 findMSB (global lowp int)
0:36 findMSB (global highp int)
0:36 'i1' (temp highp int)
0:37 move second child to first child (temp highp 2-component vector of int)
0:37 'i2' (temp highp 2-component vector of int)
0:37 findMSB (global lowp 2-component vector of int)
0:37 findMSB (global highp 2-component vector of int)
0:37 'u2' (temp highp 2-component vector of uint)
0:40 move second child to first child (temp highp 3-component vector of float)
0:40 'v3' (temp highp 3-component vector of float)
@@ -219,13 +219,13 @@ ERROR: node is still EOpNull!
0:46 'u1' (temp highp uint)
0:46 PackSnorm4x8 (global highp uint)
0:46 'v4' (temp mediump 4-component vector of float)
0:47 move second child to first child (temp mediump 4-component vector of float)
0:47 move second child to first child (temp highp 4-component vector of float)
0:47 'v4' (temp mediump 4-component vector of float)
0:47 UnpackUnorm4x8 (global mediump 4-component vector of float)
0:47 UnpackUnorm4x8 (global highp 4-component vector of float)
0:47 'u1' (temp highp uint)
0:48 move second child to first child (temp mediump 4-component vector of float)
0:48 move second child to first child (temp highp 4-component vector of float)
0:48 'v4' (temp mediump 4-component vector of float)
0:48 UnpackSnorm4x8 (global mediump 4-component vector of float)
0:48 UnpackSnorm4x8 (global highp 4-component vector of float)
0:48 'u1' (temp highp uint)
0:60 Function Definition: foo( (global void)
0:60 Function Parameters:
@@ -1110,27 +1110,27 @@ ERROR: node is still EOpNull!
0:31 'u4' (temp highp 4-component vector of uint)
0:32 move second child to first child (temp highp int)
0:32 'i1' (temp highp int)
0:32 bitCount (global lowp int)
0:32 bitCount (global highp int)
0:32 'i1' (temp highp int)
0:33 move second child to first child (temp highp 3-component vector of int)
0:33 'i3' (temp highp 3-component vector of int)
0:33 bitCount (global lowp 3-component vector of int)
0:33 bitCount (global highp 3-component vector of int)
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 'i2' (temp highp 2-component vector of int)
0:34 findLSB (global lowp 2-component vector of int)
0:34 findLSB (global 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 'i4' (temp highp 4-component vector of int)
0:35 findLSB (global lowp 4-component vector of int)
0:35 findLSB (global highp 4-component vector of int)
0:35 'u4' (temp highp 4-component vector of uint)
0:36 move second child to first child (temp highp int)
0:36 'i1' (temp highp int)
0:36 findMSB (global lowp int)
0:36 findMSB (global highp int)
0:36 'i1' (temp highp int)
0:37 move second child to first child (temp highp 2-component vector of int)
0:37 'i2' (temp highp 2-component vector of int)
0:37 findMSB (global lowp 2-component vector of int)
0:37 findMSB (global highp 2-component vector of int)
0:37 'u2' (temp highp 2-component vector of uint)
0:40 move second child to first child (temp highp 3-component vector of float)
0:40 'v3' (temp highp 3-component vector of float)
@@ -1150,13 +1150,13 @@ ERROR: node is still EOpNull!
0:46 'u1' (temp highp uint)
0:46 PackSnorm4x8 (global highp uint)
0:46 'v4' (temp mediump 4-component vector of float)
0:47 move second child to first child (temp mediump 4-component vector of float)
0:47 move second child to first child (temp highp 4-component vector of float)
0:47 'v4' (temp mediump 4-component vector of float)
0:47 UnpackUnorm4x8 (global mediump 4-component vector of float)
0:47 UnpackUnorm4x8 (global highp 4-component vector of float)
0:47 'u1' (temp highp uint)
0:48 move second child to first child (temp mediump 4-component vector of float)
0:48 move second child to first child (temp highp 4-component vector of float)
0:48 'v4' (temp mediump 4-component vector of float)
0:48 UnpackSnorm4x8 (global mediump 4-component vector of float)
0:48 UnpackSnorm4x8 (global highp 4-component vector of float)
0:48 'u1' (temp highp uint)
0:60 Function Definition: foo( (global void)
0:60 Function Parameters:

View File

@@ -44,14 +44,6 @@ Linked vertex stage:
Name 173 "u3"
Name 182 "i3"
Name 247 "v4"
Decorate 210 RelaxedPrecision
Decorate 216 RelaxedPrecision
Decorate 223 RelaxedPrecision
Decorate 230 RelaxedPrecision
Decorate 234 RelaxedPrecision
Decorate 240 RelaxedPrecision
Decorate 261 RelaxedPrecision
Decorate 265 RelaxedPrecision
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1