[FFmpeg-devel] [PATCH] swscale/output: Altivec-optimize yuv2plane1_8

Lauri Kasanen cand at gmx.com
Sat Nov 17 10:09:04 EET 2018


On Fri, 16 Nov 2018 22:09:25 +0100
Carl Eugen Hoyos <ceffmpeg at gmail.com> wrote:

> (This is less important atm, but I believe all functions currently
> in libswscale/ppc compile and run fine on - old - 32bit be hardware
> as your new function does.
> My completely inexperienced suspicion is that the instruction that
> you call "VSX" also exists on Altivec.)

Ref
http://gcc.gnu.org/onlinedocs/gcc/PowerPC-AltiVec-Built-in-Functions-Available-on-ISA-2_002e06.html#PowerPC-AltiVec-Built-in-Functions-Available-on-ISA-2_002e06

VSX functions such as vec_vsx_ld were added in ISA 2.06, aka POWER7.
They shouldn't compile on earlier PPC like Apple G4/G5. Is your machine
at least POWER7?

> I wanted to write that this hunk breaks compilation on big-endian
> (you should be able to test with "#if 0" instead of "#if !HAVE_BIGENDIAN")
> but the good news is that your patch works fine on big-endian,
> just remove the if-endif block. (Tested visually with lena on 32 and 64bit be.)

Thanks, will do.

> Are you aware of the bounty that is offered for this task?
> https://trac.ffmpeg.org/ticket/5568
> (and #5569, #5570)

Yes, I admit that's why I started. Looking to make some extra, and
helping IBM is not a bad way to do so. I'm considering getting a Raptor
Blackbird when it comes out next year.

> There is a bug report about one altivec routine that works on
> big-endian but breaks the output visually on little-endian while
> many other functions work on both, could you have a look?
> https://trac.ffmpeg.org/ticket/7124

I'll try. This patch was my first time playing with Power vectors.

- Lauri


More information about the ffmpeg-devel mailing list