aboutsummaryrefslogtreecommitdiffhomepage
path: root/bench
Commit message (Collapse)AuthorAge
* New analytic AA scan converter using delta (I call it DAA for now)Gravatar Yuqian Li2017-07-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | DAA is: 1. Much simpler than AAA. SkScan_AAAPath.cpp is about 1700 lines. SkScan_DAAPath.cpp is about 300 lines. The whole DAA CL is only about 800 lines. 2. Much faster than AAA for complicated paths. The speedup applies to GL backend (including ccpr)! Here's the frame time of 'SampleApp --slide Chart' on macbook pro: AAA-raster: 33ms DAA-raster: 21ms AAA-gl: 30ms DAA-gl: 20ms AAA-ccpr: 18ms DAA-ccpr: 12ms My linux desktop doesn't have SSE3 so the speedup is smaller (~25% for Chart). I believe that DAA is so fast that I can enable it for any paths (AAA is not enabled by default for complicated paths because it is slow; hence our older supersampling scan converter is used for stroking on Chart for AAA-xxx config.) 3. The SkCoverageDelta is suitable for threaded backend with out-of-order concurrent scan conversion as commented in the source code. Maybe we can also just send deltas to GPU. 4. Similar to most analytic path renderers, the quality is on the best ground-truth level, unless there are intersections within a pixel. The intersections look good to my eyes although theoretically that could be arbitrary far from the ground truth (see my AAA slides). 5. For simple paths, such as circle, triangle, rrect, etc., DAA is slower than AAA. But DAA is faster than our older supersampling scan converter in most cases. As those simple paths usually don't constitute the bottleneck of a picture (skp or svg), I strongly recommend use DAA. 6. DAA also heavily favors blitMask so it may work quite well with SkRasterPipeline and SkRasterPipelineBlitter. Finally, please check https://skia-review.googlesource.com/c/22420/ which accelerate DAA by specializing blitCoverageDeltas for SkARGB32_Blitter and SkARGB32_Black_Blitter. It brings a little(<5%) speedup. But I couldn't figure out how to reduce the duplicate code so I don't intend to land it. Bug: skia: Change-Id: I3b7ed6a727447922e645b1acb737a506e7c09a4c Reviewed-on: https://skia-review.googlesource.com/19666 Reviewed-by: Mike Reed <reed@google.com> Reviewed-by: Cary Clark <caryclark@google.com> Commit-Queue: Yuqian Li <liyuqian@google.com>
* use unique_ptr for codec factoriesGravatar Mike Reed2017-07-25
| | | | | | | | | | Will need guards for android (at least) Bug: skia: Change-Id: I2bb8e656997984489ef1f2e41cd3d301c4e7b947 Reviewed-on: https://skia-review.googlesource.com/26040 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Reed <reed@google.com>
* Add Make[backend] calls for creating GrContextsGravatar Greg Daniel2017-07-25
| | | | | | | | | Docs-Preview: https://skia.org/?cl=26369 Bug: skia: Change-Id: I460ee63e466f85b05918479f068a2e5ca2d70550 Reviewed-on: https://skia-review.googlesource.com/26369 Commit-Queue: Greg Daniel <egdaniel@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Faster, thread-safe implementationGravatar Brian Osman2017-07-24
| | | | | | | | | Bug: skia: Change-Id: I401c5a9885c348aa424ab07b094acecddb209490 Reviewed-on: https://skia-review.googlesource.com/25860 Commit-Queue: Brian Osman <brianosman@google.com> Reviewed-by: Mike Klein <mtklein@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* have resources return unique_ptr for streamGravatar Mike Reed2017-07-23
| | | | | | | | Bug: skia: Change-Id: I649f4435d06704a5a581a481fe3c46b6ec677baf Reviewed-on: https://skia-review.googlesource.com/26041 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* First stab at JSON event tracerGravatar Brian Osman2017-07-20
| | | | | | | | | | | | | | | | | | | | Not yet thread safe (so it forces threading off). Builds JSON on the fly, so overhead is certainly bad. Plan to fix all of that, but this at least "works". There is now one tracing flag: 'trace'. - 'debugf' installs the SkDebugf tracer. - 'atrace' installs the Android ATrace tracer. - Any other value is interpreted as a filename, and produces a JSON file for chrome://tracing. All three modes work in DM, nanobench, and Viewer. Bug: skia: Change-Id: I3fbc22382b99418a508c670be2770195c0a1c364 Reviewed-on: https://skia-review.googlesource.com/24781 Commit-Queue: Brian Osman <brianosman@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* convert over to 2d-modeGravatar Mike Klein2017-07-20
| | | | | | | | | | | | [√] convert all stages to use SkJumper_MemoryCtx / be 2d-compatible [√] convert compile to 2d also, remove 1d run/compile [√] convert all call sites [√] no diffs Change-Id: I3b806eb8fe0c3ec043359616409f7cd1211a1e43 Reviewed-on: https://skia-review.googlesource.com/24263 Commit-Queue: Mike Klein <mtklein@google.com> Reviewed-by: Florin Malita <fmalita@chromium.org>
* Retry cleaning up SkLinearBitmapPipeline.Gravatar Mike Klein2017-07-20
| | | | | | | | | | | | | | | | | | This is mostly dead code. In order to make it truly dead, we need to opt drawing unpremul images into SkRasterPipelineBlitter. They had been handled by SkLinearBitmapPipeline, but can't be draw by SkBitmapProcLegacyShader. Drawing unpremul images is tested by the GM all_variants_8888, which gave us trouble last time around (serialize-8888 drew right, 8888 wrong) but now draws fine. I think this was probably also the root of the revert, drawing some unpremul image in Chrome's tests somewhere. Change-Id: I453f9df44ade807316935921cbae82961e2f08aa Reviewed-on: https://skia-review.googlesource.com/24862 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Assume HQ is handled by pipeline, delete legacy code-pathGravatar Mike Reed2017-07-20
| | | | | | | | | CQ_INCLUDE_TRYBOTS=skia.primary:Test-Debian9-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD Bug: skia: Change-Id: If6f0d0a57463bf99a66d674e65a62ce3931d0116 Reviewed-on: https://skia-review.googlesource.com/24644 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org>
* SkPDF: SkPDFMakeShader takes the paint color.Gravatar Hal Canary2017-07-19
| | | | | | | | | | | This allows alpha blending and also alpha shaders with color blended in. fixes GMs: composeshader_alpha, composeshader_bitmap Change-Id: I3ab9cbef216f7733798d2e29541b4211c627dab2 Reviewed-on: https://skia-review.googlesource.com/24760 Commit-Queue: Hal Canary <halcanary@google.com> Reviewed-by: Ben Wagner <bungeman@google.com>
* Update gpu caps for valid sample counts.Gravatar Greg Daniel2017-07-19
| | | | | | | | | | | | Instead of query and maxSampleCount and using that to cap, we now have each config store its supported values and when requested returns either the next highest or equal supported value, or if non the max config supported. Bug: skia: Change-Id: I8802d44c13b3b1703ee54a7e69b82102d4b8dc2d Reviewed-on: https://skia-review.googlesource.com/24302 Commit-Queue: Greg Daniel <egdaniel@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Add SkDebugf trace event handler.Gravatar Brian Salomon2017-07-19
| | | | | | | | | Also adds more trace events to GPU backend. Change-Id: Ifa5f0cd4b1fd582f0cc30d37d9e6414dc498c75d Reviewed-on: https://skia-review.googlesource.com/24622 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* remove references to kIndex_8_SkColorType from our tools/testsGravatar Mike Reed2017-07-12
| | | | | | | | | Bug: skia:6828 Change-Id: Ib5049c28c11b7320bece20f5a0a886de8b2a4343 Reviewed-on: https://skia-review.googlesource.com/22728 Reviewed-by: Leon Scroggins <scroggo@google.com> Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Mike Reed <reed@google.com>
* Revert "Revert "Change image encode api to return sk_sp""Gravatar Mike Reed2017-07-12
| | | | | | | | | | This reverts commit 64778d9f275d8ce3df8f4ab39ff334b7ef5b70d3. Bug: skia: Change-Id: I779515ff1e16a40c33890a4bac7a8a07171aadfe Reviewed-on: https://skia-review.googlesource.com/22261 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Reland "Remove support for decoding to kIndex_8"Gravatar Leon Scroggins2017-07-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Original change's description: > > Remove support for decoding to kIndex_8 > > > > Fix up callsites, and remove tests that no longer make sense. > > > > Bug: skia:6828 > > Change-Id: I2548c4b7528b7b1be7412563156f27b52c9d4295 > > Reviewed-on: https://skia-review.googlesource.com/21664 > > Reviewed-by: Derek Sollenberger <djsollen@google.com> > > Commit-Queue: Leon Scroggins <scroggo@google.com> > > TBR=djsollen@google.com,scroggo@google.com > > Change-Id: I1bc669441f250690884e75a9a61427fdf75c6907 > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: skia:6828 > Reviewed-on: https://skia-review.googlesource.com/22120 > Reviewed-by: Leon Scroggins <scroggo@google.com> > Commit-Queue: Leon Scroggins <scroggo@google.com> TBR=djsollen@google.com,scroggo@google.com Bug: skia:6828 Change-Id: I36ff5a11c529d29e8adc95f43b8edc6fd1dbf5b8 Reviewed-on: https://skia-review.googlesource.com/22320 Reviewed-by: Leon Scroggins <scroggo@google.com> Commit-Queue: Leon Scroggins <scroggo@google.com>
* Revert "Change image encode api to return sk_sp"Gravatar Mike Reed2017-07-11
| | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit dc799550e2d9965aa5b7cda496465b2a76b310a5. Reason for revert: need to fix sites in Document_none Original change's description: > Change image encode api to return sk_sp > > Bug: skia: > Change-Id: I238289bc630be27795cb1384955dd6e887597c05 > Reviewed-on: https://skia-review.googlesource.com/22208 > Commit-Queue: Mike Reed <reed@google.com> > Reviewed-by: Florin Malita <fmalita@chromium.org> TBR=scroggo@google.com,fmalita@chromium.org,reed@google.com Change-Id: Id7f67027e5f1405a60fdbde29863cdf8daef0cb7 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia: Reviewed-on: https://skia-review.googlesource.com/22280 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Change image encode api to return sk_spGravatar Mike Reed2017-07-11
| | | | | | | | Bug: skia: Change-Id: I238289bc630be27795cb1384955dd6e887597c05 Reviewed-on: https://skia-review.googlesource.com/22208 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Florin Malita <fmalita@chromium.org>
* Revert "Remove support for decoding to kIndex_8"Gravatar Leon Scroggins2017-07-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 742a3e298fda669006147e4a305bab8452369b1f. Reason for revert: Breaking Android roll: frameworks/base/core/jni/android/graphics/BitmapFactory.cpp:453:18: error: no member named 'fColorPtr' in 'SkAndroidCodec::AndroidOptions' codecOptions.fColorPtr = colorPtr; ~~~~~~~~~~~~ ^ frameworks/base/core/jni/android/graphics/BitmapFactory.cpp:454:18: error: no member named 'fColorCount' in 'SkAndroidCodec::AndroidOptions' codecOptions.fColorCount = colorCount; ~~~~~~~~~~~~ ^ Original change's description: > Remove support for decoding to kIndex_8 > > Fix up callsites, and remove tests that no longer make sense. > > Bug: skia:6828 > Change-Id: I2548c4b7528b7b1be7412563156f27b52c9d4295 > Reviewed-on: https://skia-review.googlesource.com/21664 > Reviewed-by: Derek Sollenberger <djsollen@google.com> > Commit-Queue: Leon Scroggins <scroggo@google.com> TBR=djsollen@google.com,scroggo@google.com Change-Id: I1bc669441f250690884e75a9a61427fdf75c6907 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia:6828 Reviewed-on: https://skia-review.googlesource.com/22120 Reviewed-by: Leon Scroggins <scroggo@google.com> Commit-Queue: Leon Scroggins <scroggo@google.com>
* Remove support for decoding to kIndex_8Gravatar Leon Scroggins III2017-07-10
| | | | | | | | | | Fix up callsites, and remove tests that no longer make sense. Bug: skia:6828 Change-Id: I2548c4b7528b7b1be7412563156f27b52c9d4295 Reviewed-on: https://skia-review.googlesource.com/21664 Reviewed-by: Derek Sollenberger <djsollen@google.com> Commit-Queue: Leon Scroggins <scroggo@google.com>
* Add mock config to tools and run through gms and benchs without crashing.Gravatar Brian Salomon2017-07-07
| | | | | | | Change-Id: I7e2474129ef2b15899ad2baeb8d18f39d05da98c Reviewed-on: https://skia-review.googlesource.com/21820 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Greg Daniel <egdaniel@google.com>
* add stages for black and white colorsGravatar Mike Reed2017-07-06
| | | | | | | | | | | | | | histogram of test skps: black: 1/7 white: 2/7 other: 4/7 Bug: skia: Change-Id: I3a092899d31ce87837e66e5c8ea9ec5e0f239361 Reviewed-on: https://skia-review.googlesource.com/21408 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Mike Reed <reed@google.com>
* SkPDF: Change some identifiers.Gravatar Hal Canary2017-07-06
| | | | | | | | | | | s/SkPDFShader::GetPDFShader/SkPDFMakeShader/g s/SkPDFShader::State/SkPDFImageShaderKey/g s/state/key/g Change-Id: I86dc932c3407c73f387c972fb6674dc09ea0be3c Reviewed-on: https://skia-review.googlesource.com/21661 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* add --csv option to nanobenchGravatar Mike Reed2017-07-05
| | | | | | | | | | | This makes it trivial to copy/paste into spreadsheets for sorting/diffing Bug: skia: Change-Id: I02c920e2b8be8f59270da9fb9bb3e6763987e0bc Reviewed-on: https://skia-review.googlesource.com/21378 Reviewed-by: Mike Klein <mtklein@google.com> Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Mike Reed <reed@google.com>
* Add a nanobench for drawing glyphs as pathsGravatar Chris Dalton2017-07-05
| | | | | | | | Bug: skia: Change-Id: I6e620befd2fe8e84f744e79e9287d9d2d19ffa57 Reviewed-on: https://skia-review.googlesource.com/21389 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Chris Dalton <csmartdalton@google.com>
* We should draw at least once for benchmarkGravatar Yuqian Li2017-07-04
| | | | | | | | Bug: skia:6792 Change-Id: Ia69c7601abead8f30963de709f22e27e04798319 Reviewed-on: https://skia-review.googlesource.com/20697 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Yuqian Li <liyuqian@google.com>
* update blendmode benchGravatar Mike Reed2017-07-04
| | | | | | | | Bug: skia: Change-Id: Id47fedd9e346035af0f14b9a9c171c79eec0d9cd Reviewed-on: https://skia-review.googlesource.com/21407 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* remove unneeded code for index8 imagseGravatar Mike Reed2017-07-03
| | | | | | | | Bug: skia:6828 Change-Id: I039d6bc35a1ed93ce747247f32fe4e9d5b09da0c Reviewed-on: https://skia-review.googlesource.com/21400 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Mike Reed <reed@google.com>
* SkPDF: clean up fRasterDpiGravatar Hal Canary2017-06-30
| | | | | | | | | | | | - PDFDevice no longer has a fRasterDpi; simply queries document. - #define DPI_FOR_RASTER_SCALE_ONE becomes constexpr float. - PDFShader::GetPDFShader no longer takes rasterScale or dpi - Remove un-needed factory functions. We're all adults here. Change-Id: Id2ce75d4e61af385763ccfb1db210465a1600067 Reviewed-on: https://skia-review.googlesource.com/21348 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* Revert "Remove deadcode for sRGB image shading."Gravatar Mike Reed2017-06-26
| | | | | | | | | | | | | | | | | | | | | | | This reverts commit 51f6a0f89e55b2c0f102aa7963320a23c586e71d. Reason for revert: try to fix chrome roll Original change's description: > Remove deadcode for sRGB image shading. > > Change-Id: I9d98da67d97b64ab55cf44b9ae447882dccda1ca > Reviewed-on: https://skia-review.googlesource.com/20695 > Reviewed-by: Mike Klein <mtklein@chromium.org> > Commit-Queue: Herb Derby <herb@google.com> TBR=mtklein@chromium.org,mtklein@google.com,herb@google.com,reed@google.com # Not skipping CQ checks because original CL landed > 1 day ago. Change-Id: I90409a08409177d9dc3b094d736af0fdaf7d6cdd Reviewed-on: https://skia-review.googlesource.com/20824 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Revert "remove a bit more dead code"Gravatar Mike Reed2017-06-26
| | | | | | | | | | | | | | | | | | | | | | | This reverts commit d9b1fe02a677ec44bc1c99809f3ee7eb08708137. Reason for revert: try to fix chrome roll Original change's description: > remove a bit more dead code > > Change-Id: I61484672e88d6bb4f75833ee89e7178c4f34d610 > Reviewed-on: https://skia-review.googlesource.com/20780 > Commit-Queue: Mike Klein <mtklein@google.com> > Reviewed-by: Herb Derby <herb@google.com> TBR=mtklein@chromium.org,mtklein@google.com,herb@google.com # Not skipping CQ checks because original CL landed > 1 day ago. Change-Id: I03dcd344dfb138261d9421b0692d12e4ed431100 Reviewed-on: https://skia-review.googlesource.com/20822 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Revert "Revert "Remove deadcode for sRGB image shading.""Gravatar Mike Reed2017-06-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit e08e639063dd5476b5a1a24c0f0dc8f1139bfd8d. Reason for revert: revert was not clean Original change's description: > Revert "Remove deadcode for sRGB image shading." > > This reverts commit 51f6a0f89e55b2c0f102aa7963320a23c586e71d. > > Reason for revert: crazy attempt to fix chrome roll > > Original change's description: > > Remove deadcode for sRGB image shading. > > > > Change-Id: I9d98da67d97b64ab55cf44b9ae447882dccda1ca > > Reviewed-on: https://skia-review.googlesource.com/20695 > > Reviewed-by: Mike Klein <mtklein@chromium.org> > > Commit-Queue: Herb Derby <herb@google.com> > > TBR=mtklein@chromium.org,mtklein@google.com,herb@google.com,reed@google.com > > # Not skipping CQ checks because original CL landed > 1 day ago. > > Change-Id: Icab02936d6c18e50b8de353aa1cd4c225e15e0bf > Reviewed-on: https://skia-review.googlesource.com/20800 > Reviewed-by: Mike Reed <reed@google.com> TBR=mtklein@chromium.org,mtklein@google.com,herb@google.com,reed@google.com Change-Id: Ibc579a5a95e78cb257e8d443dbb905db3761e84a No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://skia-review.googlesource.com/20802 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Revert "Remove deadcode for sRGB image shading."Gravatar Mike Reed2017-06-25
| | | | | | | | | | | | | | | | | | | | | | This reverts commit 51f6a0f89e55b2c0f102aa7963320a23c586e71d. Reason for revert: crazy attempt to fix chrome roll Original change's description: > Remove deadcode for sRGB image shading. > > Change-Id: I9d98da67d97b64ab55cf44b9ae447882dccda1ca > Reviewed-on: https://skia-review.googlesource.com/20695 > Reviewed-by: Mike Klein <mtklein@chromium.org> > Commit-Queue: Herb Derby <herb@google.com> TBR=mtklein@chromium.org,mtklein@google.com,herb@google.com,reed@google.com # Not skipping CQ checks because original CL landed > 1 day ago. Change-Id: Icab02936d6c18e50b8de353aa1cd4c225e15e0bf Reviewed-on: https://skia-review.googlesource.com/20800 Reviewed-by: Mike Reed <reed@google.com>
* remove a bit more dead codeGravatar Mike Klein2017-06-24
| | | | | | | Change-Id: I61484672e88d6bb4f75833ee89e7178c4f34d610 Reviewed-on: https://skia-review.googlesource.com/20780 Commit-Queue: Mike Klein <mtklein@google.com> Reviewed-by: Herb Derby <herb@google.com>
* Remove deadcode for sRGB image shading.Gravatar Herb Derby2017-06-23
| | | | | | | Change-Id: I9d98da67d97b64ab55cf44b9ae447882dccda1ca Reviewed-on: https://skia-review.googlesource.com/20695 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Herb Derby <herb@google.com>
* Move mock gpu and caps, add Gr prefix, and create via GrContext::CreateGravatar Brian Salomon2017-06-23
| | | | | | | Change-Id: I02427839f78372e337ed717b071c6baaa8ba4450 Reviewed-on: https://skia-review.googlesource.com/20622 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Revert[2] "use rasterpipeline for non-8888-clamp shaders (so we can delete ↵Gravatar Mike Reed2017-06-22
| | | | | | | | | | | | | | | more legacy code)"" Now with guard for Chrome and fix for bench https://codereview.chromium.org/2947233002/ This reverts commit 19d0b99922712df3f07ba4622f1e5ccddc3b7168. Bug: skia: Change-Id: I5991955d0d927d34a184cf4d9844b0d565e03b88 Reviewed-on: https://skia-review.googlesource.com/20461 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* remove unused mode parameter from SkMergeImageFilterGravatar Mike Reed2017-06-19
| | | | | | | | Bug: skia: Change-Id: Iaa46aaef130a337987c3528685f59c56387d4a7d Reviewed-on: https://skia-review.googlesource.com/20210 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Mike Reed <reed@google.com>
* Image Encoder: more benchesGravatar Hal Canary2017-06-17
| | | | | | | Change-Id: I35973ee9223c2db3e2250dae4c5dd3cc13a5aa92 Reviewed-on: https://skia-review.googlesource.com/20156 Reviewed-by: Matt Sarett <msarett@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* Improve cubic KLM accuracyGravatar Chris Dalton2017-06-09
| | | | | | | | | | | | | | | | | | | | | | Moves cubic root finding logic out of GrPathUtils and PathOpsCubicIntersectionTest, and unifies it in SkGeometry. "Normalizes" the homogeneous parameter values of the roots, rather than the cubic inflection function. Does this normalization by twiddling the exponents instead of division (which causes a loss of precision). Abandons the built-in derivatives in GrCubicEffect. These don't have high enough precision on many mobile gpus. Instead we pass the KLM matrix to the vertex shader via uniform, where we can use it to set up new linear functionals from which the fragment shader can calculate the gradient of the implicit function. Bug: skia:4410 Change-Id: Ibd64e999520adc8cdef7803a492d3699995aef5a Reviewed-on: https://skia-review.googlesource.com/19017 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Chris Dalton <csmartdalton@google.com>
* specialize D32 proc for legacy srcGravatar Mike Reed2017-06-09
| | | | | | | | | | lots of dead-code removal Bug: skia: Change-Id: I23ea25eb38855b4776e97fa8ff777d9744baab1d Reviewed-on: https://skia-review.googlesource.com/19147 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Fix native_image_to_raster_surface crash in ANGLE msaa configsGravatar Brian Osman2017-06-08
| | | | | | | | | | | | | | | We only support MSAA with RGBA (not BGRA), on ANGLE, so we were failing to construct the GPU surface. Instead, use the original canvas' info to make the image surface (but always use N32 to make the raster surface). I think this will fix the Ubuntu Intel glesmsaa4 crashes, too, although I don't have a machine to test on right now. Bug: skia:6457 skia:6401 Change-Id: Icfc47845e97ef0806fb6d875f454d3920020ffbd Reviewed-on: https://skia-review.googlesource.com/19054 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* Remove SkLinearGradient::kForce4fContext_PrivateFlagGravatar Florin Malita2017-06-07
| | | | | | | | | | | | ... and related tests/gms. We now exercise the 4f impl with raster-pipeline/burst, no need for a special test flag. Change-Id: If67684d2d8840b3c413db9eeebb051f59cbc5a34 Reviewed-on: https://skia-review.googlesource.com/19025 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* add testing flag to force rasterpipelineGravatar Mike Reed2017-06-05
| | | | | | | | Bug: skia: Change-Id: I8e195e90dc00b9be9072858086f7541e993428da Reviewed-on: https://skia-review.googlesource.com/18585 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Mike Reed <reed@google.com>
* update SkRasterPipeline::run() to also take yGravatar Mike Klein2017-06-01
| | | | | | | | | y isn't used yet. This is just a warmup that updates the callers. Change-Id: I78f4f44e2b82f72b3a39fa8a8bdadef1d1b8a99e Reviewed-on: https://skia-review.googlesource.com/18381 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Reland of SkShaderBaseGravatar Florin Malita2017-05-25
| | | | | | | | | | Introduce a private base class (SkShaderBase), to hide implementation details from the public interface (SkShader). Change-Id: Ib1d76cde880bd51868b97408710f8bb38128e536 Reviewed-on: https://skia-review.googlesource.com/17925 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* Revert "SkShaderBase"Gravatar Florin Malita2017-05-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 58a756435ca3700d9766a4580bb0771a9774f603. Reason for revert: g3, Android borkage. Original change's description: > SkShaderBase > > Introduce a private base class (SkShaderBase), to hide > implementation details from the public interface (SkShader). > > Change-Id: If3ec26ca6abc9da20e3f139c11fdc023bdd85176 > Reviewed-on: https://skia-review.googlesource.com/17241 > Commit-Queue: Florin Malita <fmalita@chromium.org> > Reviewed-by: Mike Reed <reed@google.com> > TBR=mtklein@google.com,fmalita@chromium.org,reed@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: I32b012ee466dd006c074593f211f43ed602f1078 Reviewed-on: https://skia-review.googlesource.com/17845 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* SkShaderBaseGravatar Florin Malita2017-05-24
| | | | | | | | | | Introduce a private base class (SkShaderBase), to hide implementation details from the public interface (SkShader). Change-Id: If3ec26ca6abc9da20e3f139c11fdc023bdd85176 Reviewed-on: https://skia-review.googlesource.com/17241 Commit-Queue: Florin Malita <fmalita@chromium.org> Reviewed-by: Mike Reed <reed@google.com>
* SkSTArenaAllocGravatar Florin Malita2017-05-24
| | | | | | | | | Syntactic sugar, gets rid of some boilerplate. Change-Id: Ibdb28b7a8f1d5e4a4e18c12d423b987d7194e340 Reviewed-on: https://skia-review.googlesource.com/17837 Commit-Queue: Florin Malita <fmalita@chromium.org> Reviewed-by: Herb Derby <herb@google.com>
* SkRasterPipeline in SkArenaAllocGravatar Mike Klein2017-05-24
| | | | | | | | | Bug: skia:6673 Change-Id: Ia2bae4f6a9039a007a10b6b45bcf2f0854bf6e5c Reviewed-on: https://skia-review.googlesource.com/17794 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* color-correct patchGravatar Mike Reed2017-05-23
| | | | | | | | | | | Key work is to correctly convert SkColor corners into linear floats, then interpolate, then (correctly) convert back to SkColors. Bug: skia:6659 Change-Id: Iaf0ab842d7a4f8f3481e609903cec83814e5a749 Reviewed-on: https://skia-review.googlesource.com/17533 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Brian Osman <brianosman@google.com>