llvmpipe: Adjust format assertion.
authorJosé Fonseca <jfonseca@vmware.com>
Sat, 3 Oct 2009 21:15:17 +0000 (22:15 +0100)
committerJosé Fonseca <jfonseca@vmware.com>
Sun, 4 Oct 2009 21:03:15 +0000 (22:03 +0100)
We support array layout too -- if it has a single channel.

src/gallium/drivers/llvmpipe/lp_bld_format_soa.c

index b5ff434e1aea1d739836ffe1e301b82caa71c4f0..66bebdcdec854b402fa519baece71e3709d5311f 100644 (file)
@@ -119,7 +119,9 @@ lp_build_unpack_rgba_soa(LLVMBuilderRef builder,
    unsigned chan;
 
    /* FIXME: Support more formats */
-   assert(format_desc->layout == UTIL_FORMAT_LAYOUT_ARITH);
+   assert(format_desc->layout == UTIL_FORMAT_LAYOUT_ARITH ||
+          (format_desc->layout == UTIL_FORMAT_LAYOUT_ARRAY &&
+           format_desc->block.bits == format_desc->channel[0].size));
    assert(format_desc->block.width == 1);
    assert(format_desc->block.height == 1);
    assert(format_desc->block.bits <= 32);
@@ -195,10 +197,9 @@ lp_build_load_rgba_soa(LLVMBuilderRef builder,
 {
    LLVMValueRef packed;
 
-   assert(format_desc->layout == UTIL_FORMAT_LAYOUT_ARITH);
    assert(format_desc->block.width == 1);
    assert(format_desc->block.height == 1);
-   assert(format_desc->block.bits <= 32);
+   assert(format_desc->block.bits <= type.width);
 
    packed = lp_build_gather(builder,
                             type.length, format_desc->block.bits, type.width,