[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