817 Commits

Author SHA1 Message Date
fbarchard@google.com
6368c10c9c Add __declspec(safebuffers) to functions with arrays on stack that have explicit checks to avoid a redundent compiler stack check.
BUG=none
TEST=unitests pass
R=ryanpetrie@google.com

Review URL: https://webrtc-codereview.appspot.com/3289004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@837 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-11-01 21:27:31 +00:00
fbarchard@google.com
f3871ce976 safebuffers requires vs2010
BUG=none
TEST=none
R=tpsiaki@google.com

Review URL: https://webrtc-codereview.appspot.com/3259004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@836 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-10-31 22:25:04 +00:00
fbarchard@google.com
bcccd6b78d cpuid for older vc
BUG=263
TEST=none
R=tpsiaki@google.com

Review URL: https://webrtc-codereview.appspot.com/3189004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@835 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-10-31 19:15:12 +00:00
fbarchard@google.com
11a0d48e45 pass parameter for yuv conversion
BUG=267
TEST=Luma
R=tpsiaki@google.com

Review URL: https://webrtc-codereview.appspot.com/3169005

git-svn-id: http://libyuv.googlecode.com/svn/trunk@834 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-10-31 05:47:13 +00:00
fbarchard@google.com
15df877b64 Use emit for xgetbv for compatibility with vs2005, vs2008 and vs2010 without sp1.
BUG=none
TEST=none
R=nfullagar@google.com, tpsiaki@google.com

Review URL: https://webrtc-codereview.appspot.com/3089005

git-svn-id: http://libyuv.googlecode.com/svn/trunk@833 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-10-30 01:33:11 +00:00
fbarchard@google.com
21796c94aa Move constant to its own asm block to save 3 GPR registers for main loop
BUG=267
TESTED=32 bit mac build

Review URL: https://webrtc-codereview.appspot.com/3099004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@832 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-10-29 08:43:13 +00:00
fbarchard@google.com
ca8f826ba3 Luma fetch 4 pixels
BUG=267
TEST=Luma*
R=ryanpetrie@google.com

Review URL: https://webrtc-codereview.appspot.com/3079004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@831 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-10-28 22:53:22 +00:00
fbarchard@google.com
407c4ee73a Register juggling to get gcc 32 bit to build
BUG=267
TEST=Luma* builds under gcc 32 and runs similar performance to other builds
R=ryanpetrie@google.com

Review URL: https://webrtc-codereview.appspot.com/3059005

git-svn-id: http://libyuv.googlecode.com/svn/trunk@830 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-10-28 22:28:35 +00:00
fbarchard@google.com
4c736098d6 Use packssdw which is SSE2 not packusdw which is SSSE4.
BUG=none
TEST=Sobel* on AMD cpu
R=ryanpetrie@google.com

Review URL: https://webrtc-codereview.appspot.com/3069004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@829 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-10-28 19:12:49 +00:00
fbarchard@google.com
6f7e514caa Full metal BCS
BUG=none
TEST=Luma* unittest
R=thorcarpenter@google.com

Review URL: https://webrtc-codereview.appspot.com/3029004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@828 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-10-28 17:10:49 +00:00
fbarchard@google.com
fb99c03008 NaCL port of CopyAlpha
BUG=none
TEST=ncval
R=nfullagar@google.com

Review URL: https://webrtc-codereview.appspot.com/2999004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@827 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-10-25 21:26:40 +00:00
fbarchard@google.com
08b24a4232 Bayer GG specialized version for Sobel
BUG=none
TEST=Sobel
R=johannkoenig@google.com

Review URL: https://webrtc-codereview.appspot.com/2849004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@826 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-10-25 07:39:43 +00:00
fbarchard@google.com
1b2ff39cc8 Add space around each nacl macro for clang compatibility with -Wreserved-user-defined-literal
BUG=280
TESTED=try bots
R=nfullagar@google.com

Review URL: https://webrtc-codereview.appspot.com/2899004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@825 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-10-24 20:12:36 +00:00
fbarchard@google.com
092099507e Sobel using max to get abs for SSE2
BUG=none
TEST=none
R=ryanpetrie@google.com

