aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
Commit message (Collapse)AuthorAge
* Add helper to create random AsFPArgs for Ganesh unit testsGravatar Brian Osman2016-10-19
| | | | | | | | | | | | | | Reduces copy-paste and eases maintenance. I'll be adding another field to AsFPArgs soon, and this is going to streamline that change. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3639 Change-Id: I6372ed5dce50a5ba9d73039bd4714e34502a1f75 Reviewed-on: https://skia-review.googlesource.com/3639 Commit-Queue: Brian Osman <brianosman@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* SkNx: use SK_ALWAYS_INLINE thoroughly.Gravatar Mike Klein2016-10-19
| | | | | | | | | | | | | | | | | | MSVC's not so good at inlining. So tell it where to. It won't hurt the others. This has nothing directly to do with ODR safety. The anonymous namespaces and 'static' on freestanding functions provide the correctness we need there. But this change can help to mechanically prevent the sort of problems ODR violations can lead to. I may follow up by extending this strategy further to Sk4px, which is used to implement a lot of the legacy xfermodes. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3608 CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot Change-Id: I927334c40910ce43da1fbabdf243c9cd5438bea6 Reviewed-on: https://skia-review.googlesource.com/3608 Reviewed-by: Matt Sarett <msarett@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* SkDescriptors to be held in unique_ptr.Gravatar bungeman2016-10-19
| | | | | | | | | | | | This also removes the class operator new override along with directly calling malloc in SkData, since it has a similar requirements. CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Debug-ASAN-Trybot;master.client.skia:Test-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Debug-MSAN-Trybot Change-Id: Ic68aacf2028d6964d9735a55558862afc9edd19b Reviewed-on: https://skia-review.googlesource.com/3541 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Ben Wagner <bungeman@google.com>
* Revert of Generate Signed Distance Field directly from vector path (patchset ↵Gravatar benjaminwagner2016-10-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | #18 id:340001 of https://chromiumcodereview.appspot.com/1643143002/ ) Reason for revert: Multiple assertion failures on multiple platforms: ../../../src/gpu/GrDistanceFieldGenFromVector.cpp:806: fatal error: "assert(((col != width - 1) || (windingNumber == 0)) && "Winding number should be zero at the end of a scan line.")" https://luci-milo.appspot.com/swarming/task/31f5353caf8cc410 https://luci-milo.appspot.com/swarming/task/31f567789cbcec10 c:\b\work\skia\src\pathops\skopangle.cpp:165: fatal error: "assert(lrOpposite != trOpposite)" https://luci-milo.appspot.com/swarming/task/31f570d74f750310 Original issue's description: > Generate Signed Distance Field directly from vector path > > 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 TBR=bsalomon@google.com,jvanverth@google.com,mtklein@google.com,wasim.abbas@arm.com,caryclark@google.com,joel.liang@arm.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review-Url: https://chromiumcodereview.appspot.com/2435753002
* Generate Signed Distance Field directly from vector pathGravatar joel.liang2016-10-19
| | | | | | | | | | 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 Review-Url: https://chromiumcodereview.appspot.com/1643143002
* image serialize/deserialize callbacks in pipeGravatar Mike Reed2016-10-18
| | | | | | | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3607 Change-Id: I403fec72cacfc6a821f676f0afef390c89749a8b Reviewed-on: https://skia-review.googlesource.com/3607 Commit-Queue: Mike Reed <reed@google.com> Commit-Queue: Mike Klein <mtklein@google.com> Reviewed-by: Mike Klein <mtklein@google.com>
* Fix star artifact in SkRRectsGaussianEdgeShaderGravatar Robert Phillips2016-10-18
| | | | | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3360 Change-Id: I791ae5f44a88ac3e4debdf1d4092c605acdf4969 Reviewed-on: https://skia-review.googlesource.com/3360 Reviewed-by: Jim Van Verth <jvanverth@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Refactored SkColorSpace and added in a Lab PCS GMGravatar raftias2016-10-18
| | | | | | | | | | | | | | | | | | | | The refactoring breaks off A2B0 tag support into a separate subclass of SkColorSpace_Base, while keeping the current (besides CLUT) functionality in a XYZTRC subclass. ICC profile loading is now aware of this and creates the A2B0 subclass when SkColorSpace::NewICC() is called on a profile in need of the A2B0 functionality. The LabPCSDemo GM loads a .icc profile containing a LAB PCS and then runs a Lab->XYZ conversion on an image using it so we can display it and test out the A2B0 SkColorSpace functionality, sans a/b/m-curves, as well as the Lab->XYZ conversion code. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2389983002 Review-Url: https://codereview.chromium.org/2389983002
* Refactor GrVkGpuCommandBuffer to handle multiple GrVkCommandBuffers.Gravatar Greg Daniel2016-10-18
| | | | | | | | | | | | | | | | | | | This CL is a pre CL to fix some issues where we will need a GpuCB to internally have multiple commandbuffers that it submits. Because of this, I need to move the bounds calculations down into the VkGpuCB since we need to know the bounds for each sub commandbuffer and not just entire set of commands. In part this is good since GL actually never needed the calculations so it saves some work there. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3142 Change-Id: Ied918765da3630aa6d87e29ccce6c883b96c4ead Reviewed-on: https://skia-review.googlesource.com/3142 Commit-Queue: Greg Daniel <egdaniel@google.com> Reviewed-by: Ethan Nicholas <ethannicholas@google.com> Reviewed-by: Brian Osman <brianosman@google.com>
* Consider the start_coord in interlaced PNGGravatar scroggo2016-10-18
| | | | | | | | | | | | | | crrev.com/2420843003 (DIFFERENT ISSUE) resulted in a slight difference in Gold for interlaced PNGs. The new images appeared to have slid down slightly, implying that we sampled pixels higher (earlier) in the image. It turns out we were not truly taking get_start_coord into account. This CL initializes the srcRow to consider get_start_coord, and should fix the problem/difference. GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2424353003 Review-Url: https://codereview.chromium.org/2424353003
* Revert "re-land of skslc now automatically turns on derivatives support"Gravatar Mike Klein2016-10-18
| | | | | | | | | | | | | | | | | | | This reverts commit d7d1997643db3b9b5caaaac235c0e2cd0fa23ec2. This breaks the Chromium roll (it did last time it landed too). https://codereview.chromium.org/2429853002 Please gate your next attempt on at least one of linux_android_rel_ng, linux_chromium_rel_ng, or mac_chromium_rel_ng. TBR=benjaminwagner@google.com,ethannicholas@google.com,reviews@skia.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: I999d4af70a5704b8990f3cd7d145eabff57646f5 Reviewed-on: https://skia-review.googlesource.com/3590 Commit-Queue: Mike Klein <mtklein@google.com> Reviewed-by: Mike Klein <mtklein@google.com>
* break ambiguous angle sorting loopGravatar caryclark2016-10-18
| | | | | | | | | | | | | | | | | | A pair of cubics may be difficult to sort if the tangents suggest one sort but the midpoints suggest a different one. When in this gray area, and when the cumulative sort of all the angles fails to resolve, reverse the sort to break the tie. Before, when tiger8 was run through the signed distance field generated directly from the path data, the simplify call might hang since the angle could not be resolved. If the endless loop is detected, and if there is no tie to break, just fail instead. TBR=reed@google.com BUG=skia:5131 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2426753002 Review-Url: https://codereview.chromium.org/2426753002
* Add support for ANGLE MSAA framebuffer extensions.Gravatar Brian Salomon2016-10-18
| | | | | | | | | | | BUG=skia:5804 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3505 Change-Id: I185ae0fdf5657271dc00b8dd88b78a69c3d6e4f1 Reviewed-on: https://skia-review.googlesource.com/3505 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* re-land of skslc now automatically turns on derivatives supportGravatar Ethan Nicholas2016-10-18
| | | | | | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3602 Change-Id: I822fc23f7d4eac76d5059412706117818f3738f0 Reviewed-on: https://skia-review.googlesource.com/3602 Reviewed-by: Ethan Nicholas <ethannicholas@google.com> Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
* Revert "skslc now automatically turns on derivatives support"Gravatar Ethan Nicholas2016-10-18
| | | | | | | | | | | This reverts commit 311742bd0eac6fad150bf8f0a4e2809679464e47. Reason for revert: Android try failure Change-Id: I6e92b49df1c8f692da947b277067b9003a9367d0 Reviewed-on: https://skia-review.googlesource.com/3600 Commit-Queue: Ethan Nicholas <ethannicholas@google.com> Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
* Include 4f variants of random gradients during testingGravatar Brian Osman2016-10-18
| | | | | | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3538 Change-Id: Ieee6e49cb830b6aab87b0ecd7865c65ffb90dfe8 Reviewed-on: https://skia-review.googlesource.com/3538 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Brian Osman <brianosman@google.com>
* Use legacy color filter API when doing legacy paint conversionGravatar Brian Osman2016-10-18
| | | | | | | | | | | | | | | Matt fixed mode color filter so that the 4f filter uses a linearized version of the stored color. This restores previous behavior, where legacy devices are doing everything in sRGB space. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3581 Change-Id: I6abac176aaeab1242ca74b71ffb7f6df80ad9525 Reviewed-on: https://skia-review.googlesource.com/3581 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org>
* skslc now automatically turns on derivatives supportGravatar Ethan Nicholas2016-10-18
| | | | | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3569 Change-Id: I211f4a80ced951a0d2f29763f85fe75a5daccff7 Reviewed-on: https://skia-review.googlesource.com/3569 Reviewed-by: Ben Wagner <benjaminwagner@google.com>
* Incremental decode: only use subset for subsettingGravatar scroggo2016-10-17
| | | | | | | | | | | | | | | | | | | | | | | In the initial patch, we modified the subset passed to incremental decoding to account for sampling in Y. This allowed SkSampledCodec to use a tighter bounds. But it also means that the implementation cannot distinguish between lines that are excluded due to subsetting and those excluded at the beginning and end due to sampling. This becomes problematic in GIF (crrev.com/2045293002), which may need to fill, requiring it to reconstruct the actual destination. In truth, SkGifCodec does not need to support subsets, but cannot distinguish between the tighter bounds and a true subset. Fix this by passing the scaled subset to incremental decode, without using the tighter bounds. Make SkSampler::rowNeeded take the starting coordinate into account. In SkPngCodec, compute the number of rows needed in the output, and use that as a signal to stop. GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2420843003 Review-Url: https://codereview.chromium.org/2420843003
* Remove aux procs from SkGlyphCache.Gravatar Ben Wagner2016-10-17
| | | | | | | | | | | Doesn't appear that anyone is using these anymore. The last user was removed with https://codereview.chromium.org/1985163002/ landed as https://skia.googlesource.com/skia/+/c2878e23d405e7ae77f6110602ad75ce1f6b941c Change-Id: I224354cd0d1ecbbb1100aa1e4b415d48637a51f3 Reviewed-on: https://skia-review.googlesource.com/3582 Commit-Queue: Ben Wagner <bungeman@google.com> Reviewed-by: Herb Derby <herb@google.com>
* Avoid integer overflow in SkIcoCodec and SkImageInfoGravatar Matt Sarett2016-10-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Original Commit Message: """ Avoid integer overflow in SkIcoCodec Definitely good to avoid overflow here. FWIW, this looks to be harmless for Android's current use. They will just fail later on when trying to allocate the bitmap. BUG=skia:5857 """ With the new test, ASAN also caught an integer overflow bug in SkImageInfo. Fix this as well. CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Debug-ASAN;master.client.skia.android:Test-Android-Clang-AndroidOne-CPU-MT6582-arm-Debug-GN_Android BUG=skia:5857 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3568 Change-Id: I0d777a547850474ea6cea87e36efa05434e33635 Reviewed-on: https://skia-review.googlesource.com/3568 Reviewed-by: Kevin Lubick <kjlubick@google.com>
* Re-enable overdraw mode in debugger.Gravatar Ben Wagner2016-10-17
| | | | | | | | | | | | Debugger is the last user of the deprecated SkPaintFilterCanvas constructor. Stop using it and remove the constructor. GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3268 Change-Id: I3e9180d48abdf86cb2c05bd8d95acabcdaa70427 Reviewed-on: https://skia-review.googlesource.com/3268 Commit-Queue: Ben Wagner <bungeman@google.com> Reviewed-by: Mike Reed <reed@google.com>
* Modify deferred texture image API's handling of gammaGravatar Brian Osman2016-10-17
| | | | | | | | | | | | | | | | | This tries to match the behavior you would see if you rendered directly to a canvas without going through this round-trip. Specifically, mips are built in the same way that they would be according to the context's internal logic. To make things clearer, the user passes in the color space of the destination surface, not our (internal) enum. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3526 Change-Id: If8c61500d34ae712227da0284f3a80cacf84113a Reviewed-on: https://skia-review.googlesource.com/3526 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* more skslc hardeningGravatar ethannicholas2016-10-17
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2427693002 Review-Url: https://codereview.chromium.org/2427693002
* Apply correct sRGB->Linear4f conversion in SkModeColorFilterGravatar Matt Sarett2016-10-17
| | | | | | | | | | | | | | | This fixes a software rendering bug in Android. Vector drawable icons were being drawn "too light" because they were missing this step. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3563 Change-Id: I9b9c0dc571244dab17ee125ecb7814d7f85181e2 Reviewed-on: https://skia-review.googlesource.com/3563 Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Mike Klein <mtklein@chromium.org>
* Revert "Avoid integer overflow in SkIcoCodec"Gravatar Matt Sarett2016-10-17
| | | | | | | | | | | | | | | | | This reverts commit 20cba06a4bc9bde60b2dc37907d11ca81ba35ce8. Reason for revert: <INSERT REASONING HERE> TBR=msarett@google.com,scroggo@google.com,kjlubick@google.com,reviews@skia.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: Id8f48a90a7dc620f9c0ee2f419d14bae2b0c1e7e Reviewed-on: https://skia-review.googlesource.com/3564 Commit-Queue: Matt Sarett <msarett@google.com> Reviewed-by: Matt Sarett <msarett@google.com>
* Avoid integer overflow in SkIcoCodecGravatar Matt Sarett2016-10-17
| | | | | | | | | | | | | | | | | | Definitely good to avoid overflow here. FWIW, this looks to be harmless for Android's current use. They will just fail later on when trying to allocate the bitmap. BUG=skia:5857 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3527 Change-Id: Ia1fb7d864d21ecdb127a1dd1a72cab8375cb43fb Reviewed-on: https://skia-review.googlesource.com/3527 Commit-Queue: Matt Sarett <msarett@google.com> Reviewed-by: Kevin Lubick <kjlubick@google.com> Reviewed-by: Leon Scroggins <scroggo@google.com>
* fix some fuzzGravatar caryclark2016-10-17
| | | | | | | | TBR=reed@google.com BUG=654939, 655829, 656149 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2425733002 Review-Url: https://codereview.chromium.org/2425733002
* Avoid SkImage ref churn in short lived SkBitmapProviderGravatar fmalita2016-10-17
| | | | | | | | | | SkBitmapProvider is always stack-allocated and tightly-scoped. It should be safe to store a SkImage rawptr instead of a ref object. R=reed@google.com GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2424813002 Review-Url: https://codereview.chromium.org/2424813002
* Skip SkBitmapProvider instantiation in SkImageShader::onContextSizeGravatar fmalita2016-10-17
| | | | | | | | | | No reason to delegate through a SkBitmapProvider AFAICT. This avoids some ref churn. R=reed@google.com GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2419333002 Review-Url: https://codereview.chromium.org/2419333002
* Cache dst LUTs in SkColorSpaceXformGravatar Matt Sarett2016-10-16
| | | | | | | | | | | | | | | | | | | | | | This is only useful in the rare case that the dst does not fall into one of our main paths. But it's a good optimization, since this does happen, and typically, the dst won't change. ColorCodecBench z620 --nonstd --xform_only Without Patch 511us With Patch 348us BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3400 Change-Id: Ibf68d9ce7072680465662922f4aa15630545e3d6 Reviewed-on: https://skia-review.googlesource.com/3400 Reviewed-by: Mike Klein <mtklein@chromium.org> Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Matt Sarett <msarett@google.com>
* Unbreak -Fast bot.Gravatar Mike Klein2016-10-15
| | | | | | | | | | | CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot,Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-Fast-Trybot GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3423 Change-Id: I1875c86b785da4483038c10715af7827b7d71f0b Reviewed-on: https://skia-review.googlesource.com/3423 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org>
* SkNx_abi for passing Sk4f as function arguments, etc.Gravatar Mike Klein2016-10-15
| | | | | | | | | | | | CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot,Test-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Debug-ASAN-Trybot BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3422 Change-Id: Idc0a192faa7ff843aef023229186580c69baf1f7 Reviewed-on: https://skia-review.googlesource.com/3422 Reviewed-by: Mike Klein <mtklein@chromium.org>
* Wrap SkNx types in anonymous namespace again.Gravatar Mike Klein2016-10-14
| | | | | | | | | | | | | | | | | | | | | This should make each compilation unit's SkNx types distinct from each other's as far as C++ cares. This keeps us from violating the One Definition Rule with different implementations for the same function. Here's an example I like. Sk4i SkNx_cast(Sk4b) has at least 4 different sensible implementations: - SSE2: punpcklbw xmm, zero; punpcklbw xmm, zero - SSSE3: load mask; pshufb xmm, mask - SSE4.1: pmovzxbd - AVX2: vpmovzxbd We really want all these to inline, but if for some reason they don't (Debug build, poor inliner) and they're compiled in SkOpts.cpp, SkOpts_ssse3.cpp, SkOpts_sse41.cpp, SkOpts_hsw.cpp... boom! BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3461 Change-Id: I0088ebfd7640c1b0de989738ed43c81b530dc0d9 Reviewed-on: https://skia-review.googlesource.com/3461 Reviewed-by: Matt Sarett <msarett@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Rework GL fbo blit limitations as finer grained flags.Gravatar Brian Salomon2016-10-14
| | | | | | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3480 BUG=skia:5804 Change-Id: Idd86f96a92420ec98c7cf07962f4857e0b81b9c6 Reviewed-on: https://skia-review.googlesource.com/3480 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Capture ES3 MSAA blit restrictions using BlitFramebufferSupport not MSFBOType.Gravatar Brian Salomon2016-10-14
| | | | | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3416 Change-Id: I2baeb954bceb9d92e43e585320ae5fda1b996641 Reviewed-on: https://skia-review.googlesource.com/3416 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* another SkSL crash fixGravatar ethannicholas2016-10-14
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2420163002 Review-Url: https://codereview.chromium.org/2420163002
* Refactor color_xform_RGBA() to improve performanceGravatar Matt Sarett2016-10-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | Now that we've identified this as the "fast path", it has become (somewhat) stable, and I'm ready to ship it, I feel comfortable playing games with clang to get the behavior we want. toSRGB Performance on HP z620: Before: 370us or 470us (depending on the mood of my computer) After: 345us (or better, always) My guess is that clang optimizers do a better job of interleaving instructions effectively when we put everything into one function. Regardless of being silly about performance, I also acutally prefer how the code reads this way. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3440 Change-Id: Id7a40fb9966341ab184a5331b3e4da19b3af3344 Reviewed-on: https://skia-review.googlesource.com/3440 Commit-Queue: Matt Sarett <msarett@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Mike Klein <mtklein@chromium.org>
* more SkSL fuzzer crash fixesGravatar ethannicholas2016-10-14
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2414413002 Review-Url: https://codereview.chromium.org/2414413002
* Always use RGBA textures for color font atlasesGravatar Brian Osman2016-10-14
| | | | | | | | | | | | | This is the last use of kSkiaGamma8888_GrPixelConfig BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3417 Change-Id: I307479c41f1ca437733dfafd044bb1baeb42f31d Reviewed-on: https://skia-review.googlesource.com/3417 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* fix skslc crashes uncovered by fuzz testingGravatar ethannicholas2016-10-14
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2413423003 Review-Url: https://codereview.chromium.org/2413423003
* Faster 4f gradient premul pathGravatar fmalita2016-10-14
| | | | | | | | | | | | | | Similar to https://codereview.chromium.org/2409583003/, perform the premul in 4f. It turns out it's even faster to avoid the 255 load multiplication in this case. Also includes some template plumbing because DstTraits<>::load now needs to be premul-aware (previously it wasn't). R=reed@google.com GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2416233002 Review-Url: https://codereview.chromium.org/2416233002
* Remove many uses of kSkia8888 and kSkiaGamma8888Gravatar Brian Osman2016-10-14
| | | | | | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3405 Change-Id: Ie920f4bcbb3dd28114a66f2363643bb10009b840 Reviewed-on: https://skia-review.googlesource.com/3405 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* Add NewRGB() with float gamma to SkColorSpace public APIGravatar Matt Sarett2016-10-14
| | | | | | | | | | | | | Necessary because PNGs like to specify their gamma this way. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3402 Change-Id: I399984d611db907b115b345df1afc88d39326fbb Reviewed-on: https://skia-review.googlesource.com/3402 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Matt Sarett <msarett@google.com>
* Add support for Atrace and hook into SkEventTracer framework.Gravatar Greg Daniel2016-10-14
| | | | | | | | | | | | | | | This change is a different version of: https://skia-review.googlesource.com/c/3269/ BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3345 Change-Id: I49d4f2987740d3ad1307f6aba3add0d63a46b22d Reviewed-on: https://skia-review.googlesource.com/3345 Reviewed-by: Brian Salomon <bsalomon@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Greg Daniel <egdaniel@google.com>
* added SkSL support for mustForceNegatedAtanParamToFloat capGravatar ethannicholas2016-10-14
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2413363002 Review-Url: https://codereview.chromium.org/2413363002
* Slightly generalize GPU hard stop gradient implementation.Gravatar Brian Salomon2016-10-13
| | | | | | | | | | | | | | With this CL we handle single off-center hardstop gradients. BUG=chromium:543625 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3303 Change-Id: Ic754e87469475ce15865c54055b8ed492e1d826d Reviewed-on: https://skia-review.googlesource.com/3303 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Greg Daniel <egdaniel@google.com> Reviewed-by: Brian Osman <brianosman@google.com>
* added basic dataflow analysis to skslcGravatar ethannicholas2016-10-13
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2405383003 Review-Url: https://codereview.chromium.org/2405383003
* Allow F16 color type on direct raster canvasesGravatar junov2016-10-13
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2416063002 Review-Url: https://codereview.chromium.org/2416063002
* remove SkErrorGravatar Mike Klein2016-10-13
| | | | | | | | | | | | | It has not caught on. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3321 Change-Id: Ib2ee4ef99bc89c8f4b7504e42a9d7d9dfc483015 Reviewed-on: https://skia-review.googlesource.com/3321 Reviewed-by: Leon Scroggins <scroggo@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org>