зеркало из https://github.com/stride3d/xkslang.git
Semantics: Spec. changing to reflect reality of int/uint conversion for |^&.
This effects 4.x, where int/uint conversions are done, but not earlier.
This commit is contained in:
Родитель
4889167430
Коммит
4bfeed5fe8
|
@ -185,3 +185,13 @@ void qlod()
|
|||
}
|
||||
|
||||
struct SKeyMem { int precise; } KeyMem; // ERROR, keyword can't be a member
|
||||
|
||||
uniform uint uu;
|
||||
out int iout;
|
||||
|
||||
void bitwiseConv()
|
||||
{
|
||||
iout = uu & i;
|
||||
iout += uu ^ i;
|
||||
iout += i | uu;
|
||||
}
|
||||
|
|
|
@ -7,10 +7,10 @@ uniform bvec4 ub41, ub42;
|
|||
uniform float uf;
|
||||
uniform int ui;
|
||||
|
||||
#ifdef TEST_POST_110
|
||||
|
||||
uniform uvec4 uuv4;
|
||||
uniform unsigned int uui;
|
||||
#endif
|
||||
uniform uint uui;
|
||||
|
||||
|
||||
void main()
|
||||
{
|
||||
|
@ -19,9 +19,9 @@ void main()
|
|||
bool b;
|
||||
bvec4 bv4;
|
||||
int i;
|
||||
#ifdef TEST_POST_110
|
||||
|
||||
uint u;
|
||||
#endif
|
||||
|
||||
|
||||
// floating point
|
||||
v = radians(uv4);
|
||||
|
@ -51,37 +51,37 @@ void main()
|
|||
v += sign(v);
|
||||
v += floor(v);
|
||||
|
||||
#ifdef TEST_POST_110
|
||||
|
||||
v += trunc(v);
|
||||
v += round(v);
|
||||
v += roundEven(v);
|
||||
#endif
|
||||
|
||||
|
||||
v += ceil(v);
|
||||
v += fract(v);
|
||||
v += mod(v, v);
|
||||
v += mod(v, v.x);
|
||||
|
||||
#ifdef TEST_POST_110
|
||||
|
||||
v += modf(v, v);
|
||||
#endif
|
||||
|
||||
|
||||
v += min(v, uv4);
|
||||
v += max(v, uv4);
|
||||
v += clamp(v, uv4, uv4);
|
||||
v += mix(v,v,v);
|
||||
|
||||
#ifdef TEST_POST_110
|
||||
v += mix(v,v,ub);
|
||||
v += intBitsToFloat(v);
|
||||
v += uintBitsToFloat(v);
|
||||
v += fma(v);
|
||||
|
||||
v += mix(v,v,bv4);
|
||||
v += intBitsToFloat(ivec4(i));
|
||||
v += uintBitsToFloat(uv4);
|
||||
v += fma(v,v,v);
|
||||
v += frexp(v);
|
||||
v += ldexp(v);
|
||||
v += unpackUnorm2x16(v);
|
||||
v += unpackUnorm4x8(v);
|
||||
v += unpackSnorm4x8(v);
|
||||
#endif
|
||||
|
||||
|
||||
v += step(v,v);
|
||||
v += smoothstep(v,v,v);
|
||||
|
@ -96,7 +96,7 @@ void main()
|
|||
v += fwidth(v);
|
||||
//noise*(v);
|
||||
|
||||
#ifdef TEST_POST_110
|
||||
|
||||
// signed integer
|
||||
i += abs(ui);
|
||||
i += sign(i);
|
||||
|
@ -118,15 +118,15 @@ void main()
|
|||
u += floatsBitToInt(v);
|
||||
u += packUnorm2x16(v);
|
||||
u += packUnorm4x8(v);
|
||||
u += packSnorm4x8(v);
|
||||
u += floatBitsToUInt(v);
|
||||
#endif
|
||||
i += uui & i; // ERRORs, no int/uint conversions before 400
|
||||
i += uui ^ i;
|
||||
i += i | uui;
|
||||
|
||||
// bool
|
||||
#ifdef TEST_POST_110
|
||||
|
||||
b = isnan(uf);
|
||||
b = isinf(v);
|
||||
#endif
|
||||
b = isinf(v.y);
|
||||
|
||||
b = any(lessThan(v, uv4));
|
||||
b = (b && any(lessThanEqual(v, uv4)));
|
||||
b = (b && any(greaterThan(v, uv4)));
|
||||
|
|
|
@ -1,6 +1,34 @@
|
|||
Operations.frag
|
||||
ERROR: 0:76: 'intBitsToFloat' : no matching overloaded function found
|
||||
ERROR: 0:77: 'uintBitsToFloat' : no matching overloaded function found
|
||||
ERROR: 0:78: 'fma' : no matching overloaded function found
|
||||
ERROR: 0:79: 'frexp' : no matching overloaded function found
|
||||
ERROR: 0:80: 'ldexp' : no matching overloaded function found
|
||||
ERROR: 0:81: 'unpackUnorm2x16' : no matching overloaded function found
|
||||
ERROR: 0:82: 'unpackUnorm4x8' : no matching overloaded function found
|
||||
ERROR: 0:83: 'unpackSnorm4x8' : no matching overloaded function found
|
||||
ERROR: 0:107: 'floatsBitsToInt' : no matching overloaded function found
|
||||
ERROR: 0:108: 'packUnorm2x16' : no matching overloaded function found
|
||||
ERROR: 0:109: 'packUnorm4x8' : no matching overloaded function found
|
||||
ERROR: 0:110: 'packSnorm4x8' : no matching overloaded function found
|
||||
ERROR: 0:113: 'assign' : cannot convert from 'global float' to 'temp uint'
|
||||
ERROR: 0:114: 'assign' : cannot convert from 'global float' to 'temp uint'
|
||||
ERROR: 0:118: 'floatsBitToInt' : no matching overloaded function found
|
||||
ERROR: 0:118: 'assign' : cannot convert from 'const float' to 'temp uint'
|
||||
ERROR: 0:119: 'packUnorm2x16' : no matching overloaded function found
|
||||
ERROR: 0:119: 'assign' : cannot convert from 'const float' to 'temp uint'
|
||||
ERROR: 0:120: 'packUnorm4x8' : no matching overloaded function found
|
||||
ERROR: 0:120: 'assign' : cannot convert from 'const float' to 'temp uint'
|
||||
ERROR: 0:121: '&' : wrong operand types: no operation '&' exists that takes a left-hand operand of type 'uniform uint' and a right operand of type 'temp int' (or there is no acceptable conversion)
|
||||
ERROR: 0:121: 'assign' : cannot convert from 'uniform uint' to 'temp int'
|
||||
ERROR: 0:122: '^' : wrong operand types: no operation '^' exists that takes a left-hand operand of type 'uniform uint' and a right operand of type 'temp int' (or there is no acceptable conversion)
|
||||
ERROR: 0:122: 'assign' : cannot convert from 'uniform uint' to 'temp int'
|
||||
ERROR: 0:123: '|' : wrong operand types: no operation '|' exists that takes a left-hand operand of type 'temp int' and a right operand of type 'uniform uint' (or there is no acceptable conversion)
|
||||
ERROR: 25 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 130
|
||||
0:? Sequence
|
||||
ERROR: node is still EOpNull!
|
||||
0:15 Function Definition: main( (global void)
|
||||
0:15 Function Parameters:
|
||||
0:? Sequence
|
||||
|
@ -107,6 +135,18 @@ Shader version: 130
|
|||
0:52 'v' (temp 4-component vector of float)
|
||||
0:52 Floor (global 4-component vector of float)
|
||||
0:52 'v' (temp 4-component vector of float)
|
||||
0:55 add second child into first child (temp 4-component vector of float)
|
||||
0:55 'v' (temp 4-component vector of float)
|
||||
0:55 trunc (global 4-component vector of float)
|
||||
0:55 'v' (temp 4-component vector of float)
|
||||
0:56 add second child into first child (temp 4-component vector of float)
|
||||
0:56 'v' (temp 4-component vector of float)
|
||||
0:56 round (global 4-component vector of float)
|
||||
0:56 'v' (temp 4-component vector of float)
|
||||
0:57 add second child into first child (temp 4-component vector of float)
|
||||
0:57 'v' (temp 4-component vector of float)
|
||||
0:57 roundEven (global 4-component vector of float)
|
||||
0:57 'v' (temp 4-component vector of float)
|
||||
0:60 add second child into first child (temp 4-component vector of float)
|
||||
0:60 'v' (temp 4-component vector of float)
|
||||
0:60 Ceiling (global 4-component vector of float)
|
||||
|
@ -128,6 +168,11 @@ Shader version: 130
|
|||
0:63 'v' (temp 4-component vector of float)
|
||||
0:63 Constant:
|
||||
0:63 0 (const int)
|
||||
0:66 add second child into first child (temp 4-component vector of float)
|
||||
0:66 'v' (temp 4-component vector of float)
|
||||
0:66 modf (global 4-component vector of float)
|
||||
0:66 'v' (temp 4-component vector of float)
|
||||
0:66 'v' (temp 4-component vector of float)
|
||||
0:69 add second child into first child (temp 4-component vector of float)
|
||||
0:69 'v' (temp 4-component vector of float)
|
||||
0:69 min (global 4-component vector of float)
|
||||
|
@ -150,6 +195,44 @@ Shader version: 130
|
|||
0:72 'v' (temp 4-component vector of float)
|
||||
0:72 'v' (temp 4-component vector of float)
|
||||
0:72 'v' (temp 4-component vector of float)
|
||||
0:75 add second child into first child (temp 4-component vector of float)
|
||||
0:75 'v' (temp 4-component vector of float)
|
||||
0:75 mix (global 4-component vector of float)
|
||||
0:75 'v' (temp 4-component vector of float)
|
||||
0:75 'v' (temp 4-component vector of float)
|
||||
0:75 'bv4' (temp 4-component vector of bool)
|
||||
0:76 add second child into first child (temp 4-component vector of float)
|
||||
0:76 'v' (temp 4-component vector of float)
|
||||
0:76 Constant:
|
||||
0:76 0.000000
|
||||
0:77 add second child into first child (temp 4-component vector of float)
|
||||
0:77 'v' (temp 4-component vector of float)
|
||||
0:77 Constant:
|
||||
0:77 0.000000
|
||||
0:78 add second child into first child (temp 4-component vector of float)
|
||||
0:78 'v' (temp 4-component vector of float)
|
||||
0:78 Constant:
|
||||
0:78 0.000000
|
||||
0:79 add second child into first child (temp 4-component vector of float)
|
||||
0:79 'v' (temp 4-component vector of float)
|
||||
0:79 Constant:
|
||||
0:79 0.000000
|
||||
0:80 add second child into first child (temp 4-component vector of float)
|
||||
0:80 'v' (temp 4-component vector of float)
|
||||
0:80 Constant:
|
||||
0:80 0.000000
|
||||
0:81 add second child into first child (temp 4-component vector of float)
|
||||
0:81 'v' (temp 4-component vector of float)
|
||||
0:81 Constant:
|
||||
0:81 0.000000
|
||||
0:82 add second child into first child (temp 4-component vector of float)
|
||||
0:82 'v' (temp 4-component vector of float)
|
||||
0:82 Constant:
|
||||
0:82 0.000000
|
||||
0:83 add second child into first child (temp 4-component vector of float)
|
||||
0:83 'v' (temp 4-component vector of float)
|
||||
0:83 Constant:
|
||||
0:83 0.000000
|
||||
0:86 add second child into first child (temp 4-component vector of float)
|
||||
0:86 'v' (temp 4-component vector of float)
|
||||
0:86 step (global 4-component vector of float)
|
||||
|
@ -205,6 +288,75 @@ Shader version: 130
|
|||
0:96 'v' (temp 4-component vector of float)
|
||||
0:96 fwidth (global 4-component vector of float)
|
||||
0:96 'v' (temp 4-component vector of float)
|
||||
0:101 add second child into first child (temp int)
|
||||
0:101 'i' (temp int)
|
||||
0:101 Absolute value (global int)
|
||||
0:101 'ui' (uniform int)
|
||||
0:102 add second child into first child (temp int)
|
||||
0:102 'i' (temp int)
|
||||
0:102 Sign (global int)
|
||||
0:102 'i' (temp int)
|
||||
0:103 add second child into first child (temp int)
|
||||
0:103 'i' (temp int)
|
||||
0:103 min (global int)
|
||||
0:103 'i' (temp int)
|
||||
0:103 'ui' (uniform int)
|
||||
0:104 add second child into first child (temp int)
|
||||
0:104 'i' (temp int)
|
||||
0:104 max (global int)
|
||||
0:104 'i' (temp int)
|
||||
0:104 'ui' (uniform int)
|
||||
0:105 add second child into first child (temp int)
|
||||
0:105 'i' (temp int)
|
||||
0:105 clamp (global int)
|
||||
0:105 'i' (temp int)
|
||||
0:105 'ui' (uniform int)
|
||||
0:105 'ui' (uniform int)
|
||||
0:107 Constant:
|
||||
0:107 0.000000
|
||||
0:108 Constant:
|
||||
0:108 0.000000
|
||||
0:109 Constant:
|
||||
0:109 0.000000
|
||||
0:110 Constant:
|
||||
0:110 0.000000
|
||||
0:113 'u' (temp uint)
|
||||
0:114 'u' (temp uint)
|
||||
0:115 add second child into first child (temp uint)
|
||||
0:115 'u' (temp uint)
|
||||
0:115 min (global uint)
|
||||
0:115 'u' (temp uint)
|
||||
0:115 'uui' (uniform uint)
|
||||
0:116 add second child into first child (temp uint)
|
||||
0:116 'u' (temp uint)
|
||||
0:116 max (global uint)
|
||||
0:116 'u' (temp uint)
|
||||
0:116 'uui' (uniform uint)
|
||||
0:117 add second child into first child (temp uint)
|
||||
0:117 'u' (temp uint)
|
||||
0:117 clamp (global uint)
|
||||
0:117 'u' (temp uint)
|
||||
0:117 'uui' (uniform uint)
|
||||
0:117 'uui' (uniform uint)
|
||||
0:118 'u' (temp uint)
|
||||
0:119 'u' (temp uint)
|
||||
0:120 'u' (temp uint)
|
||||
0:121 'i' (temp int)
|
||||
0:122 'i' (temp int)
|
||||
0:123 add second child into first child (temp int)
|
||||
0:123 'i' (temp int)
|
||||
0:123 'i' (temp int)
|
||||
0:127 move second child to first child (temp bool)
|
||||
0:127 'b' (temp bool)
|
||||
0:127 isnan (global bool)
|
||||
0:127 'uf' (uniform float)
|
||||
0:128 move second child to first child (temp bool)
|
||||
0:128 'b' (temp bool)
|
||||
0:128 isinf (global bool)
|
||||
0:128 direct index (temp float)
|
||||
0:128 'v' (temp 4-component vector of float)
|
||||
0:128 Constant:
|
||||
0:128 1 (const int)
|
||||
0:130 move second child to first child (temp bool)
|
||||
0:130 'b' (temp bool)
|
||||
0:130 any (global bool)
|
||||
|
@ -431,13 +583,15 @@ Shader version: 130
|
|||
0:? 'ub42' (uniform 4-component vector of bool)
|
||||
0:? 'uf' (uniform float)
|
||||
0:? 'ui' (uniform int)
|
||||
0:? 'uuv4' (uniform 4-component vector of uint)
|
||||
0:? 'uui' (uniform uint)
|
||||
|
||||
|
||||
Linked fragment stage:
|
||||
|
||||
|
||||
Shader version: 130
|
||||
0:? Sequence
|
||||
ERROR: node is still EOpNull!
|
||||
0:15 Function Definition: main( (global void)
|
||||
0:15 Function Parameters:
|
||||
0:? Sequence
|
||||
|
@ -544,6 +698,18 @@ Shader version: 130
|
|||
0:52 'v' (temp 4-component vector of float)
|
||||
0:52 Floor (global 4-component vector of float)
|
||||
0:52 'v' (temp 4-component vector of float)
|
||||
0:55 add second child into first child (temp 4-component vector of float)
|
||||
0:55 'v' (temp 4-component vector of float)
|
||||
0:55 trunc (global 4-component vector of float)
|
||||
0:55 'v' (temp 4-component vector of float)
|
||||
0:56 add second child into first child (temp 4-component vector of float)
|
||||
0:56 'v' (temp 4-component vector of float)
|
||||
0:56 round (global 4-component vector of float)
|
||||
0:56 'v' (temp 4-component vector of float)
|
||||
0:57 add second child into first child (temp 4-component vector of float)
|
||||
0:57 'v' (temp 4-component vector of float)
|
||||
0:57 roundEven (global 4-component vector of float)
|
||||
0:57 'v' (temp 4-component vector of float)
|
||||
0:60 add second child into first child (temp 4-component vector of float)
|
||||
0:60 'v' (temp 4-component vector of float)
|
||||
0:60 Ceiling (global 4-component vector of float)
|
||||
|
@ -565,6 +731,11 @@ Shader version: 130
|
|||
0:63 'v' (temp 4-component vector of float)
|
||||
0:63 Constant:
|
||||
0:63 0 (const int)
|
||||
0:66 add second child into first child (temp 4-component vector of float)
|
||||
0:66 'v' (temp 4-component vector of float)
|
||||
0:66 modf (global 4-component vector of float)
|
||||
0:66 'v' (temp 4-component vector of float)
|
||||
0:66 'v' (temp 4-component vector of float)
|
||||
0:69 add second child into first child (temp 4-component vector of float)
|
||||
0:69 'v' (temp 4-component vector of float)
|
||||
0:69 min (global 4-component vector of float)
|
||||
|
@ -587,6 +758,44 @@ Shader version: 130
|
|||
0:72 'v' (temp 4-component vector of float)
|
||||
0:72 'v' (temp 4-component vector of float)
|
||||
0:72 'v' (temp 4-component vector of float)
|
||||
0:75 add second child into first child (temp 4-component vector of float)
|
||||
0:75 'v' (temp 4-component vector of float)
|
||||
0:75 mix (global 4-component vector of float)
|
||||
0:75 'v' (temp 4-component vector of float)
|
||||
0:75 'v' (temp 4-component vector of float)
|
||||
0:75 'bv4' (temp 4-component vector of bool)
|
||||
0:76 add second child into first child (temp 4-component vector of float)
|
||||
0:76 'v' (temp 4-component vector of float)
|
||||
0:76 Constant:
|
||||
0:76 0.000000
|
||||
0:77 add second child into first child (temp 4-component vector of float)
|
||||
0:77 'v' (temp 4-component vector of float)
|
||||
0:77 Constant:
|
||||
0:77 0.000000
|
||||
0:78 add second child into first child (temp 4-component vector of float)
|
||||
0:78 'v' (temp 4-component vector of float)
|
||||
0:78 Constant:
|
||||
0:78 0.000000
|
||||
0:79 add second child into first child (temp 4-component vector of float)
|
||||
0:79 'v' (temp 4-component vector of float)
|
||||
0:79 Constant:
|
||||
0:79 0.000000
|
||||
0:80 add second child into first child (temp 4-component vector of float)
|
||||
0:80 'v' (temp 4-component vector of float)
|
||||
0:80 Constant:
|
||||
0:80 0.000000
|
||||
0:81 add second child into first child (temp 4-component vector of float)
|
||||
0:81 'v' (temp 4-component vector of float)
|
||||
0:81 Constant:
|
||||
0:81 0.000000
|
||||
0:82 add second child into first child (temp 4-component vector of float)
|
||||
0:82 'v' (temp 4-component vector of float)
|
||||
0:82 Constant:
|
||||
0:82 0.000000
|
||||
0:83 add second child into first child (temp 4-component vector of float)
|
||||
0:83 'v' (temp 4-component vector of float)
|
||||
0:83 Constant:
|
||||
0:83 0.000000
|
||||
0:86 add second child into first child (temp 4-component vector of float)
|
||||
0:86 'v' (temp 4-component vector of float)
|
||||
0:86 step (global 4-component vector of float)
|
||||
|
@ -642,6 +851,75 @@ Shader version: 130
|
|||
0:96 'v' (temp 4-component vector of float)
|
||||
0:96 fwidth (global 4-component vector of float)
|
||||
0:96 'v' (temp 4-component vector of float)
|
||||
0:101 add second child into first child (temp int)
|
||||
0:101 'i' (temp int)
|
||||
0:101 Absolute value (global int)
|
||||
0:101 'ui' (uniform int)
|
||||
0:102 add second child into first child (temp int)
|
||||
0:102 'i' (temp int)
|
||||
0:102 Sign (global int)
|
||||
0:102 'i' (temp int)
|
||||
0:103 add second child into first child (temp int)
|
||||
0:103 'i' (temp int)
|
||||
0:103 min (global int)
|
||||
0:103 'i' (temp int)
|
||||
0:103 'ui' (uniform int)
|
||||
0:104 add second child into first child (temp int)
|
||||
0:104 'i' (temp int)
|
||||
0:104 max (global int)
|
||||
0:104 'i' (temp int)
|
||||
0:104 'ui' (uniform int)
|
||||
0:105 add second child into first child (temp int)
|
||||
0:105 'i' (temp int)
|
||||
0:105 clamp (global int)
|
||||
0:105 'i' (temp int)
|
||||
0:105 'ui' (uniform int)
|
||||
0:105 'ui' (uniform int)
|
||||
0:107 Constant:
|
||||
0:107 0.000000
|
||||
0:108 Constant:
|
||||
0:108 0.000000
|
||||
0:109 Constant:
|
||||
0:109 0.000000
|
||||
0:110 Constant:
|
||||
0:110 0.000000
|
||||
0:113 'u' (temp uint)
|
||||
0:114 'u' (temp uint)
|
||||
0:115 add second child into first child (temp uint)
|
||||
0:115 'u' (temp uint)
|
||||
0:115 min (global uint)
|
||||
0:115 'u' (temp uint)
|
||||
0:115 'uui' (uniform uint)
|
||||
0:116 add second child into first child (temp uint)
|
||||
0:116 'u' (temp uint)
|
||||
0:116 max (global uint)
|
||||
0:116 'u' (temp uint)
|
||||
0:116 'uui' (uniform uint)
|
||||
0:117 add second child into first child (temp uint)
|
||||
0:117 'u' (temp uint)
|
||||
0:117 clamp (global uint)
|
||||
0:117 'u' (temp uint)
|
||||
0:117 'uui' (uniform uint)
|
||||
0:117 'uui' (uniform uint)
|
||||
0:118 'u' (temp uint)
|
||||
0:119 'u' (temp uint)
|
||||
0:120 'u' (temp uint)
|
||||
0:121 'i' (temp int)
|
||||
0:122 'i' (temp int)
|
||||
0:123 add second child into first child (temp int)
|
||||
0:123 'i' (temp int)
|
||||
0:123 'i' (temp int)
|
||||
0:127 move second child to first child (temp bool)
|
||||
0:127 'b' (temp bool)
|
||||
0:127 isnan (global bool)
|
||||
0:127 'uf' (uniform float)
|
||||
0:128 move second child to first child (temp bool)
|
||||
0:128 'b' (temp bool)
|
||||
0:128 isinf (global bool)
|
||||
0:128 direct index (temp float)
|
||||
0:128 'v' (temp 4-component vector of float)
|
||||
0:128 Constant:
|
||||
0:128 1 (const int)
|
||||
0:130 move second child to first child (temp bool)
|
||||
0:130 'b' (temp bool)
|
||||
0:130 any (global bool)
|
||||
|
@ -868,4 +1146,6 @@ Shader version: 130
|
|||
0:? 'ub42' (uniform 4-component vector of bool)
|
||||
0:? 'uf' (uniform float)
|
||||
0:? 'ui' (uniform int)
|
||||
0:? 'uuv4' (uniform 4-component vector of uint)
|
||||
0:? 'uui' (uniform uint)
|
||||
|
||||
|
|
|
@ -457,6 +457,10 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt
|
|||
case EOpMatrixTimesVector:
|
||||
case EOpMatrixTimesScalar:
|
||||
|
||||
case EOpAnd:
|
||||
case EOpInclusiveOr:
|
||||
case EOpExclusiveOr:
|
||||
|
||||
case EOpFunctionCall:
|
||||
case EOpReturn:
|
||||
case EOpAssign:
|
||||
|
|
Загрузка…
Ссылка в новой задаче