7b2d1f683f59eb41c3d9c4011a1177489288a749 |
|
29-Mar-2017 |
Matt Sarett <msarett@google.com> |
Cherry Pick: 565 color xforms: make sure we clamp if necessary Bug: skia: Change-Id: I48528a0ff8dd199e0cd1649f973b5722384eacf3 Reviewed-on: https://skia-review.googlesource.com/10581 Reviewed-by: Matt Sarett <msarett@google.com> Commit-Queue: Matt Sarett <msarett@google.com> (cherry picked from commit 8f7a9a9bfb51a00082bde7eb6b04515b935a588f) Reviewed-on: https://skia-review.googlesource.com/11160
/external/skia/src/core/SkColorSpaceXform.cpp
|
68185be3389102cb8c979a26cbea72a39ac214ca |
|
28-Mar-2017 |
Matt Sarett <msarett@google.com> |
Cherry Pick: Add codec and color xform support for 565 Bug: skia: Change-Id: I23184acc4e17d38861d27ab81172048a24c400d2 Reviewed-on: https://skia-review.googlesource.com/10288 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Matt Sarett <msarett@google.com> (cherry picked from commit 3725f0a7dd2916c10bc6d0059821e19a5b4452c3) Reviewed-on: https://skia-review.googlesource.com/11134 Reviewed-by: Derek Sollenberger <djsollen@google.com>
/external/skia/src/core/SkColorSpaceXform.cpp
|
f3880933092c3226cd7ffd1690fe72c9c0cc376c |
|
24-Mar-2017 |
Matt Sarett <msarett@google.com> |
Delete SkColorSpace::ColorSpaceFlags BUG=skia: Change-Id: Ia0688876915cd773614ca0c4ccd467cf6e7c603e Reviewed-on: https://skia-review.googlesource.com/10105 Commit-Queue: Matt Sarett <msarett@google.com> Reviewed-by: Brian Osman <brianosman@google.com>
/external/skia/src/core/SkColorSpaceXform.cpp
|
cf3f2347c8933596aeba873d4ece597a9339392f |
|
23-Mar-2017 |
Matt Sarett <msarett@google.com> |
Add SkTransferFunctionBehavior flag: Use in codec and encoder This is a step towards removing the non-linear blending flag from SkColorSpace. The flag on SkColorSpace used to control the premul behavior - now it is controlled by this option. BUG=skia: Change-Id: Ia29bd8c2b0596a93c6aa14332dcd9bd39e388a90 Reviewed-on: https://skia-review.googlesource.com/10008 Reviewed-by: Mike Reed <reed@google.com> Reviewed-by: Leon Scroggins <scroggo@google.com> Commit-Queue: Matt Sarett <msarett@google.com>
/external/skia/src/core/SkColorSpaceXform.cpp
|
4c55027dbf57d0701361b123e36b8fad46c341c3 |
|
21-Mar-2017 |
Matt Sarett <msarett@google.com> |
Add support for F32 sources to SkColorSpaceXform This also subtlely allows clients to convert between F32 and F16. BUG=skia: CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD Change-Id: Ied5f2295fce00c69d8cf85730be899f3f8597915 Reviewed-on: https://skia-review.googlesource.com/9914 Reviewed-by: Mike Reed <reed@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Matt Sarett <msarett@google.com>
/external/skia/src/core/SkColorSpaceXform.cpp
|
b1168a7c9a360bf80b447e2e399bdc5721d5152e |
|
20-Mar-2017 |
Brian Osman <brianosman@google.com> |
Improvements to readpixels GM We don't support unpremultiplied images. Therefore: - Don't test unpremul source images. - After doing an unpremultiplying read, make sure to premul before drawing For this to work with F16, add support for F16 sources to SkColorSpaceXform. Public API change is comments-only. TBR=reed@google.com BUG=skia: Change-Id: Ie05b58231e99ca88cd7792b65ffbb4f390b01726 Reviewed-on: https://skia-review.googlesource.com/9900 Commit-Queue: Brian Osman <brianosman@google.com> Reviewed-by: Matt Sarett <msarett@google.com>
/external/skia/src/core/SkColorSpaceXform.cpp
|
e522f4c455d0d5dbe813f38d16c0d4cd46fa5dee |
|
22-Feb-2017 |
Matt Sarett <msarett@google.com> |
Enable legacy premuls in SkColorSpaceXform ***Will allow for simplified Android framework code, they typically want a color correct transform followed by a gamma encoded premul. ***Chrome does the same, so this will make it easier to replace their codecs. ***Will decrease code size. Both types of premuls are moved off the fast path here - one is essentially unused in production and the other is not "encouraged". ***Will actually make the common case faster: sRGB->sRGB means no color xform, just premul in SkSwizzler. BUG=skia: CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD Change-Id: Ia4ec1d273b6f137151f951d37c0ebf975f6b9a3e Reviewed-on: https://skia-review.googlesource.com/8848 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Matt Sarett <msarett@google.com>
/external/skia/src/core/SkColorSpaceXform.cpp
|
319ba3d3a177498095c31696e0aec8b3af25f663 |
|
20-Jan-2017 |
Mike Klein <mtklein@chromium.org> |
Move shader register setup to SkRasterPipelineBlitter. We've been seeding the initial values of our registers to x+0.5,y+0.5, 1,0, 0,0,0,0 (useful values for shaders to start with) in all pipelines. This CL changes that to do so only when blitting, and only when we have a shader. The nicest part of this change is that SkRasterPipeline itself no longer needs to have a concept of y, or what x means. It just marches x through [x,x+n), and the blitter handles y and layers the meaning of "dst x coordinate" onto x. This ought to make SkSplicer a little easier to work with too. dm --src gm --config f16 srgb 565 all draws the same. Change-Id: I69d8c1cc14a06e5dfdd6a7493364f43a18f8dec5 Reviewed-on: https://skia-review.googlesource.com/7353 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
/external/skia/src/core/SkColorSpaceXform.cpp
|
5bee0b6de6b3ad1166d067e6b5046b48b8240a29 |
|
19-Jan-2017 |
Matt Sarett <msarett@google.com> |
Reland "Respect full precision for RGB16 PNGs" (part 2) 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>
/external/skia/src/core/SkColorSpaceXform.cpp
|
dfff166db5d5226dc002a22ab3e3097ef971d615 |
|
18-Jan-2017 |
Matt Sarett <msarett@google.com> |
Revert "Respect full precision for RGB16 PNGs" This reverts commit 7a090c403da1dad6a2e19f2011158bd894a62d91. Reason for revert: <INSERT REASONING HERE> Original change's description: > Respect full precision for RGB16 PNGs > > BUG=skia: > > CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD > > Change-Id: If58d201daae97bce2f8efbc453c2ec452e682493 > Reviewed-on: https://skia-review.googlesource.com/7085 > Commit-Queue: Matt Sarett <msarett@google.com> > Reviewed-by: Mike Klein <mtklein@chromium.org> > Reviewed-by: Leon Scroggins <scroggo@google.com> > Reviewed-by: Mike Reed <reed@google.com> > TBR=mtklein@chromium.org,mtklein@google.com,msarett@google.com,scroggo@google.com,reed@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD Change-Id: Ibd9879bc4f65ca0c2457dd0bfb5eb008d9a8f672 Reviewed-on: https://skia-review.googlesource.com/7183 Commit-Queue: Matt Sarett <msarett@google.com> Reviewed-by: Matt Sarett <msarett@google.com>
/external/skia/src/core/SkColorSpaceXform.cpp
|
7a090c403da1dad6a2e19f2011158bd894a62d91 |
|
17-Jan-2017 |
Matt Sarett <msarett@google.com> |
Respect full precision for RGB16 PNGs BUG=skia: CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD Change-Id: If58d201daae97bce2f8efbc453c2ec452e682493 Reviewed-on: https://skia-review.googlesource.com/7085 Commit-Queue: Matt Sarett <msarett@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org> Reviewed-by: Leon Scroggins <scroggo@google.com> Reviewed-by: Mike Reed <reed@google.com>
/external/skia/src/core/SkColorSpaceXform.cpp
|
379938e47bc9edb6edfd21aabefa01aed71dd135 |
|
13-Jan-2017 |
Matt Sarett <msarett@google.com> |
Use RasterPipeline to support full precision on 16-bit RGBA pngs Reland of Original Change: https://skia-review.googlesource.com/6260 CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD Change-Id: I809984dd9af225103bfbe83492a17c19da7c5e40 Reviewed-on: https://skia-review.googlesource.com/6980 Reviewed-by: Matt Sarett <msarett@google.com> Commit-Queue: Matt Sarett <msarett@google.com>
/external/skia/src/core/SkColorSpaceXform.cpp
|
25b60833e7c3dd25f2317b3f0e7af07f04b5beba |
|
12-Jan-2017 |
Matt Sarett <msarett@google.com> |
Revert "Use RasterPipeline to support full precision on 16-bit RGBA pngs" This reverts commit bb2339da39ab3ee59121acd911920dafcd4a2f72. Reason for revert: Breaks MSAN Original change's description: > Use RasterPipeline to support full precision on 16-bit RGBA pngs > > TODO: Support more precision on 16-bit RGB pngs > > BUG=skia: > > CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD > > Change-Id: I89dfef3b4887b9c4895c17309933883ab90ffa4d > Reviewed-on: https://skia-review.googlesource.com/6260 > Reviewed-by: Mike Reed <reed@google.com> > Reviewed-by: Leon Scroggins <scroggo@google.com> > Reviewed-by: Mike Klein <mtklein@chromium.org> > Commit-Queue: Matt Sarett <msarett@google.com> > TBR=mtklein@chromium.org,mtklein@google.com,msarett@google.com,scroggo@google.com,reed@google.com,reviews@skia.org BUG=skia: NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: I47579c20af033a75883e2b35567cb9c690ce54b0 Reviewed-on: https://skia-review.googlesource.com/6975 Commit-Queue: Matt Sarett <msarett@google.com> Reviewed-by: Matt Sarett <msarett@google.com>
/external/skia/src/core/SkColorSpaceXform.cpp
|
bb2339da39ab3ee59121acd911920dafcd4a2f72 |
|
12-Jan-2017 |
Matt Sarett <msarett@google.com> |
Use RasterPipeline to support full precision on 16-bit RGBA pngs TODO: Support more precision on 16-bit RGB pngs BUG=skia: CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD Change-Id: I89dfef3b4887b9c4895c17309933883ab90ffa4d Reviewed-on: https://skia-review.googlesource.com/6260 Reviewed-by: Mike Reed <reed@google.com> Reviewed-by: Leon Scroggins <scroggo@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Matt Sarett <msarett@google.com>
/external/skia/src/core/SkColorSpaceXform.cpp
|
e980155dd5d0cb6a10c9823c351763d50993a08d |
|
09-Jan-2017 |
Matt Sarett <msarett@google.com> |
Fix SkColorSpaceXform F16 behavior After changing the matrix representation, we are no longer guaranteed that the "a" in "rgba" is zeroed in store_f16_1() opaque. This fixed Gold: https://gold.skia.org/search?blame=26a0543579cf7473de2099ce0d056ac8aba83811&head=true&include=false&limit=50&neg=false&pos=false&query=source_type%3DcolorImage&unt=true Also tacked on an optimization. No need to load alpha when the image is opaque. BUG=skia: Change-Id: I28d80c486b6644eee4a38a7a70f94eb51474e4b0 Reviewed-on: https://skia-review.googlesource.com/6738 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Matt Sarett <msarett@google.com>
/external/skia/src/core/SkColorSpaceXform.cpp
|
26a0543579cf7473de2099ce0d056ac8aba83811 |
|
04-Jan-2017 |
Matt Sarett <msarett@google.com> |
Merge SkColorSpaceXform_XYZ and SkColorSpaceXform_Pipeline 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>
/external/skia/src/core/SkColorSpaceXform.cpp
|
2410717f900c2691db880d84a2e03a6a24905ee2 |
|
19-Dec-2016 |
Matt Sarett <msarett@google.com> |
Fix swapped interpretation of c and e in SkColorSpace_ICC The ICC errata supports the opposite of what we do. http://www.color.org/icc_specs2.xalter TBR=reed@google.com BUG=skia: CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD Change-Id: I18ace7f312926b264e624c30d8cb983eff5c434b Reviewed-on: https://skia-review.googlesource.com/6277 Commit-Queue: Matt Sarett <msarett@google.com> Reviewed-by: Brian Osman <brianosman@google.com>
/external/skia/src/core/SkColorSpaceXform.cpp
|
8b4b56ac2927bbb31c634f840916f4ce948d2f53 |
|
04-Dec-2016 |
Matt Sarett <msarett@google.com> |
Fix max/min error BUG=skia: Change-Id: I6a690e843476e31077a90a8312f6335d8ef230f4 Reviewed-on: https://skia-review.googlesource.com/5544 Reviewed-by: Matt Sarett <msarett@google.com> Commit-Queue: Matt Sarett <msarett@google.com>
/external/skia/src/core/SkColorSpaceXform.cpp
|
d459f3c15adda1544e64a0d5d15bc7970635debd |
|
02-Dec-2016 |
Matt Sarett <msarett@google.com> |
Fix Chrome Linux - temporarily turn off xform pipeline BUG:670620 Change-Id: Ic481d09a7112ef05f53fa1f94a7c155870c43408 Reviewed-on: https://skia-review.googlesource.com/5501 Commit-Queue: Matt Sarett <msarett@google.com> Reviewed-by: Brian Osman <brianosman@google.com> Reviewed-by: Jeremy Roman <jbroman@chromium.org>
/external/skia/src/core/SkColorSpaceXform.cpp
|
abf8ba34c8038b814e67fe7c4dcf6c9915d81698 |
|
01-Dec-2016 |
Matt Sarett <msarett@google.com> |
SkColorSpaceXform bug fixes attempt 2 (1) Clamping If we're going to clamp (8888 outputs), we need to clamp properly to alpha (not 1) when we premultiply. This fix is made in SkColorSpaceXform_XYZ. An alternative fix would move all clamping out of the store functions, to before the gamma encoding. This generally makes sense, but the "to 2.2 conversion" may introduce NaNs and always needs a clamp. So another fix is to just have an extra clamp in the store 2.2 function. Since we have two pipelines, let's try this one in SkColorSpaceXform_Pipeline :). (2) Correctly handle the memcpy() case. This is not changed from a previous (reverted) CL. Looks like this only ever worked for RGBA inputs, never got updated when we added BGRA inputs. This probably flew under the radar because the clients are smart enough to avoid performing a color xform altogether when the color spaces match. BUG=skia: CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD Change-Id: I0b59239d2488ce9fdbe11efbd96567e420bb9813 Reviewed-on: https://skia-review.googlesource.com/5464 Commit-Queue: Matt Sarett <msarett@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org>
/external/skia/src/core/SkColorSpaceXform.cpp
|
5e15961fa77281540a80ac0d036fefe071c11574 |
|
01-Dec-2016 |
Mike Klein <mtklein@chromium.org> |
Skip clamps in color xform pipelines if possible. This does skip clamp_0 when converting sRGB to your default colorspace. Each clamp is ~2% of the pipeline runtime, so it's small, but might as well. Change-Id: I2bb0dadf84759c31cc825f9b6b17680e7aa7d9f3 Reviewed-on: https://skia-review.googlesource.com/5467 Reviewed-by: Mike Klein <mtklein@chromium.org> Reviewed-by: Matt Sarett <msarett@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
/external/skia/src/core/SkColorSpaceXform.cpp
|
197e311ac9d15696fae929d8f5fcf9d93ec55e18 |
|
01-Dec-2016 |
raftias <raftias@google.com> |
Optimized gamma table inversion. Brought calculation into a central place so the loop did not have to recalculate everything before the previous entry to find the inverse index. O(n) vs O(n^2). Assumes an increasing (or at least non-decreasing) table gamma just as the previous code did. BUG=skia: Change-Id: I7ea200c06511b3d74745fe4a6e3dde706bbee02f Reviewed-on: https://skia-review.googlesource.com/5402 Commit-Queue: Robert Aftias <raftias@google.com> Reviewed-by: Matt Sarett <msarett@google.com>
/external/skia/src/core/SkColorSpaceXform.cpp
|
f6878baba8c7cd347e185361bac2eabaef863bfa |
|
01-Dec-2016 |
Matt Sarett <msarett@google.com> |
Reland "Add RasterPipeline implementation for SkColorSpaceXform" This is initially turned on for Linux debug builds, which allows us to start testing. Chrome for Android is a really good candidate for this (will appreciate the code size savings), but I'd first like to run some tests to understand the performance/size tradeoffs a little better. BUG:660416 CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD Change-Id: Ifc80e663767df6bb767abb8b12b1ec5cec644ec5 Reviewed-on: https://skia-review.googlesource.com/5452 Reviewed-by: Matt Sarett <msarett@google.com> Commit-Queue: Matt Sarett <msarett@google.com>
/external/skia/src/core/SkColorSpaceXform.cpp
|
17e494070ab1c76b2e5e4c0780b7a83c737dd84c |
|
01-Dec-2016 |
Matt Sarett <msarett@google.com> |
Revert "SkColorSpaceXform bug fixes" This reverts commit d0fdc0f234b8b55cf418f4db9466d3883deadfb1. Reason for revert: <INSERT REASONING HERE> Original change's description: > SkColorSpaceXform bug fixes > > (1) Clamp properly! > > Finally came to this realization: clamping in the > store functions (after gamma encoding) is ridiculous. > It is impossible to know how to clamp premul values > to alpha when they are already gamma encoded. > > I've moved the clamp out of the store function. > Whew, this actually makes the code look simpler. > > And I expect this to fix some buggy images on Gold! > > (2) Correctly handle the memcpy() case. > > Looks like this only ever worked for RGBA inputs, > never got updated when we added BGRA inputs. > > This probably flew under the radar because the > clients are smart enough to avoid performing a > color xform altogether when the color spaces > match. > > BUG=skia: > > Change-Id: I4870048105efcbecc70b4bd5f77c39537006363e > Reviewed-on: https://skia-review.googlesource.com/5389 > Commit-Queue: Mike Klein <mtklein@chromium.org> > Reviewed-by: Mike Klein <mtklein@chromium.org> > TBR=mtklein@chromium.org,mtklein@google.com,msarett@google.com,reviews@skia.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: Id9e4cfdaa7b30a3841e83c4cde16aa7d33acc0f2 Reviewed-on: https://skia-review.googlesource.com/5457 Commit-Queue: Matt Sarett <msarett@google.com> Reviewed-by: Matt Sarett <msarett@google.com>
/external/skia/src/core/SkColorSpaceXform.cpp
|
b6d4e139b522821933d356ef7d2472816d25340a |
|
01-Dec-2016 |
Brian Osman <brianosman@google.com> |
Revert "Add RasterPipeline implementation for SkColorSpaceXform" This reverts commit dd19ac7d10c7c00dd6e9b1f4c4c6aae729c7e6d4. Reason for revert: ASAN Change-Id: I59aacc092398c4db40696a8343d657a5ad7c0f66 Reviewed-on: https://skia-review.googlesource.com/5448 Commit-Queue: Brian Osman <brianosman@google.com> Reviewed-by: Brian Osman <brianosman@google.com>
/external/skia/src/core/SkColorSpaceXform.cpp
|
dd19ac7d10c7c00dd6e9b1f4c4c6aae729c7e6d4 |
|
01-Dec-2016 |
Matt Sarett <msarett@google.com> |
Add RasterPipeline implementation for SkColorSpaceXform This is initially turned on for Linux debug builds, which allows us to start testing. Chrome for Android is a really good candidate for this (will appreciate the code size savings), but I'd first like to run some tests to understand the performance/size tradeoffs a little better. BUG:660416 CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD Change-Id: I0fb2512216dfc0bda2e5388f9865318eec22291e Reviewed-on: https://skia-review.googlesource.com/5348 Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Mike Klein <mtklein@chromium.org>
/external/skia/src/core/SkColorSpaceXform.cpp
|
d0fdc0f234b8b55cf418f4db9466d3883deadfb1 |
|
01-Dec-2016 |
Matt Sarett <msarett@google.com> |
SkColorSpaceXform bug fixes (1) Clamp properly! Finally came to this realization: clamping in the store functions (after gamma encoding) is ridiculous. It is impossible to know how to clamp premul values to alpha when they are already gamma encoded. I've moved the clamp out of the store function. Whew, this actually makes the code look simpler. And I expect this to fix some buggy images on Gold! (2) Correctly handle the memcpy() case. Looks like this only ever worked for RGBA inputs, never got updated when we added BGRA inputs. This probably flew under the radar because the clients are smart enough to avoid performing a color xform altogether when the color spaces match. BUG=skia: Change-Id: I4870048105efcbecc70b4bd5f77c39537006363e Reviewed-on: https://skia-review.googlesource.com/5389 Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Mike Klein <mtklein@chromium.org>
/external/skia/src/core/SkColorSpaceXform.cpp
|
2563601fc2b0505619f905f86bd249ae630197cc |
|
12-Nov-2016 |
raftias <raftias@google.com> |
Initial implementation of a SkColorSpace_A2B xform There is support for all features of SkColorSpace_A2B. Tests for these functionality were adapted from the XYZ xform, plus a CLUT-specific test was added. Shared functions used by both SkColorSpaceXform_XYZ and SkColorSpaceXform_A2B have been moved into a shared header. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2449243003 CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot Review-Url: https://codereview.chromium.org/2449243003
/external/skia/src/core/SkColorSpaceXform.cpp
|
aa34f7ea58330cb73ea17f01715cb6c7d439fae9 |
|
10-Nov-2016 |
Matt Sarett <msarett@google.com> |
Clamp parametric gamma values to 0-1 range BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4641 Change-Id: I1c6963da956500deea559d5ece31529add89980a Reviewed-on: https://skia-review.googlesource.com/4641 Reviewed-by: Robert Aftias <raftias@google.com> Commit-Queue: Matt Sarett <msarett@google.com>
/external/skia/src/core/SkColorSpaceXform.cpp
|
5934646b4937a05d5e8297448ea6613a89f8903a |
|
24-Oct-2016 |
Matt Sarett <msarett@google.com> |
Help msvs compile SkColorSpaceXform faster Allowing MSVS to choose to not inline color_xform_RGBA will prevent the complexity from exploding. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3884 Change-Id: I31ab0754c6cc375d6d0e71ceb16afef1927bb4e3 Reviewed-on: https://skia-review.googlesource.com/3884 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Matt Sarett <msarett@google.com>
/external/skia/src/core/SkColorSpaceXform.cpp
|
df303a6f59a2121c133738d6304d2476689a4fd9 |
|
24-Oct-2016 |
Matt Sarett <msarett@google.com> |
Use SK_ALWAYS_INLINE in SkColorSpaceXform Two reasons for this: (1) We care about the performance of this code, and Windows isn't very good at inlining. Let's make sure we isntruct the compiler to inline. (2) Since landing uses of this in Chrome, we're seeing flaky LayoutTests that appear to be timing related. I'm (very optimistically) hoping that this will help. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3744 Change-Id: Ibb6d9c4252c0b8ce62203fe65c7dd296248982c8 Reviewed-on: https://skia-review.googlesource.com/3744 Commit-Queue: Matt Sarett <msarett@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org>
/external/skia/src/core/SkColorSpaceXform.cpp
|
a9f64dec63b6f4169ba16f8b6c63fff5a6494029 |
|
21-Oct-2016 |
Matt Sarett <msarett@google.com> |
Fix for Chrome MSAN I believe that the complaints are occurring because the |a| vector might be uninitialized where it is used here. It doesn't actually matter because we won't use or store that value - it's just a placeholder. But we need to make the bot happy. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3800 Change-Id: I1891da9d1d2708008e4606daebf9bb6f96e92fc0 Reviewed-on: https://skia-review.googlesource.com/3800 Commit-Queue: Matt Sarett <msarett@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org>
/external/skia/src/core/SkColorSpaceXform.cpp
|
bbf251bf225489a0939fff6df938035a290f4d16 |
|
19-Oct-2016 |
Brian Osman <brianosman@google.com> |
Hash the gamut of XYZ color spaces, to speed up comparison Also going to use this to allow caching of GrColorSpaceXforms BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3670 Change-Id: I56ed2dcbdddc22046263f56d68f2d6aea55547c8 Reviewed-on: https://skia-review.googlesource.com/3670 Commit-Queue: Brian Osman <brianosman@google.com> Reviewed-by: Matt Sarett <msarett@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
/external/skia/src/core/SkColorSpaceXform.cpp
|
9488833428e83c93a7e6002f4d056084fb57112f |
|
18-Oct-2016 |
raftias <raftias@google.com> |
Refactored SkColorSpace and added in a Lab PCS GM 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
/external/skia/src/core/SkColorSpaceXform.cpp
|
f489886915034093278353d06c6f1973b2e8b7d2 |
|
16-Oct-2016 |
Matt Sarett <msarett@google.com> |
Cache dst LUTs in SkColorSpaceXform 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>
/external/skia/src/core/SkColorSpaceXform.cpp
|
d478a99f5c29f0e8fa64b50831f53232f5577f2d |
|
14-Oct-2016 |
Matt Sarett <msarett@google.com> |
Refactor color_xform_RGBA() to improve performance 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>
/external/skia/src/core/SkColorSpaceXform.cpp
|
df44fc5f2bb282557df291e20dbd26c070533aa6 |
|
11-Oct-2016 |
Matt Sarett <msarett@google.com> |
Add SkColorSpaceTransferFn to SkColorSpace BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3178 Change-Id: I354342d4469cee0e25a7b0d189e925e431da623c Reviewed-on: https://skia-review.googlesource.com/3178 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Matt Sarett <msarett@google.com>
/external/skia/src/core/SkColorSpaceXform.cpp
|
31d097e865f266c8398f45114e4c75c0dfdef058 |
|
11-Oct-2016 |
msarett <msarett@google.com> |
Add SkColorSpaceXform to the public API BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2390263002 Review-Url: https://codereview.chromium.org/2390263002
/external/skia/src/core/SkColorSpaceXform.cpp
|
33cbfd75afdd383770bb6253c06ba819a2481a35 |
|
06-Oct-2016 |
Mike Klein <mtklein@chromium.org> |
Make load4 and store4 part of SkNx properly. Every type now nominally has Load4() and Store4() methods. The ones that we use are implemented. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3046 CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot Change-Id: I7984f0c2063ef8acbc322bd2e968f8f7eaa0d8fd Reviewed-on: https://skia-review.googlesource.com/3046 Reviewed-by: Matt Sarett <msarett@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
/external/skia/src/core/SkColorSpaceXform.cpp
|
c6cc28c35be30f9ea144f433f3f04273674e29ed |
|
29-Sep-2016 |
raftias <raftias@google.com> |
Fixed invalid memory access issue in SkColorSpaceXform::apply() Passing in a large buffer along with a source colour space that used a CLUT would cause apply() to read freed heap memory, or for smaller buffers read possibly re-used stack memory. The code previously likely lucked out due to optimizations removing most or all of the subsequent stack allocations. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2759 Change-Id: I39f357bce080c4d737a83dd019f0d1ccbc56f995 Reviewed-on: https://skia-review.googlesource.com/2759 Commit-Queue: Robert Aftias <raftias@google.com> Reviewed-by: Matt Sarett <msarett@google.com>
/external/skia/src/core/SkColorSpaceXform.cpp
|
7802c3db24effa6f3186bff7490a2a8dd85d2a70 |
|
28-Sep-2016 |
msarett <msarett@google.com> |
Move toXYZD50() to SkColorSpace_Base SkColorSpace needs to become more versatile, in order to support profiles that cannot specified with just a "to XYZ D50" matrix. This a just first step to clean up the public API. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2381553002 Review-Url: https://codereview.chromium.org/2381553002
/external/skia/src/core/SkColorSpaceXform.cpp
|
5414be06935ce0f990a2df5dccaf9ddec78ec553 |
|
22-Sep-2016 |
msarett <msarett@google.com> |
G instead of R, thanks Gold NOTRY=true TBR=mtklein@google.com BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2362863002 Review-Url: https://codereview.chromium.org/2362863002
/external/skia/src/core/SkColorSpaceXform.cpp
|
cf7b877d62537672b67449bc96858cc1262be5f8 |
|
22-Sep-2016 |
msarett <msarett@google.com> |
Add BGRA as input format to SkColorSpaceXform This is immediately useful for webp and I think it's a fair guess that BGRA src formats are not uncommon. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2353363008 Review-Url: https://codereview.chromium.org/2353363008
/external/skia/src/core/SkColorSpaceXform.cpp
|
4be0e7cfe0efceeaf4c7a4d598d77c27cfd3e69b |
|
22-Sep-2016 |
msarett <msarett@google.com> |
Make SkColorSpaceXform::New() take bare ptrs There's no need to take sk_sp if we're not going to ref the ptr. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2360863003 Review-Url: https://codereview.chromium.org/2360863003
/external/skia/src/core/SkColorSpaceXform.cpp
|
c0444615ed76360f680619ad4d1f92cda6181a50 |
|
16-Sep-2016 |
msarett <msarett@google.com> |
Support Float32 output from SkColorSpaceXform * Adds Float32 support to SkColorSpaceXform * Changes API to allows clients to ask for F32, updates clients to new API * Adds Sk4f_load4 and Sk4f_store4 to SkNx * Make use of new xform in SkGr.cpp BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2339233003 CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot Committed: https://skia.googlesource.com/skia/+/43d6651111374b5d1e4ddd9030dcf079b448ec47 Review-Url: https://codereview.chromium.org/2339233003
/external/skia/src/core/SkColorSpaceXform.cpp
|
c71a9b7f53938b4f33f36f48e867b8b72cc1cc61 |
|
16-Sep-2016 |
msarett <msarett@google.com> |
Revert of Support Float32 output from SkColorSpaceXform (patchset #7 id:140001 of https://codereview.chromium.org/2339233003/ ) Reason for revert: Hitting an assert Original issue's description: > Support Float32 output from SkColorSpaceXform > > * Adds Float32 support to SkColorSpaceXform > * Changes API to allows clients to ask for F32, updates clients to > new API > * Adds Sk4f_load4 and Sk4f_store4 to SkNx > * Make use of new xform in SkGr.cpp > > BUG=skia: > GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2339233003 > CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot > > Committed: https://skia.googlesource.com/skia/+/43d6651111374b5d1e4ddd9030dcf079b448ec47 TBR=brianosman@google.com,mtklein@google.com,scroggo@google.com,mtklein@chromium.org,bsalomon@google.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review-Url: https://codereview.chromium.org/2347473007
/external/skia/src/core/SkColorSpaceXform.cpp
|
43d6651111374b5d1e4ddd9030dcf079b448ec47 |
|
16-Sep-2016 |
msarett <msarett@google.com> |
Support Float32 output from SkColorSpaceXform * Adds Float32 support to SkColorSpaceXform * Changes API to allows clients to ask for F32, updates clients to new API * Adds Sk4f_load4 and Sk4f_store4 to SkNx * Make use of new xform in SkGr.cpp BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2339233003 CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot Review-Url: https://codereview.chromium.org/2339233003
/external/skia/src/core/SkColorSpaceXform.cpp
|
be362774f9b9e8964544a579281603ed995e6e5a |
|
14-Sep-2016 |
msarett <msarett@google.com> |
Don't let the compiler complain that |a| is uninit TBR=mtklein@google.com NOTRY=true BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2339793003 Review-Url: https://codereview.chromium.org/2339793003
/external/skia/src/core/SkColorSpaceXform.cpp
|
7bbda991af353fbe6b34132132d211d23a3dba8c |
|
14-Sep-2016 |
msarett <msarett@google.com> |
Store SkColorSpaceXform gamma LUTs in a malloced field In order of likelihood: (1) Tables are never used, since gamma is recognized and named. (2) Only use one table, since all three gammas are the same. (3) Actually need three tables. No reason to waste a bunch of space for these tables on SkColorSpaceXform, when it will likely be unused. This will be more efficient in lots of cases, but is particularly useful when the client really only wants a gamut xform. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2336913005 Review-Url: https://codereview.chromium.org/2336913005
/external/skia/src/core/SkColorSpaceXform.cpp
|
591971d02a8e22dac0955c0f07b7cf500a89d5cc |
|
14-Sep-2016 |
msarett <msarett@google.com> |
Convert back to 0-255 scale before storing linear bytes TBR=mtklein@google.com BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2338203005 Review-Url: https://codereview.chromium.org/2338203005
/external/skia/src/core/SkColorSpaceXform.cpp
|
8bbcd5aab81dc0742c3367479c0c9d97363b1203 |
|
14-Sep-2016 |
msarett <msarett@google.com> |
Reduce overhead for linear color xforms We used to build src and dst transfer fn tables every time a new xform was created with linear src and dst. Now we don't compute them because we don't need them. This will make SkColorSpaceXform a far better option for any xforms with float or half-float inputs or outputs, particularly on a small number of pixels. This CL also moves SkColorSpaceXform closer to what I anticipate will be the eventual 'API design'. I think apply() will want to take a SrcColorType enum (not created yet because it's not necessary yet) and a DstColorType enum (still using SkColorType because there's not yet a reason not to). Performance changes: toSRGB 341us -> 366us to2Dot2 404us -> 403us toF16 318us -> 304us There's no reason for toSRGB or to2Dot2 to change. The refactor seems to have caused the compiler to order the instructions a little differently... This is something to come back to if we need to squeeze more performance out of sRGB. For now, let's not be held up by something we don't control. F16 likely improves because we are no longer (unnecessarily) building the linear tables. Code size gets a little bigger. Measuring SkColorSpaceXform size as a percentage of src/ size, we go from 0.8% to 1.4%. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2335723002 Review-Url: https://codereview.chromium.org/2335723002
/external/skia/src/core/SkColorSpaceXform.cpp
|
de68d6c4616d86621373d88100002ddfdb9c08e3 |
|
09-Sep-2016 |
brianosman <brianosman@google.com> |
Fix storage of gamut transform matrices in SkColorSpace We were effectively storing the transpose, which made all of our operations on individual colors, and our concatenation of matrices awkward and backwards. I'm planning to push this further into Ganesh, where I had incorrectly adjusted to the previous layout, treating colors as row vectors in the shaders. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2324843003 Review-Url: https://codereview.chromium.org/2324843003
/external/skia/src/core/SkColorSpaceXform.cpp
|
55bcc8e0af3415601b3d62252a0d579fbe87c85a |
|
09-Sep-2016 |
msarett <msarett@google.com> |
Delete some LUTs from SkColorSpaceXform No need to keep these around. In the rare case that these are needed, we can just go ahead and build them. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2326043002 Review-Url: https://codereview.chromium.org/2326043002
/external/skia/src/core/SkColorSpaceXform.cpp
|
971cd496b9e25f87f3a75a0015c203322907136a |
|
08-Sep-2016 |
brianosman <brianosman@google.com> |
Cache the inverse matrix on SkColorSpace. Rename xyz() to toXYZ(). BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2323003002 Review-Url: https://codereview.chromium.org/2323003002
/external/skia/src/core/SkColorSpaceXform.cpp
|
600c737b64eae2c7379442ae2c852853cce3a278 |
|
07-Sep-2016 |
msarett <msarett@google.com> |
Delete SkColorSpace::gammaNamed() from public API Move fGammaNamed to SkColorSpace_Base. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2318663003 Review-Url: https://codereview.chromium.org/2318663003
/external/skia/src/core/SkColorSpaceXform.cpp
|
9dc6cf6b8833d36c29a23d2519989b069745fcd5 |
|
24-Aug-2016 |
msarett <msarett@google.com> |
Fix generic color space xform, ColorSpaceXformTest BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2275563002 Review-Url: https://codereview.chromium.org/2275563002
/external/skia/src/core/SkColorSpaceXform.cpp
|
8ae991e433d2c0814ea5579613f00173805ff057 |
|
22-Aug-2016 |
mtklein <mtklein@chromium.org> |
Flush denorm half floats to zero. I think we convinced ourselves that denorms, while a good chunk of half floats, cover a rather small fraction of the representable range, which is always close enough to zero to flush. This makes both paths of the conversion to or from float considerably simpler. These functions now work for zero-or-normal half floats (excluding infinite, NaN). I'm not aware of a term for this class so I've called them "ordinary". A handful of GMs and SKPs draw differently in --config f16, but all imperceptibly. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2256023002 Review-Url: https://codereview.chromium.org/2256023002
/external/skia/src/core/SkColorSpaceXform.cpp
|
200877eecaba782e56a1dd9e13a92f36d7b1ba12 |
|
15-Aug-2016 |
msarett <msarett@google.com> |
Optimize color xforms when src and dst are matching Useful when: (1) Client does not realize src and dst match (calls color xform anyway). (2) Client wants half floats, src and dst have matching gamuts (3) Client wants premul (done correctly in linear space), src and dst have matching gamuts. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2206403003 Review-Url: https://codereview.chromium.org/2206403003
/external/skia/src/core/SkColorSpaceXform.cpp
|
d1ec89b1aca8f37a460a425259a23275f4d9a81d |
|
03-Aug-2016 |
msarett <msarett@google.com> |
Perform color correction on png decodes BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2184543003 CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot Review-Url: https://codereview.chromium.org/2184543003
/external/skia/src/core/SkColorSpaceXform.cpp
|
15ee3deee8aca2bf6e658449f25ee34a8153e6ee |
|
02-Aug-2016 |
msarett <msarett@google.com> |
Refactor of SkColorSpaceXformOpts (1) Performance is better or stays the same. (2) Code is split into functions (RasterPipeline-ish design). IMO, it's not really more or less readable. But I think it's now much easier add capabilities, apply optimizations, or do more refactors. Or to actually use RasterPipeline. I help back from trying any of these to try to keep this CL sane. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2194303002 CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot Review-Url: https://codereview.chromium.org/2194303002
/external/skia/src/core/SkColorSpaceXform.cpp
|
a714bc39294f19500269c8ec536139f75c4b1f25 |
|
29-Jul-2016 |
msarett <msarett@google.com> |
Fix various SkColorSpace bugs (1) Fixes serialization/deserialization of wacky SkColorSpaces (2) Fix gamma equals checking BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2194903002 Review-Url: https://codereview.chromium.org/2194903002
/external/skia/src/core/SkColorSpaceXform.cpp
|
50ce1f28ffede3fa3e38d330d4114ee52b387848 |
|
29-Jul-2016 |
msarett <msarett@google.com> |
Add color space xform support to SkJpegCodec (includes F16!) Also changes SkColorXform to support: RGBA->RGBA RGBA->BGRA Instead of: RGBA->SkPMColor TBR=reed@google.com BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2174493002 CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot Committed: https://skia.googlesource.com/skia/+/73d55332e2846dd05e9efdaa2f017bcc3872884b Review-Url: https://codereview.chromium.org/2174493002
/external/skia/src/core/SkColorSpaceXform.cpp
|
39979d8c6b97889f600a212cfc9b063360f3de2f |
|
29-Jul-2016 |
msarett <msarett@google.com> |
Revert of Add color space xform support to SkJpegCodec (includes F16!) (patchset #9 id:260001 of https://codereview.chromium.org/2174493002/ ) Reason for revert: Breaking MSAN Original issue's description: > Add color space xform support to SkJpegCodec (includes F16!) > > Also changes SkColorXform to support: > RGBA->RGBA > RGBA->BGRA > > Instead of: > RGBA->SkPMColor > > TBR=reed@google.com > BUG=skia: > GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2174493002 > CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot > > Committed: https://skia.googlesource.com/skia/+/73d55332e2846dd05e9efdaa2f017bcc3872884b TBR=mtklein@google.com,reed@google.com,herb@google.com,brianosman@google.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review-Url: https://codereview.chromium.org/2195523002
/external/skia/src/core/SkColorSpaceXform.cpp
|
73d55332e2846dd05e9efdaa2f017bcc3872884b |
|
29-Jul-2016 |
msarett <msarett@google.com> |
Add color space xform support to SkJpegCodec (includes F16!) Also changes SkColorXform to support: RGBA->RGBA RGBA->BGRA Instead of: RGBA->SkPMColor TBR=reed@google.com BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2174493002 CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot Review-Url: https://codereview.chromium.org/2174493002
/external/skia/src/core/SkColorSpaceXform.cpp
|
3418c0e797e2ee841d1c031ca9d7a5ba73205f51 |
|
26-Jul-2016 |
msarett <msarett@google.com> |
Delete SkDefaultXform, handle edge cases in SkColorSpaceXform_Base "Edge" cases include: (1) Matrices with translation (2) colorLUTs Performance on HP z620: 201295.jpg to2Dot2: 386us -> 414us toSRGB: 346us -> 371us toHalf: 282us -> 302us strange0-translate.jpg toSRGB: 1060us -> 244us strange1-colorLUT.jpg toSRGB: 2.74ms -> 2.00ms BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2177173003 CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot Review-Url: https://codereview.chromium.org/2177173003
/external/skia/src/core/SkColorSpaceXform.cpp
|
959d45b43357a40854938586c303177c6aa53220 |
|
21-Jul-2016 |
msarett <msarett@google.com> |
Miscellaneous color space refactors (1) Use float matrix[16] everywhere (enables future code sharing). (2) SkColorLookUpTable refactors *** Store in a single allocation (like SkGammas) *** Eliminate fOutputChannels (we always require 3, and probably always will) (3) Change names of read_big_endian_* helpers BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2166093003 CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot Review-Url: https://codereview.chromium.org/2166093003
/external/skia/src/core/SkColorSpaceXform.cpp
|
1b93bd1e6eba3d14593490e4e24a34546638c8da |
|
21-Jul-2016 |
msarett <msarett@google.com> |
Refactor parsing and storage of SkGammas Benefits: (1) Parses and stores gamma tags in a single allocation. (2) Recognizes equal gamma tags to skip parsing work and save memory. Non-Benefits: (1) Not less complicated. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2117773002 Committed: https://skia.googlesource.com/skia/+/2ea944c2b710caf29d4795ac953bad14224796f7 Committed: https://skia.googlesource.com/skia/+/959ccc1f3f49e1ddeb51c32c30ac4a2d94653856 Review-Url: https://codereview.chromium.org/2117773002
/external/skia/src/core/SkColorSpaceXform.cpp
|
456bf30d321292da7f15d1af35fd94fbb6a4bb59 |
|
21-Jul-2016 |
msarett <msarett@google.com> |
Revert of Refactor parsing and storage of SkGammas (patchset #8 id:280001 of https://codereview.chromium.org/2117773002/ ) Reason for revert: Tests failing Original issue's description: > Refactor parsing and storage of SkGammas > > Benefits: > (1) Parses and stores gamma tags in a single allocation. > (2) Recognizes equal gamma tags to skip parsing work and > save memory. > > Non-Benefits: > (1) Not less complicated. > > BUG=skia: > GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2117773002 > > Committed: https://skia.googlesource.com/skia/+/2ea944c2b710caf29d4795ac953bad14224796f7 > Committed: https://skia.googlesource.com/skia/+/959ccc1f3f49e1ddeb51c32c30ac4a2d94653856 TBR=reed@google.com,brianosman@google.com,mtklein@google.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review-Url: https://codereview.chromium.org/2171623002
/external/skia/src/core/SkColorSpaceXform.cpp
|
959ccc1f3f49e1ddeb51c32c30ac4a2d94653856 |
|
21-Jul-2016 |
msarett <msarett@google.com> |
Refactor parsing and storage of SkGammas Benefits: (1) Parses and stores gamma tags in a single allocation. (2) Recognizes equal gamma tags to skip parsing work and save memory. Non-Benefits: (1) Not less complicated. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2117773002 Committed: https://skia.googlesource.com/skia/+/2ea944c2b710caf29d4795ac953bad14224796f7 Review-Url: https://codereview.chromium.org/2117773002
/external/skia/src/core/SkColorSpaceXform.cpp
|
2aec3ffe32558505d7314f064b88ecb7f13b1c16 |
|
20-Jul-2016 |
msarett <msarett@google.com> |
Revert of Refactor parsing and storage of SkGammas (patchset #7 id:220001 of https://codereview.chromium.org/2117773002/ ) Reason for revert: Broken bots. Original issue's description: > Refactor parsing and storage of SkGammas > > Benefits: > (1) Parses and stores gamma tags in a single allocation. > (2) Recognizes equal gamma tags to skip parsing work and > save memory. > > Non-Benefits: > (1) Not less complicated. > > BUG=skia: > GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2117773002 > > Committed: https://skia.googlesource.com/skia/+/2ea944c2b710caf29d4795ac953bad14224796f7 TBR=reed@google.com,brianosman@google.com,mtklein@google.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review-Url: https://codereview.chromium.org/2159253005
/external/skia/src/core/SkColorSpaceXform.cpp
|
2ea944c2b710caf29d4795ac953bad14224796f7 |
|
20-Jul-2016 |
msarett <msarett@google.com> |
Refactor parsing and storage of SkGammas Benefits: (1) Parses and stores gamma tags in a single allocation. (2) Recognizes equal gamma tags to skip parsing work and save memory. Non-Benefits: (1) Not less complicated. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2117773002 Review-Url: https://codereview.chromium.org/2117773002
/external/skia/src/core/SkColorSpaceXform.cpp
|
9ce3a543c92a73e6daca420defc042886b3f2019 |
|
15-Jul-2016 |
msarett <msarett@google.com> |
Add capability for SkColorXform to output half floats BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2147763002 CQ_INCLUDE_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot;master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot Review-Url: https://codereview.chromium.org/2147763002
/external/skia/src/core/SkColorSpaceXform.cpp
|
6006f678e78af7b6f67a454cd4bc213048983f9d |
|
11-Jul-2016 |
msarett <msarett@google.com> |
Make all color xforms 'fast' (step 1) This refactors opt code to handle arbitrary src and dst gammas that are specified by tables. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2130013002 CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot Review-Url: https://codereview.chromium.org/2130013002
/external/skia/src/core/SkColorSpaceXform.cpp
|
ac41bac40f5a80d2bc5ccec584c23478a6900179 |
|
08-Jul-2016 |
mtklein <mtklein@chromium.org> |
Move sRGB <-> linear conversion components to their own files. This makes them a little easier to use outside SkColorXform code. I've added some notes about how best to use them and their eccentricities, and added a test. Ultimately any software sRGB <-> linear conversion should funnel somehow through here. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2128893002 CQ_EXTRA_TRYBOTS=client.skia.android:Test-Android-GCC-Nexus5-CPU-NEON-Arm7-Release-Trybot;client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot Committed: https://skia.googlesource.com/skia/+/45e58c8807179638980aae8503573b950b844e4c Review-Url: https://codereview.chromium.org/2128893002
/external/skia/src/core/SkColorSpaceXform.cpp
|
e930459a18ea099859f7d0076802458be00a6b4c |
|
08-Jul-2016 |
mtklein <mtklein@google.com> |
Revert of Move sRGB <-> linear conversion components to their own files. (patchset #5 id:80001 of https://codereview.chromium.org/2128893002/ ) Reason for revert: Monotonicity assert is failing on ARM. (Different rsqrt() and invert() precision?) Will investigate a bit tomorrow... might reland with the test TODO. Original issue's description: > Move sRGB <-> linear conversion components to their own files. > > This makes them a little easier to use outside SkColorXform code. > > I've added some notes about how best to use them and their eccentricities, and added a test. > > Ultimately any software sRGB <-> linear conversion should funnel somehow through here. > > BUG=skia: > GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2128893002 > CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot > > Committed: https://skia.googlesource.com/skia/+/45e58c8807179638980aae8503573b950b844e4c TBR=reed@google.com,msarett@google.com,mtklein@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review-Url: https://codereview.chromium.org/2131793002
/external/skia/src/core/SkColorSpaceXform.cpp
|
45e58c8807179638980aae8503573b950b844e4c |
|
07-Jul-2016 |
mtklein <mtklein@chromium.org> |
Move sRGB <-> linear conversion components to their own files. This makes them a little easier to use outside SkColorXform code. I've added some notes about how best to use them and their eccentricities, and added a test. Ultimately any software sRGB <-> linear conversion should funnel somehow through here. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2128893002 CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot Review-Url: https://codereview.chromium.org/2128893002
/external/skia/src/core/SkColorSpaceXform.cpp
|
0f83e0151f757ecd8d55d55ffefef58ecb11a97b |
|
24-Jun-2016 |
msarett <msarett@google.com> |
Add support for 3D colorLUTs to SkColorXform BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2097553002 Review-Url: https://codereview.chromium.org/2097553002
/external/skia/src/core/SkColorSpaceXform.cpp
|
b39067696ad08a26bbe49b71a71f0546dc42a075 |
|
22-Jun-2016 |
msarett <msarett@google.com> |
Use a table-based implementation of SkDefaultXform BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2084673002 CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot Review-Url: https://codereview.chromium.org/2084673002
/external/skia/src/core/SkColorSpaceXform.cpp
|
d2809573deb7b99e764f7f71fe34a5b5322df0b2 |
|
20-Jun-2016 |
msarett <msarett@google.com> |
Support sRGB dsts in opt code 201295.jpg on HP z620 (300x280) QCMS Xform 0.418 ms Skia NEW Xform 0.378 ms Vs QCMS 1.11x BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2078623002 CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot Review-Url: https://codereview.chromium.org/2078623002
/external/skia/src/core/SkColorSpaceXform.cpp
|
dea0340cadb759932e53416a657f5ea75fee8b5f |
|
16-Jun-2016 |
msarett <msarett@google.com> |
Implement fast, correct gamma conversion for color xforms 201295.jpg on HP z620 (300x280, most common form of sRGB profile) QCMS Xform 0.495 ms Skia Old Xform 0.235 ms Skia NEW Xform 0.423 ms Vs Old Code 0.56x Vs QCMS 1.17x So to summarize, we are now much slower than before, but still a bit faster than QCMS. And now we are also far more accurate than QCMS :). BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2060823003 CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot Review-Url: https://codereview.chromium.org/2060823003
/external/skia/src/core/SkColorSpaceXform.cpp
|
c4ce6b592487305de251bbebaf8eeee38371b877 |
|
16-Jun-2016 |
msarett <msarett@google.com> |
Differentiate between sRGBGamma and 2Dot2Gamma BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2067833003 Review-Url: https://codereview.chromium.org/2067833003
/external/skia/src/core/SkColorSpaceXform.cpp
|
a9e878c836994bce695274b4c28890290139dcdf |
|
08-Jun-2016 |
msarett <msarett@google.com> |
Optimize color xforms with 2.2 gammas for SSE2 Because we recognize commonly used gamma tables and parameters as 2.2f, about 98% of jpegs with color profiles will pass through this xform (assuming the dst is also 2.2f). Sample size is 10,322 jpegs. I won't go crazy with performance numbers because this is a work in progress, particularly in terms of correctness. 201295.jpg on HP z620 (300x280, most common form of sRGB profile) Decode Time + QCMS Xform 1.28 ms QCMS Xform Only 0.495 ms Decode Time + Skia Opt Xform 1.01 ms Skia Opt Xform Only 0.235 ms Decode Time + Xform Speed-up 1.27x Xform Only Speed-up 2.11x FWIW, Skia xform time before these optimizations was 41.1 ms. But we expected that code to be slow. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2046013002 CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot Review-Url: https://codereview.chromium.org/2046013002
/external/skia/src/core/SkColorSpaceXform.cpp
|
dc27a648d2ff23b2e96232c00c15976c46e1d48d |
|
06-Jun-2016 |
msarett <msarett@google.com> |
Add SkDefaultXform as a catch-all to handle color conversions I'd like to start optimizing the common case for color xforms, but before doing that, I think it makes sense to have correct code to support all xforms. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2038823002 Review-Url: https://codereview.chromium.org/2038823002
/external/skia/src/core/SkColorSpaceXform.cpp
|
9876ac5b3016e5353c072378ac1545a0a2270757 |
|
01-Jun-2016 |
msarett <msarett@google.com> |
Create SkColorSpaceXform to handle color conversions Also adds testing of qcms color correction, so we can compare SkColorSpaceXform outputs to qcms outputs. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1952063002 Committed: https://skia.googlesource.com/skia/+/740cc88ee3d63c75e52d31238f2a32600cc57a8c Review-Url: https://codereview.chromium.org/1952063002
/external/skia/src/core/SkColorSpaceXform.cpp
|
4a603fc591dcd36b3cb47344c244ecbbbaf179f4 |
|
01-Jun-2016 |
msarett <msarett@google.com> |
Revert of Create SkColorSpaceXform to handle color conversions (patchset #10 id:260001 of https://codereview.chromium.org/1952063002/ ) Reason for revert: Google3 can't find qcms Original issue's description: > Create SkColorSpaceXform to handle color conversions > > Also adds testing of qcms color correction, so we can compare > SkColorSpaceXform outputs to qcms outputs. > > BUG=skia: > GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1952063002 > > Committed: https://skia.googlesource.com/skia/+/740cc88ee3d63c75e52d31238f2a32600cc57a8c TBR=reed@google.com,scroggo@google.com,mtklein@google.com,herb@google.com,brianosman@google.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review-Url: https://codereview.chromium.org/2023093004
/external/skia/src/core/SkColorSpaceXform.cpp
|
740cc88ee3d63c75e52d31238f2a32600cc57a8c |
|
01-Jun-2016 |
msarett <msarett@google.com> |
Create SkColorSpaceXform to handle color conversions Also adds testing of qcms color correction, so we can compare SkColorSpaceXform outputs to qcms outputs. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1952063002 Review-Url: https://codereview.chromium.org/1952063002
/external/skia/src/core/SkColorSpaceXform.cpp
|