aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
Commit message (Collapse)AuthorAge
* impl blitAntiV2 via mask for rasterpipelineGravatar Mike Reed2017-09-06
| | | | | | | | Bug: skia: Change-Id: I3c34a9c38a86edc518abaf34982e1334a4154a15 Reviewed-on: https://skia-review.googlesource.com/43140 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Reed <reed@google.com>
* Try finding exact scratch texture in cache before approxGravatar Greg Daniel2017-09-06
| | | | | | | | Bug: skia: Change-Id: Ia65b94bde7aa52e951ba94a0012e794f02c3177e Reviewed-on: https://skia-review.googlesource.com/42940 Commit-Queue: Greg Daniel <egdaniel@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Remove isMipMapped from GrSurfaceDescGravatar Greg Daniel2017-09-06
| | | | | | | | Bug: skia: Change-Id: Id3864aad7ff9636362c9c54ef411a02af9c83fbf Reviewed-on: https://skia-review.googlesource.com/42083 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Greg Daniel <egdaniel@google.com>
* possible fix for pathops timeoutGravatar Cary Clark2017-09-06
| | | | | | | | | | | | | | | | | | | | fuzzer causes pathops to loop somewhere finding complex intersections, but does not have a reproducible test case. Somewhat grasping at straws, the failing condition in this CL was triggered by the fuzzer tests, but may or may not be related to the hang. TBR=reed@google.com Bug: 754434 Change-Id: Ia8edc0709cec559b277ed83a5ad6feb67d8088c6 Reviewed-on: https://skia-review.googlesource.com/42780 Reviewed-by: Cary Clark <caryclark@skia.org> Commit-Queue: Cary Clark <caryclark@skia.org>
* Init hardware buffer state in GrGLGpuGravatar Rob Phillips2017-09-06
| | | | | | | Change-Id: I827e158703941ef61b2f390751b7521acdeeb951 Reviewed-on: https://skia-review.googlesource.com/42824 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* clean up SK_JUMPER_LEGACY_X86_8BITGravatar Mike Klein2017-09-06
| | | | | | | Change-Id: I26c22c085efd70b65de927a9a8a041d03c170f2a Reviewed-on: https://skia-review.googlesource.com/42760 Commit-Queue: Florin Malita <fmalita@chromium.org> Reviewed-by: Florin Malita <fmalita@chromium.org>
* CCPR: Remove cubic insets and MSAA bordersGravatar Chris Dalton2017-09-05
| | | | | | | | | | | | | | | Avoids the need for MSAA cubic borders by chopping up the cubic geometry and crossing the inflections points and loop intersections with lines and quadratic(s) instead. This allows us to render the remaining cubic segments with simple hulls and analytic AA, giving better image quality and performance. Bug: skia: Change-Id: If371229f575ee0286c325c230a116d602a9d38ce Reviewed-on: https://skia-review.googlesource.com/41883 Commit-Queue: Chris Dalton <csmartdalton@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* CCPR: Rewrite path parsingGravatar Chris Dalton2017-09-05
| | | | | | | | | | | | Creates a GrCCPRGeometry class that chops contours up into simple segments that ccpr can render, and rewrites the GPU buffer creation to be able to handle arbitrary lengths of ccpr geometry. Bug: skia: Change-Id: Iaa173a02729e177b0ed7ef7fbb9195d349be689d Reviewed-on: https://skia-review.googlesource.com/41963 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Chris Dalton <csmartdalton@google.com>
* Revert "Optimize SkColorSpaceXformCanvas for GPU-acceleration"Gravatar Robert Phillips2017-09-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 19c8726a0829e506c5c42d22d67b3fe7505ed24e. Reason for revert: Breaking Chrome roll Original change's description: > Optimize SkColorSpaceXformCanvas for GPU-acceleration > > This change ensures that SkImages are uploaded to the GPU before > applying the xform when the destination canvas is on the GPU. This > makes it possible to get hits in the texture cache and it ensure > that transforms get computed on the GPU. > > This fixes a severe performance regression in Chrome that happened > when color correction was enabled. > > BUG=chromium:760738 > > Change-Id: I52032a9f06ccbe1a7fd56a91db15377925143b26 > Reviewed-on: https://skia-review.googlesource.com/42422 > Reviewed-by: Brian Osman <brianosman@google.com> > Commit-Queue: Justin Novosad <junov@chromium.org> TBR=brianosman@google.com,junov@chromium.org Change-Id: Ia117d6f95c34324383aaf3bfc990bb13e48bed6e No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:760738 Reviewed-on: https://skia-review.googlesource.com/42720 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Unbind xfer buffer in a couple more placesGravatar Brian Osman2017-09-05
| | | | | | | | | | | Move code into a helper function, make sure that all TexImage and TexSubImage calls are correctly unbinding. Bug: skia: Change-Id: I79bfa0af43a08f775186a867167fa67b4437688c Reviewed-on: https://skia-review.googlesource.com/42640 Reviewed-by: Jim Van Verth <jvanverth@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* merge 0,1,2,3,... and 0.5fGravatar Mike Klein2017-09-05
| | | | | | | | | | Because floats are fun, the compiler cannot merge x + 0.5f + [0,1,2,3,4...] into x + [0.5,1.5,2.5,3.5,4.5,...]. But we can. Change-Id: I03b46c1ea0653877f35f6c888f29371b5f73d813 Reviewed-on: https://skia-review.googlesource.com/42480 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Unbind xfer buffer before trying to call TexImage2DGravatar Brian Osman2017-09-05
| | | | | | | | Bug: skia: Change-Id: Ie36cebc14c4f4e47f143ae79efbea7088637acf4 Reviewed-on: https://skia-review.googlesource.com/42523 Reviewed-by: Jim Van Verth <jvanverth@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* Stop using SkRasterPipeline inside GIFGravatar Leon Scroggins III2017-09-05
| | | | | | | | | | | SkRasterPipeline was overkill, since blending is just comparing to 0. (Each pixel is either opaque or 0.) Bug: 760935 Change-Id: I082045010709c07cc2558988ef509816b9d4bc65 Reviewed-on: https://skia-review.googlesource.com/42440 Commit-Queue: Leon Scroggins <scroggo@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org>
* fix analytic AA to work with even roundingGravatar Lee Salzman2017-09-05
| | | | | | | | Bug: skia: Change-Id: I92b19baa06429ef2c0e9cf6928d63528f29943fe Reviewed-on: https://skia-review.googlesource.com/42520 Reviewed-by: Yuqian Li <liyuqian@google.com> Commit-Queue: Yuqian Li <liyuqian@google.com>
* Optimize SkColorSpaceXformCanvas for GPU-accelerationGravatar Justin Novosad2017-09-05
| | | | | | | | | | | | | | | | | This change ensures that SkImages are uploaded to the GPU before applying the xform when the destination canvas is on the GPU. This makes it possible to get hits in the texture cache and it ensure that transforms get computed on the GPU. This fixes a severe performance regression in Chrome that happened when color correction was enabled. BUG=chromium:760738 Change-Id: I52032a9f06ccbe1a7fd56a91db15377925143b26 Reviewed-on: https://skia-review.googlesource.com/42422 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Justin Novosad <junov@chromium.org>
* Upload the missing change in 42101Gravatar Yuqian Li2017-09-05
| | | | | | | | | | | | | | The change here should have been uploaded to https://skia-review.googlesource.com/c/skia/+/42101 But somehow the uploading phase failed miserably. Hence re-upload it. TBR: herb@google.com Bug: skia: Change-Id: Ie4b19527a15fb2356f33ff02f60655efb151674c Reviewed-on: https://skia-review.googlesource.com/42481 Reviewed-by: Yuqian Li <liyuqian@google.com> Commit-Queue: Yuqian Li <liyuqian@google.com>
* clean up some SkRasterPipelineBlitter TODOsGravatar Mike Klein2017-09-05
| | | | | | | | | | | | | | 1) remove the note about maybe implementing bitV()... we have. 2) rename append_load_d() to append_load_dst() to match how the stages are named (a long time ago they used to end with _d...) 3) move unpremul handling to append_load_dst() and append_store() to make it a bit easier to see how they nest with sRGB 4) remove append_blend()... it's now just SkBlendMode_AppendStages() Change-Id: Ic3280b66d8c1f26ef18a55044392f7d18fc29a75 Reviewed-on: https://skia-review.googlesource.com/42280 Commit-Queue: Mike Klein <mtklein@google.com> Reviewed-by: Mike Klein <mtklein@google.com>
* Remove SK_LEGACY_FRAME_INFO_ALPHA_TYPEGravatar Leon Scroggins III2017-09-01
| | | | | | | | | | | | With https://chromium-review.googlesource.com/c/621815, Chromium no longer references this. Delete it. TBR=reed@google.com Bug: skia:6839 Change-Id: Icd3d394858859e6732b1429394c7c04bb22b9dea Reviewed-on: https://skia-review.googlesource.com/36581 Commit-Queue: Leon Scroggins <scroggo@google.com> Reviewed-by: Leon Scroggins <scroggo@google.com>
* Use SkSTArenaAlloc to manage SkCoverageDeltaMask's stack memoryGravatar Yuqian Li2017-09-01
| | | | | | | | | | | | | This way, we could have more stack memory on Google3: if each of the two branche has 12K stack memory, Google3 would believe that it needs 24K stack memory; but using SkSTArenaAlloc, we could use 12K stack memory to handle those two branches. Bug: skia: Change-Id: Ie9234226cd4ba93b5be2ebeb95ab771031354f97 Reviewed-on: https://skia-review.googlesource.com/42101 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Yuqian Li <liyuqian@google.com>
* Remove unused drawPathGravatar Yuqian Li2017-09-01
| | | | | | | | | | | There is no drawPath(path, paint, blitter) call. The drawPath(path, paint) call can be fulfilled by drawPath(path, paint, prePathMatrix, pathIsMutable). Bug: skia: Change-Id: I3b5ae2a6b7392693caf80b211c63ec1ac25a22da Reviewed-on: https://skia-review.googlesource.com/42100 Reviewed-by: Cary Clark <caryclark@google.com> Commit-Queue: Yuqian Li <liyuqian@google.com>
* Cosmetic changes to GrDrawOpAtlasGravatar Robert Phillips2017-09-01
| | | | | | | | | | | | | | | It looks like we won't be going in the direction of: https://skia-review.googlesource.com/c/skia/+/35962 (Allow GrDrawOpAtlas to grow & shrink) Pull out what is worth keeping. TBR=bsalomon@google.com Change-Id: Ia14c3c621e7b1d2d7f303a455a3e4d9660af5f6e Reviewed-on: https://skia-review.googlesource.com/41362 Commit-Queue: Robert Phillips <robertphillips@google.com> Reviewed-by: Jim Van Verth <jvanverth@google.com>
* Add FIFO thread pool, use it for most things.Gravatar Mike Klein2017-09-01
| | | | | | | | | | | | | | | | | | | We like a LIFO default thread pool in tools like DM for better memory/time locality... the bots use less memory this way, and generally run faster. But most use cases want a FIFO queue, so that they can get going on the next parts of early work while later work is still running. This splits the implementation into one using SkTArray and pop_back for LIFO, and a new one using std::deque and pop_front for FIFO. Change-Id: Ief203b6869a00f1f8084019431a781d15fc63750 Reviewed-on: https://skia-review.googlesource.com/41849 Commit-Queue: Mike Klein <mtklein@chromium.org> Commit-Queue: Brian Osman <brianosman@google.com> Reviewed-by: Yuqian Li <liyuqian@google.com> Reviewed-by: Brian Osman <brianosman@google.com>
* With threaded software paths, free mask memory earlierGravatar Brian Osman2017-09-01
| | | | | | | | | | | | | This alleviates memory pressure in my benchmarking, and makes a measurable impact on overall time when drawing many SW paths. Bug: skia: Change-Id: Iacabc9aa51522578da9f4d9411995b8d4fd381ba Reviewed-on: https://skia-review.googlesource.com/41848 Commit-Queue: Brian Osman <brianosman@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Brian Salomon <bsalomon@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org>
* pixmap erase fast-pathGravatar Mike Klein2017-09-01
| | | | | | | | | | | Brian and I saw a measurable speedup on software path rendering when calling memset(..., 0, ...) instead of looping over one memset per scanline. This brings that fast path to the masses. Change-Id: I792416e30e924efdd6ab40d445148b5c59f7bc62 Reviewed-on: https://skia-review.googlesource.com/41847 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Add methods for converting GrShape to filled styleGravatar Brian Salomon2017-09-01
| | | | | | | | Bug: skia: Change-Id: I6726428d1358909972adec8d63686b637ef5bb5e Reviewed-on: https://skia-review.googlesource.com/40222 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Use SkSTArenaAlloc to handle the stack memory of the delta listGravatar Yuqian Li2017-09-01
| | | | | | | | Bug: skia: Change-Id: I5c98220498c71ced4565f492335cef2a372d0765 Reviewed-on: https://skia-review.googlesource.com/41743 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Yuqian Li <liyuqian@google.com>
* Fix up and clarify use of maxMipLevel in VulkanGravatar Greg Daniel2017-09-01
| | | | | | | | Bug: skia: Change-Id: I5b31e0c74be8f650e97c448b1029a2277dfee978 Reviewed-on: https://skia-review.googlesource.com/41844 Reviewed-by: Jim Van Verth <jvanverth@google.com> Commit-Queue: Greg Daniel <egdaniel@google.com>
* Move texture proxy allocation for atlas to constructor.Gravatar Jim Van Verth2017-09-01
| | | | | | | | | This is to set up for allocating additional texture proxies as needed. Change-Id: Ibc0480c30d8efd6ccf8278f6dbdd3bfa3ee2397d Reviewed-on: https://skia-review.googlesource.com/41744 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Jim Van Verth <jvanverth@google.com>
* Revert "Revert "Revert "Revert "Remove GrBackendRenderTargetDesc in favor of ↵Gravatar Brian Salomon2017-08-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | GrBackendRenderTarget."""" This reverts commit 6df4d6be0d025211400de6a910e17f2a87219887. Reason for revert: Google3 fix landed Original change's description: > Revert "Revert "Revert "Remove GrBackendRenderTargetDesc in favor of GrBackendRenderTarget.""" > > This reverts commit 71554bc256b705fe959b7aa2fb2f24ed48782362. > > Reason for revert: Google3 > > Original change's description: > > Revert "Revert "Remove GrBackendRenderTargetDesc in favor of GrBackendRenderTarget."" > > > > This reverts commit 807371c15bd742efb98a9df6e1dee73e8bda8af5. > > > > Docs-Preview: https://skia.org/?cl=40260 > > Change-Id: I28e0434c455155ff39a5aaa4141abdf442474e87 > > Reviewed-on: https://skia-review.googlesource.com/40260 > > Reviewed-by: Greg Daniel <egdaniel@google.com> > > Commit-Queue: Brian Salomon <bsalomon@google.com> > > TBR=egdaniel@google.com,bsalomon@google.com > > Change-Id: Ifdfa896a70db69935473276d12dce54de5c6b6f7 > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Reviewed-on: https://skia-review.googlesource.com/41500 > Reviewed-by: Brian Salomon <bsalomon@google.com> > Commit-Queue: Brian Salomon <bsalomon@google.com> TBR=egdaniel@google.com,bsalomon@google.com Change-Id: I827419bb19972c3644929a8c984bb9534baab0ba No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://skia-review.googlesource.com/41700 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Revert "Revert "Add a GrShape::Type value for an inverted empty path""Gravatar Brian Salomon2017-08-31
| | | | | | | | | | This reverts commit 07f5b71f996ec387408ac7c85952b63bf893ec88. Bug: skia: Change-Id: I14cc34ab563028a4a24de2112575ab4516f1c7c7 Reviewed-on: https://skia-review.googlesource.com/41441 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Revert "Add a GrShape::Type value for an inverted empty path"Gravatar Brian Salomon2017-08-31
| | | | | | | | | | | | | | | | | | | | | | | | This reverts commit d5a3f7f9673a152928332a38e53a5fc55f590f40. Reason for revert: GMs changed Original change's description: > Add a GrShape::Type value for an inverted empty path > > Change-Id: Ib34a608db07a2ff1d7bdfbd96867fa5ff0ac9782 > Reviewed-on: https://skia-review.googlesource.com/41540 > Reviewed-by: Robert Phillips <robertphillips@google.com> > Commit-Queue: Brian Salomon <bsalomon@google.com> TBR=bsalomon@google.com,robertphillips@google.com Change-Id: I320dcda62bdb08163fe274325a38f59dd51b3927 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://skia-review.googlesource.com/41640 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Add a GrShape::Type value for an inverted empty pathGravatar Brian Salomon2017-08-31
| | | | | | | Change-Id: Ib34a608db07a2ff1d7bdfbd96867fa5ff0ac9782 Reviewed-on: https://skia-review.googlesource.com/41540 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Use interpolating blur for sigma < 2Gravatar Herb Derby2017-08-31
| | | | | | | | | | | | | Reimplemnet the original interpolating code. Moving from the integer blur code to this code is controled by the flag: SK_LEGACY_SUPPORT_INTEGER_SMALL_RADII BUG=chromium:759273 Change-Id: I17205d704a0cae68a8a027c6bb235f81b5c62e24 Reviewed-on: https://skia-review.googlesource.com/41082 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Herb Derby <herb@google.com>
* add 8bit stages for load/store 565Gravatar Mike Reed2017-08-31
| | | | | | | | | | | approx 2.5x faster on arm64 for sprite 8888 --> 565 blits Bug: skia: Change-Id: I524f993fee16196385dc07cbec39ef378b1301e5 Reviewed-on: https://skia-review.googlesource.com/41162 Reviewed-by: Florin Malita <fmalita@chromium.org> Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Reed <reed@google.com>
* Revert "Revert "Revert "Remove GrBackendRenderTargetDesc in favor of ↵Gravatar Brian Salomon2017-08-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | GrBackendRenderTarget.""" This reverts commit 71554bc256b705fe959b7aa2fb2f24ed48782362. Reason for revert: Google3 Original change's description: > Revert "Revert "Remove GrBackendRenderTargetDesc in favor of GrBackendRenderTarget."" > > This reverts commit 807371c15bd742efb98a9df6e1dee73e8bda8af5. > > Docs-Preview: https://skia.org/?cl=40260 > Change-Id: I28e0434c455155ff39a5aaa4141abdf442474e87 > Reviewed-on: https://skia-review.googlesource.com/40260 > Reviewed-by: Greg Daniel <egdaniel@google.com> > Commit-Queue: Brian Salomon <bsalomon@google.com> TBR=egdaniel@google.com,bsalomon@google.com Change-Id: Ifdfa896a70db69935473276d12dce54de5c6b6f7 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://skia-review.googlesource.com/41500 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Retract Gr*Priv.h includes a bitGravatar Robert Phillips2017-08-31
| | | | | | | Change-Id: Ic2bfd83b6e6bcc5ea1591427683085637eb5a6cc Reviewed-on: https://skia-review.googlesource.com/41360 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Use high precision for TextureOp texture coord varyingGravatar Brian Salomon2017-08-31
| | | | | | | Change-Id: Iadcae79f7b295a3bedd33b4a93734547665f2a5d Reviewed-on: https://skia-review.googlesource.com/41380 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* 32-bit x86 8-bit stagesGravatar Mike Klein2017-08-30
| | | | | | | | | | | Shouldn't be anything tricky here. Guarded by SK_JUMPER_LEGACY_X86_8BIT for (Win) layout tests. Change-Id: I7580c7c18d1721f1301904c049ea2e59e9bda5d9 Reviewed-on: https://skia-review.googlesource.com/40692 Reviewed-by: Herb Derby <herb@google.com> Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Reduce stencil buffer clearingGravatar Robert Phillips2017-08-30
| | | | | | | | | TBR=bsalomon@google.com Bug: skia:6953 Change-Id: I079f90711297ee290f2d4011cfcb18b764554deb Reviewed-on: https://skia-review.googlesource.com/40691 Reviewed-by: Robert Phillips <robertphillips@google.com> Reviewed-by: Greg Daniel <egdaniel@google.com>
* Fix whitespace in SkTextBlob.Gravatar Ben Wagner2017-08-30
| | | | | | Change-Id: I44cfe4095f68de3cb0647c01a716a6a7b7fddda9 Reviewed-on: https://skia-review.googlesource.com/41161 Reviewed-by: Ben Wagner <bungeman@google.com>
* Allow providing SkExecutor to SkThreadedBMPDeviceGravatar Yuqian Li2017-08-30
| | | | | | | | | | | So that callers could manage the thread pool themselves instead of relying on SkThreadBMPDevice. Bug: skia: Change-Id: Idbeafc9ac5d111370fd1b74f6eab9ac8df179940 Reviewed-on: https://skia-review.googlesource.com/39760 Reviewed-by: Mike Klein <mtklein@google.com> Commit-Queue: Yuqian Li <liyuqian@google.com>
* Move several GrContextOptions fields behind GR_TEST_UTILSGravatar Brian Osman2017-08-30
| | | | | | | | Bug: skia: Change-Id: I35bc08ad72fb94d8e47fe342d314c4496b954226 Reviewed-on: https://skia-review.googlesource.com/40881 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* DeferredDisplayList API proposalGravatar Robert Phillips2017-08-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Chrome would like to perform cpu-side preprocessing for gpu draws in parallel. They do not want to go through a picture (since they have their own display list format). The general idea is that we add a new SkDeferredDisplayListRecorder class to perform all of Ganesh's cpu-side preprocessing ahead of time and in parallel. The SkDDLRecorder operates like SkPictureRecorder. The user can get an SkCanvas from the SkDDLRecorder and feed it draw operations. Once finished, the user calls 'detach' to get an SkDeferredDisplayList. All the work up to and including the 'detach' call can be done in parallel and will not touch the GPU. To actually get pixels the client must call SkSurface::draw(SkDDL) on an SkSurface that is "compatible" with the surface characterization initially given to the SkDDLMaker. The surface characterization contains the minimum amount of information Ganesh needs to know about the ultimate destination in order to perform its cpu-side work (i.e., caps, width, height, config). Change-Id: I75faa483ab5a6b779c8de56ea56b9d90b990f43a Reviewed-on: https://skia-review.googlesource.com/30140 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Make AA hairline renderer non-optionalGravatar Brian Osman2017-08-30
| | | | | | | Change-Id: I0d4166a4e9ea894f479755f9f7137c5941cf8a22 Reviewed-on: https://skia-review.googlesource.com/41081 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* remove debugging code breaking windows compileGravatar Brian Salomon2017-08-30
| | | | | | | Change-Id: I8ae21881b73af0ac2fa3dc17f74e073c0667561d Reviewed-on: https://skia-review.googlesource.com/41080 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Make GrSWMaskHelper take a matrix for each drawGravatar Brian Salomon2017-08-30
| | | | | | | Change-Id: I52659857174848696f360d64552a9690db24ed50 Reviewed-on: https://skia-review.googlesource.com/40883 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Brian Osman <brianosman@google.com>
* Revert "Revert "Remove GrBackendRenderTargetDesc in favor of ↵Gravatar Brian Salomon2017-08-30
| | | | | | | | | | | | GrBackendRenderTarget."" This reverts commit 807371c15bd742efb98a9df6e1dee73e8bda8af5. Docs-Preview: https://skia.org/?cl=40260 Change-Id: I28e0434c455155ff39a5aaa4141abdf442474e87 Reviewed-on: https://skia-review.googlesource.com/40260 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Rename methods and enum on SkClipStack::Element to indicate "device space"Gravatar Brian Salomon2017-08-30
| | | | | | | Change-Id: I83056843b530f76590f755f97e3d0a5a58f371fa Reviewed-on: https://skia-review.googlesource.com/39402 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
* Threaded generation of software pathsGravatar Brian Osman2017-08-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | Re-land of: https://skia-review.googlesource.com/36560 All information needed by the thread is captured by the prepare callback object, the lambda captures a pointer to that, and does the mask render. Once it's done, it signals the semaphore (also owned by the callback). The callback defers the semaphore wait even longer (into the ASAP upload), so the odds of waiting for the thread are REALLY low. Also did a bunch of cleanup along the way, and put in some trace markers so we can monitor how well this is working. Traces of a GM that includes GPU and SW path rendering (path-reverse): Original: https://screenshot.googleplex.com/f5BG3901tQg.png Threaded, with wait in the callback (notice pre flush callback blocking): https://screenshot.googleplex.com/htOSZFE2s04.png Current version, with wait deferred to ASAP upload function: https://screenshot.googleplex.com/GHjD0U3C34q.png Bug: skia: Change-Id: Idb92f385590749f41328a9aec65b2a93f4775079 Reviewed-on: https://skia-review.googlesource.com/40775 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* remove 8-bit Params structGravatar Mike Klein2017-08-30
| | | | | | | | | | | | | I'm not sure why I wrote this to use a Params struct originally, but we should have plenty of registers in _8bit to pass everything directly and avoid the stack. Even once we enable the 8-bit pipeline on 32-bit x86, we'll have 4 general purpose registers and 4 vector registers to use, precisely what we're using here. Change-Id: I3e51ab73186edcdcb8bfaa6cc99d9516db7c032a Reviewed-on: https://skia-review.googlesource.com/40771 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org>