summaryrefslogtreecommitdiffstats
path: root/src/glsl
diff options
context:
space:
mode:
authorIago Toral Quiroga <itoral@igalia.com>2016-01-21 10:46:39 +0100
committerIago Toral Quiroga <itoral@igalia.com>2016-01-22 08:14:11 +0100
commitab0c7c0829d2e5ac69ca51a8981f3b1b88bd8d01 (patch)
tree52b8185ddedd7e6f19dc2b40fe2fc3c5dd6668ef /src/glsl
parent263f829d2e9be6dab5375910a082ff1e511bb44b (diff)
downloadexternal_mesa3d-ab0c7c0829d2e5ac69ca51a8981f3b1b88bd8d01.zip
external_mesa3d-ab0c7c0829d2e5ac69ca51a8981f3b1b88bd8d01.tar.gz
external_mesa3d-ab0c7c0829d2e5ac69ca51a8981f3b1b88bd8d01.tar.bz2
glsl/lower_instructions: fix regression in dldexp_to_arith
The commit b4e198f47f842 changed the offset and bits parameters of the bitfield insert operation from scalars to vectors. However, the lowering of ldexp on doubles operates on each vector component and emits scalar code (since it has to deal with the lower and upper 32-bit chunks of each double component), so it needs its bits and offset parameters to be scalars. Fixes fp64 regression (crash) in: spec/arb_gpu_shader_fp64/execution/built-in-functions/fs-ldexp-dvec4.shader_test Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Diffstat (limited to 'src/glsl')
-rw-r--r--src/glsl/lower_instructions.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/glsl/lower_instructions.cpp b/src/glsl/lower_instructions.cpp
index d140be3..7c2d4d7 100644
--- a/src/glsl/lower_instructions.cpp
+++ b/src/glsl/lower_instructions.cpp
@@ -470,8 +470,8 @@ lower_instructions_visitor::dldexp_to_arith(ir_expression *ir)
ir_constant *sign_mask = new(ir) ir_constant(0x80000000u);
- ir_constant *exp_shift = new(ir) ir_constant(20, vec_elem);
- ir_constant *exp_width = new(ir) ir_constant(11, vec_elem);
+ ir_constant *exp_shift = new(ir) ir_constant(20u);
+ ir_constant *exp_width = new(ir) ir_constant(11u);
ir_constant *exp_bias = new(ir) ir_constant(1022, vec_elem);
/* Temporary variables */