aboutsummaryrefslogtreecommitdiffhomepage
Commit message (Collapse)AuthorAge
* change clip-bounds getters to always return the rectGravatar Mike Reed2017-01-23
| | | | | | | | | | | | | | | | | | (actually fixes undefined result in getClipBounds) future CLs - update all callers to new apis - move/rename virtuals BUG=skia: DOCS_PREVIEW= https://skia.org/?cl=7400 Change-Id: I45b93014e915c0d1c36d97d948c9ac8931f23258 Reviewed-on: https://skia-review.googlesource.com/7400 Reviewed-by: Brian Salomon <bsalomon@google.com> Reviewed-by: Cary Clark <caryclark@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Remove public APIs that use SkDataTable.Gravatar Herb Derby2017-01-23
| | | | | | | | Change-Id: Ibb8f987efc585713a6f8061c72fb416d07be13b1 Reviewed-on: https://skia-review.googlesource.com/7352 Reviewed-by: Mike Reed <reed@google.com> Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Ben Wagner <bungeman@google.com>
* Fix autoroller instructionsGravatar Skia_Android Canary Bot2017-01-23
| | | | | | | | | | | | BUG=skia:6065 NOTRY=true DOCS_PREVIEW= https://skia.org/?cl=7377 Change-Id: Iefd6af3104f4aea2f2ae93c556b6b429e54ebff4 Reviewed-on: https://skia-review.googlesource.com/7377 Reviewed-by: Matt Sarett <msarett@google.com> Commit-Queue: Ravi Mistry <rmistry@google.com>
* Revert "Refactor trimming logic for read/writePixels()"Gravatar Matt Sarett2017-01-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 977f64cbfad1ecd7fd4b1231c694c7e828fda1f0. Reason for revert: Triggering nanobench asserts Original change's description: > Refactor trimming logic for read/writePixels() > > (1) Move trimming logic into Bitmap/Pixmap level for > raster. Everything goes through here, so we'll > only do the work once. > (2) This means it also goes to GPU level. > (3) Always use SkReadPixelsRec rather than inlining > the logic. > (4) Create an SkWritePixelsRec to encapsulate write > trimming. > (5) Disabled kIndex8 as a dst - always. > > BUG=skia:6021 > > Change-Id: I748f50c3b726f7c6de5462e2b1ccb54bc387a510 > Reviewed-on: https://skia-review.googlesource.com/7326 > Reviewed-by: Mike Reed <reed@google.com> > Commit-Queue: Matt Sarett <msarett@google.com> > TBR=msarett@google.com,brianosman@google.com,reed@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia:6021 Change-Id: If9aacc6ce8b20e3dfe8a0f22ebca653f28356175 Reviewed-on: https://skia-review.googlesource.com/7379 Commit-Queue: Matt Sarett <msarett@google.com> Reviewed-by: Matt Sarett <msarett@google.com>
* Allow conversion from non-opaque to opaqueGravatar Matt Sarett2017-01-23
| | | | | | | | | BUG:683787 Change-Id: I1b78cc8d1b5d3917a2a952da036b93022e99e053 Reviewed-on: https://skia-review.googlesource.com/7374 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Matt Sarett <msarett@google.com>
* Revert "offset angle check edge in common"Gravatar Cary Clark2017-01-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit d2eb581ebc8f8009e80cccccd74d5b341ef5bd5b. Reason for revert: broke Google3 MSAN run of dm Original change's description: > offset angle check edge in common > > When curves cross, their intersection points may be nearby, but not exactly the same. > Sort the angles formed by the crossing curves when all angles don't have the same > origin. > > This sets up the framework to solve test case that currently fail (e.g., joel6) but > does not fix all related test cases (e.g., joel9). > > All older existing test cases, including extended tests, pass. > > Rework the test framework to better report when tests expected to produce failing > results now pass. > > Add new point and vector operations to support offset angles. > > TBR=reed@google.com > BUG=skia:6041 > > Change-Id: I67c651ded0a25e99ad93d55d6a35109b3ee3698e > Reviewed-on: https://skia-review.googlesource.com/6624 > Commit-Queue: Cary Clark <caryclark@google.com> > Reviewed-by: Cary Clark <caryclark@google.com> > TBR=caryclark@google.com,reviews@skia.org # Not skipping CQ checks because original CL landed > 1 day ago. BUG=skia:6041 Change-Id: I43db0808522ac44aceeb4f70e296167ea84a3663 Reviewed-on: https://skia-review.googlesource.com/7373 Commit-Queue: Cary Clark <caryclark@google.com> Reviewed-by: Cary Clark <caryclark@google.com>
* Get rid of level of indirection, noticed by VC++ 2017 bugGravatar Bruce Dawson2017-01-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When building Chrome with VC++ 2017 the QuickFDot6Inverse::table pointer is initialized to zero. This is certainly a bug, and it has been reported to the VC++ team. But, the table pointer appears to be unnecessary. Changing the code to reference the array directly should give identical or perhaps even better code. The change to the array indexing code is as follows: - return table[x]; + gFDot6INVERSE[kInverseTableSize + x]; This looks like a step backwards, but it isn't. 'table' is a pointer. So, by default the compiler will load this pointer and then load the value from the array. gFDot6INVERSE is an array, not a pointer. This means that the adding of kInverseTableSize is trivially done at compile time, and there is no loading of a pointer - only one data segment memory access is needed. The compiler may have realized that this optimization was ready before, but now it is more trivial. And, this works around the VC++ 2017 bug so that Chrome with VC++ 2017 will launch. https://connect.microsoft.com/VisualStudio/feedback/details/3119337 BUG=683729 Change-Id: Iad443b59a70af83b39260e244e3242e782fafdbb Reviewed-on: https://skia-review.googlesource.com/7284 Reviewed-by: Yuqian Li <liyuqian@google.com> Commit-Queue: Yuqian Li <liyuqian@google.com>
* Refactor trimming logic for read/writePixels()Gravatar Matt Sarett2017-01-23
| | | | | | | | | | | | | | | | | | | (1) Move trimming logic into Bitmap/Pixmap level for raster. Everything goes through here, so we'll only do the work once. (2) This means it also goes to GPU level. (3) Always use SkReadPixelsRec rather than inlining the logic. (4) Create an SkWritePixelsRec to encapsulate write trimming. (5) Disabled kIndex8 as a dst - always. BUG=skia:6021 Change-Id: I748f50c3b726f7c6de5462e2b1ccb54bc387a510 Reviewed-on: https://skia-review.googlesource.com/7326 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Matt Sarett <msarett@google.com>
* Fix performance issue and compute intersections more often.Gravatar Yuqian Li2017-01-23
| | | | | | | | | | | | | | | | | | | | | | | | | | (This CL also turned on Analytic AA for concave paths by removing SK_SUPPORT_LEGACY_AAA flag.) Performance: The SK_ALWAYS_INLINE was restored because it could bring 30%-50% speedup in certain convex cases (e.g., fill_big_triangle). We also have to reduce the number of branchings in the concave code path to enable such speedup. (Although the speedup is for convex cases. The assembly code is so strange...) Intersection: Previously, the criterion is too loose and that caused some bad pixels (mostly unnoticeable by human eyes without magnifying). For example, pixel (198, 222) of https://gold.skia.org/detail?test=parsedpaths&digest=979e81de6f7b3f9e7e8dc810e31cad8d BUG=skia: Change-Id: I5e8191865c3df625f895cd4588c67c283fcbeaec Reviewed-on: https://skia-review.googlesource.com/7318 Reviewed-by: Cary Clark <caryclark@google.com> Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Yuqian Li <liyuqian@google.com>
* Look for GenerateMipMapEXTGravatar Brian Salomon2017-01-23
| | | | | | | Change-Id: I1ced904f0929653aa9bac09fee86607533e28be6 Reviewed-on: https://skia-review.googlesource.com/7359 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* SkSplicer: favor 1.0f as a constant.Gravatar Mike Klein2017-01-21
| | | | | | | | | 1.0f is the most commonly used constant, so we put it first in the constant struct. This usually cuts an instruction off loading it. Change-Id: Ie54a9482aa3e90e9e5d8fcaa40dbd353af0fa1ca Reviewed-on: https://skia-review.googlesource.com/7367 Reviewed-by: Mike Klein <mtklein@chromium.org>
* Revert "Try /MTd on Debug Windows builds."Gravatar Mike Klein2017-01-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 58ce2bc51a318e53e3e6f1ef297c5adc775b0fec. Reason for revert: warnings / errors when building ANGLE. Original change's description: > Try /MTd on Debug Windows builds. > > The people clamor for it! I doubt we'll care in our testing. > > BUG=skia:5928 > > Change-Id: I80d3948fd1f5d0b956c308bc3a6183b8660575ae > Reviewed-on: https://skia-review.googlesource.com/7364 > Commit-Queue: Mike Klein <mtklein@chromium.org> > Commit-Queue: Ben Wagner <bungeman@google.com> > Reviewed-by: Ben Wagner <bungeman@google.com> > TBR=mtklein@chromium.org,bungeman@google.com,reviews@skia.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia:5928 Change-Id: Id6ab3de7ebb5394749233429bada2f5244ff2978 Reviewed-on: https://skia-review.googlesource.com/7372 Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Mike Klein <mtklein@chromium.org>
* SkSplicer: move armv7 ABI settings into build_stages.py.Gravatar Mike Klein2017-01-21
| | | | | | | | | | | | | | | This just tidies up the .cpp files a bit, and makes it easier to make sure all exported functions use the aapcs-vfp callig convention, which hard-float implies. As a small simplification, fold -march=armv7-a into --target. No generated code changes. Change-Id: I2694970a6e48bd69c41dd280a44ddd0029e52ae8 Reviewed-on: https://skia-review.googlesource.com/7371 Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Mike Klein <mtklein@chromium.org>
* Try /MTd on Debug Windows builds.Gravatar Mike Klein2017-01-21
| | | | | | | | | | | | The people clamor for it! I doubt we'll care in our testing. BUG=skia:5928 Change-Id: I80d3948fd1f5d0b956c308bc3a6183b8660575ae Reviewed-on: https://skia-review.googlesource.com/7364 Commit-Queue: Mike Klein <mtklein@chromium.org> Commit-Queue: Ben Wagner <bungeman@google.com> Reviewed-by: Ben Wagner <bungeman@google.com>
* mild tweaks to build_stages.py to run on my desktopGravatar Mike Klein2017-01-21
| | | | | | | Change-Id: Ie193e5bf576b8d3ddbd4c99d3707e3211557cc01 Reviewed-on: https://skia-review.googlesource.com/7368 Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Mike Klein <mtklein@chromium.org>
* Remove SkColorCubeFilter. It is unused.Gravatar Mike Klein2017-01-21
| | | | | | | Change-Id: Iec5fc759e331de24caea1347f9510917260d379b Reviewed-on: https://skia-review.googlesource.com/7363 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* minor cleanups in newly privatized device headersGravatar Mike Reed2017-01-21
| | | | | | | | | | BUG=skia: Change-Id: Id6ebd54f404b5f0869d96368b98957ac10a2083f NOTREECHECKS=True Reviewed-on: https://skia-review.googlesource.com/7369 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Mike Reed <reed@google.com>
* clipstack is now privateGravatar Mike Reed2017-01-21
| | | | | | | | | | BUG=skia: Change-Id: I91e601d59eb5d46de17c280898ca01fcfab89e5c NOTREECHECKS=True Reviewed-on: https://skia-review.googlesource.com/7362 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Mike Reed <reed@google.com>
* Remove SkImage::MakeTextureFromPixmapGravatar Brian Osman2017-01-20
| | | | | | | | | | | Another step towards reducing the number of texture upload paths. BUG=skia: Change-Id: Ica185e7334f52dc9ebf87e21fe6f60589ef87bb3 Reviewed-on: https://skia-review.googlesource.com/7346 Commit-Queue: Brian Osman <brianosman@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Replace raster pipeline nextafter() calls with SkNu nudgingGravatar Florin Malita2017-01-20
| | | | | | | | | | | | | | | | | | (courtesy of mtklein@) nanobench -m gradient_linear_clamp\$ --config f16 --ms 2000 -q Before: 753.66 After: 658.69 R=mtklein@google.com,herb@google.com CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD Change-Id: Ie1442da340f6cfc9aef65bec1f114c0e5db89fcb Reviewed-on: https://skia-review.googlesource.com/7351 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* Revert "Revert "Make it possible to query GrXPFactory for dst texture ↵Gravatar Brian Salomon2017-01-20
| | | | | | | | | | | | | without GrPipelineAnalysis."" This reverts commit 3329cceab5feca230df1caee16be045249228dc1. Reason for revert: Bot failures are unrelated to the original change. Change-Id: I21b5927dc4384a25930bdefe16e57bcc9276ffa4 Reviewed-on: https://skia-review.googlesource.com/7347 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Force Index8 to N32 in deferred texture path.Gravatar Brian Osman2017-01-20
| | | | | | | | | | | | | | | | | Ganesh doesn't support Index8, because GPUs don't really support it. So serializing it in the deferred blob just meant doing an expansion before upload. This forces that to happen when we build the blob. It also paves the way for removing the last usage of MakeTextureFromPixmap, which I'd like to remove. BUG=skia: Change-Id: I7c0292098d71e2f8ec1f9910e1234761822ce957 Reviewed-on: https://skia-review.googlesource.com/7340 Reviewed-by: Robert Phillips <robertphillips@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* Revert "Make it possible to query GrXPFactory for dst texture without ↵Gravatar Brian Salomon2017-01-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | GrPipelineAnalysis." This reverts commit f833215420847565b4c9945aebdc2e7ae182937f. Reason for revert: <INSERT REASONING HERE> Original change's description: > Make it possible to query GrXPFactory for dst texture without GrPipelineAnalysis. > > Change-Id: I8c140eb4e3e5f2d21ecbf8f8f3c8533dc7f50e7c > Reviewed-on: https://skia-review.googlesource.com/7316 > Commit-Queue: Brian Salomon <bsalomon@google.com> > Reviewed-by: Greg Daniel <egdaniel@google.com> > TBR=egdaniel@google.com,bsalomon@google.com,reviews@skia.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: I790afb9a01422cb4c2d3a4be4ecd20e8c4466b29 Reviewed-on: https://skia-review.googlesource.com/7342 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Continue making Ganesh use absolute texture coordinates - take 2Gravatar Robert Phillips2017-01-20
| | | | | | | | | | | | The idea here is that the GrCoordTransform will actually hold a GrTextureProxy (rather than a GrTexture) and then, in GrGLSLPrimitiveProcessor::GetTransformMatrix, use the instantiated width & height (when uploading the transform matrix) Relanding of: https://skia-review.googlesource.com/c/6977/ Change-Id: Ibc9b9e354f7fc23b1a6e6e4fe7c9fe3cef771c02 Reviewed-on: https://skia-review.googlesource.com/7265 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Remove unused struct.Gravatar Herb Derby2017-01-20
| | | | | | | | | | TBR=mtklein@google.com Change-Id: Iad5cda6bc9b9728ade249e8e88ae830798955a3e Reviewed-on: https://skia-review.googlesource.com/7339 Reviewed-by: Herb Derby <herb@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Herb Derby <herb@google.com>
* Move from SkChunkAlloc to SkArenaAlloc for SkGlyphCache.Gravatar Herb Derby2017-01-20
| | | | | | | Change-Id: I221dd1c35898fe2703584f90d14192c8b546af40 Reviewed-on: https://skia-review.googlesource.com/7112 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Herb Derby <herb@google.com>
* Just clamp to limit-epsilon.Gravatar Mike Klein2017-01-20
| | | | | | | | | | | | | I think the -0.5f was an implementation detail of Herb's bilerp that we don't need here. It happened to also be clamping us to something less than limit (limit-0.5), so we do need to replace that with a little nudge to keep us on tile. Change-Id: I4ebd32e0ad38c724a17dc8bc35d9ea228eeeca32 Reviewed-on: https://skia-review.googlesource.com/7338 Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Herb Derby <herb@google.com> Reviewed-by: Florin Malita <fmalita@chromium.org>
* offset angle check edge in commonGravatar Cary Clark2017-01-20
| | | | | | | | | | | | | | | | | | | | | | | | When curves cross, their intersection points may be nearby, but not exactly the same. Sort the angles formed by the crossing curves when all angles don't have the same origin. This sets up the framework to solve test case that currently fail (e.g., joel6) but does not fix all related test cases (e.g., joel9). All older existing test cases, including extended tests, pass. Rework the test framework to better report when tests expected to produce failing results now pass. Add new point and vector operations to support offset angles. TBR=reed@google.com BUG=skia:6041 Change-Id: I67c651ded0a25e99ad93d55d6a35109b3ee3698e Reviewed-on: https://skia-review.googlesource.com/6624 Commit-Queue: Cary Clark <caryclark@google.com> Reviewed-by: Cary Clark <caryclark@google.com>
* Make it possible to query GrXPFactory for dst texture without ↵Gravatar Brian Salomon2017-01-20
| | | | | | | | | GrPipelineAnalysis. Change-Id: I8c140eb4e3e5f2d21ecbf8f8f3c8533dc7f50e7c Reviewed-on: https://skia-review.googlesource.com/7316 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Greg Daniel <egdaniel@google.com>
* Remove GrTestTargetGravatar Robert Phillips2017-01-20
| | | | | | | Change-Id: I4d2e1aa54732ff75b44a197255035c0e04548219 Reviewed-on: https://skia-review.googlesource.com/7327 Commit-Queue: Robert Phillips <robertphillips@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Fix Vulkan crashes on nexus playerGravatar Greg Daniel2017-01-20
| | | | | | | | | | | | This CL enables Vulkan Test bots on the NexusPlayer TBR:bsalomon@google.com BUG=skia: Change-Id: I0cc8b01107afcc84e0cb0631f361f3615fc8dd9b Reviewed-on: https://skia-review.googlesource.com/5681 Reviewed-by: Jim Van Verth <jvanverth@google.com> Commit-Queue: Greg Daniel <egdaniel@google.com>
* Streamline x86 u8 -> fixed15 math.Gravatar Mike Klein2017-01-20
| | | | | | | | | | | | | | We can use SSE's 16 bit mul-hi to get a very good approximation to the ideal multiplier. This lets us trim several instructions. This removes the need for the constant 0x0001 and instead uses 0x8081. I've reordered the constants so that 0x8000 comes first, which helps trim an instruction here and there on ARM. Change-Id: I3d490c802df39a89424230c4cfc491f52210c275 Reviewed-on: https://skia-review.googlesource.com/7282 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Rename GrContext::getFontAtlas to getFontAtlas_ForTestingGravatar Robert Phillips2017-01-20
| | | | | | | | | A trivial change but it does better indicate the nature of the method Change-Id: I44a0e77dba28df892f4200496d78797ed5fd37df Reviewed-on: https://skia-review.googlesource.com/7331 Commit-Queue: Robert Phillips <robertphillips@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
* SkSplicer stage parityGravatar Mike Klein2017-01-20
| | | | | | | | | | | | | | | | I noticed scale_u8 is implemented in SkSplicer_stages but not _lowp. That's not for any good reason... scale_u8 makes fine sense in _lowp. All other stages missing in _lowp are nuts to attempt without floats. This also renames the to_fixed15 lambdas to from_u8 functions. Everything in the file converts to or from fixed15; the interesting question is the other format. Similarly, from_fixed15 becomes to_u8. Change-Id: I10616b6772c65bd1acb9857f4f5b5f70a4f01bf4 Reviewed-on: https://skia-review.googlesource.com/7323 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Remove unused asACustomShader function from SkShaderGravatar Greg Daniel2017-01-20
| | | | | | | | | | | | I recentely removed the only call site of this so it should be safe to delete now. BUG=skia: Change-Id: Id7fa94b9af5d73c4f7bb5e5a657d6fc6728923b5 Reviewed-on: https://skia-review.googlesource.com/7330 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Greg Daniel <egdaniel@google.com>
* Replace some GrSurface:read/writePixels with the GrSurfaceContext equivalentGravatar Robert Phillips2017-01-20
| | | | | | | Change-Id: I7b11a323b0c74ee70f52b1bd8be376fb7188cb19 Reviewed-on: https://skia-review.googlesource.com/7204 Commit-Queue: Robert Phillips <robertphillips@google.com> Reviewed-by: Brian Osman <brianosman@google.com>
* fix fuzz asserts triggered by old fuzzesGravatar Cary Clark2017-01-20
| | | | | | | | | | | | | | fuzz fixes Fixes from running all pathops fuzz testson ToT. R=kjlubick@google.com BUG=skia: Change-Id: Ic84b868a0cc53993e6561bc95fa364218bc3aa34 Reviewed-on: https://skia-review.googlesource.com/7325 Reviewed-by: Cary Clark <caryclark@google.com> Commit-Queue: Cary Clark <caryclark@google.com>
* Marker for IntelIris540 driver change.Gravatar Ben Wagner2017-01-20
| | | | | | | | | | | | NOTRY=true NOTREECHECKS=true TBR=jcgregorio BUG=skia: Change-Id: Id26e5fae667035516df8802e8a328233412de94c Reviewed-on: https://skia-review.googlesource.com/7328 Reviewed-by: Ben Wagner <benjaminwagner@google.com> Commit-Queue: Ben Wagner <benjaminwagner@google.com>
* SkRasterPipeline impl for 2-stop linear gradientsGravatar Florin Malita2017-01-20
| | | | | | | | | | CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD Change-Id: Ia2b630cf9c0826fbfc3342707c005030d0529bbc Reviewed-on: https://skia-review.googlesource.com/7186 Commit-Queue: Florin Malita <fmalita@chromium.org> Reviewed-by: Herb Derby <herb@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org>
* Revert "explictly fail to draw unpremul, as this is buggy, incomplete, ↵Gravatar Joe Gregorio2017-01-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | tricky, and unused" This reverts commit 1baaacac74d24604e3dfca9857fbd647df375997. Reason for revert: Failing the roll: https://storage.googleapis.com/chromium-layout-test-archives/linux_trusty_blink_rel/3868/layout-test-results/results.html Original change's description: > explictly fail to draw unpremul, as this is buggy, incomplete, tricky, and unused > > BUG=skia: > > Change-Id: Ie9da6015cc4955c0f27f6db53fc6ae532e0132f4 > Reviewed-on: https://skia-review.googlesource.com/7304 > Commit-Queue: Mike Reed <reed@google.com> > Reviewed-by: Matt Sarett <msarett@google.com> > TBR=bsalomon@google.com,msarett@google.com,brianosman@google.com,reed@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Change-Id: Ifc808a430b8afe4fef6df3775c2bfdcede1a2dd7 Reviewed-on: https://skia-review.googlesource.com/7329 Commit-Queue: Joe Gregorio <jcgregorio@google.com> Reviewed-by: Joe Gregorio <jcgregorio@google.com>
* remove unused device apisGravatar Mike Reed2017-01-20
| | | | | | | | | BUG=skia: Change-Id: I7a6b185a0fbe779e3fa4c135437d4d1fb9b94bd8 Reviewed-on: https://skia-review.googlesource.com/7322 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Reland "Respect full precision for RGB16 PNGs" (part 3)Gravatar Matt Sarett2017-01-20
| | | | | | | | | | | | | | | | | | This lands the rest of the original CL. It fixes some flawed logic in SkSwizzler handling Gray8 images. Original CL: https://skia-review.googlesource.com/c/7085/ BUG=skia: CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Debug-MSAN,Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD,Build-Ubuntu-Clang-x86_64-Release-Fast Change-Id: Ie2f0c545ea474f1872f284dfb286987b6eadf03d Reviewed-on: https://skia-review.googlesource.com/7320 Reviewed-by: Matt Sarett <msarett@google.com> Commit-Queue: Matt Sarett <msarett@google.com>
* Add F16 support to SkPNGImageEncoderGravatar Matt Sarett2017-01-19
| | | | | | | | | | | | BUG=skia: CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD Change-Id: Ifd221365a7b9f9a4a4fc5382621e0da7189e1148 Reviewed-on: https://skia-review.googlesource.com/6526 Reviewed-by: Mike Klein <mtklein@chromium.org> Reviewed-by: Leon Scroggins <scroggo@google.com> Commit-Queue: Matt Sarett <msarett@google.com>
* SkSplicer: always initialize fLowpGravatar Mike Klein2017-01-19
| | | | | | | | | | | UBSAN sees copying non-bool (uninitialized) values into this bool. Not really a big deal, as we'll never actually use it in that case, but it's best to just initialize it to true or false. Change-Id: I38137d46a8aa6e6651325002b71ae5e33ff24c4a Reviewed-on: https://skia-review.googlesource.com/7321 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Replaced all calls to fragmentPosition() with sk_FragCoordGravatar Ethan Nicholas2017-01-19
| | | | | | | | | BUG=skia: Change-Id: I179576e148ea6caf6e1c40f0a216421898bcb35d Reviewed-on: https://skia-review.googlesource.com/5941 Commit-Queue: Ethan Nicholas <ethannicholas@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Reland "Respect full precision for RGB16 PNGs" (part 2)Gravatar Matt Sarett2017-01-19
| | | | | | | | | | | | | | | | | | | | | This lands all the new xform hooks but no change to src/codec. So the new decode features are turned off. I'm relanding this in pieces to try to bisect a strange MSAN error. Original CL: https://skia-review.googlesource.com/c/7085/ BUG=skia: CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Debug-MSAN,Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD,Build-Ubuntu-Clang-x86_64-Release-Fast Change-Id: I451a2a29c73ca475e9e7a5ded58d4948d6b8be19 Reviewed-on: https://skia-review.googlesource.com/7277 Reviewed-by: Matt Sarett <msarett@google.com> Commit-Queue: Matt Sarett <msarett@google.com>
* SkSplicer: lowp hackingGravatar Mike Klein2017-01-19
| | | | | | | | | | | | | | | | | | | | | | | | Add lowp variants for most stages in SkSplicer. These double the number of pixels handled by representing each channel with 16 bits, ranging from 0x0000 as 0 to 0x8000 as 1. This format lets us use the Q15 multiply instructions available in NEON and SSSE3 at full register width, with a little platform-specific fix up to smooth over the fact that these aren't quite Q15 values. When a lowp stage is unavailable, the entire pipeline upgrades to floats. So by simply not implementing sRGB, f16, matrix multiplication, etc, we naturally express that they're best handled with floats. These lowp stages ended up different enough that I've found it clearer to have them live in their own files, noting where they differ from the float stages. HSW, aarch64, and armv7 are all supported. I've seen very good things performance-wise on all platforms. Change-Id: Ib4f820c6665f2c9020f7449a2b51bbaf6c408a63 Reviewed-on: https://skia-review.googlesource.com/7098 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Make GL_RED workaround only be triggered by osmesaGravatar Brian Salomon2017-01-19
| | | | | | | | | BUG=skia:6134 Change-Id: If9c8fb55973815d378cd8a9d956735656d4c097c Reviewed-on: https://skia-review.googlesource.com/7276 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Revert "Revert "move device headers to core""Gravatar Mike Reed2017-01-19
| | | | | | | | | | | This reverts commit d4bdee5f2c4c2c1387426d287f61645b5af8f8e0. BUG=skia: Change-Id: If5c316f8585881e43321412a2a38f97fd4aa5f02 Reviewed-on: https://skia-review.googlesource.com/7315 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Fix reset and deleting behavior.Gravatar Herb Derby2017-01-19
| | | | | | | | | | * Reset the Arena state. * Call all the dtors before deleting the blocks. Change-Id: I6d90463966ac7bf9f0a4fda229f67d508c86bebb Reviewed-on: https://skia-review.googlesource.com/7308 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Herb Derby <herb@google.com>