gallivm: nr_channels is only valid for formats with plain layout.
authorJosé Fonseca <jfonseca@vmware.com>
Fri, 10 Sep 2010 19:09:00 +0000 (20:09 +0100)
committerJosé Fonseca <jfonseca@vmware.com>
Sat, 11 Sep 2010 12:34:54 +0000 (13:34 +0100)
This is erroneously throwing non plain formats out of the faster
AoS sampling path.

Doing 8bit interpolation for single channels such as L8 should be no
worse than with floating point. But this may need more investigation.

src/gallium/auxiliary/gallivm/lp_bld_sample_soa.c

index 93cbf159aa406640a790685c1f76a7d1d9c91b98..baf0402f56a4be3faecd8a33727a4c84fe991aec 100644 (file)
@@ -2190,9 +2190,8 @@ lp_build_sample_soa(LLVMBuilderRef builder,
       lp_build_sample_nop(&bld, texel_out);
    }
    else if (util_format_fits_8unorm(bld.format_desc) &&
-            bld.format_desc->nr_channels > 1 &&
             (static_state->target == PIPE_TEXTURE_2D ||
-                  static_state->target == PIPE_TEXTURE_RECT) &&
+             static_state->target == PIPE_TEXTURE_RECT) &&
             static_state->min_img_filter == PIPE_TEX_FILTER_LINEAR &&
             static_state->mag_img_filter == PIPE_TEX_FILTER_LINEAR &&
             static_state->min_mip_filter == PIPE_TEX_MIPFILTER_NONE &&
@@ -2204,7 +2203,6 @@ lp_build_sample_soa(LLVMBuilderRef builder,
    }
    else {
       if (gallivm_debug & GALLIVM_DEBUG_PERF &&
-          bld.format_desc->nr_channels > 1 &&
           (static_state->min_img_filter != PIPE_TEX_FILTER_NEAREST ||
            static_state->mag_img_filter != PIPE_TEX_FILTER_NEAREST ||
            static_state->min_mip_filter == PIPE_TEX_MIPFILTER_LINEAR) &&