Mesa (master): gallivm: Fetch the lod from the dynamic state when min_lod = = max_lod.

Jose Fonseca jrfonseca at kemper.freedesktop.org
Sat Sep 25 11:40:50 UTC 2010


Module: Mesa
Branch: master
Commit: 2a8d1fd3cedbac1dd145a3ac5b7a8edcba9a85d5
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=2a8d1fd3cedbac1dd145a3ac5b7a8edcba9a85d5

Author: José Fonseca <jfonseca at vmware.com>
Date:   Sat Sep 25 12:13:45 2010 +0100

gallivm: Fetch the lod from the dynamic state when min_lod == max_lod.

---

 src/gallium/auxiliary/gallivm/lp_bld_sample.c |    8 ++++----
 src/gallium/auxiliary/gallivm/lp_bld_sample.h |    1 -
 2 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/src/gallium/auxiliary/gallivm/lp_bld_sample.c b/src/gallium/auxiliary/gallivm/lp_bld_sample.c
index 44f44ff..d9fbc0f 100644
--- a/src/gallium/auxiliary/gallivm/lp_bld_sample.c
+++ b/src/gallium/auxiliary/gallivm/lp_bld_sample.c
@@ -104,7 +104,6 @@ lp_sampler_static_state(struct lp_sampler_static_state *state,
     */
    if (sampler->min_lod == sampler->max_lod) {
       state->min_max_lod_equal = 1;
-      state->min_max_lod = sampler->min_lod;
    }
 
    state->compare_mode      = sampler->compare_mode;
@@ -145,18 +144,19 @@ lp_build_lod_selector(struct lp_build_sample_context *bld,
                       LLVMValueRef depth)
 
 {
+   LLVMValueRef min_lod =
+      bld->dynamic_state->min_lod(bld->dynamic_state, bld->builder, unit);
+
    if (bld->static_state->min_max_lod_equal) {
       /* User is forcing sampling from a particular mipmap level.
        * This is hit during mipmap generation.
        */
-      return LLVMConstReal(LLVMFloatType(), bld->static_state->min_max_lod);
+      return min_lod;
    }
    else {
       struct lp_build_context *float_bld = &bld->float_bld;
       LLVMValueRef sampler_lod_bias =
          bld->dynamic_state->lod_bias(bld->dynamic_state, bld->builder, unit);
-      LLVMValueRef min_lod =
-         bld->dynamic_state->min_lod(bld->dynamic_state, bld->builder, unit);
       LLVMValueRef max_lod =
          bld->dynamic_state->max_lod(bld->dynamic_state, bld->builder, unit);
       LLVMValueRef index0 = LLVMConstInt(LLVMInt32Type(), 0, 0);
diff --git a/src/gallium/auxiliary/gallivm/lp_bld_sample.h b/src/gallium/auxiliary/gallivm/lp_bld_sample.h
index 9a19e87..43ed24b 100644
--- a/src/gallium/auxiliary/gallivm/lp_bld_sample.h
+++ b/src/gallium/auxiliary/gallivm/lp_bld_sample.h
@@ -83,7 +83,6 @@ struct lp_sampler_static_state
    unsigned compare_func:3;
    unsigned normalized_coords:1;
    unsigned min_max_lod_equal:1;  /**< min_lod == max_lod ? */
-   float min_max_lod;             /**< only valid when min_max_lod_equal=1 */
 
    /* Aero hacks */
    unsigned force_nearest_s:1;




More information about the mesa-commit mailing list