Review URL: https://webrtc-codereview.appspot.com/2769004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@824 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-10-23 00:51:52 +00:00
fbarchard@google.com
2f9868f121 set EBX as output register
BUG=none
TEST=none
R=noahric@google.com

Review URL: https://webrtc-codereview.appspot.com/2699005

git-svn-id: http://libyuv.googlecode.com/svn/trunk@823 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-10-22 00:55:44 +00:00
fbarchard@google.com
a721402a20 Disable xgetbv for NaCL
BUG=none
TEST=ncval
R=nfullagar@google.com

Review URL: https://webrtc-codereview.appspot.com/2719004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@822 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-10-21 22:59:51 +00:00
fbarchard@google.com
38157bdc71 Change Attenuate and Unattenuate to unaligned memory ops.
BUG=279
TEST=ARGBAttenuate_Unaligned
R=nfullagar@google.com, ryanpetrie@google.com

Review URL: https://webrtc-codereview.appspot.com/2709004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@821 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-10-21 21:44:23 +00:00
fbarchard@google.com
d2371686c2 Fix parameter name for cpuid on arm
BUG=276
TESTED=build bot
R=ryanpetrie@google.com

Review URL: https://webrtc-codereview.appspot.com/2699004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@820 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-10-21 20:58:25 +00:00
fbarchard@google.com
095f33d870 Coalesce rows by changing width/height and dropping into code instead of recursing. Improve coalesce by setting stride to 0 so it can be used even on odd width images. Reduce unittests to improve time to run emulators.
BUG=277
TEST=unittests all build and pass
R=ryanpetrie@google.com

Review URL: https://webrtc-codereview.appspot.com/2589004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@819 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-10-21 19:29:10 +00:00
fbarchard@google.com
8be4b289c7 ARGBSobelToPlane which produces a planar output.
BUG=none
TEST=none
R=ryanpetrie@google.com

Review URL: https://webrtc-codereview.appspot.com/2415005

git-svn-id: http://libyuv.googlecode.com/svn/trunk@818 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-10-21 18:39:07 +00:00
fbarchard@google.com
e35422d94b Fix AVX2 detect and a performance stall for gcc/clang.
BUG=276
TEST=Cpu unittest
R=nfullagar@google.com, ryanpetrie@google.com

Review URL: https://webrtc-codereview.appspot.com/2401004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@817 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-10-21 18:10:59 +00:00
fbarchard@google.com
78ad8d1f98 Polynomial AVX2 on gcc use vex128 vmovq instead of SSE2 movq to avoid stall.
BUG=265
TEST=unittest polynomial
R=ryanpetrie@google.com

Review URL: https://webrtc-codereview.appspot.com/2679004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@816 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-10-21 18:04:24 +00:00
fbarchard@google.com
a03b8adde8 Do fewer scale tests to speed up overall unittest
BUG=273
TEST=timex emuyuv Scale*
R=ryanpetrie@google.com

Review URL: https://webrtc-codereview.appspot.com/2469005

git-svn-id: http://libyuv.googlecode.com/svn/trunk@815 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-10-18 22:22:09 +00:00
fbarchard@google.com
adef267edf CopyYToAlpha to copy from a plane to alpha channel of ARGB
BUG=275
TESTED=untested
R=ryanpetrie@google.com

Review URL: https://webrtc-codereview.appspot.com/2415004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@814 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-10-17 07:32:16 +00:00
fbarchard@google.com
3075de8285 Use simple masking for AVX2 version of CopyAlpha so it can be implemented using a more generic bit mask function in future, and use more broadly known and optimized opcodes that will always be fast. Same performance as vblend.
BUG=none
TEST=CopyAlpha*
R=johannkoenig@google.com

Review URL: https://webrtc-codereview.appspot.com/2393005

git-svn-id: http://libyuv.googlecode.com/svn/trunk@813 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-10-15 00:32:29 +00:00
fbarchard@google.com
f6631bb814 CopyAlpha AVX2
BUG=none
TEST=Alpha*
R=ryanpetrie@google.com

