diff --git a/src/gallium/auxiliary/gallivm/lp_bld_format_aos.c b/src/gallium/auxiliary/gallivm/lp_bld_format_aos.c index 0b54ba4c5f5..c7fdb6e9d95 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_format_aos.c +++ b/src/gallium/auxiliary/gallivm/lp_bld_format_aos.c @@ -481,7 +481,8 @@ lp_build_fetch_rgba_aos(struct gallivm_state *gallivm, } /* If all channels are of same type and we are not using half-floats */ - if (format_desc->is_array) { + if (format_desc->is_array && + format_desc->colorspace == UTIL_FORMAT_COLORSPACE_RGB) { assert(!format_desc->is_mixed); return lp_build_fetch_rgba_aos_array(gallivm, format_desc, type, base_ptr, offset); }