aboutsummaryrefslogtreecommitdiffhomepage
Commit message (Collapse)AuthorAge
* Use stack instead of malloc() for most calls to SkRasterPipeline::run().Gravatar Mike Klein2017-01-05
| | | | | | | | | | | | | Also split bench into run/compile variants to measure the effect: Before …f16_compile 1x …f16_run 1.02x …srgb_compile 1.56x …srgb_run 1.61x After …f16_run 1x …f16_compile 1.01x …srgb_compile 1.58x …srgb_run 1.59x CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD Change-Id: I8e65fb2acdbb05ccc0b3894f16d7646603c3e74d Reviewed-on: https://skia-review.googlesource.com/6621 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Revert "SkRasterPipelineBlitter: support A8"Gravatar Mike Klein2017-01-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit f44373c119290b501d4aec7385e16d12c28a1f0f. Reason for revert: MSAN Original change's description: > SkRasterPipelineBlitter: support A8 > > This adds support for loading and storing A8, then uses it in SkRasterPipelineBlitter. > > I think this handles all dst formats now: A8, 565, 8888 (by policy, sRGB only) and F16. > > CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel;skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD > > > Change-Id: Id207f6e6c56b6bfcc301d77dd23e0959bb7afba8 > Reviewed-on: https://skia-review.googlesource.com/6554 > Reviewed-by: Mike Reed <reed@google.com> > Commit-Queue: Mike Klein <mtklein@chromium.org> > TBR=mtklein@chromium.org,reed@google.com,reviews@skia.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: I9ead3c3335e1776e9a1639ca0481253821505d67 Reviewed-on: https://skia-review.googlesource.com/6625 Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Mike Klein <mtklein@chromium.org>
* SkRasterPipelineBlitter: support A8Gravatar Mike Klein2017-01-05
| | | | | | | | | | | | | | This adds support for loading and storing A8, then uses it in SkRasterPipelineBlitter. I think this handles all dst formats now: A8, 565, 8888 (by policy, sRGB only) and F16. CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel;skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD Change-Id: Id207f6e6c56b6bfcc301d77dd23e0959bb7afba8 Reviewed-on: https://skia-review.googlesource.com/6554 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Cleanup ops that are storing GrPipelineOptimizations.Gravatar Brian Salomon2017-01-05
| | | | | | | | | This is being stored and passed in places where it is unneeded or only 1 or 2 of its flags are needed. Change-Id: Ifded9e645c0380e792708064ad69449653668acf Reviewed-on: https://skia-review.googlesource.com/6583 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* monobench: don't sort the Bench vector while iterating through it...Gravatar Mike Klein2017-01-05
| | | | | | | | | | | | We sort to display Bench results in an ascending order, but we're doing this while iterating through the bench vector. This is probably undefined, and really screws up the sample distribution in practice. Slow benches run more often. Instead, copy the results of the benches to a new Result vector to sort and display. Each bench now gets its fair share of samples. Change-Id: I4ead0d9d69af271c9971eedb35604a4b3bca0784 Reviewed-on: https://skia-review.googlesource.com/6623 Reviewed-by: Mike Klein <mtklein@chromium.org> Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* monobench: shuffle benchmark order between samplesGravatar Mike Klein2017-01-05
| | | | | | | | | I had the thought that going through each bench in the same order is a bias we can avoid, however slight. Change-Id: I2ef1a6f57c4d121883250d65ea2e98ebe834925d Reviewed-on: https://skia-review.googlesource.com/6622 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Rename batch->op in GrAuditTrail json and skiaserver's url handlersGravatar Brian Salomon2017-01-05
| | | | | | | | | Requires Infra change https://skia-review.googlesource.com/c/6397/ Change-Id: Ic04ea07a0450a99b291f1bc06d4a501d86f65f51 Reviewed-on: https://skia-review.googlesource.com/6398 Reviewed-by: Joe Gregorio <jcgregorio@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* GN: add skia_android_serial and push_$foo targets when it's setGravatar Mike Klein2017-01-05
| | | | | | | | | | | | | | E.g. $ ninja -C out push_dm By default (ninja -C out) everything is built and pushed if skia_android_serial is set. Dependencies are tracked, so incremental builds push only executables that have changed. Change-Id: I586d81791f5f877b173cf61ed68fa9aab96234d2 Reviewed-on: https://skia-review.googlesource.com/6616 Reviewed-by: Derek Sollenberger <djsollen@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* clamp to 1.0f in sk_linear_to_srgb_needs_round()Gravatar Mike Klein2017-01-05
| | | | | | | | | | It's awkward today that it can go a little over 1.0f. This is already slow, so a clamp won't slow it signficantly. Change-Id: I9f882804e3ee949d72b7a05ad2cbac51731f6311 Reviewed-on: https://skia-review.googlesource.com/6617 Reviewed-by: Matt Sarett <msarett@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Minor fixes for the Linux viewerGravatar Jim Van Verth2017-01-05
| | | | | | | | BUG=skia:6091 Change-Id: Ia954c16610634e34f10bfe4273efc6677ca9563e Reviewed-on: https://skia-review.googlesource.com/6618 Reviewed-by: Greg Daniel <egdaniel@google.com>
* ignore max curvature at end pointGravatar Cary Clark2017-01-05
| | | | | | | | | | | | | | | When a stroked cubic folds back on itself, the stroker draws a round join. If the max curvature is at the endpoint, skip the join. R=reed@google.com BUG=skia:6083 Change-Id: I45e429432fcec311fa1115058515639370fe9a16 Reviewed-on: https://skia-review.googlesource.com/6606 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Cary Clark <caryclark@google.com>
* Explicitly fail read/writePixels in invalid color space scenariosGravatar Brian Osman2017-01-05
| | | | | | | | | | | | | | | It's not well defined what to do when moving from a nullptr color space to a tagged destination (drawing, reading, writing, etc...). In these scenarios, at least, we can choose to disallow the operation (rather than produce an unexpected or inconsistent result). BUG=skia: Change-Id: I033b23c6f2bb00664efc8fdab1b3f52053d77695 Reviewed-on: https://skia-review.googlesource.com/6600 Commit-Queue: Brian Osman <brianosman@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com> Reviewed-by: Matt Sarett <msarett@google.com>
* Remove SK_SUPPORT_LEGACY_EVAL_CUBIC-guarded codeGravatar Florin Malita2017-01-05
| | | | | | | | | | | To land after http://crrev.com/2610923004. R=caryclark@google.com Change-Id: I0a748801be06530f98009e977e816c90f1ef5934 Reviewed-on: https://skia-review.googlesource.com/6611 Reviewed-by: Cary Clark <caryclark@google.com> Commit-Queue: Florin Malita <fmalita@chromium.org>
* Use nullptr to indicate C locale when using xlocaleGravatar Brian Salomon2017-01-05
| | | | | | | | | BUG=chromium:666228 Change-Id: I951102eba2b79ddaa5eb134834471a4a3ec8aed7 Reviewed-on: https://skia-review.googlesource.com/6603 Reviewed-by: Ethan Nicholas <ethannicholas@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Add tools to support gdb and simpleperf for android executables.Gravatar Derek Sollenberger2017-01-05
| | | | | | | Change-Id: I6e7f41df094ae037538ebd61e40385d7e2e9eb26 Reviewed-on: https://skia-review.googlesource.com/6615 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Remove Perf-Android-Clang-NexusPlayer-CPU-Moorefield-x86-Release-Android.Gravatar Ben Wagner2017-01-05
| | | | | | | | | BUG=skia:6095 Change-Id: I037aa94b23f22a4a7976b3acaacf25e21464d0f4 Reviewed-on: https://skia-review.googlesource.com/6614 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Ben Wagner <benjaminwagner@google.com>
* GN: add test_app templateGravatar Mike Klein2017-01-05
| | | | | | | | | | | | | This template encapsulates two common features of our test apps: - they set testonly, marking them as safe to use testonly libraries - they may want instead to be libapp.so on Android. I plan to follow up to make test_apps push themselves to an Android device when a new argument android_serial is set. Change-Id: I010d219c14ff6d0cd6a543dd56fd471a67ddb6f1 Reviewed-on: https://skia-review.googlesource.com/6608 Reviewed-by: Derek Sollenberger <djsollen@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Delete SkMakeImageFromPixelRefGravatar Matt Sarett2017-01-05
| | | | | | | | | | | There are no callers. BUG=skia: Change-Id: Ie743fc61cc0a0ca755d4e3fdab8a5985fa35fbd3 Reviewed-on: https://skia-review.googlesource.com/6598 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Matt Sarett <msarett@google.com>
* -Fast bot upgradesGravatar Mike Klein2017-01-05
| | | | | | | | | | | | | | | | | | | - GCC -> Clang; - Add a Perf bot. This -Fast mode is a stand-in for "how clients should/do really release code". Today everyone uses Clang, so we should probably switch this bot too. I also got interested in how it compares in performance to our ordinary Release build, so I've added a Perf bot. I did try turning on link-time optimization (much slower build, somewhat faster binary), but that failed at the link step. Going to save that for later. CQ_INCLUDE_TRYBOTS=skia.primary:Build-Ubuntu-Clang-x86_64-Release-Fast,Test-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Release-Fast,Perf-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Release-Fast Change-Id: I58e6109f8a89799d80e769316902549131b619cf Reviewed-on: https://skia-review.googlesource.com/6595 Reviewed-by: Ben Wagner <benjaminwagner@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Remove DMSrcSinkAndroid.Gravatar Derek Sollenberger2017-01-05
| | | | | | | | | | | This code involves Skia having knowledge of HWUI internals and causes problems with various build systems. It is also not currently being used and is therefore expendable. Change-Id: I7b6a37fa4c9afcefbc6a957b49e7735da872ff14 Reviewed-on: https://skia-review.googlesource.com/6597 Commit-Queue: Derek Sollenberger <djsollen@google.com> Reviewed-by: Leon Scroggins <scroggo@google.com>
* Omit GPUMemoryTest for GTX1070 Windows Vulkan.Gravatar Ben Wagner2017-01-05
| | | | | | | | | BUG=skia:6092 Change-Id: I820a2da22a1d852091c6a3416e11f90d6f644bc6 Reviewed-on: https://skia-review.googlesource.com/6586 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Ben Wagner <benjaminwagner@google.com>
* Merge SkColorSpaceXform_XYZ and SkColorSpaceXform_PipelineGravatar Matt Sarett2017-01-04
| | | | | | | | | | | | Use the pipeline implementation to handle F32. This refactor has been broken away from the following mega-CL. https://skia-review.googlesource.com/c/6260/ Change-Id: I79d8992f8c4a7e4dbf674a78484057a6b7f4f123 Reviewed-on: https://skia-review.googlesource.com/6585 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Matt Sarett <msarett@google.com>
* Disable clang -Wsigned-enum-bitfield warningsGravatar Matt Sarett2017-01-04
| | | | | | | | | | | | | | Full error text: error: enums in the Microsoft ABI are signed integers by default; consider giving the enum Properties an unsigned underlying type to make this code portable [-Werror,-Wsigned-enum-bitfield] BUG=skia: Change-Id: I1491dd94c894e383fed401880fc04562140f7a66 Reviewed-on: https://skia-review.googlesource.com/6594 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Matt Sarett <msarett@google.com>
* add writePixels to SkBitmapGravatar Mike Reed2017-01-04
| | | | | | | | | BUG=skia: Change-Id: I6f4db9ddc0364d9785e0f1794d86b73e66845ea9 Reviewed-on: https://skia-review.googlesource.com/6593 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Florin Malita <fmalita@chromium.org>
* Modify GrTessellator to use a VertexList where possible.Gravatar Stephen White2017-01-04
| | | | | | | | | | | Prefer VertexList to a bare Vertex*. Also fix some 100-col issues. This should have no user-visible impact. Change-Id: I8fa260d5417c9832256529c232f532e69238fca0 Reviewed-on: https://skia-review.googlesource.com/6502 Commit-Queue: Stephan White <senorblanco@chromium.org> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Retry trim another instruction off SkRasterPipeline overheadGravatar Mike Klein2017-01-04
| | | | | | | | | | | | | | | | | | | This time, with manual program memory management instead of std::vector<void*>. Using STL types from SkOpts_hsw.cpp is not safe. Things like std::vector<void*> are inlined but not anonymous, so they're deduped by the linker arbitrarily. This is bad when we pick the version compiled with AVX instructions on a machine that doesn't support AVX... std::vector<Stage> was safe before because Stage itself was anonymous. While not anonymous, std::vector<Stage> is unique to the compilation unit, because you can only refer to the anonymous Stage in the compilation unit. CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_asan_rel_ng;skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD Change-Id: I015e27583b6b6ff06b5e9f63e3f40ee6b27d6dbd Reviewed-on: https://skia-review.googlesource.com/6550 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Add context markup to integer texture testGravatar Brian Osman2017-01-04
| | | | | | | | | | | | Trying to get better information about what's failing (and make this easier in the future). BUG=skia:6086 Change-Id: Iedb1269abb4527170b919bd90bce625a7f78f05a Reviewed-on: https://skia-review.googlesource.com/6584 Commit-Queue: Brian Osman <brianosman@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Update Android Apps to work with GN.Gravatar Derek Sollenberger2017-01-04
| | | | | | | | | | | | This also includes the removal of an old example whose instructions are not compatible with GN. BUG=skia:6009 Change-Id: I2807829ca12c19292ae0f5a7ea250ed453f9a182 Reviewed-on: https://skia-review.googlesource.com/5620 Commit-Queue: Derek Sollenberger <djsollen@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org>
* Removes tracking of whether color is ignored by XP.Gravatar Brian Salomon2017-01-04
| | | | | | | | | Removes the feedback to GrDrawOp via GrPipelineOptimizations. Change-Id: I3cb17cad41779af292a92385fcd5ac23ae5a1ffd Reviewed-on: https://skia-review.googlesource.com/6561 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Clamp premul colors correctly after a gamut changeGravatar Brian Osman2017-01-04
| | | | | | | | | | | | | | | Textures that we sample on the GPU are always premul, so we should actually clamp to alpha. Colors that are xformed on the CPU are always unpremul, so clamping to [0,1] is correct. Add a comment explaining that. BUG=skia: Change-Id: I180f2d410f24afc78bd03ab8636a83fb443d68e2 Reviewed-on: https://skia-review.googlesource.com/6581 Commit-Queue: Brian Osman <brianosman@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org>
* Fix color space matrix hashing to avoid hashing the typemaskGravatar Matt Sarett2017-01-04
| | | | | | | | | | BUG=skia: Change-Id: I8d4594fcf0eeebf598871bfe9203ed52460c98ce Reviewed-on: https://skia-review.googlesource.com/6558 Reviewed-by: Mike Klein <mtklein@chromium.org> Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Matt Sarett <msarett@google.com>
* Removing tracking of whether GP/FP coverage calculations are used by XP.Gravatar Brian Salomon2017-01-04
| | | | | | | | | | | | | | | Remove readsCoverage from GrPipelineOptimizations Remove kNone from GrDefaultGeoProc::Coverage Remove kIgnoreCoverage from GrXferProcessor::OptFlags Remove GrPipeline::fIgnoresCoverage Change-Id: I8f0c9337ee98b9c77af1e9a8a184519ce63822d4 Reviewed-on: https://skia-review.googlesource.com/6552 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Greg Daniel <egdaniel@google.com>
* Improve detection of color space transfer fnsGravatar Matt Sarett2017-01-04
| | | | | | | | | BUG=skia: Change-Id: I744af0efd4d48a8932b834092ed2dbad13008c1d Reviewed-on: https://skia-review.googlesource.com/6556 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Matt Sarett <msarett@google.com>
* auto-generate _d stagesGravatar Mike Klein2017-01-04
| | | | | | | | | | | | Stage foo_d should always be the same logic as stage foo swapping r and dr, g and dg, b and db, a and da. This means we can infer their definitions. CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD Change-Id: Ia0a3abb29a201c647d9ec1860211abfbc19b56ae Reviewed-on: https://skia-review.googlesource.com/6555 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org>
* fix skslc crash when ternary parameter types don't matchGravatar Ethan Nicholas2017-01-04
| | | | | | | | | BUG=skia:5968 Change-Id: I541c7925ac83e830bd53015961312810042046c5 Reviewed-on: https://skia-review.googlesource.com/6545 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
* Use shared toSRGBD50 matrix in SkPngCodecGravatar Matt Sarett2017-01-04
| | | | | | | | | BUG=skia: Change-Id: I1d2629ef954d8ac7211cfbb4707125ed175af63c Reviewed-on: https://skia-review.googlesource.com/6553 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Matt Sarett <msarett@google.com>
* Stage SkFontMgr factories to return smart pointers.Gravatar Ben Wagner2017-01-04
| | | | | | | | | | | | | All the SkFontMgr factories currently return bare pointers and sometimes even document the ownership rules. Since such factories can be implemented by external ports, the ownership rules should be explicit in order to prevent simple reference counting issues. Change-Id: I25b598ce0954cd473a3fb1f8adc0cb86331583ca Reviewed-on: https://skia-review.googlesource.com/6533 Reviewed-by: Florin Malita <fmalita@chromium.org> Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Ben Wagner <bungeman@google.com>
* Remove SkImageShader -> SkColorShader optimization.Gravatar Mike Klein2017-01-04
| | | | | | | | | | | | | | | It's turned out to be surprisingly subtle to make the optimization colorspace correct (it's not today, but with this CL the affected images become colorspace correct). Before implementing a colorspace correct color shader, let's check we really need this. Update: I should say, it's hard to do this optimization and make the resulting color shader be both colorspace correct and "legacy correct". SkColorShader and SkColor4fShader are both colorspace correct. It's just challenging to create one shader that's correct for both modes from an image. Change-Id: I6593b6348175a10d7cbaaf3b531d7a7e2bf2f578 Reviewed-on: https://skia-review.googlesource.com/6548 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Scale the result of TightBounds when path was inverse-scaledGravatar Fredrik Söderquist2017-01-04
| | | | | | | | | | | | | When the path was "large" (as defined by ScaleFactor(...)), the computed bounds would not be adjusted to the correct space. Make sure to scale the result in those cases. BUG=chromium:678162 Change-Id: Ia2eb94050c4620286e9abb69976dbc0202ecc307 Reviewed-on: https://skia-review.googlesource.com/6501 Reviewed-by: Cary Clark <caryclark@google.com> Commit-Queue: Cary Clark <caryclark@google.com>
* fix fuzzGravatar Cary Clark2017-01-04
| | | | | | | | | | R=kjlubick@google.com BUG=skia:6084 Change-Id: I5978805c8d9048e399d83a13173c6a776cabe8ac Reviewed-on: https://skia-review.googlesource.com/6544 Reviewed-by: Kevin Lubick <kjlubick@google.com> Commit-Queue: Cary Clark <caryclark@google.com>
* Revert "trim another instruction off SkRasterPipeline overhead"Gravatar Mike Klein2017-01-04
| | | | | | | | | | | This reverts commit e61c40707e70a2be9e32227a929173864f7895e1. Reason for revert: this and the ODR caused operations on ContiguousContainerBase::elements_, another std::vector<void*> in Chrome, to start using AVX2 instructions. Boy this is annoying... Change-Id: I2c4837ad70fdef8096db904022b0703b88c6fd6c Reviewed-on: https://skia-review.googlesource.com/6549 Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Mike Klein <mtklein@chromium.org>
* Specify "/utf-8" with Visual C++.Gravatar Ben Wagner2017-01-03
| | | | | | | | | | | This sets the source and executable character set to utf-8. This avoids issues with local code pages and avoids adding an unwanted BOM. Change-Id: If854c0001c2363f3262d20e28dce30c1e733536a Reviewed-on: https://skia-review.googlesource.com/6547 Commit-Queue: Ben Wagner <bungeman@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Mike Klein <mtklein@chromium.org>
* Quality and performance fixes for AA tessellating path renderer.Gravatar Stephen White2017-01-03
| | | | | | | | | | | | | | | | | | | | | | | | | | Use quads rather than triangles for the edge geometry. This allows us to perform a simpler edge categorization (see below). It also improves performance by reducing the number of edges processed during the simplify and tessellate steps. Label AA edges as three types: inner, outer, and connector. This results in correct alpha values for intersected edges, even when the top or bottom vertex has been merged with a vertex on edges of different types. Changed the "collinear edges" sample from the concavepaths GM for a "fast-foward" shape, which more clearly shows the problem being fixed here. (The collinearity from the "collinear edges" was actually being removed earlier up the stack, causing the path to become convex and not exercise the concave path renderers anyway.) NOTE: this will cause changes in the "concavepaths" GM results, and minor pixel diffs in a number of other tests. Change-Id: I6c2b0cdb35cda42b01cf1100621271fef5be35b0 Reviewed-on: https://skia-review.googlesource.com/6430 Reviewed-by: Stephan White <senorblanco@chromium.org> Commit-Queue: Stephan White <senorblanco@chromium.org>
* Revert "Quality and performance fixes for AA tessellating path renderer."Gravatar Stephan White2017-01-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit d4b21552481a6d313dfa9bc14b624c9ec94b56ce. Reason for revert: accidentally added some unwanted changes Original change's description: > Quality and performance fixes for AA tessellating path renderer. > > Use quads rather than triangles for the edge geometry. This allows > us to perform a simpler edge categorization (see below). It also > improves performance by reducing the number of edges processed during > the simplify and tessellate steps. > > Label AA edges as three types: inner, outer, and connector. This > results in correct alpha values for intersected edges, even when > the top or bottom vertex has been merged with a vertex on edges > of different types. > > Changed the "collinear edges" sample from the concavepaths GM for a > "fast-foward" shape, which more clearly shows the problem being fixed > here. (The collinearity from the "collinear edges" was actually being > removed earlier up the stack, causing the path to become convex and > not exercise the concave path renderers anyway.) > > NOTE: this will cause changes in the "concavepaths" GM results, and > minor pixel diffs in a number of other tests. > > BUG=660893 > > Change-Id: Ide49374d6d173404c7223f7316dd439df1435787 > Reviewed-on: https://skia-review.googlesource.com/6427 > Commit-Queue: Stephan White <senorblanco@chromium.org> > Reviewed-by: Brian Salomon <bsalomon@google.com> > TBR=bsalomon@google.com,senorblanco@chromium.org,reviews@skia.org BUG=660893 NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: I06a36e397645bfc42442a5a9e7c27328f6048ab9 Reviewed-on: https://skia-review.googlesource.com/6428 Commit-Queue: Stephan White <senorblanco@chromium.org> Reviewed-by: Stephan White <senorblanco@chromium.org>
* Quality and performance fixes for AA tessellating path renderer.Gravatar Stephen White2017-01-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Use quads rather than triangles for the edge geometry. This allows us to perform a simpler edge categorization (see below). It also improves performance by reducing the number of edges processed during the simplify and tessellate steps. Label AA edges as three types: inner, outer, and connector. This results in correct alpha values for intersected edges, even when the top or bottom vertex has been merged with a vertex on edges of different types. Changed the "collinear edges" sample from the concavepaths GM for a "fast-foward" shape, which more clearly shows the problem being fixed here. (The collinearity from the "collinear edges" was actually being removed earlier up the stack, causing the path to become convex and not exercise the concave path renderers anyway.) NOTE: this will cause changes in the "concavepaths" GM results, and minor pixel diffs in a number of other tests. BUG=660893 Change-Id: Ide49374d6d173404c7223f7316dd439df1435787 Reviewed-on: https://skia-review.googlesource.com/6427 Commit-Queue: Stephan White <senorblanco@chromium.org> Reviewed-by: Brian Salomon <bsalomon@google.com>
* fixed a divide-by-zero bug in skslcGravatar Ethan Nicholas2017-01-03
| | | | | | | | | BUG=skia:5960 Change-Id: I8ace6efefd14b11c3bc2448a1ab4e3353a29075f Reviewed-on: https://skia-review.googlesource.com/6539 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
* switched GrVkPipelineStateCache over to use SkLRUCacheGravatar Ethan Nicholas2017-01-03
| | | | | | | | | BUG=skia: Change-Id: I04301313132df170a16995b4830b13ffbddbed3b Reviewed-on: https://skia-review.googlesource.com/6469 Commit-Queue: Ethan Nicholas <ethannicholas@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org>
* Fix: when pos is not finite, text pointer not advanced.Gravatar Herb Derby2017-01-03
| | | | | | | | | | | This fixes a problem introduced by change https://skia-review.googlesource.com/6404. BUG=skia:6076 Change-Id: Iabf05c40284700dc32431f92df5ba5fcdb6cac1d Reviewed-on: https://skia-review.googlesource.com/6534 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Herb Derby <herb@google.com>
* validate deserialized path verbsGravatar Mike Reed2017-01-03
| | | | | | | | | BUG=676755 Change-Id: Ie9bd70d3a130c53737756587f73c9dce4a6bcb6d Reviewed-on: https://skia-review.googlesource.com/6529 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Cary Clark <caryclark@google.com>
* GIF: Better check for frame dependencyGravatar Leon Scroggins III2017-01-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If a frame does not have a valid transparent index and it covers the prior frame, it does not really depend on that frame. Instead, it depends on the frame that the prior frame depends on. Determine this once we have parsed the local color map (if any), so a transparent index out of range of the color map is not considered valid. Share code that determines whether a frame has a transparent pixel. Add a test that we compute the dependencies correctly. randPixelsAnim.gif has 13 frames. After the first, the frames cover all combinations of - Whether the prior frame was keep, restoreBG or restoreToPrevious - Whether the new frame covers the prior frame - Whether the new frame has a transparent pixel (It only does so when using a global color table. It may make sense to expand the test to also cover using local color tables.) The test caught a bug where we incorrectly reused an existing SkColorTable for a different frame. Fix that bug by keeping track of the transparent index associated with the current SkColorTable. Change-Id: I3cf6be7f612990fa7a00d9e74d116d31bd227526 Reviewed-on: https://skia-review.googlesource.com/6402 Reviewed-by: Matt Sarett <msarett@google.com> Commit-Queue: Leon Scroggins <scroggo@google.com>