gallivm: fix multiple lods with different min/mag filter and wide vectors
authorRoland Scheidegger <sroland@vmware.com>
Wed, 28 Nov 2012 17:07:27 +0000 (18:07 +0100)
committerRoland Scheidegger <sroland@vmware.com>
Wed, 28 Nov 2012 17:07:27 +0000 (18:07 +0100)
broken since 529fe420ba6836479619ba42e53665724755fc1c,
I forgot some code, only added the comment...
Fixes bug 57644.

src/gallium/auxiliary/gallivm/lp_bld_sample_soa.c

index 97a23df4a875d798923e2814eac999c7d49d4c24..35eb9cd8d08ed55a75c781771302e65112e82102 100644 (file)
@@ -1155,6 +1155,9 @@ lp_build_sample_general(struct lp_build_sample_context *bld,
        * least unless we have explicit lod (and who uses different
        * min/mag filter with that?)
        */
+      if (bld->num_lods > 1)
+         lod_ipart = LLVMBuildExtractElement(builder, lod_ipart,
+                                             lp_build_const_int32(bld->gallivm, 0), "");
 
       /* minify = lod >= 0.0 */
       minify = LLVMBuildICmp(builder, LLVMIntSGE,