Review URL: https://webrtc-codereview.appspot.com/2392004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@812 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-10-14 19:37:21 +00:00
fbarchard@google.com
88ce3c0caa Change unittests to pass when size is 1 tall.
BUG=202
TEST=set LIBYUV_HEIGHT=1 & out\release\libyuv_unittest
R=ryanpetrie@google.com

Review URL: https://webrtc-codereview.appspot.com/2391004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@811 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-10-14 19:36:26 +00:00
fbarchard@google.com
7f67961ec5 ARGBCopyAlpha for effects
BUG=none
TEST=none
R=johannkoenig@google.com

Review URL: https://webrtc-codereview.appspot.com/2385004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@810 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-10-12 22:27:37 +00:00
fbarchard@google.com
2476ddecb6 Add bundle align to HalfRow function for NaCL
BUG=271
TESTED=nacl validator passes
R=ryanpetrie@google.com

Review URL: https://webrtc-codereview.appspot.com/2368005

git-svn-id: http://libyuv.googlecode.com/svn/trunk@809 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-10-08 17:49:53 +00:00
fbarchard@google.com
8b0cdb4a6e ARGBShuffle_SSE2 ported to GCC and NaCL, and HalfRow_SSE2 ported to NaCL.
BUG=271
TESTED=ABGRToARGB on linux
R=johannkoenig@google.com, nfullagar@google.com

Review URL: https://webrtc-codereview.appspot.com/2362004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@808 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-10-08 00:15:34 +00:00
fbarchard@google.com
212a1a5000 ARGBShuffle_SSE2 for lower end CPUs
BUG=271
TESTED=out\release\libyuv_unittest --gtest_filter=**R*ToARGB*
R=johannkoenig@google.com, ryanpetrie@google.com

Review URL: https://webrtc-codereview.appspot.com/2361004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@807 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-10-05 04:17:50 +00:00
fbarchard@google.com
98fb959e7e ARGBColorMatrix API wrapper for backward compatibility.
BUG=274
TESTED=try bots
R=ryanpetrie@google.com

Review URL: https://webrtc-codereview.appspot.com/2329004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@806 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-10-01 18:46:05 +00:00
fbarchard@google.com
c99db063e2 Change ARGBColorMatrix to a 4x4.
BUG=none
TEST=planar_unitest updates
R=johannkoenig@google.com, ryanpetrie@google.com, thorcarpenter@google.com

Review URL: https://webrtc-codereview.appspot.com/2320008

git-svn-id: http://libyuv.googlecode.com/svn/trunk@805 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-10-01 01:27:30 +00:00
fbarchard@google.com
b99bcab7f7 ARGBShuffle_AVX2 for speed up end swapping for Chrome/Java.
BUG=271
TESTED=ARGBShuffle unittest
R=mflodman@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/2320005

git-svn-id: http://libyuv.googlecode.com/svn/trunk@804 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-09-30 07:47:59 +00:00
fbarchard@google.com
446f91d040 Use vbroadcastf128 to copy m128 to ymm duplicating the value to high and low 128 bits. Allows shared variables.
BUG=none
TEST=avx2 unittests still pass.
R=mflodman@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/2324004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@803 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-09-30 06:49:10 +00:00
fbarchard@google.com
0d19fc5ed3 disable lint warning on movzx instructions
BUG=none
TEST=lint
R=johannkoenig@google.com

Review URL: https://webrtc-codereview.appspot.com/2290004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@802 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-09-24 21:48:50 +00:00
fbarchard@google.com
2732591d46 Limit sobel maximum width to stride - kEdge
BUG=none
TEST=drmemory

Review URL: https://webrtc-codereview.appspot.com/2285004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@801 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-09-24 19:56:29 +00:00
fbarchard@google.com
a927c6fb87 DrMemory fix for Sobel overread.
BUG=262
TESTED=Sobel* unittests re-enabled.

Review URL: https://webrtc-codereview.appspot.com/2273008

