llvmpipe: Merge lp_build_load_rgba_soa into lp_build_sample_texel.
authorJosé Fonseca <jfonseca@vmware.com>
Thu, 22 Oct 2009 21:44:32 +0000 (22:44 +0100)
committerJosé Fonseca <jfonseca@vmware.com>
Sun, 25 Oct 2009 09:53:48 +0000 (09:53 +0000)
src/gallium/drivers/llvmpipe/lp_bld_sample_soa.c

index 6aa7ad4b456421b314be0cec4fb441c774aed3ce..a7d2118c9bdf1faf428b61c815396423e914cb64 100644 (file)
@@ -75,28 +75,6 @@ struct lp_build_sample_context
 };
 
 
-static void
-lp_build_load_rgba_soa(LLVMBuilderRef builder,
-                       const struct util_format_description *format_desc,
-                       struct lp_type type,
-                       LLVMValueRef base_ptr,
-                       LLVMValueRef offsets,
-                       LLVMValueRef *rgba)
-{
-   LLVMValueRef packed;
-
-   assert(format_desc->block.width == 1);
-   assert(format_desc->block.height == 1);
-   assert(format_desc->block.bits <= type.width);
-
-   packed = lp_build_gather(builder,
-                            type.length, format_desc->block.bits, type.width,
-                            base_ptr, offsets);
-
-   lp_build_unpack_rgba_soa(builder, format_desc, type, packed, rgba);
-}
-
-
 static void
 lp_build_sample_texel(struct lp_build_sample_context *bld,
                       LLVMValueRef x,
@@ -105,22 +83,28 @@ lp_build_sample_texel(struct lp_build_sample_context *bld,
                       LLVMValueRef data_ptr,
                       LLVMValueRef *texel)
 {
-   struct lp_build_context *int_coord_bld = &bld->int_coord_bld;
    LLVMValueRef offset;
+   LLVMValueRef packed;
 
    offset = lp_build_sample_offset(&bld->int_coord_bld,
                                    bld->format_desc,
-                                   x,
-                                   y,
-                                   y_stride,
+                                   x, y, y_stride,
                                    data_ptr);
 
-   lp_build_load_rgba_soa(bld->builder,
-                          bld->format_desc,
-                          bld->texel_type,
-                          data_ptr,
-                          offset,
-                          texel);
+   assert(bld->format_desc->block.width == 1);
+   assert(bld->format_desc->block.height == 1);
+   assert(bld->format_desc->block.bits <= bld->texel_type.width);
+
+   packed = lp_build_gather(bld->builder,
+                            bld->texel_type.length,
+                            bld->format_desc->block.bits,
+                            bld->texel_type.width,
+                            data_ptr, offset);
+
+   lp_build_unpack_rgba_soa(bld->builder,
+                            bld->format_desc,
+                            bld->texel_type,
+                            packed, texel);
 }