Jhanay / libyuv

Automatically exported from code.google.com/p/libyuv
BSD 3-Clause "New" or "Revised" License
0 stars 0 forks source link

GCC YUV to RGB transpose matrix versions fail #522

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
[  PASSED  ] 870 tests.
[  FAILED  ] 93 tests, listed below:
[  FAILED  ] LibYUVConvertTest.J420ToABGR_Any
[  FAILED  ] LibYUVConvertTest.J420ToABGR_Unaligned
[  FAILED  ] LibYUVConvertTest.J420ToABGR_Invert
[  FAILED  ] LibYUVConvertTest.J420ToABGR_Opt
[  FAILED  ] LibYUVConvertTest.H420ToABGR_Any
[  FAILED  ] LibYUVConvertTest.H420ToABGR_Unaligned
[  FAILED  ] LibYUVConvertTest.H420ToABGR_Invert
[  FAILED  ] LibYUVConvertTest.H420ToABGR_Opt
[  FAILED  ] LibYUVConvertTest.I420ToBGRA_Any
[  FAILED  ] LibYUVConvertTest.I420ToBGRA_Unaligned
[  FAILED  ] LibYUVConvertTest.I420ToBGRA_Invert
[  FAILED  ] LibYUVConvertTest.I420ToBGRA_Opt
[  FAILED  ] LibYUVConvertTest.I420ToABGR_Any
[  FAILED  ] LibYUVConvertTest.I420ToABGR_Unaligned
[  FAILED  ] LibYUVConvertTest.I420ToABGR_Invert
[  FAILED  ] LibYUVConvertTest.I420ToABGR_Opt
[  FAILED  ] LibYUVConvertTest.I420ToRAW_Any
[  FAILED  ] LibYUVConvertTest.I420ToRAW_Unaligned
[  FAILED  ] LibYUVConvertTest.I420ToRAW_Invert
[  FAILED  ] LibYUVConvertTest.I420ToRAW_Opt
[  FAILED  ] LibYUVConvertTest.J422ToABGR_Any
[  FAILED  ] LibYUVConvertTest.J422ToABGR_Unaligned
[  FAILED  ] LibYUVConvertTest.J422ToABGR_Invert
[  FAILED  ] LibYUVConvertTest.J422ToABGR_Opt
[  FAILED  ] LibYUVConvertTest.H422ToABGR_Any
[  FAILED  ] LibYUVConvertTest.H422ToABGR_Unaligned
[  FAILED  ] LibYUVConvertTest.H422ToABGR_Invert
[  FAILED  ] LibYUVConvertTest.H422ToABGR_Opt
[  FAILED  ] LibYUVConvertTest.I422ToBGRA_Any
[  FAILED  ] LibYUVConvertTest.I422ToBGRA_Unaligned
[  FAILED  ] LibYUVConvertTest.I422ToBGRA_Invert
[  FAILED  ] LibYUVConvertTest.I422ToBGRA_Opt
[  FAILED  ] LibYUVConvertTest.I422ToABGR_Any
[  FAILED  ] LibYUVConvertTest.I422ToABGR_Unaligned
[  FAILED  ] LibYUVConvertTest.I422ToABGR_Invert
[  FAILED  ] LibYUVConvertTest.I422ToABGR_Opt
[  FAILED  ] LibYUVConvertTest.I420AlphaToABGR_Any
[  FAILED  ] LibYUVConvertTest.I420AlphaToABGR_Unaligned
[  FAILED  ] LibYUVConvertTest.I420AlphaToABGR_Invert
[  FAILED  ] LibYUVConvertTest.I420AlphaToABGR_Opt
[  FAILED  ] LibYUVConvertTest.I420AlphaToABGR_Premult
[  FAILED  ] LibYUVConvertTest.I420ToARGB_ABGR_Any
[  FAILED  ] LibYUVConvertTest.I420ToARGB_ABGR_Unaligned
[  FAILED  ] LibYUVConvertTest.I420ToARGB_ABGR_Invert
[  FAILED  ] LibYUVConvertTest.I420ToARGB_ABGR_Opt
[  FAILED  ] LibYUVConvertTest.J420ToABGR_ARGB_Any
[  FAILED  ] LibYUVConvertTest.J420ToABGR_ARGB_Unaligned
[  FAILED  ] LibYUVConvertTest.J420ToABGR_ARGB_Invert
[  FAILED  ] LibYUVConvertTest.J420ToABGR_ARGB_Opt
[  FAILED  ] LibYUVConvertTest.H420ToABGR_ARGB_Any
[  FAILED  ] LibYUVConvertTest.H420ToABGR_ARGB_Unaligned
[  FAILED  ] LibYUVConvertTest.H420ToABGR_ARGB_Invert
[  FAILED  ] LibYUVConvertTest.H420ToABGR_ARGB_Opt
[  FAILED  ] LibYUVConvertTest.I420ToBGRA_ARGB_Any
[  FAILED  ] LibYUVConvertTest.I420ToBGRA_ARGB_Unaligned
[  FAILED  ] LibYUVConvertTest.I420ToBGRA_ARGB_Invert
[  FAILED  ] LibYUVConvertTest.I420ToBGRA_ARGB_Opt
[  FAILED  ] LibYUVConvertTest.I420ToABGR_ARGB_Any
[  FAILED  ] LibYUVConvertTest.I420ToABGR_ARGB_Unaligned
[  FAILED  ] LibYUVConvertTest.I420ToABGR_ARGB_Invert
[  FAILED  ] LibYUVConvertTest.I420ToABGR_ARGB_Opt
[  FAILED  ] LibYUVConvertTest.I420ToRAW_RGB24_Any
[  FAILED  ] LibYUVConvertTest.I420ToRAW_RGB24_Unaligned
[  FAILED  ] LibYUVConvertTest.I420ToRAW_RGB24_Invert
[  FAILED  ] LibYUVConvertTest.I420ToRAW_RGB24_Opt
[  FAILED  ] LibYUVConvertTest.I420ToRGB24_RAW_Any
[  FAILED  ] LibYUVConvertTest.I420ToRGB24_RAW_Unaligned
[  FAILED  ] LibYUVConvertTest.I420ToRGB24_RAW_Invert
[  FAILED  ] LibYUVConvertTest.I420ToRGB24_RAW_Opt
[  FAILED  ] LibYUVConvertTest.I420ToARGB_RAW_Any
[  FAILED  ] LibYUVConvertTest.I420ToARGB_RAW_Unaligned
[  FAILED  ] LibYUVConvertTest.I420ToARGB_RAW_Invert
[  FAILED  ] LibYUVConvertTest.I420ToARGB_RAW_Opt
[  FAILED  ] LibYUVConvertTest.I420ToRAW_ARGB_Any
[  FAILED  ] LibYUVConvertTest.I420ToRAW_ARGB_Unaligned
[  FAILED  ] LibYUVConvertTest.I420ToRAW_ARGB_Invert
[  FAILED  ] LibYUVConvertTest.I420ToRAW_ARGB_Opt
[  FAILED  ] LibYUVConvertTest.J422ToABGR_ARGB_Any
[  FAILED  ] LibYUVConvertTest.J422ToABGR_ARGB_Unaligned
[  FAILED  ] LibYUVConvertTest.J422ToABGR_ARGB_Invert
[  FAILED  ] LibYUVConvertTest.J422ToABGR_ARGB_Opt
[  FAILED  ] LibYUVConvertTest.H422ToABGR_ARGB_Any
[  FAILED  ] LibYUVConvertTest.H422ToABGR_ARGB_Unaligned
[  FAILED  ] LibYUVConvertTest.H422ToABGR_ARGB_Invert
[  FAILED  ] LibYUVConvertTest.H422ToABGR_ARGB_Opt
[  FAILED  ] LibYUVConvertTest.I422ToBGRA_ARGB_Any
[  FAILED  ] LibYUVConvertTest.I422ToBGRA_ARGB_Unaligned
[  FAILED  ] LibYUVConvertTest.I422ToBGRA_ARGB_Invert
[  FAILED  ] LibYUVConvertTest.I422ToBGRA_ARGB_Opt
[  FAILED  ] LibYUVConvertTest.I422ToABGR_ARGB_Any
[  FAILED  ] LibYUVConvertTest.I422ToABGR_ARGB_Unaligned
[  FAILED  ] LibYUVConvertTest.I422ToABGR_ARGB_Invert
[  FAILED  ] LibYUVConvertTest.I422ToABGR_ARGB_Opt

