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:
parent
ae3e77308c
commit
f5dcdf0123
@ -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)
|
||||
|
||||
@ -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:
|
||||
|
||||
@ -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
|
||||
|
||||
@ -948,9 +948,9 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
|
||||
(profile != EEsProfile && version >= 420)) {
|
||||
commonBuiltins.append(
|
||||
"highp uint packSnorm2x16(vec2);"
|
||||
"highp vec2 unpackSnorm2x16(highp uint);"
|
||||
" vec2 unpackSnorm2x16(highp uint);"
|
||||
"highp uint packHalf2x16(mediump vec2);"
|
||||
"mediump vec2 unpackHalf2x16(highp uint);"
|
||||
" vec2 unpackHalf2x16(highp uint);"
|
||||
"\n");
|
||||
}
|
||||
|
||||
@ -958,9 +958,9 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
|
||||
(profile != EEsProfile && version >= 400)) {
|
||||
commonBuiltins.append(
|
||||
"highp uint packSnorm4x8 (mediump vec4);"
|
||||
"mediump vec4 unpackSnorm4x8(highp uint);"
|
||||
" vec4 unpackSnorm4x8(highp uint);"
|
||||
"highp uint packUnorm4x8 (mediump vec4);"
|
||||
"mediump vec4 unpackUnorm4x8(highp uint);"
|
||||
" vec4 unpackUnorm4x8(highp uint);"
|
||||
"\n");
|
||||
}
|
||||
|
||||
@ -1298,15 +1298,15 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
|
||||
"uvec3 bitfieldInsert(uvec3 base, uvec3, int, int);"
|
||||
"uvec4 bitfieldInsert(uvec4 base, uvec4, int, int);"
|
||||
|
||||
"lowp int findLSB( int);"
|
||||
"lowp ivec2 findLSB(ivec2);"
|
||||
"lowp ivec3 findLSB(ivec3);"
|
||||
"lowp ivec4 findLSB(ivec4);"
|
||||
" int findLSB( int);"
|
||||
"ivec2 findLSB(ivec2);"
|
||||
"ivec3 findLSB(ivec3);"
|
||||
"ivec4 findLSB(ivec4);"
|
||||
|
||||
"lowp int findLSB( uint);"
|
||||
"lowp ivec2 findLSB(uvec2);"
|
||||
"lowp ivec3 findLSB(uvec3);"
|
||||
"lowp ivec4 findLSB(uvec4);"
|
||||
" int findLSB( uint);"
|
||||
"ivec2 findLSB(uvec2);"
|
||||
"ivec3 findLSB(uvec3);"
|
||||
"ivec4 findLSB(uvec4);"
|
||||
|
||||
"\n");
|
||||
}
|
||||
@ -1398,25 +1398,25 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV
|
||||
"highp uvec3 bitfieldReverse(highp uvec3);"
|
||||
"highp uvec4 bitfieldReverse(highp uvec4);"
|
||||
|
||||
"lowp int bitCount( int);"
|
||||
"lowp ivec2 bitCount(ivec2);"
|
||||
"lowp ivec3 bitCount(ivec3);"
|
||||
"lowp ivec4 bitCount(ivec4);"
|
||||
" int bitCount( int);"
|
||||
"ivec2 bitCount(ivec2);"
|
||||
"ivec3 bitCount(ivec3);"
|
||||
"ivec4 bitCount(ivec4);"
|
||||
|
||||
"lowp int bitCount( uint);"
|
||||
"lowp ivec2 bitCount(uvec2);"
|
||||
"lowp ivec3 bitCount(uvec3);"
|
||||
"lowp ivec4 bitCount(uvec4);"
|
||||
" int bitCount( uint);"
|
||||
"ivec2 bitCount(uvec2);"
|
||||
"ivec3 bitCount(uvec3);"
|
||||
"ivec4 bitCount(uvec4);"
|
||||
|
||||
"lowp int findMSB(highp int);"
|
||||
"lowp ivec2 findMSB(highp ivec2);"
|
||||
"lowp ivec3 findMSB(highp ivec3);"
|
||||
"lowp ivec4 findMSB(highp ivec4);"
|
||||
" int findMSB(highp int);"
|
||||
"ivec2 findMSB(highp ivec2);"
|
||||
"ivec3 findMSB(highp ivec3);"
|
||||
"ivec4 findMSB(highp ivec4);"
|
||||
|
||||
"lowp int findMSB(highp uint);"
|
||||
"lowp ivec2 findMSB(highp uvec2);"
|
||||
"lowp ivec3 findMSB(highp uvec3);"
|
||||
"lowp ivec4 findMSB(highp uvec4);"
|
||||
" int findMSB(highp uint);"
|
||||
"ivec2 findMSB(highp uvec2);"
|
||||
"ivec3 findMSB(highp uvec3);"
|
||||
"ivec4 findMSB(highp uvec4);"
|
||||
|
||||
"\n");
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user