[Mesa-dev] [PATCH] llvmpipe: use sse2 conv code for altivec
Roland Scheidegger
sroland at vmware.com
Thu Jan 7 10:28:22 PST 2016
Am 07.01.2016 um 19:18 schrieb Oded Gabbay:
> In lp_build_conv() and lp_build_conv_auto(), there is a special case of
> conversion when sse2 is present. That code path is suitable without any
> changes to altivec, because all the functions that are called in that
> code path already support altivec.
>
> This patch increase the FPS in POWER arch across the board
> between 10%-25%
>
> I checked ipers, glxgears, glxspheres64, openarena, xonotic and glmark2.
>
> Signed-off-by: Oded Gabbay <oded.gabbay at gmail.com>
> ---
> src/gallium/auxiliary/gallivm/lp_bld_conv.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/src/gallium/auxiliary/gallivm/lp_bld_conv.c b/src/gallium/auxiliary/gallivm/lp_bld_conv.c
> index 1424447..7854142 100644
> --- a/src/gallium/auxiliary/gallivm/lp_bld_conv.c
> +++ b/src/gallium/auxiliary/gallivm/lp_bld_conv.c
> @@ -458,7 +458,7 @@ int lp_build_conv_auto(struct gallivm_state *gallivm,
> {
> /* Special case 4x4f --> 1x16ub */
> if (src_type.length == 4 &&
> - util_cpu_caps.has_sse2)
> + (util_cpu_caps.has_sse2 || util_cpu_caps.has_altivec))
> {
> num_dsts = (num_srcs + 3) / 4;
> dst_type->length = num_srcs * 4 >= 16 ? 16 : num_srcs * 4;
> @@ -545,7 +545,7 @@ lp_build_conv(struct gallivm_state *gallivm,
> ((dst_type.length == 16 && 4 * num_dsts == num_srcs) ||
> (num_dsts == 1 && dst_type.length * num_srcs == 16 && num_srcs != 3)) &&
>
> - util_cpu_caps.has_sse2)
> + (util_cpu_caps.has_sse2 || util_cpu_caps.has_altivec))
> {
> struct lp_build_context bld;
> struct lp_type int16_type, int32_type;
>
Reviewed-by: Roland Scheidegger <sroland at vmware.com>
More information about the mesa-dev
mailing list