Module: Mesa Branch: 17.1 Commit: b31ccc62abc1886e6d0d6ba25df2ff7fdf383ddd URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=b31ccc62abc1886e6d0d6ba25df2ff7fdf383ddd
Author: Ilia Mirkin <[email protected]> Date: Wed Aug 16 22:18:39 2017 -0400 glsl: add a few missing int64 constant propagation cases Fixes KHR-GL45.shader_ballot_tests.ShaderBallotAvailability, which causes some silly swizzles to appear, triggering this optimization to get hit. Signed-off-by: Ilia Mirkin <[email protected]> Reviewed-by: Dave Airlie <[email protected]> Cc: [email protected] (cherry picked from commit 9c8f017f77188d9048132a30d31f18b9690cbe04) --- src/compiler/glsl/ir_constant_expression.cpp | 2 ++ src/compiler/glsl/opt_constant_propagation.cpp | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/src/compiler/glsl/ir_constant_expression.cpp b/src/compiler/glsl/ir_constant_expression.cpp index cd3cd1bb59..fe13674101 100644 --- a/src/compiler/glsl/ir_constant_expression.cpp +++ b/src/compiler/glsl/ir_constant_expression.cpp @@ -725,6 +725,8 @@ ir_swizzle::constant_expression_value(struct hash_table *variable_context) case GLSL_TYPE_FLOAT: data.f[i] = v->value.f[swiz_idx[i]]; break; case GLSL_TYPE_BOOL: data.b[i] = v->value.b[swiz_idx[i]]; break; case GLSL_TYPE_DOUBLE:data.d[i] = v->value.d[swiz_idx[i]]; break; + case GLSL_TYPE_UINT64:data.u64[i] = v->value.u64[swiz_idx[i]]; break; + case GLSL_TYPE_INT64: data.i64[i] = v->value.i64[swiz_idx[i]]; break; default: assert(!"Should not get here."); break; } } diff --git a/src/compiler/glsl/opt_constant_propagation.cpp b/src/compiler/glsl/opt_constant_propagation.cpp index 4039512097..c5baf988c2 100644 --- a/src/compiler/glsl/opt_constant_propagation.cpp +++ b/src/compiler/glsl/opt_constant_propagation.cpp @@ -237,6 +237,12 @@ ir_constant_propagation_visitor::constant_propagation(ir_rvalue **rvalue) { case GLSL_TYPE_BOOL: data.b[i] = found->constant->value.b[rhs_channel]; break; + case GLSL_TYPE_UINT64: + data.u64[i] = found->constant->value.u64[rhs_channel]; + break; + case GLSL_TYPE_INT64: + data.i64[i] = found->constant->value.i64[rhs_channel]; + break; default: assert(!"not reached"); break; _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
