mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-12-10 05:57:51 +00:00
GLSL: special-case BinaryOp::kModulo for floating point.
The '%' operator in GLSL is integer-only. Use the full OpFRem expression: (a - b * trunc(a / b)). Bug: tint:1270 Change-Id: I0a969983bef132e004ce456d4a738488e400a61b Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/68760 Kokoro: Kokoro <noreply+kokoro@google.com> Reviewed-by: Ben Clayton <bclayton@google.com> Commit-Queue: Stephen White <senorblanco@chromium.org>
This commit is contained in:
committed by
Tint LUCI CQ
parent
9b152e655f
commit
59f1e8d06c
@@ -1,9 +1,12 @@
|
||||
SKIP: FAILED
|
||||
|
||||
#version 310 es
|
||||
|
||||
float tint_float_modulo(float lhs, float rhs) {
|
||||
return (lhs - rhs * trunc(lhs / rhs));
|
||||
}
|
||||
|
||||
|
||||
void f() {
|
||||
float r = (1.0f % 2.0f);
|
||||
float r = tint_float_modulo(1.0f, 2.0f);
|
||||
}
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
@@ -11,10 +14,3 @@ void main() {
|
||||
f();
|
||||
return;
|
||||
}
|
||||
Error parsing GLSL shader:
|
||||
ERROR: 0:4: '%' : wrong operand types: no operation '%' exists that takes a left-hand operand of type ' const float' and a right operand of type ' const float' (or there is no acceptable conversion)
|
||||
ERROR: 0:4: '' : compilation terminated
|
||||
ERROR: 2 compilation errors. No code generated.
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,11 +1,14 @@
|
||||
SKIP: FAILED
|
||||
|
||||
#version 310 es
|
||||
|
||||
vec3 tint_float_modulo(vec3 lhs, vec3 rhs) {
|
||||
return (lhs - rhs * trunc(lhs / rhs));
|
||||
}
|
||||
|
||||
|
||||
void f() {
|
||||
vec3 a = vec3(1.0f, 2.0f, 3.0f);
|
||||
vec3 b = vec3(4.0f, 5.0f, 6.0f);
|
||||
vec3 r = (a % b);
|
||||
vec3 r = tint_float_modulo(a, b);
|
||||
}
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
@@ -13,10 +16,3 @@ void main() {
|
||||
f();
|
||||
return;
|
||||
}
|
||||
Error parsing GLSL shader:
|
||||
ERROR: 0:6: '%' : wrong operand types: no operation '%' exists that takes a left-hand operand of type ' temp highp 3-component vector of float' and a right operand of type ' temp highp 3-component vector of float' (or there is no acceptable conversion)
|
||||
ERROR: 0:6: '' : compilation terminated
|
||||
ERROR: 2 compilation errors. No code generated.
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
SKIP: FAILED
|
||||
|
||||
#version 310 es
|
||||
|
||||
float tint_float_modulo(float lhs, float rhs) {
|
||||
return (lhs - rhs * trunc(lhs / rhs));
|
||||
}
|
||||
|
||||
|
||||
void f() {
|
||||
float r = (1.0f % 0.0f);
|
||||
float r = tint_float_modulo(1.0f, 0.0f);
|
||||
}
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
@@ -11,10 +14,3 @@ void main() {
|
||||
f();
|
||||
return;
|
||||
}
|
||||
Error parsing GLSL shader:
|
||||
ERROR: 0:4: '%' : wrong operand types: no operation '%' exists that takes a left-hand operand of type ' const float' and a right operand of type ' const float' (or there is no acceptable conversion)
|
||||
ERROR: 0:4: '' : compilation terminated
|
||||
ERROR: 2 compilation errors. No code generated.
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,11 +1,14 @@
|
||||
SKIP: FAILED
|
||||
|
||||
#version 310 es
|
||||
|
||||
vec3 tint_float_modulo(vec3 lhs, vec3 rhs) {
|
||||
return (lhs - rhs * trunc(lhs / rhs));
|
||||
}
|
||||
|
||||
|
||||
void f() {
|
||||
vec3 a = vec3(1.0f, 2.0f, 3.0f);
|
||||
vec3 b = vec3(0.0f, 5.0f, 0.0f);
|
||||
vec3 r = (a % b);
|
||||
vec3 r = tint_float_modulo(a, b);
|
||||
}
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
@@ -13,10 +16,3 @@ void main() {
|
||||
f();
|
||||
return;
|
||||
}
|
||||
Error parsing GLSL shader:
|
||||
ERROR: 0:6: '%' : wrong operand types: no operation '%' exists that takes a left-hand operand of type ' temp highp 3-component vector of float' and a right operand of type ' temp highp 3-component vector of float' (or there is no acceptable conversion)
|
||||
ERROR: 0:6: '' : compilation terminated
|
||||
ERROR: 2 compilation errors. No code generated.
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,11 +1,14 @@
|
||||
SKIP: FAILED
|
||||
|
||||
#version 310 es
|
||||
|
||||
float tint_float_modulo(float lhs, float rhs) {
|
||||
return (lhs - rhs * trunc(lhs / rhs));
|
||||
}
|
||||
|
||||
|
||||
void f() {
|
||||
float a = 1.0f;
|
||||
float b = 0.0f;
|
||||
float r = (a % (b + b));
|
||||
float r = tint_float_modulo(a, (b + b));
|
||||
}
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
@@ -13,10 +16,3 @@ void main() {
|
||||
f();
|
||||
return;
|
||||
}
|
||||
Error parsing GLSL shader:
|
||||
ERROR: 0:6: '%' : wrong operand types: no operation '%' exists that takes a left-hand operand of type ' temp highp float' and a right operand of type ' temp highp float' (or there is no acceptable conversion)
|
||||
ERROR: 0:6: '' : compilation terminated
|
||||
ERROR: 2 compilation errors. No code generated.
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,11 +1,14 @@
|
||||
SKIP: FAILED
|
||||
|
||||
#version 310 es
|
||||
|
||||
vec3 tint_float_modulo(vec3 lhs, vec3 rhs) {
|
||||
return (lhs - rhs * trunc(lhs / rhs));
|
||||
}
|
||||
|
||||
|
||||
void f() {
|
||||
vec3 a = vec3(1.0f, 2.0f, 3.0f);
|
||||
vec3 b = vec3(0.0f, 5.0f, 0.0f);
|
||||
vec3 r = (a % (b + b));
|
||||
vec3 r = tint_float_modulo(a, (b + b));
|
||||
}
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
@@ -13,10 +16,3 @@ void main() {
|
||||
f();
|
||||
return;
|
||||
}
|
||||
Error parsing GLSL shader:
|
||||
ERROR: 0:6: '%' : wrong operand types: no operation '%' exists that takes a left-hand operand of type ' temp highp 3-component vector of float' and a right operand of type ' temp highp 3-component vector of float' (or there is no acceptable conversion)
|
||||
ERROR: 0:6: '' : compilation terminated
|
||||
ERROR: 2 compilation errors. No code generated.
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,11 +1,14 @@
|
||||
SKIP: FAILED
|
||||
|
||||
#version 310 es
|
||||
|
||||
float tint_float_modulo(float lhs, float rhs) {
|
||||
return (lhs - rhs * trunc(lhs / rhs));
|
||||
}
|
||||
|
||||
|
||||
void f() {
|
||||
float a = 1.0f;
|
||||
float b = 0.0f;
|
||||
float r = (a % b);
|
||||
float r = tint_float_modulo(a, b);
|
||||
}
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
@@ -13,10 +16,3 @@ void main() {
|
||||
f();
|
||||
return;
|
||||
}
|
||||
Error parsing GLSL shader:
|
||||
ERROR: 0:6: '%' : wrong operand types: no operation '%' exists that takes a left-hand operand of type ' temp highp float' and a right operand of type ' temp highp float' (or there is no acceptable conversion)
|
||||
ERROR: 0:6: '' : compilation terminated
|
||||
ERROR: 2 compilation errors. No code generated.
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,11 +1,14 @@
|
||||
SKIP: FAILED
|
||||
|
||||
#version 310 es
|
||||
|
||||
vec3 tint_float_modulo(vec3 lhs, vec3 rhs) {
|
||||
return (lhs - rhs * trunc(lhs / rhs));
|
||||
}
|
||||
|
||||
|
||||
void f() {
|
||||
vec3 a = vec3(1.0f, 2.0f, 3.0f);
|
||||
vec3 b = vec3(0.0f, 5.0f, 0.0f);
|
||||
vec3 r = (a % b);
|
||||
vec3 r = tint_float_modulo(a, b);
|
||||
}
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
@@ -13,10 +16,3 @@ void main() {
|
||||
f();
|
||||
return;
|
||||
}
|
||||
Error parsing GLSL shader:
|
||||
ERROR: 0:6: '%' : wrong operand types: no operation '%' exists that takes a left-hand operand of type ' temp highp 3-component vector of float' and a right operand of type ' temp highp 3-component vector of float' (or there is no acceptable conversion)
|
||||
ERROR: 0:6: '' : compilation terminated
|
||||
ERROR: 2 compilation errors. No code generated.
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user