diff options
Diffstat (limited to 'src/gallium/auxiliary/gallivm')
-rw-r--r-- | src/gallium/auxiliary/gallivm/lp_bld_pack.c | 3 | ||||
-rw-r--r-- | src/gallium/auxiliary/gallivm/lp_bld_sample_soa.c | 5 |
2 files changed, 7 insertions, 1 deletions
diff --git a/src/gallium/auxiliary/gallivm/lp_bld_pack.c b/src/gallium/auxiliary/gallivm/lp_bld_pack.c index 9eb9ab0261f..0a57e39611c 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_pack.c +++ b/src/gallium/auxiliary/gallivm/lp_bld_pack.c @@ -255,7 +255,8 @@ lp_build_concat_n(struct gallivm_state *gallivm, /** * Interleave vector elements. * - * Matches the PUNPCKLxx and PUNPCKHxx SSE instructions. + * Matches the PUNPCKLxx and PUNPCKHxx SSE instructions + * (but not for 256bit AVX vectors). */ LLVMValueRef lp_build_interleave2(struct gallivm_state *gallivm, diff --git a/src/gallium/auxiliary/gallivm/lp_bld_sample_soa.c b/src/gallium/auxiliary/gallivm/lp_bld_sample_soa.c index cc29c5c885f..7ac0029051d 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_sample_soa.c +++ b/src/gallium/auxiliary/gallivm/lp_bld_sample_soa.c @@ -1545,6 +1545,11 @@ lp_build_sample_soa(struct gallivm_state *gallivm, bld.texel_type = lp_type_uint_vec(type.width, type.width * type.length); } } + else if (util_format_has_stencil(bld.format_desc) && + !util_format_has_depth(bld.format_desc)) { + /* for stencil only formats, sample stencil (uint) */ + bld.texel_type = lp_type_int_vec(type.width, type.width * type.length); + } if (!static_texture_state->level_zero_only) { derived_sampler_state.min_mip_filter = static_sampler_state->min_mip_filter; |