Two of my previous CLs stepped on each other.
BUG=skia:
Change-Id: I53d49f283e466ad7fd6c38a6d4243c084dd324c7
Reviewed-on: https://skia-review.googlesource.com/5519
Reviewed-by: Eric Boren <borenet@google.com>
We were trying to mix the canvas' color space (linear gamma) with N32
color type, which isn't allowed. Propagate the original color type, too.
BUG=skia:
Change-Id: I606b25e690486abe042d6a4b6dda606ac85b546b
Reviewed-on: https://skia-review.googlesource.com/5509
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
BUG=skia:
Change-Id: I40d46e3a8a5c6c6fa77075c94d6bd290f764a41c
Reviewed-on: https://skia-review.googlesource.com/5512
Reviewed-by: Ravi Mistry <rmistry@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
Rename Win->Win10 where appropriate
BUG=skia:
Change-Id: I8692340cebf646e2cb0cb825e808b5ea1b695a8f
Reviewed-on: https://skia-review.googlesource.com/5356
Commit-Queue: Eric Boren <borenet@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Reviewed-by: Ben Wagner <benjaminwagner@google.com>
BUG=skia:
Change-Id: I9a6a8970bd70dc52334fc44ed29ea942c29132fc
Reviewed-on: https://skia-review.googlesource.com/5507
Reviewed-by: Ravi Mistry <rmistry@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
BUG=skia:5933
Change-Id: I440414d3d3db72a55be493aeb910bda29cc87841
Reviewed-on: https://skia-review.googlesource.com/5473
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Ben Wagner <benjaminwagner@google.com>
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>
This fixes a compile error in Chromium.
BUG=skia:6026
Change-Id: Idd5ad22cb52a084836de6e1427f1f047d1feab08
Reviewed-on: https://skia-review.googlesource.com/5500
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Leon Scroggins <scroggo@google.com>
1) Our older iOS devices failed our sRGB tests, due to precision issues
with alpha. At this point, we only test on iPadMini 4, and that appears
not to have any problems.
2) iOS devices still don't have the sRGB texture decode extension. But,
some clients have no interest in mixing legacy/color-correct rendering,
and would like to use sRGB on these devices. This GrContextOptions flag
enables sRGB support in those cases.
Adjust the test code to produce sRGB capable contexts on these devices,
but only for configs that have a color space. (See comment).
BUG=skia:4148
Committed: https://skia.googlesource.com/skia/+/9db12d2341f3f8722c8b90b11dd4cce138a8a64e
Committed: https://skia.googlesource.com/skia/+/1aeb78c5d978b35b256525b711edd942bce01444
Review-Url: https://codereview.chromium.org/2539993002
Fixes many blatant errors with glnarrow config
BUG=skia:
Change-Id: I729cda350ebce126bdac4eb41c91f30294e1c61e
Reviewed-on: https://skia-review.googlesource.com/5469
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Brian Osman <brianosman@google.com>
- nothing uses ashmem;
- cpufeatures and native_app_glue are now pulled from the NDK;
- no bots use the scripts in platform_tools/android/bin;
- update scripts to work with GN instead of GYP.
Change-Id: I14f47eeadb3047505e232dd10385f58ef12c73f4
Reviewed-on: https://skia-review.googlesource.com/5422
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Derek Sollenberger <djsollen@google.com>
This gives us a place to bottleneck this sort of conversion. Every time I try to use the rounding float -> int instructions, they're just a little slower than working the 1/2 into the scale with FMA. Weird.
Change-Id: I7718112b234b4b38ba6af8fef59a47642021839a
Reviewed-on: https://skia-review.googlesource.com/5483
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Matt Sarett <msarett@google.com>
I think we just happened not to here. This improves Adobe -> sRGB pipeline conversion by about 3-4%.
While at it, unify all the fma() lambdas into SkNf_fma(). I'd have called it fma(), but IIRC there was some sort of name conflict there with type-generic fma() functions from the C math.h or something silly like that.
CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD
Change-Id: Id176671fec27c984efa4703c5be2fb63b7f0b11f
Reviewed-on: https://skia-review.googlesource.com/5474
Reviewed-by: Matt Sarett <msarett@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Change-Id: I3ebe5a471477ce1b71c150b0bde4982d113fd8a7
Reviewed-on: https://skia-review.googlesource.com/5468
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
(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>
When all A/B/M-curves, the matrix and the CLUT were not there it would
crash. There is now a check to avoid that. Past this point it should not
be an empty, as SkColorSpaceXform did not make such an assumption.
BUG=skia:6023
Change-Id: I099bcef7efac100d438a30bf59d9c170119b8545
Reviewed-on: https://skia-review.googlesource.com/5480
Reviewed-by: Matt Sarett <msarett@google.com>
Commit-Queue: Robert Aftias <raftias@google.com>
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>
Reason for revert:
Command Buffer, too...
Original issue's description:
> Two (related) changes here:
>
> 1) Our older iOS devices failed our sRGB tests, due to precision issues
> with alpha. At this point, we only test on iPadMini 4, and that appears
> not to have any problems.
>
> 2) iOS devices still don't have the sRGB texture decode extension. But,
> some clients have no interest in mixing legacy/color-correct rendering,
> and would like to use sRGB on these devices. This GrContextOptions flag
> enables sRGB support in those cases.
>
> Adjust the test code to produce sRGB capable contexts on these devices,
> but only for configs that have a color space. (See comment).
>
> BUG=skia:4148
>
> Committed: https://skia.googlesource.com/skia/+/9db12d2341f3f8722c8b90b11dd4cce138a8a64e
> Committed: https://skia.googlesource.com/skia/+/1aeb78c5d978b35b256525b711edd942bce01444TBR=bsalomon@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:4148
Review-Url: https://codereview.chromium.org/2546783005
Change-Id: I7b64d8aee335eef39924ab65f46f196892ea2a39
Reviewed-on: https://skia-review.googlesource.com/5465
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
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>
This is the same logic from the matrix color filter, scaled down from 4x5 to 3x4.
I'm seeing cases in GMs where we can skip clamps in both directions, but never both together.
Change-Id: I515c5e207d35ed23f1e267d55460fe4d41e1a8f1
Reviewed-on: https://skia-review.googlesource.com/5456
Reviewed-by: Matt Sarett <msarett@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
1) Our older iOS devices failed our sRGB tests, due to precision issues
with alpha. At this point, we only test on iPadMini 4, and that appears
not to have any problems.
2) iOS devices still don't have the sRGB texture decode extension. But,
some clients have no interest in mixing legacy/color-correct rendering,
and would like to use sRGB on these devices. This GrContextOptions flag
enables sRGB support in those cases.
Adjust the test code to produce sRGB capable contexts on these devices,
but only for configs that have a color space. (See comment).
BUG=skia:4148
Committed: https://skia.googlesource.com/skia/+/9db12d2341f3f8722c8b90b11dd4cce138a8a64e
Review-Url: https://codereview.chromium.org/2539993002
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>
This reverts commit d0fdc0f234.
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>
This avoids a malloc/free per SkRasterPipeline::run(), with no downside.
$ out/nanobench --benchType skcolorcodec --colorImages images/colorspace/201293.jpg --skps noskps --xform_only --srgb --ms 10000
target: 273µs
current: 395µs
this CL: 375µs
CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD
Change-Id: Icd62f505f555ebf4ca66ee77a476f59cab68433d
Reviewed-on: https://skia-review.googlesource.com/5447
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Matt Sarett <msarett@google.com>
Changed ICC parsing/SkGammas/SkColorLookUpTable to handle non-3-channel
inputs. Parsed CMYK A2B ICC profiles. Integrated this with SkJpegCodec
(the only file that supports CMYK) and SkColorSpaceXform_A2B to allow
parsing and color xforming of ICC CMYK images.
CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD
Change-Id: I11e3d17180244281be3eb43fd608609925a7f71e
Reviewed-on: https://skia-review.googlesource.com/5444
Reviewed-by: Matt Sarett <msarett@google.com>
Commit-Queue: Matt Sarett <msarett@google.com>
This reverts commit dd19ac7d10.
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>
This is a partial revert of https://codereview.chromium.org/2514543002 (Defer more renderTargetContexts in the GPU image filter paths - take 2)
I have been unable to reproduce the performance regression in crbug.com/668179 locally so intend to revert the above CL piecemeal.
BUG=668179
Change-Id: Idf3d66d71c452f5718d7b1d8d945ca7ff46b75d8
Reviewed-on: https://skia-review.googlesource.com/5441
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reason for revert:
ANGLE tests are failing
Original issue's description:
> Two (related) changes here:
>
> 1) Our older iOS devices failed our sRGB tests, due to precision issues
> with alpha. At this point, we only test on iPadMini 4, and that appears
> not to have any problems.
>
> 2) iOS devices still don't have the sRGB texture decode extension. But,
> some clients have no interest in mixing legacy/color-correct rendering,
> and would like to use sRGB on these devices. This GrContextOptions flag
> enables sRGB support in those cases.
>
> Adjust the test code to produce sRGB capable contexts on these devices,
> but only for configs that have a color space. (See comment).
>
> BUG=skia:4148
>
> Committed: https://skia.googlesource.com/skia/+/9db12d2341f3f8722c8b90b11dd4cce138a8a64eTBR=bsalomon@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:4148
Review-Url: https://codereview.chromium.org/2547603002
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>
Probably still worth having but I haven't been able to reproduce the perf regression in
crbug.com/668179 with it yet.
Change-Id: If3b0f2998ff38a17a173895ed9cea6950a81f6b7
Reviewed-on: https://skia-review.googlesource.com/5382
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
TODO:
- convert SkDeferredCanvas, SkLiteRecorder, etc. to the new base
- remove unused SkNoSaveLayerCanvas
BUG=chromium:668925
R=reed@google.com,mtklein@google.com
Change-Id: Ie9af577477a6b9eaa5ef55523287ad1635dca116
Reviewed-on: https://skia-review.googlesource.com/5349
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
BUG=skia:
Change-Id: I876e802db370a7812cd53e42cb4927702e6c1fb6
Reviewed-on: https://skia-review.googlesource.com/5418
Commit-Queue: Hal Canary <halcanary@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
1) Our older iOS devices failed our sRGB tests, due to precision issues
with alpha. At this point, we only test on iPadMini 4, and that appears
not to have any problems.
2) iOS devices still don't have the sRGB texture decode extension. But,
some clients have no interest in mixing legacy/color-correct rendering,
and would like to use sRGB on these devices. This GrContextOptions flag
enables sRGB support in those cases.
Adjust the test code to produce sRGB capable contexts on these devices,
but only for configs that have a color space. (See comment).
BUG=skia:4148
Review-Url: https://codereview.chromium.org/2539993002
Change-Id: I18f520924b8a2548566fd61dbea4e3e12bd253dd
Reviewed-on: https://skia-review.googlesource.com/5411
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
This reverts commit 51c3fcd376.
Reason for revert: ASAN, MSAN both take issue with parse_and_load_gamma()
Original change's description:
> Added CMYK support for ICC profiles.
>
> Changed ICC parsing/SkGammas/SkColorLookUpTable to handle non-3-channel
> inputs. Parsed CMYK A2B ICC profiles. Integrated this with SkJpegCodec
> (the only file that supports CMYK) and SkColorSpaceXform_A2B to allow
> parsing and color xforming of ICC CMYK images.
>
> BUG=skia:
>
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=5197
> CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD
>
>
> Change-Id: Id6619f63f04071f79cd2d84321857dfa269ad3aa
> Reviewed-on: https://skia-review.googlesource.com/5197
> Commit-Queue: Mike Klein <mtklein@chromium.org>
> Reviewed-by: Matt Sarett <msarett@google.com>
> Reviewed-by: Mike Klein <mtklein@chromium.org>
> Reviewed-by: Leon Scroggins <scroggo@google.com>
>
TBR=mtklein@chromium.org,mtklein@google.com,msarett@google.com,scroggo@google.com,brianosman@google.com,raftias@google.com,reviews@skia.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Change-Id: Ib43fef00bc233c0b4fa47ed29040d69601def267
Reviewed-on: https://skia-review.googlesource.com/5423
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Changed ICC parsing/SkGammas/SkColorLookUpTable to handle non-3-channel
inputs. Parsed CMYK A2B ICC profiles. Integrated this with SkJpegCodec
(the only file that supports CMYK) and SkColorSpaceXform_A2B to allow
parsing and color xforming of ICC CMYK images.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=5197
CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD
Change-Id: Id6619f63f04071f79cd2d84321857dfa269ad3aa
Reviewed-on: https://skia-review.googlesource.com/5197
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Matt Sarett <msarett@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Reviewed-by: Leon Scroggins <scroggo@google.com>
It's cute in compile_pipeline(), but as before, clearer and simpler in the blitter.
CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD
Change-Id: Ib83ff097e4e057e72aed785797e6ac0029ca5dbf
Reviewed-on: https://skia-review.googlesource.com/5399
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Change-Id: I27b6324f8040899fafeda23ca524bc54a4dbf090
Reviewed-on: https://skia-review.googlesource.com/5392
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Also adds more overrides of GrBatch::dumpInfo.
This removes a use case of the GrPipeline member of GrDrawBatch.
Change-Id: I93f5f2993be41ffa290122f12a683d2bac453e1d
Reviewed-on: https://skia-review.googlesource.com/5354
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
This reverts commit c5d0147717.
g3 is updated to allow this to land
BUG=skia:
Change-Id: I5f4b06c2dc77dfa66d9b32348375151177511a65
Reviewed-on: https://skia-review.googlesource.com/5406
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>