93 FAILED TESTS
  YOU HAVE 74 DISABLED TESTS

Original issue reported on code.google.com by fbarch...@chromium.org on 6 Nov 2015 at 11:02

GoogleCodeExporter commented 8 years ago
The issue is specific to 64 bit AVX2

Original comment by fbarch...@chromium.org on 7 Nov 2015 at 12:28

GoogleCodeExporter commented 8 years ago
This CL seems to be at fault
https://codereview.chromium.org/1427993004

Original comment by fbarch...@chromium.org on 7 Nov 2015 at 3:07

GoogleCodeExporter commented 8 years ago
The following revision refers to this bug:
  https://chromium.googlesource.com/libyuv/libyuv.git/+/fb5ed1f4c516003d02343d412d26355973d59a54

commit fb5ed1f4c516003d02343d412d26355973d59a54
Author: Frank Barchard <fbarchard@google.com>
Date: Mon Nov 09 22:40:08 2015

disable 4 AVX2 YUV to RGB conversions which fails tests.

disable I422ALPHATOARGBROW_AVX2 I422TOARGBROW_AVX2 I422TORGB24ROW_AVX2 
I422TORGBAROW_AVX2 in row.h.
SSSE3 versions will be used instead.
Short term fix until issue can be resolved.

R=harryjin@google.com
BUG=libyuv:522

