221 Commits

Author SHA1 Message Date
fbarchard@google.com
a843cafbe4 ARGBMultiply_AVX2 ported to GCC.
BUG=269
TESTED=try bots
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1160 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-11-11 20:33:33 +00:00
fbarchard@google.com
0387df5186 ARGBSubtract_AVX2 ported to GCC.
BUG=269
TESTED=try bots
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1159 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-11-11 19:12:38 +00:00
fbarchard@google.com
9e9e26d60a ARGBAdd ported AVX2 ported to GCC.
BUG=269
TESTED=try bots
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1158 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-11-11 19:01:29 +00:00
fbarchard@google.com
10d9c0d0a7 MergeUV for AVX2 ported to gcc. Add missing vzeroupper to all avx2 functions.
BUG=none
TESTED=ncval for nacl
R=brucedawson@google.com, harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1157 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-11-10 19:19:12 +00:00
fbarchard@google.com
d1885bcc73 SplitUVRow_AVX2 ported to GCC/NaCL.
BUG=269
TESTED=validator for nacl.
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1156 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-11-06 01:39:26 +00:00
fbarchard@google.com
bb3a4b41e9 vextractf128 requuires a constant argument for which dqword to extract, so add a new macro.
BUG=none
TESTED=local build on clang for osx
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1153 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-11-04 21:05:55 +00:00
fbarchard@google.com
3f87404769 Port YUY2ToUV, YUY2ToUV422, UYVYToUV and UYVYToUV422 to AVX2 on GCC/Nacl.
BUG=269
TESTED=ncval
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1152 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-11-04 18:24:10 +00:00
fbarchard@google.com
067892c5a1 Port YUY2ToYRow_AVX2 and UYVYToYRow_AVX2 to gcc/NaCL from Windows AVX code.
BUG=269
TESTED=ncval
R=brucedawson@google.com, harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1151 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-11-03 18:30:17 +00:00
fbarchard@google.com
260e3b2273 now that libyuv requires newer nacl compiler, bundles can be assumed and bundle align macro can be removed. no impact on code gen.
BUG=none
TESTED=validator still passes
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1150 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-10-30 20:02:03 +00:00
fbarchard@google.com
51b78880c5 gcc version of I422ToBGRA_AVX2. Original copied from https://webrtc-codereview.appspot.com/28729004/ and compatible with, but unrelated to windows version.
BUG=269
TESTED=untested
R=tpsiaki@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1131 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-10-21 02:18:11 +00:00
fbarchard@google.com
4d46be3930 Declare CopyRow_AVX as using xmm usage, not ymm. Should resolve chromium build error for Android Atom.
BUG=libyuv:369
TESTED=untested
R=tpsiaki@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1118 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-10-09 17:54:43 +00:00
fbarchard@google.com
205c1440cf Use movdqu then pavgb to allow unaligned memory for rgb subsampling code. Allows this assembly to be used for unaligned pointers as well as aligned ones with no performance hit when memory is aligned on a modern cpu.
BUG=365
TESTED=libyuvTest.ARGBToI420_Unaligned (453 ms)
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1116 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-10-07 19:47:06 +00:00
fbarchard@google.com
883ce64a34 ifdefs for UV functions to resolve link error on osx
BUG=365
TESTED=mac local build
R=tpsiaki@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1115 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-10-07 17:24:14 +00:00
fbarchard@google.com
008ce53ac4 pavgb with memory op requires alignment. This CL disables conversions that use pavgb, and resolves scale by 3/8 unittest for checking alignment works. The 3/8 code used a pavgb with a memory operand. tests are added for scaling and allow unaligning on purpose.
BUG=365
TESTED=local change to force unaligned memory fails on some conversions and scaling code.
R=tpsiaki@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1114 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-10-07 01:57:34 +00:00
fbarchard@google.com
ca308327d2 Remove unaligned functions, since most function support unaligned memory now. This reduces complexity and improves performance for unaligned cases because C code can be avoided, and overhead is less. Downside is old cpus (core2 and earlier) will be slower for aligned memory case. Except mips, which has alignment requirement, but remove unaligned variant.
BUG=365
TESTED=unittest builds and passes locally
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1113 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-10-07 00:59:31 +00:00
fbarchard@google.com
b720049a54 Make row functions used for planarfunctions and convert use movdqu to relax alignment constraint. Step 1 - make functions unaligned.
BUG=365
TESTED=libyuv_unittest passes
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1111 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-10-03 21:11:37 +00:00
fbarchard@google.com
d83f63a3b4 InterpolateRow used for scale handle unaligned memory. Remove HalfRow which is not used.
BUG=367
TESTED=unittest on I422ToI420
R=harryjin@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1107 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-10-03 17:37:11 +00:00
fbarchard@google.com
455ae94c60 Make rotate SIMD allow unaligned pointers.
BUG=365
TESTED=libyuv_unittest
R=tpsiaki@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1102 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-10-02 17:56:48 +00:00
fbarchard@google.com
1fb68cda67 port/fix CopyRow_AVX to gcc
BUG=363
TESTED=osx build
R=tpsiaki@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1098 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-09-30 00:39:41 +00:00
fbarchard@google.com
d33bf86b25 CopyRow_AVX which supports unaligned pointers for Sandy Bridge CPU.
BUG=363
TESTED=out\release\libyuv_unittest --gtest_filter=*ARGBToARGB_*
R=tpsiaki@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@1097 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-09-29 23:53:18 +00:00
fbarchard@google.com
a1f5254a95 Switch to c style casts for all source and includes.
BUG=303
TESTED=try
R=tpsiaki@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@952 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-01-07 03:03:00 +00:00
fbarchard@google.com
5dba58cb1e FixedDiv1 using a single 64/32 divide. Removes size restriction from slope.
BUG=302
TESTED=libyuv scale tests
R=tpsiaki@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@940 16f28f9a-4ce2-e073-06de-1de4eb20be90
2014-01-02 22:32:09 +00:00
fbarchard@google.com
b14f46fa30 NaCL pepper_33 port of scale and compare using lock/unlock. Remove less useful scaling tests and change default size to a multiple of 16 for better assembly coverage.
BUG=none
TESTED=ncval
R=nfullagar@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@917 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-12-17 18:27:06 +00:00
nfullagar@google.com
6f0a1dca2c First pass using bundle_lock / bundle_unlock from binutils update.
Remove hand placed BUNDLEALIGN and add new asm directives into
psuedo-instruction macros. Moving forward, this will make for easier and
more consistent psuedo-instruction alignment with bundle boundaries.
This is mostly a NaCl CL but does include a few changes that will slightly
change loop alignments in non-NaCl builds.
BUG=253
TEST=trybots,ncval
R=fbarchard@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@913 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-12-13 22:40:53 +00:00
fbarchard@google.com
0287a3cb53 Fix for I422ToARGB which used movq instead of movd
BUG=293
TESTED=LIBYUV_DISABLE_ASM=1 valgrind out/Debug/remoting_unittests --single-process-tests --gtest_filter=*YuvToRgb*
R=tpsiaki@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@911 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-12-12 01:59:45 +00:00
fbarchard@google.com
545a51c1d3 use scale for subsampling to handle odd source width to even destination width.
BUG=289
TEST=drmemory
R=nfullagar@google.com, ryanpetrie@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@884 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-12-03 00:27:29 +00:00
fbarchard@google.com
0014ce0056 test odd width and fix for unaligned used on odd width conversion.
BUG=283
TESTED=try bots
R=tpsiaki@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@883 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-12-02 20:07:29 +00:00
fbarchard@google.com
c2295807bd Reduce alignment for loops from 16 bytes to 4 bytes. Reduces outer loop overhead without hurting innerloop time.
BUG=none
TESTED=try bots
R=fbarchard@chromium.org, mflodman@webrtc.org

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@880 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-12-02 15:57:39 +00:00
fbarchard@google.com
dbe4814361 Move scale row functions to scale_win etc
BUG=none
TEST=untested
R=tpsiaki@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@879 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-11-28 01:16:15 +00:00
fbarchard@google.com
a77571812e Lint fixes for macros
BUG=none
TEST=lint
R=tpsiaki@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@877 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-11-27 01:33:09 +00:00
fbarchard@google.com
67e6419668 Port more functions in row_posix.cc to NaCl
BUG=253
TEST=libyuv_unittest,ncval,trybots
R=tpsiaki@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@876 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-11-27 01:15:24 +00:00
fbarchard@google.com
a0630d77f0 Report of affine to nacl using %k0
BUG=none
TEST=none
R=johannkoenig@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@855 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-11-15 17:42:44 +00:00
fbarchard@google.com
e37aed6f42 Nacl versions of color tables
BUG=none
TEST=none
R=tpsiaki@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@850 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-11-12 04:00:10 +00:00
fbarchard@google.com
c2a889eb55 Bump reciprocal up by 1
BUG=none
TEST=none
R=tpsiaki@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@847 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-11-11 05:14:13 +00:00
fbarchard@google.com
ed9ddc0765 Port small blur to NaCL
BUG=none
TEST=validate passes
R=tpsiaki@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@844 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-11-05 23:26:06 +00:00
fbarchard@google.com
4a4b7374c1 Load matrix with one vector and splat to 4 different ones.
BUG=none
TEST=none
R=ryanpetrie@google.com

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

git-svn-id: http://libyuv.googlecode.com/svn/trunk@838 16f28f9a-4ce2-e073-06de-1de4eb20be90
2013-11-01 21:29:45 +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
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
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
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
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
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