[FFmpeg-trac] #7124(swscale:reopened): Unexpected results from YUV-RGB color space conversion optimization on POWER8/LE
FFmpeg
trac at avcodec.org
Wed Jul 3 14:58:38 EEST 2019
#7124: Unexpected results from YUV-RGB color space conversion optimization on
POWER8/LE
-------------------------------------+------------------------------------
Reporter: seiko | Owner:
Type: defect | Status: reopened
Priority: normal | Component: swscale
Version: git-master | Resolution:
Keywords: ppc altivec | Blocked By:
Blocking: | Reproduced by developer: 1
Analyzed by developer: 1 |
-------------------------------------+------------------------------------
Changes (by ChipKerchner):
* analyzed: 0 => 1
Comment:
I spent some time looking at the cause of this bug. It looks like it is a
bug with the gcc compiler for Power in versions 6.x and 7.x (verified with
6.3 and 7.4). It was fixed in version 8.x (verified with 8.3). I was
using ffmpeg version 4.1 and a Power 9 ppc64le machine for building and
testing.
It appears the compiler is generating the wrong code for little endian
machines for the vec_lvsl/vec_perm instruction combos in some cases. If
these instructions are replaced with vec_xl, the problem goes away for all
versions of the compilers. It should be noted that the compiler is
producing warnings for using vec_lvsl being deprecated for little endian.
I would recommend that the ffmpeg_altivec_yuv2rgb.patch be integrated into
the project. The above previous patch does have the fix but also includes
additional code.
--
Ticket URL: <https://trac.ffmpeg.org/ticket/7124#comment:8>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list