GLSL: Fix #1833: Don't constant fold integer mix to a float.

This commit is contained in:
John Kessenich 2019-07-13 12:22:10 -06:00
parent 25a508cc73
commit 1a6e8534ce
3 changed files with 28 additions and 15 deletions

2
Test/310.frag Normal file → Executable file
View file

@ -58,8 +58,8 @@ void foo23()
b1 = mix(b2, b3, b);
uvec3 um3 = mix(uvec3(i), uvec3(i), bvec3(b));
ivec4 im4 = mix(ivec4(i), ivec4(i), bvec4(b));
1 << mix(1u, 1u, false); // does not require folding
}
layout(binding=3) uniform sampler2D s1;
layout(binding=3) uniform sampler2D s2; // ERROR: overlapping bindings? Don't see that in the 310 spec.
highp layout(binding=2) uniform writeonly image2D i2D;

View file

@ -337,6 +337,16 @@ ERROR: node is still EOpNull!
0:60 'i' ( uniform mediump int)
0:60 Construct bvec4 ( temp 4-component vector of bool)
0:60 'b' ( temp bool)
0:61 left-shift ( temp int)
0:61 Constant:
0:61 1 (const int)
0:61 mix ( global uint)
0:61 Constant:
0:61 1 (const uint)
0:61 Constant:
0:61 1 (const uint)
0:61 Constant:
0:61 false (const bool)
0:98 Function Definition: foots( ( global void)
0:98 Function Parameters:
0:100 Sequence