aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkBitmapProcState.h
Commit message (Collapse)AuthorAge
* separate out the scaline-choosing to simplify chooseProcsGravatar reed2015-01-14
| | | | | | | BUG=skia: TBR= Review URL: https://codereview.chromium.org/796063007
* Add SSSE3 acceleration for S32_D16_filter_DXDYGravatar qiankun.miao2014-12-04
| | | | | | | | | | | | | With this CL, related nanobench can be improved for 565 config. bitmap_BGRA_8888_scale_rotate_bilerp 115us -> 70.5us 0.61x bitmap_BGRA_8888_update_volatile_scale_rotate_bilerp 115us -> 70.5us 0.61x bitmap_BGRA_8888_update_scale_rotate_bilerp 112us -> 68us 0.6x BUG=skia: Committed: https://skia.googlesource.com/skia/+/45a05780867a06b9f8a8d5240cf6c5d5a2c15a35 Review URL: https://codereview.chromium.org/773753002
* Revert of Add SSSE3 acceleration for S32_D16_filter_DXDY (patchset #3 ↵Gravatar jam2014-12-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | id:40001 of https://codereview.chromium.org/773753002/) Reason for revert: breaks build when not using SSE3, since the two method definitions differ in parameter types (typo) Original issue's description: > Add SSSE3 acceleration for S32_D16_filter_DXDY > > With this CL, related nanobench can be improved for 565 config. > bitmap_BGRA_8888_scale_rotate_bilerp 115us -> 70.5us 0.61x > bitmap_BGRA_8888_update_volatile_scale_rotate_bilerp 115us -> 70.5us 0.61x > bitmap_BGRA_8888_update_scale_rotate_bilerp 112us -> 68us 0.6x > > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/45a05780867a06b9f8a8d5240cf6c5d5a2c15a35 TBR=mtklein@google.com,qkmiao@gmail.com,qiankun.miao@intel.com NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/761103003
* Add SSSE3 acceleration for S32_D16_filter_DXDYGravatar qiankun.miao2014-12-02
| | | | | | | | | | | With this CL, related nanobench can be improved for 565 config. bitmap_BGRA_8888_scale_rotate_bilerp 115us -> 70.5us 0.61x bitmap_BGRA_8888_update_volatile_scale_rotate_bilerp 115us -> 70.5us 0.61x bitmap_BGRA_8888_update_scale_rotate_bilerp 112us -> 68us 0.6x BUG=skia: Review URL: https://codereview.chromium.org/773753002
* Switch SkBitmapProcState's SkFractionalInt to 32.32.Gravatar mtklein2014-11-21
| | | | | | | | | | | 16 bits are not enough to hold the integral part of fx in Clamp_S32_opaque_D32_nofilter_DX_shaderproc. Weirdly, no GM diffs on my desktop. BUG=skia:3096 Review URL: https://codereview.chromium.org/733163003
* Second attempt to land the integral image scaling change.Gravatar humper2014-08-28
| | | | | | | | | | | | | | | | | | Scale all images to the nearest rounded integer, and if there's still any scaling factor left over, pass it on to the subsequent bilerp code. Should avoid artifacts when tiling scaled images. Original CL received an LGTM from reed; new version disabled tiling in the downsamplebitmap GM; I verified that this fixes the issue we were seeing there on non-neon androids. BUG=skia:2888 R=reed@android.com TBR=reed Author: humper@google.com Review URL: https://codereview.chromium.org/514383003
* rename ScaledImageCache to ResourceCacheGravatar reed2014-08-28
| | | | | | | | | BUG=skia: R=bsalomon@google.com, mtklein@google.com Author: reed@google.com Review URL: https://codereview.chromium.org/511283002
* manual revert of bitmap scale change while I investigate failuresGravatar humper2014-08-28
| | | | | | | | | | | on chromeos TBR=reed NOTREECHECKS=True Author: humper@google.com Review URL: https://codereview.chromium.org/516923003
* always scale to an integer; compensate for fractional image sizes by leaving ↵Gravatar humper2014-08-27
| | | | | | | | | | | the fractional scale in the matrix BUG=skia: R=reed@google.com Author: humper@google.com Review URL: https://codereview.chromium.org/470233002
* remove commented-out codeGravatar reed2014-08-26
| | | | | | | | | TBR=senorblanco@google.com NOTRY=True Author: reed@google.com Review URL: https://codereview.chromium.org/505253002
* retool image cache to be generic cache, allowing the client to subclass ↵Gravatar reed2014-08-26
| | | | | | | | | | | | | | | "Rec", so they can provide a custom Key and arbitrary Value. Follow-on CLs - rename ScaledimageCache to something like GeneralCache - explore if we can use call-backs or some mechanism to completely hide "lock/unlock", by forcing all clients to support "copying" their value out of the cache as the result of a Find. R=mtklein@google.com, senorblanco@google.com, bsalomon@google.com, qiankun.miao@intel.com, senorblanco@chromium.org Author: reed@google.com Review URL: https://codereview.chromium.org/507483002
* Refactor bitmap scaler to make it easier to migrate rest of chrome to use itGravatar humper2014-06-27
| | | | | | | | | | | | | | Previously, the set of platform-specific function pointers to do fast convolution (e.g., neon, SSE) were passed in a structure to the scaler. I refactored this so that the scaler fills in these function pointers after it's called, so the caller doesn't have to worry about it. R=mtklein@google.com TBR=mtklein NOTRY=True Author: humper@google.com Review URL: https://codereview.chromium.org/354193002
* Revert of Revert of Extract most of the mutable state of SkShader into a ↵Gravatar commit-bot@chromium.org2014-04-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | separate Context object. (https://codereview.chromium.org/249643002/) Reason for revert: Chromium side change landed along side DEPS roll that includes r14323. Original issue's description: > Revert of Extract most of the mutable state of SkShader into a separate Context object. (https://codereview.chromium.org/207683004/) > > Reason for revert: > This is blocking the DEPS roll into Chromium. Failures can be seen here: > > http://build.chromium.org/p/tryserver.chromium/builders/android_dbg/builds/174333 > > Original issue's description: > > Extract most of the mutable state of SkShader into a separate Context object. > > > > SkShader currently stores some state during draw calls via setContext(...). > > Move that mutable state into a separate SkShader::Context class that is > > constructed on demand for the duration of the draw. > > > > Calls to setContext() are replaced with createContext() which returns a context > > corresponding to the shader object or NULL if the parameters to createContext > > are invalid. > > > > TEST=out/Debug/dm > > BUG=skia:1976 > > > > Committed: http://code.google.com/p/skia/source/detail?r=14216 > > > > Committed: http://code.google.com/p/skia/source/detail?r=14323 > > TBR=scroggo@google.com,skyostil@chromium.org,tomhudson@chromium.org,senorblanco@chromium.org,reed@google.com,bungeman@google.com,dominikg@chromium.org > NOTREECHECKS=true > NOTRY=true > BUG=skia:1976 > > Committed: http://code.google.com/p/skia/source/detail?r=14326 R=scroggo@google.com, skyostil@chromium.org, tomhudson@chromium.org, senorblanco@chromium.org, reed@google.com, bungeman@google.com, dominikg@chromium.org TBR=bungeman@google.com, dominikg@chromium.org, reed@google.com, scroggo@google.com, senorblanco@chromium.org, skyostil@chromium.org, tomhudson@chromium.org NOTREECHECKS=true NOTRY=true BUG=skia:1976 Author: bsalomon@google.com Review URL: https://codereview.chromium.org/246403013 git-svn-id: http://skia.googlecode.com/svn/trunk@14328 2bbb7eff-a529-9590-31e7-b0007b416f81
* Revert of Extract most of the mutable state of SkShader into a separate ↵Gravatar commit-bot@chromium.org2014-04-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Context object. (https://codereview.chromium.org/207683004/) Reason for revert: This is blocking the DEPS roll into Chromium. Failures can be seen here: http://build.chromium.org/p/tryserver.chromium/builders/android_dbg/builds/174333 Original issue's description: > Extract most of the mutable state of SkShader into a separate Context object. > > SkShader currently stores some state during draw calls via setContext(...). > Move that mutable state into a separate SkShader::Context class that is > constructed on demand for the duration of the draw. > > Calls to setContext() are replaced with createContext() which returns a context > corresponding to the shader object or NULL if the parameters to createContext > are invalid. > > TEST=out/Debug/dm > BUG=skia:1976 > > Committed: http://code.google.com/p/skia/source/detail?r=14216 > > Committed: http://code.google.com/p/skia/source/detail?r=14323 R=scroggo@google.com, skyostil@chromium.org, tomhudson@chromium.org, senorblanco@chromium.org, reed@google.com, bungeman@google.com, dominikg@chromium.org TBR=bungeman@google.com, dominikg@chromium.org, reed@google.com, scroggo@google.com, senorblanco@chromium.org, skyostil@chromium.org, tomhudson@chromium.org NOTREECHECKS=true NOTRY=true BUG=skia:1976 Author: bsalomon@google.com Review URL: https://codereview.chromium.org/249643002 git-svn-id: http://skia.googlecode.com/svn/trunk@14326 2bbb7eff-a529-9590-31e7-b0007b416f81
* Extract most of the mutable state of SkShader into a separate Context object.Gravatar commit-bot@chromium.org2014-04-23
| | | | | | | | | | | | | | | | | | | | | | | SkShader currently stores some state during draw calls via setContext(...). Move that mutable state into a separate SkShader::Context class that is constructed on demand for the duration of the draw. Calls to setContext() are replaced with createContext() which returns a context corresponding to the shader object or NULL if the parameters to createContext are invalid. TEST=out/Debug/dm BUG=skia:1976 Committed: http://code.google.com/p/skia/source/detail?r=14216 R=scroggo@google.com, skyostil@chromium.org, tomhudson@chromium.org, senorblanco@chromium.org, reed@google.com, bungeman@google.com Author: dominikg@chromium.org Review URL: https://codereview.chromium.org/207683004 git-svn-id: http://skia.googlecode.com/svn/trunk@14323 2bbb7eff-a529-9590-31e7-b0007b416f81
* start to remove lockPixels from bitmapshaderGravatar reed@google.com2013-09-13
| | | | | | | | | BUG= R=scroggo@google.com Review URL: https://codereview.chromium.org/23591030 git-svn-id: http://skia.googlecode.com/svn/trunk@11258 2bbb7eff-a529-9590-31e7-b0007b416f81
* remove fConvolutionProcs from State, and just use it locallyGravatar reed@google.com2013-09-05
| | | | | | | | | BUG= R=humper@google.com Review URL: https://codereview.chromium.org/23796005 git-svn-id: http://skia.googlecode.com/svn/trunk@11118 2bbb7eff-a529-9590-31e7-b0007b416f81
* Implement highQualityFilter16 so GM doesn't crash when you give it resources.Gravatar mtklein@google.com2013-08-26
| | | | | | | | | | | | | | Testing consisted of: 1) ninja -C out/Debug gm && gm -i resources --match mandrill_512 -w /tmp/gm 2) notice that gm didn't segfault 3) look in /tmp/gm and see a bunch of handsome monkeys BUG=skia:1517 R=humper@google.com Review URL: https://codereview.chromium.org/22801016 git-svn-id: http://skia.googlecode.com/svn/trunk@10917 2bbb7eff-a529-9590-31e7-b0007b416f81
* free cache in destructor, in case endContext was not called. change Resize ↵Gravatar reed@google.com2013-07-24
| | | | | | | | | | | to return bool indicating success. BUG= R=humper@google.com Review URL: https://codereview.chromium.org/20102002 git-svn-id: http://skia.googlecode.com/svn/trunk@10335 2bbb7eff-a529-9590-31e7-b0007b416f81
* add scaledimagecacheGravatar reed@google.com2013-07-23
| | | | | | | | BUG= Review URL: https://codereview.chromium.org/20005003 git-svn-id: http://skia.googlecode.com/svn/trunk@10286 2bbb7eff-a529-9590-31e7-b0007b416f81
* stop using bitmap-filter flags outside of paint itself, as a step towards ↵Gravatar reed@google.com2013-07-22
| | | | | | | | | | really changing them into an enum BUG= Review URL: https://codereview.chromium.org/19825002 git-svn-id: http://skia.googlecode.com/svn/trunk@10240 2bbb7eff-a529-9590-31e7-b0007b416f81
* Sanitizing source files in Housekeeper-NightlyGravatar skia.committer@gmail.com2013-07-20
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@10223 2bbb7eff-a529-9590-31e7-b0007b416f81
* struct and class forward declarations incompatible on some compilersGravatar humper@google.com2013-07-19
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@10211 2bbb7eff-a529-9590-31e7-b0007b416f81
* The image resampling code has been transplanted from Chrome; it's incredibly ↵Gravatar humper@google.com2013-07-19
| | | | | | | | | | | | | | | fast. We've tested this CL plumbed into Chrome and done benchmarking with excellent results. This CL can land independent of any Chrome changes; it's completely internal to skia. BUG= R=reed@google.com Review URL: https://codereview.chromium.org/19335002 git-svn-id: http://skia.googlecode.com/svn/trunk@10206 2bbb7eff-a529-9590-31e7-b0007b416f81
* fix trivial matrix computationGravatar humper@google.com2013-07-14
| | | | | | | | | | | | | | Revert "Reverted 10056-10059" This reverts commit bab4ebcaa7270c3b866a8e10917c39b055ebd51a. Fix broken GM test, reintroduce image scaling. BUG= Review URL: https://codereview.chromium.org/18721006 git-svn-id: http://skia.googlecode.com/svn/trunk@10066 2bbb7eff-a529-9590-31e7-b0007b416f81
* Reverted 10056-10059Gravatar robertphillips@google.com2013-07-13
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@10060 2bbb7eff-a529-9590-31e7-b0007b416f81
* Sanitizing source files in Housekeeper-NightlyGravatar skia.committer@gmail.com2013-07-13
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@10059 2bbb7eff-a529-9590-31e7-b0007b416f81
* Working plumb of image scaling:Gravatar humper@google.com2013-07-12
| | | | | | | | | | | | | | | | 1) always generate mipmaps if we detect that we are downsampling. 2) pre-scale the image if we detect that we are upsampling (currently valid for scale+translate only) 3) A few miscellaneous bug fixes related to image scaling. Still need SSE/Neon versions of these image scalers. BUG= R=bsalomon@google.com, robertphillips@google.com Review URL: https://codereview.chromium.org/18978014 git-svn-id: http://skia.googlecode.com/svn/trunk@10056 2bbb7eff-a529-9590-31e7-b0007b416f81
* don't leak the bitmap filterGravatar commit-bot@chromium.org2013-07-10
| | | | | | | | | | | BUG= R=reed@google.com Author: humper@google.com Review URL: https://chromiumcodereview.appspot.com/18999005 git-svn-id: http://skia.googlecode.com/svn/trunk@9973 2bbb7eff-a529-9590-31e7-b0007b416f81
* Sanitizing source files in Housekeeper-NightlyGravatar skia.committer@gmail.com2013-07-10
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@9948 2bbb7eff-a529-9590-31e7-b0007b416f81
* New bitmap filter checkin; this time with less build breakageGravatar humper@google.com2013-07-09
| | | | | | | | BUG= Review URL: https://codereview.chromium.org/18942002 git-svn-id: http://skia.googlecode.com/svn/trunk@9944 2bbb7eff-a529-9590-31e7-b0007b416f81
* Revert "More general image filter interface; tested implementation of ↵Gravatar humper@google.com2013-07-09
| | | | | | | | standalone" This reverts commit 4df3e8b079e019af5f60c13e7e6ec6589663962a. git-svn-id: http://skia.googlecode.com/svn/trunk@9937 2bbb7eff-a529-9590-31e7-b0007b416f81
* More general image filter interface; tested implementation of standaloneGravatar humper@google.com2013-07-09
| | | | | | | | | | | | image scaler (not yet plumbed). High quality downsampler. Fast SSE resampler. BUG= R=reed@google.com Review URL: https://codereview.chromium.org/17381008 git-svn-id: http://skia.googlecode.com/svn/trunk@9936 2bbb7eff-a529-9590-31e7-b0007b416f81
* Sanitizing source files in Housekeeper-NightlyGravatar skia.committer@gmail.com2013-05-24
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@9266 2bbb7eff-a529-9590-31e7-b0007b416f81
* clone of https://codereview.chromium.org/15316014/ with teaksGravatar reed@google.com2013-05-23
| | | | | | | | BUG= Review URL: https://codereview.chromium.org/15904005 git-svn-id: http://skia.googlecode.com/svn/trunk@9264 2bbb7eff-a529-9590-31e7-b0007b416f81
* Sanitizing source files in Skia_Periodic_House_KeepingGravatar skia.committer@gmail.com2012-11-21
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@6521 2bbb7eff-a529-9590-31e7-b0007b416f81
* detect gigantoid matrices, and do nothing to avoid wacky overflows from ↵Gravatar reed@google.com2012-11-20
| | | | | | | | | float -> int https://code.google.com/p/chromium/issues/detail?id=156231 Review URL: https://codereview.appspot.com/6842075 git-svn-id: http://skia.googlecode.com/svn/trunk@6513 2bbb7eff-a529-9590-31e7-b0007b416f81
* fast case for translate-only repeat bitmapshader, so Tom can be happyGravatar reed@google.com2012-10-16
| | | | | | Review URL: https://codereview.appspot.com/6721045 git-svn-id: http://skia.googlecode.com/svn/trunk@5971 2bbb7eff-a529-9590-31e7-b0007b416f81
* reland 5926 w/ fix in middle loop (thank you asserts)Gravatar reed@google.com2012-10-12
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@5928 2bbb7eff-a529-9590-31e7-b0007b416f81
* revert 5926 (debug assert)Gravatar reed@google.com2012-10-12
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@5927 2bbb7eff-a529-9590-31e7-b0007b416f81
* add shaderproc32 for translate+clamp+nofilter.Gravatar reed@google.com2012-10-12
| | | | | | | todo: should be pretty easy to have a variant for repeat tilemode as well Review URL: https://codereview.appspot.com/6658053 git-svn-id: http://skia.googlecode.com/svn/trunk@5926 2bbb7eff-a529-9590-31e7-b0007b416f81
* Result of running tools/sanitize_source_files.py (which was added in ↵Gravatar rmistry@google.com2012-08-23
| | | | | | | | | https://codereview.appspot.com/6465078/) This CL is part I of IV (I broke down the 1280 files into 4 CLs). Review URL: https://codereview.appspot.com/6485054 git-svn-id: http://skia.googlecode.com/svn/trunk@5262 2bbb7eff-a529-9590-31e7-b0007b416f81
* land http://codereview.appspot.com/6353063/ by LeiGravatar reed@google.com2012-07-24
| | | | | | | | | | | | | | | | | | | | | | | optimizations for D16 using SSE2 skia_bench -config 565 -match bitmap_8888_scale_filter -forceFilter 1 -repeat 30 The result I got on Android platform was below: w/o this optimization routine: D/skia ( 1868): running bench [640 480] bitmap_8888_scale_filter D/skia ( 1868): 565: cmsecs = 286.50 w/ with optimization: D/skia ( 1463): running bench [640 480] bitmap_8888_scale_filter D/skia ( 1463): 565: cmsecs = 186.80 The net gain is 34.80%. git-svn-id: http://skia.googlecode.com/svn/trunk@4729 2bbb7eff-a529-9590-31e7-b0007b416f81
* add debuggin matrix-proc to validate its output before calling the samplersGravatar reed@google.com2012-03-27
| | | | | | Review URL: https://codereview.appspot.com/5901063 git-svn-id: http://skia.googlecode.com/svn/trunk@3505 2bbb7eff-a529-9590-31e7-b0007b416f81
* enable fractionalint (64bit) math in bitmap procsGravatar reed@google.com2012-03-14
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@3381 2bbb7eff-a529-9590-31e7-b0007b416f81
* don't flip the fractional bits (low 4) for bilerp when in kMirror_TileModeGravatar reed@google.com2012-03-09
| | | | | | Review URL: https://codereview.appspot.com/5795043 git-svn-id: http://skia.googlecode.com/svn/trunk@3357 2bbb7eff-a529-9590-31e7-b0007b416f81
* disable 64bit opt for now, as I debug skew failure in DRTGravatar reed@google.com2012-03-08
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@3349 2bbb7eff-a529-9590-31e7-b0007b416f81
* apply FractionalInt improvement to rotatedGravatar reed@google.com2012-03-08
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@3348 2bbb7eff-a529-9590-31e7-b0007b416f81
* use higher precision (64bit) fixed-point for matrix procGravatar reed@google.com2012-03-07
| | | | | | Review URL: https://codereview.appspot.com/5772044 git-svn-id: http://skia.googlecode.com/svn/trunk@3336 2bbb7eff-a529-9590-31e7-b0007b416f81
* SSSE3 code for drawing rotated bitmaps; produces 25-30% speedup.Gravatar tomhudson@google.com2012-03-06
| | | | | | | | | | Courtesy of Jin Yang. http://codereview.appspot.com/5704055/ git-svn-id: http://skia.googlecode.com/svn/trunk@3331 2bbb7eff-a529-9590-31e7-b0007b416f81