git-svn-id: http://libyuv.googlecode.com/svn/trunk@800 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-09-24 11:10:22 +00:00
fbarchard@google.com
47e856c632 Make I411ToARGB read 2 bytes to avoid overread.
BUG=262
TESTED=I411ToARGB
R=kjellander@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/2278004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@799 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-09-24 10:07:16 +00:00
fbarchard@google.com
07c3fe2f61 Fix DrMemory errors in unittests that were not initializing memory.
BUG=263
TEST=set GYP_DEFINES=build_for_tool=drmemory target_arch=ia32 & drmemory out\debug\libyuv_unittest.exe --gtest_catch_exceptions=0 --gtest_filter=*
R=kjellander@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/2270007

git-svn-id: http://libyuv.googlecode.com/svn/trunk@798 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-09-24 07:39:10 +00:00
fbarchard@google.com
529558453f Add gcc 4.7 support for AVX2
BUG=269
TEST=g++ -c source/row_posix.cc -I include/
R=nfullagar@google.com

Review URL: https://webrtc-codereview.appspot.com/2273006

git-svn-id: http://libyuv.googlecode.com/svn/trunk@797 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-09-24 01:13:43 +00:00
fbarchard@google.com
62184141c2 Use clang front end ifdef for AVX2 instead of llvm backend.
BUG=269
TESTED=clang++ -c source/row_posix.cc -I include/
R=ryanpetrie@google.com

Review URL: https://webrtc-codereview.appspot.com/2266004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@796 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-09-23 19:34:26 +00:00
fbarchard@google.com
3cb6071cb9 Port Polynomial AVX2 code to GCC/NaCL
BUG=269
TESTED=untested
R=johannkoenig@google.com

Review URL: https://webrtc-codereview.appspot.com/2262004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@795 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-09-20 05:48:05 +00:00
fbarchard@google.com
afd1d6b4ec Fix 2 bugs with Luma scale
BUG=267
TEST=luma unittest improved
R=ryanpetrie@google.com

Review URL: https://webrtc-codereview.appspot.com/2260005

git-svn-id: http://libyuv.googlecode.com/svn/trunk@794 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-09-20 01:00:54 +00:00
fbarchard@google.com
7a0d01ef8b Luma Table optimized for SSSE3
BUG=267
TESTED=lUMA unittest
R=jingning@google.com, nfullagar@google.com

Review URL: https://webrtc-codereview.appspot.com/2257004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@793 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-09-19 17:55:54 +00:00
fbarchard@google.com
823548cb3b AVX2 hash using vex128 as first step.
BUG=none
TEST=BenchmarkDjb2_Opt
R=ryanpetrie@google.com

Review URL: https://webrtc-codereview.appspot.com/2219004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@792 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-09-17 20:34:28 +00:00
fbarchard@google.com
a1ab194545 Color Table x86 reoptimized and ported to gcc.
BUG=266
TESTED=color table unittests
R=changjun.yang@intel.com

Review URL: https://webrtc-codereview.appspot.com/2216004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@791 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-09-16 17:01:02 +00:00
fbarchard@google.com
2bbb64df2c FMA3 version of Polynomial
BUG=265
TEST=cpuid and Polynomial unittest
R=changjun.yang@intel.com

Review URL: https://webrtc-codereview.appspot.com/2217004

git-svn-id: http://libyuv.googlecode.com/svn/trunk@790 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-09-16 16:42:19 +00:00
fbarchard@google.com
65d1ba6a26 Disable ColorTable assembly which is slow.
BUG=266
TEST=unittest for color table passes and is faster
R=thorcarpenter@google.com

Review URL: https://webrtc-codereview.appspot.com/2181009

git-svn-id: http://libyuv.googlecode.com/svn/trunk@789 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-09-12 17:41:57 +00:00
fbarchard@google.com
851a702b39 Make static constants const for Visual C. Allows optimizer to collapse similar constants (SSE2 is subset of AVX2). GCC has compiler bug with const attributes, but Visual C does not.
BUG=254
TEST=windows build still passes and is smaller
R=cdelaunay@google.com

Review URL: https://webrtc-codereview.appspot.com/2200007

git-svn-id: http://libyuv.googlecode.com/svn/trunk@788 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-09-12 01:07:42 +00:00