- 27 Nov, 2017 1 commit
-
-
Lei Zhang authored
This allows the linker to move the variables from the .data section to the .rodata section. Bug: libyuv:254 Test: out/Release/libyuv_unittest --gtest_filter=* --libyuv_width=1280 --libyuv_height=720 --libyuv_repeat=999 --libyuv_flags=-1 --libyuv_cpu_info=-1 Change-Id: I6998570f1af4337d7b80313d9e18e36aa20d6ec0 Reviewed-on: https://chromium-review.googlesource.com/777033 Commit-Queue: Frank Barchard <fbarchard@chromium.org> Reviewed-by: Frank Barchard <fbarchard@chromium.org>
-
- 22 Nov, 2017 1 commit
-
-
Frank Barchard authored
This version of the H010ToAR30 provides a 3 step conversion Convert16To8Row_AVX2 H420ToARGB_AVX2 ARGBToAR30_AVX2 Low level function added to convert 16 bit to 8 bit using multiply to adjust 10 bit or other bit depths and then save the upper 16 bits. Bug: libyuv:751 Test: LibYUVPlanarTest.Convert16To8Row_Opt unittest added Change-Id: I9cc576fda8afa1003cb961d03e0e656e0b478f03 Reviewed-on: https://chromium-review.googlesource.com/783554 Commit-Queue: Frank Barchard <fbarchard@chromium.org> Reviewed-by: richard winterton <rrwinterton@gmail.com>
-
- 21 Nov, 2017 1 commit
-
-
Frank Barchard authored
Bug: libyuv:751 Test: LibYUVConvertTest.ARGBToAR30_Opt Change-Id: I09c13eb53ba5f1ce1740c013dc587f8300f1d9e0 Reviewed-on: https://chromium-review.googlesource.com/780437 Commit-Queue: Frank Barchard <fbarchard@chromium.org> Reviewed-by: richard winterton <rrwinterton@gmail.com>
-
- 20 Nov, 2017 3 commits
-
-
Frank Barchard authored
Bug: libyuv:749 Test: LibYUVBaseTest.TestFourCC Change-Id: Iec378947248840c7e2cd87b1198503f39e7c7258 Reviewed-on: https://chromium-review.googlesource.com/780619Reviewed-by: Frank Barchard <fbarchard@chromium.org> Commit-Queue: Frank Barchard <fbarchard@chromium.org>
-
Frank Barchard authored
Bug: libyuv:749 Test: none Change-Id: Icdfb0ff7bb5886d73498f4d88ca4629b2dc3425c Reviewed-on: https://chromium-review.googlesource.com/780443Reviewed-by: Weiyong Yao <braveyao@chromium.org>
-
Frank Barchard authored
Bug: libyuv:751 Test: none Change-Id: If6d5e7b9c5e6e8d2a272e03ce5a1cc199ef364ca Reviewed-on: https://chromium-review.googlesource.com/779980Reviewed-by: Weiyong Yao <braveyao@chromium.org> Reviewed-by: Frank Barchard <fbarchard@google.com>
-
- 17 Nov, 2017 1 commit
-
-
Frank Barchard authored
Bug: libyuv:760 Test: LibYUVConvertTest.H420ToRAW_Opt Change-Id: I050385f477309d5db02bb2218088f224c83392ed Reviewed-on: https://chromium-review.googlesource.com/775785 Commit-Queue: Frank Barchard <fbarchard@google.com> Reviewed-by: Weiyong Yao <braveyao@chromium.org>
-
- 16 Nov, 2017 1 commit
-
-
Frank Barchard authored
Tests ScalePlane vs ScalePlane_16 match. Bug: libyuv:749 Test: LibYUVScaleTest.ScalePlaneDownBy4_Box_16 Change-Id: I3f71748da404982d5d48bfb11bbd3ae95a1d021c Reviewed-on: https://chromium-review.googlesource.com/765045Reviewed-by: Frank Barchard <fbarchard@google.com> Reviewed-by: richard winterton <rrwinterton@gmail.com> Reviewed-by: Weiyong Yao <braveyao@chromium.org>
-
- 15 Nov, 2017 1 commit
-
-
Frank Barchard authored
The unittest compares the results of 8 and 16 bit scaling and expects them to be the same. This CL makes the 16 bit scaling filter logic match. Bug: libyuv:749 Test: LibYUVScaleTest.DISABLED_ScaleDownBy4_Linear_16 Change-Id: Ifb3ca4d770ef38f9f16abe9b9aeb843b779bf371 Reviewed-on: https://chromium-review.googlesource.com/772370Reviewed-by: Weiyong Yao <braveyao@chromium.org> Commit-Queue: Frank Barchard <fbarchard@google.com>
-
- 10 Nov, 2017 3 commits
-
-
Frank Barchard authored
clang-format does nested indents for macros that dont end with ; example: align_buffer_page_end(dst_y_8, dst_y_plane_size) align_buffer_page_end(dst_u_8, dst_uv_plane_size) align_buffer_page_end(dst_v_8, dst_uv_plane_size) align_buffer_page_end(dst_y_16, dst_y_plane_size * 2) align_buffer_page_end(dst_u_16, dst_uv_plane_size * 2) align_buffer_page_end(dst_v_16, dst_uv_plane_size * 2) use a similar allocator to the one used within libyuv in row.h which makes the caller add ; align_buffer_page_end(dst_y_8, dst_y_plane_size); align_buffer_page_end(dst_u_8, dst_uv_plane_size); align_buffer_page_end(dst_v_8, dst_uv_plane_size); align_buffer_page_end(dst_y_16, dst_y_plane_size * 2); align_buffer_page_end(dst_u_16, dst_uv_plane_size * 2); align_buffer_page_end(dst_v_16, dst_uv_plane_size * 2); Bug: libyuv:758 Test: try bots Change-Id: I4a0770707e7053e094a37bbfc3c5884d5663d078 Reviewed-on: https://chromium-review.googlesource.com/762757Reviewed-by: Patrik Höglund <phoglund@chromium.org> Reviewed-by: Frank Barchard <fbarchard@google.com> Commit-Queue: Frank Barchard <fbarchard@google.com>
-
Frank Barchard authored
When converting from lsb 10 bit formats to msb, the values need to be shifted to the top 10 bits. Using a multiply allows the different numbers of bits to be copied: // 128 = 9 bits // 64 = 10 bits // 16 = 12 bits // 1 = 16 bits Bug: libyuv:751 Test: LibYUVPlanarTest.MultiplyRow_16_Opt Change-Id: I9cf226053a164baa14155215cb175065b1c4f169 Reviewed-on: https://chromium-review.googlesource.com/762951Reviewed-by: richard winterton <rrwinterton@gmail.com> Reviewed-by: Frank Barchard <fbarchard@google.com> Commit-Queue: Frank Barchard <fbarchard@google.com>
-
Frank Barchard authored
Instead of hardcoded shift, use a multiply by a parameter. 128 = 9 bits 64 = 10 bits 16 = 12 bits 1 = 16 bits Bug: libyuv:751 Test: LibYUVPlanarTest.MergeUV10Row_Opt Change-Id: Id925edfdbf91243370c90641b50eb8e7625ec329 Reviewed-on: https://chromium-review.googlesource.com/762523Reviewed-by: richard winterton <rrwinterton@gmail.com> Commit-Queue: Frank Barchard <fbarchard@google.com>
-
- 09 Nov, 2017 2 commits
-
-
Frank Barchard authored
Bug: libyuv:756 Test: CFLAGS="-m32 -static -std=gnu89 -mno-sse -O2" CXXFLAGS="-m32 -x c -static -std=gnu99 -mno-sse -O2" make -f linux.mk libyuv.a Change-Id: Ic362f93e01ccbb0bea14f361a58585e79297e7d2 Reviewed-on: https://chromium-review.googlesource.com/759423Reviewed-by: Frank Barchard <fbarchard@google.com> Reviewed-by: Patrik Höglund <phoglund@chromium.org> Commit-Queue: Frank Barchard <fbarchard@google.com>
-
Frank Barchard authored
clang does not require -msse2 or -msse for inline, except the "x" parameter. So change this to "m" for 32 bit. 64 bit requires sse2 so use "x" for 64 bit. gcc requires -msse for xmm registers in clobber list. Reduce compiler requirement from -msse2 to -msse for enabling assembly. Bug: libyuv:754, libyuv:757 Test: CC=clang CXX=clang++ CFLAGS="-m32" CXXFLAGS="-m32 -mno-sse -O2" make -f linux.mk Change-Id: I86df72cfee80b7d349561c1fd7c97ad360767255 Reviewed-on: https://chromium-review.googlesource.com/759303Reviewed-by: richard winterton <rrwinterton@gmail.com> Reviewed-by: Frank Barchard <fbarchard@google.com> Commit-Queue: Frank Barchard <fbarchard@google.com>
-
- 08 Nov, 2017 3 commits
-
-
Frank Barchard authored
cleanup to remove ifdefs around functions affected by a clang bug. gn gen out/Release "--args=is_debug=false target_os=\"android\" target_cpu=\"mips64el\" mips_arch_variant=\"r6\" mips_use_msa=true is_component_build=true is_clang=true" ninja -v -C out/Release libyuv_unittest Bug: libyuv:634 Test: build for mips with clang Change-Id: I278b368dbb2fe89082240e280267d0a27a214c78 Reviewed-on: https://chromium-review.googlesource.com/757980Reviewed-by: Frank Barchard <fbarchard@google.com> Commit-Queue: Frank Barchard <fbarchard@google.com>
-
Frank Barchard authored
This reverts commit 01e994d7. Change-Id: Ie76710d0f4e641e071889c5125fd3be23cdcdb59 Reviewed-on: https://chromium-review.googlesource.com/758499Reviewed-by: Frank Barchard <fbarchard@google.com>
-
Frank Barchard authored
Bug: libyuv:754 Test: CC=clang CXX=clang++ CFLAGS="-m32" CXXFLAGS="-m32 -mno-sse -O2" make -f linux.mk Change-Id: I74bf8d032013694e65ea7637bc38d3253db53ff2 Reviewed-on: https://chromium-review.googlesource.com/758043Reviewed-by: Frank Barchard <fbarchard@google.com>
-
- 07 Nov, 2017 3 commits
-
-
Frank Barchard authored
Bug: libyuv:755 Test: ~/intelsde/sde -p4p -- out/Release/libyuv_unittest --gtest_filter=LibYUVScaleTest* Change-Id: Ibb0c908c38efc49dc56e86fa54ae7bd48ced02b5 Reviewed-on: https://chromium-review.googlesource.com/756363Reviewed-by: Cheng Wang <wangcheng@google.com>
-
Frank Barchard authored
Key instruction sets added for each microarchitecture: AVX512BW, AVX512VL, AVX512DQ - skylake server or later AVX512_VBMI, AVX512_IFMA - cannon lake or later AVX512_BITALG, AVX512_VBMI2, AVX512_VPOPCNTDQ, AVX512_VNNI, GFNI, VAES, VPCLMULQDQ - ice lake or later Bug: libyuv:752 Test: ~/intelsde/sde -icl -- out/Release/libyuv_unittest --gtest_filter=*Cpu* Change-Id: I9ee28904c90009d66721b9f805a440c5fc2da122 Reviewed-on: https://chromium-review.googlesource.com/755617Reviewed-by: Frank Barchard <fbarchard@google.com> Reviewed-by: richard winterton <rrwinterton@gmail.com>
-
Frank Barchard authored
vmovd is an AVX instruction. This will crash on an older CPU with only SSSE3 but not AVX. Use movd instead. Bug: libyuv:753 Test: ~/intelsde/sde -mrm -- out/Release/libyuv_unittest --gtest_filter=LibYUVCompareTest.BenchmarkHammingDistance_Opt Change-Id: I1fb0026039d5f83d124f5d03fed7dc0d2d723e49 Reviewed-on: https://chromium-review.googlesource.com/756200Reviewed-by: Cheng Wang <wangcheng@google.com> Reviewed-by: richard winterton <rrwinterton@gmail.com>
-
- 03 Nov, 2017 1 commit
-
-
Frank Barchard authored
H010 is 10 bit planar format with 10 bits in lower bits. P010 is 10 bit biplanar format with 10 bits in upper bits. This function weaves the U and V channels and shifts the bits into the upper bits. Bug: libyuv:751 Test: LibYUVPlanarTest.MergeUV10Row_Opt Change-Id: I4a0bac0ef1ff95aa1b8d68261ec8e8e86f2d1fbf Reviewed-on: https://chromium-review.googlesource.com/752692Reviewed-by: Cheng Wang <wangcheng@google.com> Reviewed-by: Frank Barchard <fbarchard@google.com> Commit-Queue: Frank Barchard <fbarchard@google.com>
-
- 02 Nov, 2017 1 commit
-
-
Frank Barchard authored
Bug: None Test: None Change-Id: Ie7cab948b7e879b08e5e5efaae008977513a0a80 Reviewed-on: https://chromium-review.googlesource.com/749895 Commit-Queue: Frank Barchard <fbarchard@google.com> Reviewed-by: Patrik Höglund <phoglund@chromium.org>
-
- 01 Nov, 2017 1 commit
-
-
Frank Barchard authored
Bug: libyuv:750 Test: build with WITH_TIDY=1 Change-Id: I09b7c24f52d0daa72fe7d1928d11a56208526bd1 Reviewed-on: https://chromium-review.googlesource.com/748307Reviewed-by: Patrik Höglund <phoglund@chromium.org>
-
- 31 Oct, 2017 2 commits
-
-
Frank Barchard authored
Bug: libyuv:701 Test: objdump to confirm code gen Change-Id: Ibdcb2cc6bc9bf14b4ccb874c49fc9ff664650e1a Reviewed-on: https://chromium-review.googlesource.com/745390Reviewed-by: Frank Barchard <fbarchard@google.com> Reviewed-by: richard winterton <rrwinterton@gmail.com>
-
Frank Barchard authored
Bug: None Test: lint passes Change-Id: I1fd40d3506bab1f4f9100902f633a9c9e7b96337 Reviewed-on: https://chromium-review.googlesource.com/745038Reviewed-by: Frank Barchard <fbarchard@google.com>
-
- 23 Oct, 2017 1 commit
-
-
Frank Barchard authored
popcnt has a fake dependency on the destination. This assembly avoids the dependency by using a different register for each popcnt. Bug: libyuv:701 Test: LIBYUV_DISABLE_SSSE3=1 out/Release/libyuv_unittest --gtest_filter=*Ham*Opt --libyuv_width=1280 --libyuv_height=720 --libyuv_repeat=9999 --libyuv_flags=-1 --libyuv_cpu_info=-1 Change-Id: Ie1d202e2613b7fa8a3c02acd433940e92c80eafa Reviewed-on: https://chromium-review.googlesource.com/731826Reviewed-by: Cheng Wang <wangcheng@google.com> Reviewed-by: Frank Barchard <fbarchard@google.com> Commit-Queue: Frank Barchard <fbarchard@google.com>
-
- 19 Oct, 2017 2 commits
-
-
Frank Barchard authored
Bug: libyuv:746 Test: mm cpuid yuvconvert compare psnr libyuv_unittest Change-Id: I08f6d5b519151f274e6baee993eb74950161ef53 Reviewed-on: https://chromium-review.googlesource.com/726749Reviewed-by: Frank Barchard <fbarchard@google.com> Commit-Queue: Frank Barchard <fbarchard@google.com>
-
Frank Barchard authored
Bug: libyuv:747 Test: mm cpuid under android builds Change-Id: I7fff13006b47a59873f29f8992bb3faf9bdb85f1 Reviewed-on: https://chromium-review.googlesource.com/727263 Commit-Queue: Frank Barchard <fbarchard@google.com> Reviewed-by: Frank Barchard <fbarchard@google.com>
-
- 18 Oct, 2017 1 commit
-
-
Frank Barchard authored
Bug: libyuv:746 Test: mm from android repo Change-Id: I7c124acfacc87cc263b19483cea79a63084f3f96 Reviewed-on: https://chromium-review.googlesource.com/724237Reviewed-by: Frank Barchard <fbarchard@google.com> Commit-Queue: Frank Barchard <fbarchard@google.com>
-
- 17 Oct, 2017 1 commit
-
-
Frank Barchard authored
mingw gcc sets the macro _M_IX86 which is normally only set by Visual C and clangcl which are Visual C style source code style for assembly, but gcc is not Visual C compatible. Add _MSC_VER to most ifdefs to detect that its really Visual C or clangcl and not mingw gcc so the gcc source code will be used. Bug: libyuv:744 Test: CXXFLAGS=-m32 CXX=~/prebuilts/gcc/linux-x86/host/x86_64-w64-mingw32-4.8/bin/x86_64-w64-mingw32-g++ make -f linux.mk Change-Id: I3431aa486eb769b145faa8d5eb75ed639f9d6f5e Reviewed-on: https://chromium-review.googlesource.com/722319Reviewed-by: Cheng Wang <wangcheng@google.com> Commit-Queue: Frank Barchard <fbarchard@google.com>
-
- 12 Oct, 2017 1 commit
-
-
Andrii Shyshkalov authored
Rietveld CQ has already been disabled and is no longer supoorted. TBR=phoglund@chromium.org No-Try: True Bug: chromium:770592 Change-Id: I2679e9193dfb5ec751bdc76d35fe5d835b44bd0a Reviewed-on: https://chromium-review.googlesource.com/714302Reviewed-by: Henrik Kjellander <kjellander@chromium.org> Commit-Queue: Andrii Shyshkalov <tandrii@chromium.org>
-
- 11 Oct, 2017 1 commit
-
-
Frank Barchard authored
The low level hamming distance functions have size limitations based on counter sizes. The higher level calls the low level in blocks that avoid overflow and then accumulators in int64. This test compares the results of the low levels to the high level and against a known value (all ones) to ensure the count is correct for any specified size. The the size is very large, the result is expected to be different. Bug: libyuv:701 Test: TestHammingDistance_Opt Change-Id: I6716af7cd09ac4d88a8afa25bc845a1b62af7c93 Reviewed-on: https://chromium-review.googlesource.com/710800Reviewed-by: Frank Barchard <fbarchard@google.com> Reviewed-by: richard winterton <rrwinterton@gmail.com> Commit-Queue: Frank Barchard <fbarchard@google.com>
-
- 10 Oct, 2017 2 commits
-
-
Frank Barchard authored
Bug: libyuv:701 Test: HammingDistance unittest with large size Change-Id: Id41a2c27eb8922d03b3a21dab32fa2e7b015ba38 Reviewed-on: https://chromium-review.googlesource.com/708335Reviewed-by: Cheng Wang <wangcheng@google.com> Commit-Queue: Frank Barchard <fbarchard@google.com>
-
Frank Barchard authored
This reverts commit ec75df58. Reason for revert: <INSERT REASONING HERE> Original change's description: > ComputeHammingDistance reduce SIMD loop to 1 call when possible. > > 32 bit x86 has high overhead due to -fpic. So this reduces the > number of calls by 1. > > TBR=kjellander@chromium.org > Bug: libyuv:701 > Test: BenchmarkHammingDistance > Change-Id: I7f557ef047920db65eab362a5f93abbd274ca051 > Reviewed-on: https://chromium-review.googlesource.com/701755 > Reviewed-by: Frank Barchard <fbarchard@google.com> > Reviewed-by: Cheng Wang <wangcheng@google.com> TBR=rrwinterton@gmail.com,fbarchard@google.com,wangcheng@google.com Change-Id: Ia61e8558a8f083c14be5f51e0e141550b6f2b5c1 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: libyuv:701 Reviewed-on: https://chromium-review.googlesource.com/707823Reviewed-by: Frank Barchard <fbarchard@google.com> Commit-Queue: Frank Barchard <fbarchard@google.com>
-
- 09 Oct, 2017 2 commits
-
-
Frank Barchard authored
32 bit x86 has high overhead due to -fpic. So this reduces the number of calls by 1. TBR=kjellander@chromium.org Bug: libyuv:701 Test: BenchmarkHammingDistance Change-Id: I7f557ef047920db65eab362a5f93abbd274ca051 Reviewed-on: https://chromium-review.googlesource.com/701755Reviewed-by: Frank Barchard <fbarchard@google.com> Reviewed-by: Cheng Wang <wangcheng@google.com>
-
Patrik Höglund authored
R=kjellander@chromium.org Bug:libyuv:741 Change-Id: I6bc18e94ec82e00518f34695cf3b97deed82c76d Reviewed-on: https://chromium-review.googlesource.com/699996Reviewed-by: Henrik Kjellander <kjellander@chromium.org> Commit-Queue: Patrik Höglund <phoglund@chromium.org>
-
- 04 Oct, 2017 1 commit
-
-
Frank Barchard authored
If length of HammingDistance was not a multiple of 4, the result was incorrect. The old tests did not catch this so a new test is done to count 1s. Bug: libyuv:740 Test: LibYUVCompareTest.TestHammingDistance Change-Id: I93db5437821c597f1f162ac263d4a594bb83231f Reviewed-on: https://chromium-review.googlesource.com/699614Reviewed-by: richard winterton <rrwinterton@gmail.com> Reviewed-by: Cheng Wang <wangcheng@google.com> Reviewed-by: Frank Barchard <fbarchard@google.com> Commit-Queue: Frank Barchard <fbarchard@google.com>
-
- 03 Oct, 2017 1 commit
-
-
Frank Barchard authored
Bug: libyuv:701 Test: BenchmarkHammingDistance_Opt Change-Id: Ibdd5d382677ebef4f82a62e0d5c3b88614a3b6e4 Reviewed-on: https://chromium-review.googlesource.com/696290 Commit-Queue: Frank Barchard <fbarchard@google.com> Reviewed-by: Cheng Wang <wangcheng@google.com>
-
- 02 Oct, 2017 1 commit
-
-
Frank Barchard authored
Bug: None Test: None Change-Id: Id52663f9c957aac3172fba92d888ad1b041d5cf0 Reviewed-on: https://chromium-review.googlesource.com/692981Reviewed-by: Cheng Wang <wangcheng@google.com> Commit-Queue: Frank Barchard <fbarchard@google.com>
-
- 29 Sep, 2017 1 commit
-
-
Frank Barchard authored
Under cache thrashing circumstances, ldp/stp perform better than ld1/st1 on QC820/QC821 CPUs. Same performance when hitting cache. Bug: libyuv:738 Test: LibYUVPlanarTest.TestCopySamples_Opt (445 ms) Change-Id: Ib6a0a5d5e6a1b7ef667b9bb2edb39d681cf3614c Reviewed-on: https://chromium-review.googlesource.com/691281 Commit-Queue: Frank Barchard <fbarchard@google.com> Reviewed-by: Cheng Wang <wangcheng@google.com>
-