gallivm: Fix several glitches introduced in the prev commit.
authorJosé Fonseca <jfonseca@vmware.com>
Tue, 4 May 2010 12:31:50 +0000 (13:31 +0100)
committerJosé Fonseca <jfonseca@vmware.com>
Tue, 4 May 2010 12:32:40 +0000 (13:32 +0100)
src/gallium/auxiliary/gallivm/lp_bld_sample_soa.c
src/gallium/auxiliary/gallivm/lp_bld_tgsi.h
src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c

index 59279232717bdd11dbc8b65a7d7542485bddcb1c..d1592c22f4399baea1d9ed53f4f3407cddd66d9d 100644 (file)
@@ -954,12 +954,12 @@ lp_build_lod_selector(struct lp_build_sample_context *bld,
       dsdy = LLVMBuildExtractElement(bld->builder, ddy[0], index0, "dsdy");
       dsdy = lp_build_abs(float_bld, dsdy);
       if (dims > 1) {
-         dtdx = LLVMBuildExtractElement(bld->builder, ddx[1], index0, "dsdx");
+         dtdx = LLVMBuildExtractElement(bld->builder, ddx[1], index0, "dtdx");
          dtdx = lp_build_abs(float_bld, dtdx);
          dtdy = LLVMBuildExtractElement(bld->builder, ddy[1], index0, "dtdy");
          dtdy = lp_build_abs(float_bld, dtdy);
          if (dims > 2) {
-            drdx = LLVMBuildExtractElement(bld->builder, ddx[2], index0, "dsdx");
+            drdx = LLVMBuildExtractElement(bld->builder, ddx[2], index0, "drdx");
             drdx = lp_build_abs(float_bld, drdx);
             drdy = LLVMBuildExtractElement(bld->builder, ddy[2], index0, "drdy");
             drdy = lp_build_abs(float_bld, drdy);
index 4ca730a98a07aef9da79a79e9f646f37e4a79a86..71c51db7869c04363246bdc06cd5ff19fc65e750 100644 (file)
@@ -45,9 +45,6 @@ struct lp_build_context;
 struct lp_build_mask_context;
 
 
-#define LP_BLD_SAMPLER_EXPLICIT_DERIVATIVES 1
-
-
 /**
  * Sampler code generation interface.
  *
index 6659cff8706aa67eca83d7e5d6569882b070200f..022223bb296a0782ce471abed1fc6276af0a2e75 100644 (file)
@@ -644,7 +644,7 @@ emit_tex( struct lp_build_tgsi_soa_context *bld,
    }
 
    /* FIXME: Treat TEX_MODIFIER_EXPLICIT_LOD correctly */
-   if (modifier == TEX_MODIFIER_LOD_BIAS || TEX_MODIFIER_EXPLICIT_LOD)
+   if (modifier == TEX_MODIFIER_LOD_BIAS || modifier == TEX_MODIFIER_EXPLICIT_LOD)
       lodbias = emit_fetch( bld, inst, 0, 3 );
    else
       lodbias = bld->base.zero;
@@ -676,6 +676,10 @@ emit_tex( struct lp_build_tgsi_soa_context *bld,
       }
       unit = inst->Src[1].Register.Index;
    }
+   for (i = num_coords; i < 3; i++) {
+      ddx[i] = bld->base.undef;
+      ddy[i] = bld->base.undef;
+   }
 
    bld->sampler->emit_fetch_texel(bld->sampler,
                                   bld->base.builder,