aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/effects/SkGpuBlurUtils.cpp
Commit message (Collapse)AuthorAge
* remove imagefilter::sizeconstraintGravatar reed2016-01-11
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1571033002 Review URL: https://codereview.chromium.org/1571033002
* Fix gaussian blur for small sigma.Gravatar senorblanco2015-12-17
| | | | | | | | | | | | | | | | | | | | I broke this in https://skia.googlesource.com/skia/+/c57e0ded7d535523cfc6bf07c78e5f3479bb8c42. That change added support for cropping during blur, but did not do the correct thing for the small-sigma 2D matrix convolution optimization when blurring from small-to-large textures. The fix is pass the correct dstRect and srcOffset to convolve_gaussian_2d. I also changed convolve_gaussian_1d() and convolve_gaussian_2d() to take the original (non-negated) srcOffset, and to negate them when constructing the local matrix. Test: added a new (blur 0.3 0.3) column to imagefilterscropexpand, so that GM will have to be rebaselined. BUG=skia:4719,569883 GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1529313003 Review URL: https://codereview.chromium.org/1529313003
* Don't create a GXPFactory when blend is SrcOverGravatar egdaniel2015-11-23
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1471053002
* Make SkBlurImageFilter capable of cropping during blur (GPU path).Gravatar senorblanco2015-11-10
| | | | | | | | | | | | | | | | | | | This is the GPU equivalent of https://codereview.chromium.org/1415653003/. It requires passing down the bounds of the crop rect (srcBounds), and turning the blur 3-patch optimization in convolve_gaussian() into a 5-patch: clear above and below srcBounds, blur with bounds checks inside left and right rects, blur without bounds checks in middle rect. Note: this change causes minor pixels diffs in the imagefilterscropexpand GM: for odd crop positions relative to the dstBounds, we are now correctly resampling at an even pixel boundary. BUG=skia:4502, skia:4526 Committed: https://skia.googlesource.com/skia/+/c57e0ded7d535523cfc6bf07c78e5f3479bb8c42 Review URL: https://codereview.chromium.org/1431593002
* Revert of Make SkBlurImageFilter capable of cropping during blur (GPU path). ↵Gravatar egdaniel2015-11-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (patchset #15 id:260001 of https://codereview.chromium.org/1431593002/ ) Reason for revert: Causing valgrind error. Looks like the issue is in conolve_gaussiand_2d where bounds is not getting set if there is no srcBounds, but later on that bounds is being read in the creation of a TextureDomain. Original issue's description: > Make SkBlurImageFilter capable of cropping during blur (GPU path). > > This is the GPU equivalent of https://codereview.chromium.org/1415653003/. > > It requires passing down the bounds of the crop rect (srcBounds), and > turning the blur 3-patch optimization in convolve_gaussian() into a 5-patch: > clear above and below srcBounds, blur with bounds checks inside left and > right rects, blur without bounds checks in middle rect. > > Note: this change causes minor pixels diffs in the > imagefilterscropexpand GM: for odd crop positions relative to the > dstBounds, we are now correctly resampling at an even pixel boundary. > > BUG=skia:4502, skia:4526 > > Committed: https://skia.googlesource.com/skia/+/c57e0ded7d535523cfc6bf07c78e5f3479bb8c42 TBR=bsalomon@google.com,senorblanco@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia:4502, skia:4526 Review URL: https://codereview.chromium.org/1407133019
* Make SkBlurImageFilter capable of cropping during blur (GPU path).Gravatar senorblanco2015-11-05
| | | | | | | | | | | | | | | | | This is the GPU equivalent of https://codereview.chromium.org/1415653003/. It requires passing down the bounds of the crop rect (srcBounds), and turning the blur 3-patch optimization in convolve_gaussian() into a 5-patch: clear above and below srcBounds, blur with bounds checks inside left and right rects, blur without bounds checks in middle rect. Note: this change causes minor pixels diffs in the imagefilterscropexpand GM: for odd crop positions relative to the dstBounds, we are now correctly resampling at an even pixel boundary. BUG=skia:4502, skia:4526 Review URL: https://codereview.chromium.org/1431593002
* Rename non-aa rect methods on GrDrawContext in anticipation of making them ↵Gravatar bsalomon2015-11-05
| | | | | | | | support aa R=joshualitt@google.com Review URL: https://codereview.chromium.org/1409753008
* Simplify SkGpuBlurUtils.Gravatar senorblanco2015-11-03
| | | | | | | | | | | | | We compute a lot of { srcRect, dstRect } pairs in this code, but they're always the same width and height, and dstRect often has a zero origin. So pass only one or the other and an offset, where required. Among other things, this simplifies the code in convolve_gaussian(), since we only have to 3-patch the dstRect. BUG=skia:4502 Review URL: https://codereview.chromium.org/1430593006
* tunnel down texture-size-constraint to imagefiltersGravatar reed2015-10-22
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1421493003
* Remove DrawingMgr shims from GrContextGravatar robertphillips2015-10-17
| | | | | | BUG=skia:4094 Review URL: https://codereview.chromium.org/1413673002
* GrDrawContext now holds GrRenderTarget pointerGravatar robertphillips2015-10-15
| | | | Review URL: https://codereview.chromium.org/1404823005
* Insert clip fragment processor outside GrCMMGravatar bsalomon2015-10-07
| | | | Review URL: https://codereview.chromium.org/1393553002
* Bye bye processor data manager.Gravatar bsalomon2015-10-06
| | | | Review URL: https://codereview.chromium.org/1388113002
* Base SkAutoTUnref on skstd::unique_ptr.Gravatar bungeman2015-10-01
| | | | | | | | | To further consolidate the various unique owning classes, this bases SkAutoTUnref on skstd::unique_ptr. Users are updated because of two breaking changes, swap now takes a reference and reset no longer returns its argument. Review URL: https://codereview.chromium.org/1370803002
* Limit lifetime of GrDrawContext objectsGravatar robertphillips2015-09-01
| | | | | | GrDrawContext's are about to become real allocated objects. This CL sets up the machinery so they won't leak. Review URL: https://codereview.chromium.org/1321353002
* Style Change: NULL->nullptrGravatar halcanary2015-08-27
| | | | | | DOCS_PREVIEW= https://skia.org/?cl=1316233002 Review URL: https://codereview.chromium.org/1316233002
* Remove GrStagedProcessor, remove the word Stage as it applies to FPsGravatar bsalomon2015-08-27
| | | | | | Committed: https://skia.googlesource.com/skia/+/24243446cdf7b7e4e132c2a0c387c7723777e0c7 Review URL: https://codereview.chromium.org/1307223004
* Revert of Remove GrStagedProcessor, remove the word Stage as it applies to ↵Gravatar rmistry2015-08-26
| | | | | | | | | | | | | | | | | | | | | | | | | FPs (patchset #6 id:90001 of https://codereview.chromium.org/1307223004/ ) Reason for revert: Causes bot failures: https://uberchromegw.corp.google.com/i/client.skia/builders/Test-Mac10.9-Clang-MacMini6.2-GPU-HD4000-x86_64-Debug/builds/1639 https://uberchromegw.corp.google.com/i/client.skia/builders/Test-Ubuntu-GCC-ShuttleA-GPU-GTX660-x86_64-Debug/builds/1702 https://uberchromegw.corp.google.com/i/client.skia.android/builders/Test-Android-GCC-NexusPlayer-GPU-PowerVR-x86-Debug/builds/1223 Original issue's description: > Remove GrStagedProcessor, remove the word Stage as it applies to FPs > > Committed: https://skia.googlesource.com/skia/+/24243446cdf7b7e4e132c2a0c387c7723777e0c7 TBR=joshualitt@google.com,egdaniel@google.com,bsalomon@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1306803003
* Remove GrStagedProcessor, remove the word Stage as it applies to FPsGravatar bsalomon2015-08-26
| | | | Review URL: https://codereview.chromium.org/1307223004
* Some cleanup in GrTextureProvider and GrResourceProvider.Gravatar bsalomon2015-07-31
| | | | Review URL: https://codereview.chromium.org/1261643004
* Misc cleanupGravatar robertphillips2015-07-22
| | | | | | | | | | This is split off of https://codereview.chromium.org/1225923010/ (Start tightening correspondence betweeen GrDrawContext and GrRenderTarget). It: fixes some style nits replaces some passing of GrContext with GrTextureProvider & GrDrawContext does a bit of the finer grained creation of GrDrawContexts Review URL: https://codereview.chromium.org/1245183002
* More threading of GrProcessorDataManagerGravatar joshualitt2015-07-09
| | | | | | | TBR=bsalomon@google.com BUG=skia: Review URL: https://codereview.chromium.org/1230813003
* Add direct getter for GrCaps to GrContext.Gravatar bsalomon2015-05-29
| | | | | | | | TBR=joshualitt@google.com Committed: https://skia.googlesource.com/skia/+/9138c46e572085870638b6f7ad7fcdfcdf3cac99 Review URL: https://codereview.chromium.org/1149773005
* Revert of Add direct getter for GrCaps to GrContext. (patchset #4 id:60001 ↵Gravatar bsalomon2015-05-28
| | | | | | | | | | | | | | | | | | | | | of https://codereview.chromium.org/1149773005/) Reason for revert: Breaking Original issue's description: > Add direct getter for GrCaps to GrContext. > > TBR=joshualitt@google.com > > Committed: https://skia.googlesource.com/skia/+/9138c46e572085870638b6f7ad7fcdfcdf3cac99 TBR=joshualitt@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1164443002
* Add direct getter for GrCaps to GrContext.Gravatar bsalomon2015-05-28
| | | | | | TBR=joshualitt@google.com Review URL: https://codereview.chromium.org/1149773005
* Split drawing functionality out of GrContext and into new GrDrawContextGravatar robertphillips2015-05-26
| | | | | | | | This is mainly a mechanical CL. There were some fiddly bits in GrContext.cpp where it no longer had access to the GrDrawTarget (and had to use the new GrDrawContext). I've converted GrAARectRenderer & GrOvalRenderer into static classes so I could stop allocating them. Review URL: https://codereview.chromium.org/1151283004
* This replaces the texture creation/caching functions on GrContext with a ↵Gravatar bsalomon2015-04-30
| | | | | | GrTextureProvider interface. The goal is to pass this narrowly focused object in places that currently take a GrContext but don't need and shouldn't use its other methods. It also has an extended private interface for interacting with non-texture resource types. Review URL: https://codereview.chromium.org/1107973004
* I'd really like to land this before the branch so speedy reviews are ↵Gravatar joshualitt2015-02-25
| | | | | | | | | | appreciated. BUG=skia: Committed: https://skia.googlesource.com/skia/+/586d5d640b19860dfbbd903a5188da1bbbe87336 Review URL: https://codereview.chromium.org/936943002
* Revert of Pass clip to context (patchset #8 id:180001 of ↵Gravatar joshualitt2015-02-25
| | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/936943002/) Reason for revert: Strange blur problems on nexus 5 Original issue's description: > I'd really like to land this before the branch so speedy reviews are appreciated. > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/586d5d640b19860dfbbd903a5188da1bbbe87336 TBR=jvanverth@google.com,senorblanco@google.com,bsalomon@google.com,senorblanco@chromium.org,joshualitt@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/956083002
* I'd really like to land this before the branch so speedy reviews are ↵Gravatar joshualitt2015-02-25
| | | | | | | | appreciated. BUG=skia: Review URL: https://codereview.chromium.org/936943002
* Dynamically create stencil buffer when needed.Gravatar bsalomon2015-02-23
| | | | Review URL: https://codereview.chromium.org/938383004
* Pass Rendertarget into context.Gravatar joshualitt2015-02-18
| | | | | | | | Adding Jim for text context stuff, and Steven for image blur stuff. BUG=skia: Review URL: https://codereview.chromium.org/939623005
* XPFactory lazily initializie in drawstate / GrPaintGravatar joshualitt2015-01-22
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/866573002
* Remove a few unused statements.Gravatar cwallez2015-01-19
| | | | | | BUG= Review URL: https://codereview.chromium.org/837643003
* Change to create device coord coordsetGravatar joshualitt2014-12-18
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/812063002
* remove view matrix from contextGravatar joshualitt2014-12-17
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/808703006
* Use threshold of 1 texture coord value per pixel w/ nearest neighbor.Gravatar bsalomon2014-12-09
| | | | Review URL: https://codereview.chromium.org/787873002
* add roundOut that returns its resultGravatar reed2014-11-19
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/742663002
* change roundOut() to take a dst, so we can use that signature to return IRectGravatar reed2014-11-18
| | | | | | | BUG=skia: TBR=robertphilips Review URL: https://codereview.chromium.org/731373003
* Don't allow renderTarget==NULL to GrContext::clear() and friends.Gravatar bsalomon2014-11-03
| | | | Review URL: https://codereview.chromium.org/680413005
* rename GrTextureDesc->GrSurfaceDesc, GrTextureFlags->GrSurfaceFlagsGravatar bsalomon2014-10-28
| | | | Review URL: https://codereview.chromium.org/682223002
* Remove uses of GrAutoScratchTexture.Gravatar bsalomon2014-10-14
| | | | | | | | | | Rename GrContext::lockAndRefScratchTexture to refScratchTexture. GrSurface::writePixels returns bool instead of void. BUG=skia:2889 Review URL: https://codereview.chromium.org/638403003
* Patch to create a distinct geometry processor. The vast majority of this patchGravatar joshualitt2014-09-23
| | | | | | | | | | | | | is just a rename. The meat is in GrGeometryProcessor, GrProcessor, GrGL*Processor, GrProcessorStage, Gr*BackendProcessorFactory, GrProcessUnitTestFactory, and the builders BUG=skia: R=bsalomon@google.com Author: joshualitt@chromium.org Review URL: https://codereview.chromium.org/582963002
* "NULL !=" = NULLGravatar bsalomon2014-09-05
| | | | | | | | R=reed@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/544233002
* 2D kernel initial wiring for GuassianGravatar joshualitt2014-08-11
| | | | | | | | | BUG=skia: R=senorblanco@chromium.org, bsalomon@chromium.org, bsalomon@google.com Author: joshualitt@chromium.org Review URL: https://codereview.chromium.org/418223009
* Goodbye GrEffectRef.Gravatar bsalomon2014-07-08
| | | | | | | | | | Also, reworked some var names and comments around SkShader::asNewEffect. R=robertphillips@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/374923002
* Fix for crash on large image blur sigma values.Gravatar senorblanco@chromium.org2014-03-24
| | | | | | | | | | | | | | | | This was crashing on the GPU path, due to a failed texture allocation. The belt-and-suspenders fix is to: 1) Limit the GPU path to only allocate up to maxTextureSize. 2) Limit both the raster and GPU paths to reasonable blur sizes (box blur kernel size of 1000, resulting in a sigma limit of 532). R=bsalomon@google.com BUG=skia: Review URL: https://codereview.chromium.org/209353014 git-svn-id: http://skia.googlecode.com/svn/trunk@13923 2bbb7eff-a529-9590-31e7-b0007b416f81
* Make texture domain a helper so that it can be incorporated into other effects.Gravatar commit-bot@chromium.org2013-12-09
| | | | | | | | | | R=robertphillips@google.com, jvanverth@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/98893006 git-svn-id: http://skia.googlecode.com/svn/trunk@12569 2bbb7eff-a529-9590-31e7-b0007b416f81
* remove SkFloatToScalar macroGravatar commit-bot@chromium.org2013-11-25
| | | | | | | | | | | BUG= R=reed@google.com, djsollen@google.com Author: caryclark@google.com Review URL: https://codereview.chromium.org/85463005 git-svn-id: http://skia.googlecode.com/svn/trunk@12385 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add can-ignore-rect hint to clear callGravatar robertphillips@google.com2013-10-31
| | | | | | | | https://codereview.chromium.org/53823003/ git-svn-id: http://skia.googlecode.com/svn/trunk@12064 2bbb7eff-a529-9590-31e7-b0007b416f81