From 874f3a57ce5ae41ced103bf5a549a2eb663db6c5 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Thu, 30 Sep 2010 10:52:26 -0600 Subject: [PATCH] gallivm: check for level=0 case in lp_build_minify() This lets us avoid the shift and max() operations. --- src/gallium/auxiliary/gallivm/lp_bld_sample.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/gallium/auxiliary/gallivm/lp_bld_sample.c b/src/gallium/auxiliary/gallivm/lp_bld_sample.c index d9fbbbe70f7..6e53bca269a 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_sample.c +++ b/src/gallium/auxiliary/gallivm/lp_bld_sample.c @@ -362,9 +362,16 @@ lp_build_minify(struct lp_build_sample_context *bld, LLVMValueRef base_size, LLVMValueRef level) { - LLVMValueRef size = LLVMBuildLShr(bld->builder, base_size, level, "minify"); - size = lp_build_max(&bld->int_coord_bld, size, bld->int_coord_bld.one); - return size; + if (level == bld->int_coord_bld.zero) { + /* if we're using mipmap level zero, no minification is needed */ + return base_size; + } + else { + LLVMValueRef size = + LLVMBuildLShr(bld->builder, base_size, level, "minify"); + size = lp_build_max(&bld->int_coord_bld, size, bld->int_coord_bld.one); + return size; + } } -- 2.30.2