summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichel Dänzer <[email protected]>2012-11-27 19:53:58 +0100
committerMichel Dänzer <[email protected]>2012-11-29 10:08:53 +0100
commit8b6aec6533cc1fc09e27757aefa8ad3dbd662684 (patch)
treee2f763f90f39433ee8effb6f09cc57d126a6b31d
parentc1023608002c985b9d72edc64732cd666de2a206 (diff)
radeonsi: Bitcast result of packf16 intrinsic to float for export intrinsic.
Fixes 7 piglit tests, and prevents many more from crashing. Signed-off-by: Michel Dänzer <[email protected]> Reviewed-and-Tested-by: Christian König <[email protected]>
-rw-r--r--src/gallium/drivers/radeonsi/radeonsi_shader.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/gallium/drivers/radeonsi/radeonsi_shader.c b/src/gallium/drivers/radeonsi/radeonsi_shader.c
index d6e37acaa96..d5d56c46a84 100644
--- a/src/gallium/drivers/radeonsi/radeonsi_shader.c
+++ b/src/gallium/drivers/radeonsi/radeonsi_shader.c
@@ -496,7 +496,11 @@ static void si_llvm_init_export_args(struct lp_build_tgsi_context *bld_base,
LLVMInt32TypeInContext(base->gallivm->context),
args, 2,
LLVMReadNoneAttribute);
- args[chan + 7] = args[chan + 5];
+ args[chan + 7] = args[chan + 5] =
+ LLVMBuildBitCast(base->gallivm->builder,
+ args[chan + 5],
+ LLVMFloatTypeInContext(base->gallivm->context),
+ "");
}
/* Set COMPR flag */