Mesa (master): glsl/lower_output_reads: set invariant and precise flags on temporaries
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Sun Jan 20 23:19:44 UTC 2019
Module: Mesa
Branch: master
Commit: 987744be9850bfe3a7c3c9556ae5d48ee5c34352
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=987744be9850bfe3a7c3c9556ae5d48ee5c34352
Author: Karol Herbst <kherbst at redhat.com>
Date: Fri Jan 18 14:13:25 2019 +0100
glsl/lower_output_reads: set invariant and precise flags on temporaries
fixes a couple of deqp tests (on nvc0 and potential other drivers):
dEQP-GLES3.functional.shaders.invariance.highp.common_subexpression_1
dEQP-GLES3.functional.shaders.invariance.highp.common_subexpression_2
dEQP-GLES3.functional.shaders.invariance.highp.common_subexpression_3
dEQP-GLES3.functional.shaders.invariance.mediump.common_subexpression_1
dEQP-GLES3.functional.shaders.invariance.mediump.common_subexpression_2
dEQP-GLES3.functional.shaders.invariance.mediump.common_subexpression_3
dEQP-GLES3.functional.shaders.invariance.lowp.common_subexpression_1
dEQP-GLES3.functional.shaders.invariance.lowp.common_subexpression_2
dEQP-GLES3.functional.shaders.invariance.lowp.common_subexpression_3
CC: <mesa-stable at lists.freedesktop.org>
Signed-off-by: Karol Herbst <kherbst at redhat.com>
Reviewed-by: Ilia Mirkin <imirkin at alum.mit.edu>
---
src/compiler/glsl/lower_output_reads.cpp | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/src/compiler/glsl/lower_output_reads.cpp b/src/compiler/glsl/lower_output_reads.cpp
index bd3accb3dd..4f90c7385a 100644
--- a/src/compiler/glsl/lower_output_reads.cpp
+++ b/src/compiler/glsl/lower_output_reads.cpp
@@ -101,6 +101,10 @@ output_read_remover::visit(ir_dereference_variable *ir)
void *var_ctx = ralloc_parent(ir->var);
temp = new(var_ctx) ir_variable(ir->var->type, ir->var->name,
ir_var_temporary);
+ /* copy flags which affect arithematical precision */
+ temp->data.invariant = ir->var->data.invariant;
+ temp->data.precise = ir->var->data.precise;
+ temp->data.precision = ir->var->data.precision;
_mesa_hash_table_insert(replacements, ir->var, temp);
ir->var->insert_after(temp);
}
More information about the mesa-commit
mailing list