From 833323b8d02a08b4f53847a521e14c707efd8beb Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Wed, 29 Jul 2009 07:58:27 +0100 Subject: llvmpipe: Separate pixel packing/unpacking from loading/storing. --- src/gallium/drivers/llvmpipe/lp_bld_pack.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) (limited to 'src/gallium/drivers/llvmpipe/lp_bld_pack.c') diff --git a/src/gallium/drivers/llvmpipe/lp_bld_pack.c b/src/gallium/drivers/llvmpipe/lp_bld_pack.c index 2383a07d72..823d67e12d 100644 --- a/src/gallium/drivers/llvmpipe/lp_bld_pack.c +++ b/src/gallium/drivers/llvmpipe/lp_bld_pack.c @@ -31,10 +31,9 @@ #include "lp_bld.h" -void +LLVMValueRef lp_build_pack_rgba(LLVMBuilderRef builder, enum pipe_format format, - LLVMValueRef ptr, LLVMValueRef rgba) { const struct util_format_description *desc; @@ -121,12 +120,12 @@ lp_build_pack_rgba(LLVMBuilderRef builder, } } - if (packed) { + if (!packed) + packed = LLVMGetUndef(LLVMInt32Type()); - if (desc->block.bits < 32) - packed = LLVMBuildTrunc(builder, packed, type, ""); + if (desc->block.bits < 32) + packed = LLVMBuildTrunc(builder, packed, type, ""); - LLVMBuildStore(builder, packed, LLVMBuildBitCast(builder, ptr, LLVMPointerType(type, 0), "")); - } + return packed; } -- cgit v1.2.3