diff options
author | Iago Toral Quiroga <[email protected]> | 2016-01-21 10:46:39 +0100 |
---|---|---|
committer | Iago Toral Quiroga <[email protected]> | 2016-01-22 08:14:11 +0100 |
commit | ab0c7c0829d2e5ac69ca51a8981f3b1b88bd8d01 (patch) | |
tree | 52b8185ddedd7e6f19dc2b40fe2fc3c5dd6668ef | |
parent | 263f829d2e9be6dab5375910a082ff1e511bb44b (diff) |
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 <[email protected]>
-rw-r--r-- | src/glsl/lower_instructions.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/glsl/lower_instructions.cpp b/src/glsl/lower_instructions.cpp index d140be346cf..7c2d4d7ce51 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 */ |