Review URL: https://codereview.chromium.org/1419513009 .

[modify] 
http://crrev.com/fb5ed1f4c516003d02343d412d26355973d59a54/README.chromium
[modify] 
http://crrev.com/fb5ed1f4c516003d02343d412d26355973d59a54/include/libyuv/row.h
[modify] 
http://crrev.com/fb5ed1f4c516003d02343d412d26355973d59a54/include/libyuv/version
.h

Original comment by bugdroid1@chromium.org on 9 Nov 2015 at 10:41

GoogleCodeExporter commented 8 years ago
link error on chrome builds
d:\src\chrome\src>call gn gen out/Release "--args=is_debug=false 
target_cpu=\"x86\""
Done. Wrote 2778 targets from 836 files in 14214ms
Done. Wrote 2778 targets from 836 files in 10671ms
ninja: Entering directory `out\Release'
[1001/1001] LINK media_perftests.exe
FAILED: c:/src/depot_tools/python276_bin/python.exe gyp-win-tool link-wrapper 
environment.x86 False link.exe /nologo /OUT:media_perftests.exe /PDB
 @media_perftests.exe.rsp
row_common.obj : error LNK2019: unresolved external symbol _I422ToARGBRow_AVX2 
referenced in function _I422ToARGB1555Row_AVX2
media_perftests.exe : fatal error LNK1120: 1 unresolved externals
ninja: build stopped: subcommand failed.
ninja: Entering directory `out\Release'
[206/821] CXX obj/third_party/angle/translator_lib/PruneEmptyDeclarations.obj

Original comment by fbarch...@chromium.org on 9 Nov 2015 at 11:49

GoogleCodeExporter commented 8 years ago
I'll handle this one.

Original comment by fbarch...@chromium.org on 9 Nov 2015 at 11:49

GoogleCodeExporter commented 8 years ago
The following revision refers to this bug:
  https://chromium.googlesource.com/libyuv/libyuv.git/+/72a9e282ecf848a5578f1e5983f0bb56a6c24fa6

commit 72a9e282ecf848a5578f1e5983f0bb56a6c24fa6
Author: Frank Barchard <fbarchard@google.com>
Date: Tue Nov 10 01:20:02 2015

disable more avx2 functions that dont link in chrome

libyuv builds/runs, but when integrated into chromium, produces link errors.  
unclear why but this disables affected functions.
will followup with re-enabling them once the root cause in the runtime error is 
found.

TBR=harryjin@google.com
BUG=libyuv:522

Review URL: https://codereview.chromium.org/1427683004 .

[modify] 
http://crrev.com/72a9e282ecf848a5578f1e5983f0bb56a6c24fa6/README.chromium
[modify] 
http://crrev.com/72a9e282ecf848a5578f1e5983f0bb56a6c24fa6/include/libyuv/row.h
[modify] 
http://crrev.com/72a9e282ecf848a5578f1e5983f0bb56a6c24fa6/include/libyuv/version
.h
[modify] 
http://crrev.com/72a9e282ecf848a5578f1e5983f0bb56a6c24fa6/source/row_any.cc

Original comment by bugdroid1@chromium.org on 10 Nov 2015 at 1:20

GoogleCodeExporter commented 8 years ago
data table is incorrect
  0, UB, 0, UB, 0, UB, 0, UB, 0, UB, 0, UB, 0, UB, 0, VR },

Original comment by fbarch...@google.com on 10 Nov 2015 at 12:42

GoogleCodeExporter commented 8 years ago
The following revision refers to this bug:
  https://chromium.googlesource.com/libyuv/libyuv.git/+/6100f50f136829b9769baf79306b31e0665ec16a

commit 6100f50f136829b9769baf79306b31e0665ec16a
Author: Frank Barchard <fbarchard@google.com>
Date: Tue Nov 10 18:45:44 2015

fix yvu constants for avx2 yuv to rgb

the yvu matrix for yuv to rgb had an incorrect entry, affecting yuv to bgra,
yuv to abgr and yuv to raw.
fix the matrix and reenable avx2 functions.

R=harryjin@google.com
BUG=libyuv:522

Review URL: https://codereview.chromium.org/1411763004 .

[modify] 
http://crrev.com/6100f50f136829b9769baf79306b31e0665ec16a/README.chromium
[modify] 
http://crrev.com/6100f50f136829b9769baf79306b31e0665ec16a/include/libyuv/row.h
[modify] 
http://crrev.com/6100f50f136829b9769baf79306b31e0665ec16a/include/libyuv/version
.h
[modify] 
http://crrev.com/6100f50f136829b9769baf79306b31e0665ec16a/source/row_common.cc
[modify] 
http://crrev.com/6100f50f136829b9769baf79306b31e0665ec16a/unit_test/convert_test
.cc

Original comment by bugdroid1@chromium.org on 10 Nov 2015 at 6:46

GoogleCodeExporter commented 8 years ago

Original comment by fbarch...@chromium.org on 10 Nov 2015 at 6:58