OSDN Git Service

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 93cbf15..baf0402 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) &&