summaryrefslogtreecommitdiffstats
path: root/src/glsl/ir_equals.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/glsl/ir_equals.cpp')
-rw-r--r--src/glsl/ir_equals.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/glsl/ir_equals.cpp b/src/glsl/ir_equals.cpp
index 5f0785e0ece..b86f4ea16bb 100644
--- a/src/glsl/ir_equals.cpp
+++ b/src/glsl/ir_equals.cpp
@@ -58,8 +58,13 @@ ir_constant::equals(const ir_instruction *ir, enum ir_node_type) const
return false;
for (unsigned i = 0; i < type->components(); i++) {
- if (value.u[i] != other->value.u[i])
- return false;
+ if (type->base_type == GLSL_TYPE_DOUBLE) {
+ if (value.d[i] != other->value.d[i])
+ return false;
+ } else {
+ if (value.u[i] != other->value.u[i])
+ return false;
+ }
}
return true;
@@ -152,6 +157,7 @@ ir_texture::equals(const ir_instruction *ir, enum ir_node_type ignore) const
case ir_lod:
case ir_query_levels:
case ir_texture_samples:
+ case ir_samples_identical:
break;
case ir_txb:
if (!lod_info.bias->equals(other->lod_info.bias, ignore))