watery01 / libyuv

Automatically exported from code.google.com/p/libyuv
0 stars 0 forks source link

TestShade fails on Arm #168

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
./libyuv_unittest --gtest_filter=*Shade
Note: Google Test filter = *Shade
[==========] Running 1 test from 1 test case.
[----------] Global test environment set-up.
[----------] 1 test from libyuvTest
[ RUN      ] libyuvTest.TestShade
unit_test/planar_test.cc:548: Failure
Value of: shade_pixels[0][3]
  Actual: 'P' (80, 0x50)
Expected: 40u
Which is: 40
unit_test/planar_test.cc:552: Failure
Value of: shade_pixels[1][3]
  Actual: '\xFF' (255)
Expected: 128u
Which is: 128
unit_test/planar_test.cc:572: Failure
Value of: shade_pixels[0][3]
  Actual: '\x14' (20)
Expected: 5u
Which is: 5
[  FAILED  ] libyuvTest.TestShade (1566 ms)
[----------] 1 test from libyuvTest (1566 ms total)

[----------] Global test environment tear-down
[==========] 1 test from 1 test case ran. (1568 ms total)
[  PASSED  ] 0 tests.
[  FAILED  ] 1 test, listed below:
[  FAILED  ] libyuvTest.TestShade

 1 FAILED TEST

Original issue reported on code.google.com by fbarch...@chromium.org on 11 Dec 2012 at 11:16

GoogleCodeExporter commented 9 years ago
r515 disables Neon version.
./libyuv_unittest --gtest_filter=*Shade
Note: Google Test filter = *Shade
[==========] Running 1 test from 1 test case.
[----------] Global test environment set-up.
[----------] 1 test from libyuvTest
[ RUN      ] libyuvTest.TestShade
[       OK ] libyuvTest.TestShade (1 ms)
[----------] 1 test from libyuvTest (1 ms total)

[----------] Global test environment tear-down
[==========] 1 test from 1 test case ran. (3 ms total)
[  PASSED  ] 1 test.

Original comment by fbarch...@google.com on 12 Dec 2012 at 1:50

GoogleCodeExporter commented 9 years ago
fixed in r516.  alpha used wrong index.

Original comment by fbarch...@chromium.org on 12 Dec 2012 at 10:31

GoogleCodeExporter commented 9 years ago
r518 has vzip instead of vtrn for a little simpler duplicating of values in 
order.
Consider doing same to get values bit replicated instead of zero extended, so 
results will match x86 closer.  The unittest matches exactly for the values it 
uses now, though.

Original comment by fbarch...@chromium.org on 13 Dec 2012 at 1:18

GoogleCodeExporter commented 9 years ago
Due to doubling, the neon version is 15 bit accurate at most, so it can't be 
made 100% identical to current SSSE3 version.  Both could be crippled to 8 bit 
accurate but that produces off by 1 for opaque and is slower - requires a shift.
So marking as fixed as the accuracy matches on the important values, and passes 
unittest with exact match.

Original comment by fbarch...@google.com on 18 Dec 2012 at 11:54