aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu
Commit message (Collapse)AuthorAge
* Pass GrAppliedClip to pipeline creation.Gravatar Brian Salomon2017-01-17
| | | | | | | | | This skips adding the clip's coverage processor to the GrPipelineBuilder before creating GrPipeline. Change-Id: I1282dd8600701ab2b6a049abd8ad571abbbcbbe5 Reviewed-on: https://skia-review.googlesource.com/7020 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
* Continue making Ganesh use absolute texture coordinatesGravatar Robert Phillips2017-01-17
| | | | | | | | | The idea here is that the GrCoordTransform will actually hold a GrTextureProxy (rather than a GrTexture) and then, in GrGLSLPrimitiveProcessor::GetTransformMatrix, use the instantiated width & height (when uploading the transform matrix) Change-Id: Ibac3a540fcb1967ceef571157d41c1937acfadf8 Reviewed-on: https://skia-review.googlesource.com/6977 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Revert "Revert "Enforce our rules about valid images when making textures""Gravatar Brian Osman2017-01-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 8bbdd49805bd77fec61e6e31f59d31a361e8be30. Reason for revert: Original change re-landed. Original change's description: > Revert "Enforce our rules about valid images when making textures" > > This reverts commit 7035f3c466826a4116e2f31deb64d1645ea9441b. > > Reason for revert: Need to revert earlier change to fix DEPS roll. > > Original change's description: > > Enforce our rules about valid images when making textures > > > > I'm working to make GrUploadPixmapToTexture more robust > > and easier to follow. This is one step on that journey. > > > > BUG=skia: > > > > Change-Id: I3ac39057e20ff8249843bb41ceca25f629aff31c > > Reviewed-on: https://skia-review.googlesource.com/7037 > > Commit-Queue: Brian Osman <brianosman@google.com> > > Reviewed-by: Matt Sarett <msarett@google.com> > > Reviewed-by: Brian Salomon <bsalomon@google.com> > > > > TBR=bsalomon@google.com,msarett@google.com,robertphillips@google.com,brianosman@google.com > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=skia: > > Change-Id: I1d7fef2d3777f0fcabc6c36749908409bd31a0f1 > Reviewed-on: https://skia-review.googlesource.com/7094 > Commit-Queue: Brian Osman <brianosman@google.com> > Reviewed-by: Brian Osman <brianosman@google.com> > TBR=bsalomon@google.com,msarett@google.com,robertphillips@google.com,brianosman@google.com # Not skipping CQ checks because original CL landed > 1 day ago. BUG=skia: Change-Id: I53319ebca4b13175014e6000d7b613932d02612b Reviewed-on: https://skia-review.googlesource.com/7114 Commit-Queue: Brian Osman <brianosman@google.com> Reviewed-by: Brian Osman <brianosman@google.com>
* Reland "Add SkImageInfoValidConversion() and SkImageInfoIsValid"Gravatar Matt Sarett2017-01-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The original is at: https://skia-review.googlesource.com/c/6887/ The only change to the original is to temporarily comment out a check in SkImageInfoPriv.h until a Chrome unit test can be fixed. The idea is share these standards for the following: SkImage::readPixels() SkCanvas::readPixels() SkCanvas::writePixels() SkBitmap::readPixels() SkPixmap::readPixels() On the raster side, SkPixmap::readPixels() is the right place to check, because all raster calls go through there eventually. Then at lower levels (ex: SkPixelInfo), we can assert. There's not really a unifying location for gpu calls, so I've added this in multiple places. I haven't really dug into the gpu code to SkASSERT() on invalid cases that we will have already caught. Follow-up work: Similar refactor for SkReadPixelRec::trim(). Code cleanup in SkPixelInfo::CopyPixels() BUG=skia:6021 Change-Id: I6a16f9479bc09e3c87e10c72b0378579f1a70866 Reviewed-on: https://skia-review.googlesource.com/7104 Reviewed-by: Matt Sarett <msarett@google.com> Commit-Queue: Matt Sarett <msarett@google.com>
* Simplify GrProcOptInfo initialization.Gravatar Brian Salomon2017-01-17
| | | | | | | | | | | | | Removes unused single channel tracking. Makes it so that only the op/gp can initiate lcd coverage. Makes GrProcOptInfo fragment processor analysis continuable. Change-Id: I003a8aa3836bb64d04b230ddee581dc500e613a9 Reviewed-on: https://skia-review.googlesource.com/7039 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* GrTessellator: fix for disappearing thin path.Gravatar Stephen White2017-01-17
| | | | | | | | | | | | | | | | | | simplify_boundary() was incorrectly comparing squared distances against a non-squared constant. For .25 of a pixel, we need to compare against 0.25 squared, or 0.0625. This also includes a fix to get_edge_normal(), We were actually returning edge "vectors", instead of edge normals. This wasn't causing problems, since the error cancels itself out, but it's confusing. BUG=skia: Change-Id: I0d50f2d001ed5e41de2900139c396b9ef75d2ddf Reviewed-on: https://skia-review.googlesource.com/7043 Commit-Queue: Stephan White <senorblanco@chromium.org> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Revert "Add SkImageInfoValidConversion() and SkImageInfoIsValid"Gravatar Brian Osman2017-01-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit cf5d6caff7a58f1c7ecc36d9a91ccdada5fc7b78. Reason for revert: Chrome DEPS roll failing, based on the unit tests, I suspect this is the cause. Original change's description: > Add SkImageInfoValidConversion() and SkImageInfoIsValid > > The idea is share these standards for the following: > SkImage::readPixels() > SkCanvas::readPixels() > SkCanvas::writePixels() > SkBitmap::readPixels() > SkPixmap::readPixels() > > On the raster side, SkPixmap::readPixels() is the right > place to check, because all raster calls go through > there eventually. Then at lower levels (ex: SkPixelInfo), > we can assert. > > There's not really a unifying location for gpu calls, > so I've added this in multiple places. I haven't really > dug into the gpu code to SkASSERT() on invalid cases > that we will have already caught. > > Follow-up work: > Similar refactor for SkReadPixelRec::trim(). > Code cleanup in SkPixelInfo::CopyPixels() > > BUG=skia:6021 > > Change-Id: I91ecce10e46c1a6530f0af24a9eb8226dbecaaa2 > Reviewed-on: https://skia-review.googlesource.com/6887 > Reviewed-by: Brian Osman <brianosman@google.com> > Reviewed-by: Mike Reed <reed@google.com> > TBR=mtklein@google.com,msarett@google.com,brianosman@google.com,reed@google.com,reviews@skia.org # Not skipping CQ checks because original CL landed > 1 day ago. BUG=skia:6021 Change-Id: I63b88e90bdbb3051a14de00ac73a8351ab776d25 Reviewed-on: https://skia-review.googlesource.com/7095 Commit-Queue: Brian Osman <brianosman@google.com> Reviewed-by: Brian Osman <brianosman@google.com>
* Revert "Enforce our rules about valid images when making textures"Gravatar Brian Osman2017-01-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 7035f3c466826a4116e2f31deb64d1645ea9441b. Reason for revert: Need to revert earlier change to fix DEPS roll. Original change's description: > Enforce our rules about valid images when making textures > > I'm working to make GrUploadPixmapToTexture more robust > and easier to follow. This is one step on that journey. > > BUG=skia: > > Change-Id: I3ac39057e20ff8249843bb41ceca25f629aff31c > Reviewed-on: https://skia-review.googlesource.com/7037 > Commit-Queue: Brian Osman <brianosman@google.com> > Reviewed-by: Matt Sarett <msarett@google.com> > Reviewed-by: Brian Salomon <bsalomon@google.com> > TBR=bsalomon@google.com,msarett@google.com,robertphillips@google.com,brianosman@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Change-Id: I1d7fef2d3777f0fcabc6c36749908409bd31a0f1 Reviewed-on: https://skia-review.googlesource.com/7094 Commit-Queue: Brian Osman <brianosman@google.com> Reviewed-by: Brian Osman <brianosman@google.com>
* Enforce our rules about valid images when making texturesGravatar Brian Osman2017-01-14
| | | | | | | | | | | | | I'm working to make GrUploadPixmapToTexture more robust and easier to follow. This is one step on that journey. BUG=skia: Change-Id: I3ac39057e20ff8249843bb41ceca25f629aff31c Reviewed-on: https://skia-review.googlesource.com/7037 Commit-Queue: Brian Osman <brianosman@google.com> Reviewed-by: Matt Sarett <msarett@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Revert "move SkDevice.h and SkBitmapDevice.h contents in to src headers"Gravatar Mike Reed2017-01-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 2f719a6b9214997e4cc24646d4b280038962b836. Reason for revert: <INSERT REASONING HERE> swf/transform/jsrunner/swiffy_canvas.h caller included SkDevice.h, but really wanted SkBitmap and SkColor Original change's description: > move SkDevice.h and SkBitmapDevice.h contents in to src headers > > BUG=skia: > > Change-Id: I3d8d313f0500c13db21cb973fed4064ec3816912 > Reviewed-on: https://skia-review.googlesource.com/7082 > Reviewed-by: Florin Malita <fmalita@chromium.org> > Commit-Queue: Mike Reed <reed@google.com> > TBR=bungeman@google.com,fmalita@chromium.org,reed@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Change-Id: I40f7f1e4ad62685facdd39492da7a0b105178221 Reviewed-on: https://skia-review.googlesource.com/7087 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Mike Reed <reed@google.com>
* move SkDevice.h and SkBitmapDevice.h contents in to src headersGravatar Mike Reed2017-01-13
| | | | | | | | | BUG=skia: Change-Id: I3d8d313f0500c13db21cb973fed4064ec3816912 Reviewed-on: https://skia-review.googlesource.com/7082 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Mike Reed <reed@google.com>
* Use GrRenderTargetContext::readPixels in GrTextureToYUVPlanesGravatar Robert Phillips2017-01-13
| | | | | | | | | This is salvaged from an ancient CL or mine. Thoughts? Change-Id: I3712ca911d1ab5def3f4dcb080a3f9e226cdd44b Reviewed-on: https://skia-review.googlesource.com/7031 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Remove (unused) YUV API from SkPixelRefGravatar Brian Osman2017-01-13
| | | | | | | | | | | YUV conversion happens via SkImage now. BUG=skia: Change-Id: I6e1fa18effb72cbb00a173a346769b873e372c40 Reviewed-on: https://skia-review.googlesource.com/7034 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* Remove most modifiers of processors on GrPipelineBuilderGravatar Brian Salomon2017-01-13
| | | | | | | Change-Id: I2fc12a97d694e5c0d86c9a4e0818a058905c8cf0 Reviewed-on: https://skia-review.googlesource.com/6993 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
* Simplify k.w calculation in getConicKLM.Gravatar Dean McNamee2017-01-13
| | | | | | | | | | | | Additionally reformat the equations to better expose the symmetry. BUG=skia: Change-Id: If485cc7aeae97b89dedeb4d6b23efbe945036e3a Reviewed-on: https://skia-review.googlesource.com/7000 Reviewed-by: Greg Daniel <egdaniel@google.com> Reviewed-by: Dean McNamee <deanm@chromium.org> Commit-Queue: Greg Daniel <egdaniel@google.com>
* Add SkImageInfoValidConversion() and SkImageInfoIsValidGravatar Matt Sarett2017-01-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The idea is share these standards for the following: SkImage::readPixels() SkCanvas::readPixels() SkCanvas::writePixels() SkBitmap::readPixels() SkPixmap::readPixels() On the raster side, SkPixmap::readPixels() is the right place to check, because all raster calls go through there eventually. Then at lower levels (ex: SkPixelInfo), we can assert. There's not really a unifying location for gpu calls, so I've added this in multiple places. I haven't really dug into the gpu code to SkASSERT() on invalid cases that we will have already caught. Follow-up work: Similar refactor for SkReadPixelRec::trim(). Code cleanup in SkPixelInfo::CopyPixels() BUG=skia:6021 Change-Id: I91ecce10e46c1a6530f0af24a9eb8226dbecaaa2 Reviewed-on: https://skia-review.googlesource.com/6887 Reviewed-by: Brian Osman <brianosman@google.com> Reviewed-by: Mike Reed <reed@google.com>
* Delay SkPaint->GrPaint conversion in text rendering.Gravatar Brian Salomon2017-01-13
| | | | | | | | | | | This fixes an issue where color filters aren't correctly applied to color glyphs. Instead we apply the filter to the SkPaint's color which is correct for mask glyphs only. Add color filter and alpha + various effects to coloremoji gm Change-Id: If77dece71d43468fec65499857eaaaedb56428e9 Reviewed-on: https://skia-review.googlesource.com/6891 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Jim Van Verth <jvanverth@google.com>
* Minor Ganesh refFoo cleanupGravatar Robert Phillips2017-01-13
| | | | | | | Change-Id: I2c66693c280225795a5d36ccc0391fcd4056420d Reviewed-on: https://skia-review.googlesource.com/6995 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Try out new refFoo pattern on GrStyleGravatar Robert Phillips2017-01-13
| | | | | | | Change-Id: Ic7f30e3730a3431adf365d729320fe50f38dcea8 Reviewed-on: https://skia-review.googlesource.com/6907 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Try out refFoo pattern on GrRenderTargetContextGravatar Robert Phillips2017-01-13
| | | | | | | | Change-Id: Ifae5618f30c2202b9083f479b58556709ff6126a Reviewed-on: https://skia-review.googlesource.com/6990 Commit-Queue: Robert Phillips <robertphillips@google.com> Reviewed-by: Brian Osman <brianosman@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
* Remove spurious checks for sRGB float dataGravatar Brian Osman2017-01-13
| | | | | | | | | | | | | We don't support this. F16 or F32 textures must be built with a linear transfer function, if any. BUG=skia: Change-Id: Ia8d83a03d12ddc3b70f5d7e4fabed72f6c2af538 Reviewed-on: https://skia-review.googlesource.com/6978 Reviewed-by: Robert Phillips <robertphillips@google.com> Reviewed-by: Matt Sarett <msarett@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* refFoo variant for getters that naturally have a sk_spGravatar Mike Reed2017-01-12
| | | | | | | | | | BUG=skia: Change-Id: I13afa1b81e8a72d93e45fb4d37228be196b0f388 Reviewed-on: https://skia-review.googlesource.com/6923 Reviewed-by: Florin Malita <fmalita@chromium.org> Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Cleanup GrPixelConfig helper functionsGravatar Brian Osman2017-01-12
| | | | | | | | | | | | Remove unused functions, and convert another to switch style. BUG=skia: Change-Id: I93edbece54f147d868801bb008e6f935a8cb997f Reviewed-on: https://skia-review.googlesource.com/6947 Reviewed-by: Brian Salomon <bsalomon@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* Fix perf regression with SDF pathsGravatar Jim Van Verth2017-01-12
| | | | | | | | | BUG=skia:6113,chromium:677889 Change-Id: I13d012a92e4d0371138f5ed4b92c7850f9b773a5 Reviewed-on: https://skia-review.googlesource.com/6945 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Jim Van Verth <jvanverth@google.com>
* Remove second version of SkImageInfo2GrPixelConfigGravatar Brian Osman2017-01-12
| | | | | | | | | | | | | | | | Alpha type is not (and never will be) part of pixel config, so the logic around that was unnecessary. (Also, we already sanitize color type and alpha type before making a new device at a higher level). With that out of the way, we can easily supply a full info at the two call-sites that were using the other version. BUG=skia: Change-Id: Iceccdbdebd1062d3e5023620755aabcc86604d2f Reviewed-on: https://skia-review.googlesource.com/6920 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* Remove kIndex_8_GrPixelConfigGravatar Brian Osman2017-01-12
| | | | | | | | | | | | It's been disabled for a long time (GPUs don't support it, and it actually caused performance regression in testing). BUG=skia:4333 Change-Id: I6e2bf755f765168fd616de6c9c023c6fbd5abd20 Reviewed-on: https://skia-review.googlesource.com/6897 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* GrTessellator: fix artifact with exactly-1-px-wide edges.Gravatar Stephen White2017-01-12
| | | | | | | | | | | | | | | | | | | | | | | | When path features are exactly a pixel wide, the extruded inner edges can become collinear and then be removed, since their winding is zero. We need these edges to be preserved through triangulation, otherwise opaque portions of the geometry can become transparent. Since the simplify() pass can handle zero-winding edges just fine, the the fix is to simply not remove them. In addition, this changes refactors out disconnect() from all the calls to remove_edge_above()/remove_edge_below(). It also renames the remaining function erase_edge() (since it's now unconditional). Add a new test to a new "thinconcavepaths" GM. BUG=680260 NOTRY=true Change-Id: I1d3a436c95a01c4d4ef5dc05503de4312677f65d Reviewed-on: https://skia-review.googlesource.com/6902 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Stephan White <senorblanco@chromium.org>
* More fixes for distance field pathsGravatar Jim Van Verth2017-01-11
| | | | | | | | | | | | Disables use of SDFs for very small paths (because of blurring) and adds a border of 1 pixel in device space to handle antialiasing. BUG=chromium:677889 Change-Id: Icd2f7e80323b1255f8de52b97360e9a2d995c765 Reviewed-on: https://skia-review.googlesource.com/6895 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Jim Van Verth <jvanverth@google.com>
* Make GrPaints move their GrProcessor ownership into GrPipelineBuilder.Gravatar Brian Salomon2017-01-11
| | | | | | | | | This makes GrPaints usable only once. In some places we must make copies in order to issue draws with the same paint state. Change-Id: Ie816e5185ce93a064111cad64c6880e1e21184c2 Reviewed-on: https://skia-review.googlesource.com/6844 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* SkTypes.h : move SkAutoMalloc into SkAutoMalloc.hGravatar Hal Canary2017-01-11
| | | | | | | | | | | | | | | | * SkAutoFree moved to SkTemplates.h (now implmented with unique_ptr). * SkAutoMalloc and SkAutoSMalloc moved to SkAutoMalloc.h * "SkAutoFree X(sk_malloc_throw(N));" --> "SkAutoMalloc X(N);" Revert "Revert 'SkTypes.h : move SkAutoMalloc into SkAutoMalloc.h'" This reverts commit c456b73fef9589bbdc5eb83eaa83e53c357bb3da. Change-Id: Ie2c1a17c20134b8ceab85a68b3ae3e61c24fbaab Reviewed-on: https://skia-review.googlesource.com/6886 Reviewed-by: Hal Canary <halcanary@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* Revert "More fixes for distance field paths"Gravatar Jim Van Verth2017-01-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit d081ff314f07104adacaadc3d0f8f13dc741f016. Reason for revert: Failing unit tests. Original change's description: > More fixes for distance field paths > > Disables use of SDFs for very small paths (because of blurring) and > adds a border of 1 pixel in device space to handle antialiasing. > > BUG=chromium:677889 > > Change-Id: I81e49477c943d41523fd836e55abd696a985491f > Reviewed-on: https://skia-review.googlesource.com/6832 > Commit-Queue: Jim Van Verth <jvanverth@google.com> > Reviewed-by: Brian Salomon <bsalomon@google.com> > TBR=jvanverth@google.com,bsalomon@google.com,robertphillips@google.com,reviews@skia.org BUG=chromium:677889 NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: I4a6a698fa2e9e58c1c98a5a89f54bed724527951 Reviewed-on: https://skia-review.googlesource.com/6890 Commit-Queue: Jim Van Verth <jvanverth@google.com> Reviewed-by: Jim Van Verth <jvanverth@google.com>
* More fixes for distance field pathsGravatar Jim Van Verth2017-01-11
| | | | | | | | | | | | Disables use of SDFs for very small paths (because of blurring) and adds a border of 1 pixel in device space to handle antialiasing. BUG=chromium:677889 Change-Id: I81e49477c943d41523fd836e55abd696a985491f Reviewed-on: https://skia-review.googlesource.com/6832 Commit-Queue: Jim Van Verth <jvanverth@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Revert "SkTypes.h : move SkAutoMalloc into SkAutoMalloc.h"Gravatar Kevin Lubick2017-01-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit a5494f117086d712855e4b6289c58c92d1549bcf. Reason for revert: Broke Google3 Original change's description: > SkTypes.h : move SkAutoMalloc into SkAutoMalloc.h > > * SkAutoFree moved to SkTemplates.h (now implmented with unique_ptr). > > * SkAutoMalloc and SkAutoSMalloc moved to SkAutoMalloc.h > > * "SkAutoFree X(sk_malloc_throw(N));" --> "SkAutoMalloc X(N);" > > Change-Id: Idacd86ca09e22bf092422228599ae0d9bedded88 > Reviewed-on: https://skia-review.googlesource.com/4543 > Reviewed-by: Ben Wagner <bungeman@google.com> > Reviewed-by: Mike Reed <reed@google.com> > Commit-Queue: Hal Canary <halcanary@google.com> > TBR=halcanary@google.com,bungeman@google.com,reed@google.com,reviews@skia.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: Ie8bd176121c3ee83c110d66c0d0ac65e09bfc9c5 Reviewed-on: https://skia-review.googlesource.com/6884 Commit-Queue: Kevin Lubick <kjlubick@google.com> Reviewed-by: Kevin Lubick <kjlubick@google.com>
* Add test for processor->resource ref/io countsGravatar Brian Salomon2017-01-11
| | | | | | | Change-Id: I63a8cb9f1564bfc15ef98121b77946a647c79f32 Reviewed-on: https://skia-review.googlesource.com/6814 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
* SkTypes.h : move SkAutoMalloc into SkAutoMalloc.hGravatar Hal Canary2017-01-11
| | | | | | | | | | | | | | * SkAutoFree moved to SkTemplates.h (now implmented with unique_ptr). * SkAutoMalloc and SkAutoSMalloc moved to SkAutoMalloc.h * "SkAutoFree X(sk_malloc_throw(N));" --> "SkAutoMalloc X(N);" Change-Id: Idacd86ca09e22bf092422228599ae0d9bedded88 Reviewed-on: https://skia-review.googlesource.com/4543 Reviewed-by: Ben Wagner <bungeman@google.com> Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* Fix overwriting of config flags in a few casesGravatar Brian Osman2017-01-11
| | | | | | | | | | | | | | | For all of these configs, we were or'ing in the texel buffer flag, and then setting the flags to textureable. We currently only use texel buffers for RGBA_Float buffers, so this didn't make any difference, but I spotted it while making other changes. BUG=skia: Change-Id: I76c21881b7c82c5c0561e19686ddcc62f9cca835 Reviewed-on: https://skia-review.googlesource.com/6851 Commit-Queue: Brian Osman <brianosman@google.com> Reviewed-by: Chris Dalton <csmartdalton@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Add Gray8 pixel configGravatar Brian Osman2017-01-10
| | | | | | | | | | | | | | | | | | | | | | | This is still just linear (non-sRGB), but adding sRGB will be the next step. I've verified that this is really making R8 textures when uploading Gray8 bitmaps. Tests pass, and the all_bitmap_configs GM still renders correctly (unlike when we just mapped Gray8 to Alpha8). This adds another pixel config, which could grow our cache footprint, but the benefits of not using 4bpp for 1bpp data should outweigh that? Re-land of https://skia-review.googlesource.com/c/6817/, with fixes for Vulkan. BUG=skia:6110 Change-Id: Ia763c276808be28027ed0005ee4b88637306583f Reviewed-on: https://skia-review.googlesource.com/6839 Reviewed-by: Greg Daniel <egdaniel@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* Revert "Add Gray8 pixel config"Gravatar Brian Osman2017-01-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit f2956459f707de596dcb2c79a7ee1fa62d599c0d. Reason for revert: GM and image failures on some bots (rendering red, not gray). Original change's description: > Add Gray8 pixel config > > This is still just linear (non-sRGB), but adding sRGB will > be the next step. I've verified that this is really making > R8 textures when uploading Gray8 bitmaps. Tests pass, and > the all_bitmap_configs GM still renders correctly (unlike > when we just mapped Gray8 to Alpha8). > > This adds another pixel config, which could grow our cache > footprint, but the benefits of not using 4bpp for 1bpp data > should outweigh that? > > BUG=skia:6110 > > Change-Id: I4fc4c2479fc25f1d278e174a9bb5b542a0cb184c > Reviewed-on: https://skia-review.googlesource.com/6817 > Reviewed-by: Brian Salomon <bsalomon@google.com> > Commit-Queue: Brian Osman <brianosman@google.com> > TBR=bsalomon@google.com,robertphillips@google.com,brianosman@google.com,reviews@skia.org BUG=skia:6110 NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: I95a4fc0450a569d5791f6bceb7fae61c7e5eba61 Reviewed-on: https://skia-review.googlesource.com/6838 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* Add Gray8 pixel configGravatar Brian Osman2017-01-10
| | | | | | | | | | | | | | | | | | | This is still just linear (non-sRGB), but adding sRGB will be the next step. I've verified that this is really making R8 textures when uploading Gray8 bitmaps. Tests pass, and the all_bitmap_configs GM still renders correctly (unlike when we just mapped Gray8 to Alpha8). This adds another pixel config, which could grow our cache footprint, but the benefits of not using 4bpp for 1bpp data should outweigh that? BUG=skia:6110 Change-Id: I4fc4c2479fc25f1d278e174a9bb5b542a0cb184c Reviewed-on: https://skia-review.googlesource.com/6817 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* Start making texture coordinates be absoluteGravatar Robert Phillips2017-01-10
| | | | | | | | | | | The idea here is that we will pass GrTextureProxys in (where we're currently passing GrTextures) and defer the normalization until the texture is actually instantiated (and possibly move it to the GPU entirely) This CL does (intentionally) change the texturedomaineffect GM but I believe the new behavior is more correct. Change-Id: I4e0510b3dfb65ff0d0ee5921f9a6f94151e602d3 Reviewed-on: https://skia-review.googlesource.com/6807 Commit-Queue: Robert Phillips <robertphillips@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Generate Signed Distance Field directly from vector pathGravatar joel.liang2017-01-09
| | | | | | | | | | | | | | | | Add SkGenerateDistanceFieldFromPath API to generate signed distance field directly from SkPath. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1643143002 Committed: https://skia.googlesource.com/skia/+/4de97a64e8829323a7070b623411d9f9ddb0cd0f Committed: https://skia.googlesource.com/skia/+/e8f0a7b986f1e5583c9bc162efcdd92fd6430549 Committed: https://skia.googlesource.com/skia/+/67c7c81a82b6351e9fbbf235084d7120162d9268 Review-Url: https://codereview.chromium.org/1643143002 Committed: https://skia.googlesource.com/skia/+/64b70b096ac20833d9737758a4bd5f2a51078bc4 Review-Url: https://codereview.chromium.org/1643143002 Committed: https://skia.googlesource.com/skia/+/6d2f73c364d0d823f14d1ddebc88e0bcbc8f0634 Review-Url: https://codereview.chromium.org/1643143002
* Move resource ref/io manipulation from GrProgramElement to GrProcessorGravatar Brian Salomon2017-01-09
| | | | | | | Change-Id: I783e74107f7d34b57d80b843fe23ce7126b77424 Reviewed-on: https://skia-review.googlesource.com/6816 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Remove unused unique ID from GrProgramElementGravatar Brian Salomon2017-01-09
| | | | | | | Change-Id: I27140b378ad665c40f6edced1a655150ebd4842c Reviewed-on: https://skia-review.googlesource.com/6800 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Various memory leak fixes in VulkanGravatar Greg Daniel2017-01-09
| | | | | | | | | BUG=skia:6101 Change-Id: Iee798dd2d9dcc4521f643b814e65029b9383cc6f Reviewed-on: https://skia-review.googlesource.com/6696 Reviewed-by: Jim Van Verth <jvanverth@google.com> Commit-Queue: Greg Daniel <egdaniel@google.com>
* GrTessellator: fix compile when LOGGING_ENABLED.Gravatar Stephen White2017-01-09
| | | | | | | | | BUG=skia: Change-Id: I1f0df58ffe79e439f92a8c1cd3c39812c32d039f Reviewed-on: https://skia-review.googlesource.com/6743 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Stephan White <senorblanco@chromium.org>
* Revert "Revert "Removing ref counting from GrXPFactory.""Gravatar Brian Salomon2017-01-09
| | | | | | | | | This reverts commit 003312a211e65f35e402d6fe80a32e23d4c94ac4. Change-Id: Ib41065e5c356d1dd99e70fa10611ac6756c2b79d Reviewed-on: https://skia-review.googlesource.com/6803 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Revert "Removing ref counting from GrXPFactory."Gravatar Brian Salomon2017-01-09
| | | | | | | | | | | This reverts commit a8f80de2bc17672b4b6f26d3cf6b38123ac850c9. Reason for revert: nanobench failing on windows bots, possibly others Change-Id: Iacb8c650064a28654c165665be057377ffb02ba5 Reviewed-on: https://skia-review.googlesource.com/6802 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Removing ref counting from GrXPFactory.Gravatar Brian Salomon2017-01-09
| | | | | | | | | All GrXPFactory instances are static constexpr. Change-Id: If1086b08534166201e53b3fd9379104e361eb5e6 Reviewed-on: https://skia-review.googlesource.com/6701 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Make all GrXPFactory instances statics.Gravatar Brian Salomon2017-01-06
| | | | | | | Change-Id: I423b821d96d483db8c43a6d5530adbc19cd68912 Reviewed-on: https://skia-review.googlesource.com/6693 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Greg Daniel <egdaniel@google.com>
* Purge clip masks when they are no longer findable.Gravatar Brian Salomon2017-01-06
| | | | | | | | | | | This improves memory usage when the content contains frequently changing clips implemented as masks. BUG=chromium:676459 Change-Id: I06ea5f9fe1cff9564ea136bad9fe97f6ecd77ad9 Reviewed-on: https://skia-review.googlesource.com/6629 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>