GLSL: fix Select op with a bool vector condition.
The fix is in the mix().
Bug: tint:1429
Change-Id: Id128ead6b124cd364f45a860ad991977be94be5b
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/80660
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Stephen White <senorblanco@chromium.org>
diff --git a/test/builtins/gen/select/266aff.wgsl.expected.glsl b/test/builtins/gen/select/266aff.wgsl.expected.glsl
index 92a2d9a..9095b03 100644
--- a/test/builtins/gen/select/266aff.wgsl.expected.glsl
+++ b/test/builtins/gen/select/266aff.wgsl.expected.glsl
@@ -1,9 +1,7 @@
-SKIP: FAILED
-
#version 310 es
void select_266aff() {
- vec2 res = (bvec2(false, false) ? vec2(0.0f, 0.0f) : vec2(0.0f, 0.0f));
+ vec2 res = mix(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), bvec2(false, false));
}
vec4 vertex_main() {
@@ -18,18 +16,11 @@
gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
return;
}
-Error parsing GLSL shader:
-ERROR: 0:4: '' : boolean expression expected
-ERROR: 0:4: '' : compilation terminated
-ERROR: 2 compilation errors. No code generated.
-
-
-
#version 310 es
precision mediump float;
void select_266aff() {
- vec2 res = (bvec2(false, false) ? vec2(0.0f, 0.0f) : vec2(0.0f, 0.0f));
+ vec2 res = mix(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), bvec2(false, false));
}
void fragment_main() {
@@ -40,17 +31,10 @@
fragment_main();
return;
}
-Error parsing GLSL shader:
-ERROR: 0:5: '' : boolean expression expected
-ERROR: 0:5: '' : compilation terminated
-ERROR: 2 compilation errors. No code generated.
-
-
-
#version 310 es
void select_266aff() {
- vec2 res = (bvec2(false, false) ? vec2(0.0f, 0.0f) : vec2(0.0f, 0.0f));
+ vec2 res = mix(vec2(0.0f, 0.0f), vec2(0.0f, 0.0f), bvec2(false, false));
}
void compute_main() {
@@ -62,10 +46,3 @@
compute_main();
return;
}
-Error parsing GLSL shader:
-ERROR: 0:4: '' : boolean expression expected
-ERROR: 0:4: '' : compilation terminated
-ERROR: 2 compilation errors. No code generated.
-
-
-