History log of /external/skia/src/image/SkImageShader.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
296b1ccf9b8e9c8b945645efcbaa9c71c7135f58 15-Mar-2017 Robert Phillips <robertphillips@google.com> Retract GrContext from src/gpu/effects

Change-Id: Iceb7263098286bafb2605ef17d1fe6bb25d71e97
Reviewed-on: https://skia-review.googlesource.com/9693
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
/external/skia/src/image/SkImageShader.cpp
b726d58efc91c4eefa5cea0881a823ee108db8fd 09-Mar-2017 Robert Phillips <robertphillips@google.com> Partially defer SkImage_Gpu

One of SkImageCacherator, GrBitmapTextureMaker, GrImageTextureMaker, GrTextureAdjuster, GrTextureProducer or SkImage has to take the first step. This is probably the least odd of the options.

Change-Id: Ie167034553451f4b3633a5a1548dbd4d75839b3d
Reviewed-on: https://skia-review.googlesource.com/9488
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
/external/skia/src/image/SkImageShader.cpp
3b65598bceb65736486db27ed49a56d787032747 07-Mar-2017 Brian Osman <brianosman@google.com> Make SkGr.h private and remove unused functions

BUG=skia:

Change-Id: I6699d00c5412ed9d9bf14b032a08b06b1c766bce
Reviewed-on: https://skia-review.googlesource.com/9398
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
/external/skia/src/image/SkImageShader.cpp
bfdc87a62193aae20fac0bce37bed7b656f299bb 14-Feb-2017 Herb Derby <herb@google.com> Revert "Revert "Always make SkImageShaders in heap.""

This reverts commit 07f665efb918f68e406b76a78d0b76d5c714f16c.

Reason for revert: Android code moved from priv api to real api

Original change's description:
> Revert "Always make SkImageShaders in heap."
>
> This reverts commit ff590a12441002d281254ec6a86070ac0a19263f.
>
> Reason for revert: This breaks the android roll because they are using
> a private call. Updating android tests to use new api.
>
> Original change's description:
> > Always make SkImageShaders in heap.
> >
> > I made a couple of measurments, and it looks like any differences is
> > well below the noise threshold.
> >
> > Just for the record run1: .9991 of baseline and run2 .9988 of baseline.
> > I was using top25 .skps as workload.
> >
> > TBR=mtklein@google.com
> >
> > Change-Id: If4fa06e5d5df72fb67dbb4bbb99c926f05765897
> > Reviewed-on: https://skia-review.googlesource.com/8341
> > Reviewed-by: Herb Derby <herb@google.com>
> > Commit-Queue: Herb Derby <herb@google.com>
> >
>
> TBR=mtklein@chromium.org,mtklein@google.com,herb@google.com,reviews@skia.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
>
> Change-Id: Ibdaafc796702e250933b62e5f4abb5e2ce8d40c0
> Reviewed-on: https://skia-review.googlesource.com/8393
> Commit-Queue: Herb Derby <herb@google.com>
> Reviewed-by: Herb Derby <herb@google.com>
>

TBR=mtklein@chromium.org,mtklein@google.com,herb@google.com,reviews@skia.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Change-Id: I320b5ebf707d74ffafd8b70d69646b74a30f0ae8
Reviewed-on: https://skia-review.googlesource.com/8407
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Herb Derby <herb@google.com>
/external/skia/src/image/SkImageShader.cpp
07f665efb918f68e406b76a78d0b76d5c714f16c 13-Feb-2017 Herb Derby <herb@google.com> Revert "Always make SkImageShaders in heap."

This reverts commit ff590a12441002d281254ec6a86070ac0a19263f.

Reason for revert: This breaks the android roll because they are using
a private call. Updating android tests to use new api.

Original change's description:
> Always make SkImageShaders in heap.
>
> I made a couple of measurments, and it looks like any differences is
> well below the noise threshold.
>
> Just for the record run1: .9991 of baseline and run2 .9988 of baseline.
> I was using top25 .skps as workload.
>
> TBR=mtklein@google.com
>
> Change-Id: If4fa06e5d5df72fb67dbb4bbb99c926f05765897
> Reviewed-on: https://skia-review.googlesource.com/8341
> Reviewed-by: Herb Derby <herb@google.com>
> Commit-Queue: Herb Derby <herb@google.com>
>

TBR=mtklein@chromium.org,mtklein@google.com,herb@google.com,reviews@skia.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Change-Id: Ibdaafc796702e250933b62e5f4abb5e2ce8d40c0
Reviewed-on: https://skia-review.googlesource.com/8393
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Herb Derby <herb@google.com>
/external/skia/src/image/SkImageShader.cpp
ff590a12441002d281254ec6a86070ac0a19263f 13-Feb-2017 Herb Derby <herb@google.com> Always make SkImageShaders in heap.

I made a couple of measurments, and it looks like any differences is
well below the noise threshold.

Just for the record run1: .9991 of baseline and run2 .9988 of baseline.
I was using top25 .skps as workload.

TBR=mtklein@google.com

Change-Id: If4fa06e5d5df72fb67dbb4bbb99c926f05765897
Reviewed-on: https://skia-review.googlesource.com/8341
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Herb Derby <herb@google.com>
/external/skia/src/image/SkImageShader.cpp
54be5c928604b52270bf218d910883e1aba3b226 11-Feb-2017 Robert Phillips <robertphillips@google.com> Revert "More non-invertible shader local matrix guards"

This reverts commit 368af4605db18f7197ed3289d2ebdc93bbb5879b.

Reason for revert: checking to see if this is breaking the Chrome DEPS roll
Original change's description:
> More non-invertible shader local matrix guards
>
> Change-Id: Ida9a300420ff1d883e617cdaadb80e88c99ad226
> Reviewed-on: https://skia-review.googlesource.com/8333
> Reviewed-by: Mike Reed <reed@google.com>
> Commit-Queue: Florin Malita <fmalita@chromium.org>
>

TBR=brianosman@google.com,fmalita@chromium.org,reed@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Change-Id: Id0a771342b9be27c85d91f511d814297b8c3e0b8
Reviewed-on: https://skia-review.googlesource.com/8345
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
/external/skia/src/image/SkImageShader.cpp
368af4605db18f7197ed3289d2ebdc93bbb5879b 10-Feb-2017 Florin Malita <fmalita@chromium.org> More non-invertible shader local matrix guards

Change-Id: Ida9a300420ff1d883e617cdaadb80e88c99ad226
Reviewed-on: https://skia-review.googlesource.com/8333
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
/external/skia/src/image/SkImageShader.cpp
83e939bcb79790f5ae3b28c398fbcf034675a6e5 07-Feb-2017 Herb Derby <herb@google.com> Use SkArenaAlloc in the SkAutoBlitterChoose code.

- Added default implementation of onMakeContext to support use in android.

Searches for uses:
"public SkShader" package:^chromium$ -file:^src/third_party/skia
package:^aosp.* "public SkShader" -file:external/skia -file:.*third_party/skia
package:^android$ "public SkShader" -file:external/skia -file:.*third_party/skia

... shows that no subclass overrides onCreateContext.

TBR=reed@google.com
TBR=mtklein@google.com

Change-Id: I8bd5f57a79534574e344b165d31dccee41c31767
Reviewed-on: https://skia-review.googlesource.com/8140
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Herb Derby <herb@google.com>
/external/skia/src/image/SkImageShader.cpp
dd8b72ae7319598cfc1024901e860c52f06e6ae1 07-Feb-2017 Robert Phillips <robertphillips@google.com> Revert "Use SkArenaAlloc instead of SkSmallAllocator in the SkAutoBlitterChoose code."

This reverts commit 2b57b7f7a7fc97db57f190b5a8ebcf68e177ee2d.

Reason for revert: Android compile failing

Original change's description:
> Use SkArenaAlloc instead of SkSmallAllocator in the SkAutoBlitterChoose code.
>
>
> TBR=reed@google.com
> Change-Id: Iefb044bf7657fbf982f23aa91a3f4d013ce2c626
> Reviewed-on: https://skia-review.googlesource.com/7786
> Reviewed-by: Mike Klein <mtklein@chromium.org>
> Reviewed-by: Herb Derby <herb@google.com>
> Commit-Queue: Herb Derby <herb@google.com>
>

TBR=mtklein@chromium.org,mtklein@google.com,herb@google.com,reed@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Change-Id: Id09c35377dddae0811d998b7d0c34c422325a5bc
Reviewed-on: https://skia-review.googlesource.com/8129
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
/external/skia/src/image/SkImageShader.cpp
2b57b7f7a7fc97db57f190b5a8ebcf68e177ee2d 06-Feb-2017 Herb Derby <herb@google.com> Use SkArenaAlloc instead of SkSmallAllocator in the SkAutoBlitterChoose code.


TBR=reed@google.com
Change-Id: Iefb044bf7657fbf982f23aa91a3f4d013ce2c626
Reviewed-on: https://skia-review.googlesource.com/7786
Reviewed-by: Mike Klein <mtklein@chromium.org>
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Herb Derby <herb@google.com>
/external/skia/src/image/SkImageShader.cpp
882ccafee00a7d8d924258d59606fa878c0d9777 27-Jan-2017 Florin Malita <fmalita@chromium.org> Raster pipeline support for SkLocalMatrixShader composition

Plumb a local matrix arg to onAppendStages, similar to onCreateContext's
ContextRec::fLocalMatrix.

Change-Id: I6db3706918733b35eb7a3ae2cc65503223d0cf2d
Reviewed-on: https://skia-review.googlesource.com/7653
Commit-Queue: Florin Malita <fmalita@chromium.org>
Reviewed-by: Mike Reed <reed@google.com>
/external/skia/src/image/SkImageShader.cpp
67c18d6b5188a0497f6912a73d964c763d2f8f84 20-Jan-2017 Robert Phillips <robertphillips@google.com> Continue making Ganesh use absolute texture coordinates - take 2

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>
/external/skia/src/image/SkImageShader.cpp
c485907f0420e5f9cf8223e9ba53812cd8dd5368 20-Jan-2017 Joe Gregorio <jcgregorio@google.com> Revert "explictly fail to draw unpremul, as this is buggy, incomplete, 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>
/external/skia/src/image/SkImageShader.cpp
1baaacac74d24604e3dfca9857fbd647df375997 19-Jan-2017 Mike Reed <reed@google.com> 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>
/external/skia/src/image/SkImageShader.cpp
a7d61a65ee7f7b2a2f6fce59faaca0762cef4c67 17-Jan-2017 Joe Gregorio <jcgregorio@google.com> Revert "Continue making Ganesh use absolute texture coordinates"

This reverts commit 4493a9dc9df8cf306a974bde7e0e9c5470ebcdc9.

Reason for revert: Continuing failures https://luci-milo.appspot.com/swarming/task/33c693c3539a1410

Change-Id: Id371d6df6a875a5f6872f4ebd91b08a354d949de
Reviewed-on: https://skia-review.googlesource.com/7125
Commit-Queue: Joe Gregorio <jcgregorio@google.com>
Reviewed-by: Joe Gregorio <jcgregorio@google.com>
/external/skia/src/image/SkImageShader.cpp
4493a9dc9df8cf306a974bde7e0e9c5470ebcdc9 17-Jan-2017 Robert Phillips <robertphillips@google.com> Continue making Ganesh use absolute texture coordinates

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)

Change-Id: Ibac3a540fcb1967ceef571157d41c1937acfadf8
Reviewed-on: https://skia-review.googlesource.com/6977
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
/external/skia/src/image/SkImageShader.cpp
ac04fef619ad3939a25e66bdaef6f6b1e7f5ca50 13-Jan-2017 Herb Derby <herb@google.com> Remove SkFallbackAlloc and SkFixedAlloc.

CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Debug-ASAN;skia.primary:Test-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Debug-MSAN

TBR=reed@google.com

Change-Id: I1000dc9ed8ad65b249798759d9af99f47fc237d2
Reviewed-on: https://skia-review.googlesource.com/6809
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Herb Derby <herb@google.com>
/external/skia/src/image/SkImageShader.cpp
8bc9f7b32867cb46fd7b56c11bf9dfa79a7d246e 03-Jan-2017 Mike Klein <mtklein@chromium.org> Remove SkImageShader -> SkColorShader optimization.

It's turned out to be surprisingly subtle to make the optimization colorspace
correct (it's not today, but with this CL the affected images become colorspace
correct).

Before implementing a colorspace correct color shader, let's check we really need this.

Update: I should say, it's hard to do this optimization and make the resulting color shader be both colorspace correct and "legacy correct". SkColorShader and SkColor4fShader are both colorspace correct. It's just challenging to create one shader that's correct for both modes from an image.

Change-Id: I6593b6348175a10d7cbaaf3b531d7a7e2bf2f578
Reviewed-on: https://skia-review.googlesource.com/6548
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
/external/skia/src/image/SkImageShader.cpp
d37d5d96493604c12cfaa2d64bcbd32c41b01f3b 14-Dec-2016 Mike Klein <mtklein@chromium.org> Revert "Revert "clamp to premul when reading premul sRGB""

This reverts commit 2e018f548d76b0688f9873c683cffc681fec40ec.

Reason for revert: doesn't appear to have been the roll problem.

Original change's description:
> Revert "clamp to premul when reading premul sRGB"
>
> This reverts commit 04e10da8362a0dcabd795a4ad53f617719ca0d20.
>
> Reason for revert: roll?
>
> Change-Id: Id0a8dcd62763bd6eddde120c513ca97e098a4268
> Reviewed-on: https://skia-review.googlesource.com/6022
> Commit-Queue: Mike Klein <mtklein@chromium.org>
> Reviewed-by: Mike Klein <mtklein@chromium.org>
>

TBR=mtklein@chromium.org,reviews@skia.org,brianosman@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Change-Id: I399ca5e728ce6766c6707682c4c6b685681ffdeb
Reviewed-on: https://skia-review.googlesource.com/6025
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
/external/skia/src/image/SkImageShader.cpp
2e018f548d76b0688f9873c683cffc681fec40ec 14-Dec-2016 Mike Klein <mtklein@chromium.org> Revert "clamp to premul when reading premul sRGB"

This reverts commit 04e10da8362a0dcabd795a4ad53f617719ca0d20.

Reason for revert: roll?

Change-Id: Id0a8dcd62763bd6eddde120c513ca97e098a4268
Reviewed-on: https://skia-review.googlesource.com/6022
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
/external/skia/src/image/SkImageShader.cpp
04e10da8362a0dcabd795a4ad53f617719ca0d20 13-Dec-2016 Mike Klein <mtklein@chromium.org> clamp to premul when reading premul sRGB

It's pretty easy to start with sound premultiplied linear floats, pack those to sRGB encoded bytes, then read them back to linear floats and find them not quite premultiplied, with a color channel just a smidge greater than the alpha channel. This can happen basically any time we have different transfer functions for alpha and colors... sRGB being the only one we draw into.

This is an annoying problem with no known good solution. So apply the clamp hammer.

These new calls on SkRasterPipeline should make it impossible to get wrong.

CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD

Change-Id: I4c974f4a7b151f3f684946f1e83d06b1b288fd01
Reviewed-on: https://skia-review.googlesource.com/5945
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
/external/skia/src/image/SkImageShader.cpp
0e18de9ed6af37ba729fea9696344fb8d3a0fbd2 09-Dec-2016 Mike Klein <mtklein@chromium.org> Convert image width and height (used by tiling) to float once.

The storage cost is the same, so might as well do this when building the pipeline instead of when running it. This also avoids the awkward cvtsi2ss instruction that screws with register renaming.

CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD

Change-Id: I1c7d5bad558870256a31e3da969eee5d80fb93a8
Reviewed-on: https://skia-review.googlesource.com/5782
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
/external/skia/src/image/SkImageShader.cpp
b0b17d1e5375a65b8956a8990d63e0d02357fdaf 09-Dec-2016 Mike Klein <mtklein@chromium.org> bicubic, attempt gazillion

- explicitly separate bilinear_ stages in x and y too

BUG=skia:

CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD

Change-Id: Ib7b4f9d26ea6abe9171068e92424479d811ee606
Reviewed-on: https://skia-review.googlesource.com/5636
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
/external/skia/src/image/SkImageShader.cpp
61624f0c716b576706659750d87b6956f4c15722 09-Dec-2016 Brian Osman <brianosman@google.com> Plumb dst color space in many places, rather than "mode"

This is less to type in most cases, and gives us more information
(for things like picture-backed images, where we need to know all
about the destination surface).

Additionally, strip out the plumbing entirely for bitmap sources,
where we don't need to know anything.

BUG=skia:

Change-Id: I4deff6c7c345fcf62eb08b2aff0560adae4313da
Reviewed-on: https://skia-review.googlesource.com/5748
Reviewed-by: Mike Klein <mtklein@chromium.org>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
/external/skia/src/image/SkImageShader.cpp
886cf53447a7f78a80476742d50424a5d45c3108 06-Dec-2016 Mike Klein <mtklein@chromium.org> Refactor bilerp a little.

1) rename to bilerp_xy, for x,y in {n[egative], p[ositive};
2) pull out a save_xy stage to save off the original x,y;
3) also calculate the fractional x,y fx,fy once instead of 4 times.

1) is a pure refactor;
2) adds a stage but otherwise is nothing different;
3) changes images a little bit (fractional parts can vary a bit around powers of two).

This extends naturally to naive bicubic using 16 bicubic_xy stages.

CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD

Change-Id: I666de5c21e978abb4feb6e3225e5b5920ba6c5b9
Reviewed-on: https://skia-review.googlesource.com/5550
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Herb Derby <herb@google.com>
/external/skia/src/image/SkImageShader.cpp
13bf6227c5701903b38b5c21a15c8323dec7734a 06-Dec-2016 Brian Osman <brianosman@google.com> Remove dest surface color mode from bitmap controller

This is already on the bitmap provider - no need to plumb it here.

BUG=skia:

Change-Id: Ie8c5aef8ea443c58d59598aa66e357ad4c212b25
Reviewed-on: https://skia-review.googlesource.com/5621
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
/external/skia/src/image/SkImageShader.cpp
f447deea6289505b4aba4eaba5f339c39afa2e8b 29-Nov-2016 Mike Klein <mtklein@chromium.org> support medium and high quality

Change-Id: I4ed750932cd6c768e21ca9f4a9e7f5f2408cfa4d
Reviewed-on: https://skia-review.googlesource.com/5323
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
/external/skia/src/image/SkImageShader.cpp
7a14734d2cf20e99a24949e9513d823fdfa03b8d 29-Nov-2016 Mike Klein <mtklein@chromium.org> support a8

Most of this is plumbing through the full paint to shaders instead of just the filter quality.

CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD

Change-Id: I6afde07566afa3a4391c24dca7017a9a4f5ec700
Reviewed-on: https://skia-review.googlesource.com/5317
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Reed <reed@google.com>
/external/skia/src/image/SkImageShader.cpp
f7657e9a2a2be2c892ece03fd65d0f85f033bc6d 29-Nov-2016 Mike Klein <mtklein@chromium.org> gather_i8

CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD

Change-Id: Ia7a133f515e29e16700aabc0633c77a703425f41
Reviewed-on: https://skia-review.googlesource.com/5239
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
/external/skia/src/image/SkImageShader.cpp
729b58296282da00fb9c0f92db2e2e8a8347d431 29-Nov-2016 Mike Klein <mtklein@chromium.org> Consistent naming.

For stages that have {r,g,b,a} and {dr,dg,db,da} versions, name the {r,g,b,a} one "foo" and the {dr,dg,db,da} on "foo_d". The {r,g,b,a} registers are the ones most commonly used and fastest, so they get short ordinary names, and the d-registers are less commonly used and sometimes slower, so they get a suffix.

Some stages naturally opearate on all 8 registers (the xfermodes, accumulate). These names for those look fine and aren't ambiguous.

Also, a bit more re-arrangement in _opts.h.

CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD

Change-Id: Ia20029247642798a60a2566e8a26b84ed101dbd0
Reviewed-on: https://skia-review.googlesource.com/5291
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
/external/skia/src/image/SkImageShader.cpp
b04c35214cf4c0e4cdfead28d31722d8da457bf9 28-Nov-2016 Mike Klein <mtklein@chromium.org> Split srgb out of accum stages.

By stashing the scales in the context (i.e. on the stack), we can free up enough registers to really simplify how the bitmap sample stages interact.

Nearest neighbor is straightforward now: just call the appropriate gather_ function, and you're done. The source pixels end up in the source registers. If they're sRGB encoded, follow up with from_srgb_s

To bilerp, we bracket those 1 or 2 gather+from_srgb_s stages with a stage setting up each corner (x += dx, y += dy, save off scale) and a stage that accumulates into the d-registers (load saved scale, dr += scale * r, etc.). When all the samples are accumulated, copy the d-registers into the s-registers.

from_srgb_d and to_srgb are lightly sketched here and will be used in the next CL, where I apply this same factoring to non-bitmap loads and stores. This is a little tricky, because we don't actually have a float->float to_srgb yet.

CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD

Change-Id: I272a1f278f0ea1b29a2f07ac225f753faa8dae81
Reviewed-on: https://skia-review.googlesource.com/5271
Reviewed-by: Mike Klein <mtklein@chromium.org>
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
/external/skia/src/image/SkImageShader.cpp
d5de013643789950aef09a9f081ac65c4c965900 28-Nov-2016 Mike Klein <mtklein@chromium.org> Some simple pipeline refactoring.

This is a batch of little tweaks that all preserve the existing logical behavior:
- rename dst to move_dst_src to parallel move_src_dst
- remove unused swap_src_dst
- move swap_rb up with the other utility stages
- factor out from_8888() to parallel from_565() and from_4444()
- factor out gather() from the accum_* stages

This changes the order of the math in accum_8888[_srgb] ever so slightly, from (scale * C) * (1/255.0f) to scale * (1/255.0f * C). It causes a few pixel diffs, but nothing noticeable. This makes the 8888 bilerp logic consistent with the other formats, which all convert to [0,1] float first before being scaled.

CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD

Change-Id: Id37857b91be3086565169dcc9b1a537574e532aa
Reviewed-on: https://skia-review.googlesource.com/5226
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
/external/skia/src/image/SkImageShader.cpp
6b77f1cf09f6a3c47a42e29dc28087ac9f9cdb25 22-Nov-2016 Mike Klein <mtklein@chromium.org> 4444 and gray 8

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=5147
CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot

Change-Id: Id08804803b2bbeab4fa88538491e99e53d5c2efe
Reviewed-on: https://skia-review.googlesource.com/5147
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
/external/skia/src/image/SkImageShader.cpp
cb5338cadcc7852026a5225f8cf825530f265fa2 22-Nov-2016 Mike Klein <mtklein@chromium.org> Support sRGB 565.

It looks like I'm not going to be able to avoid supporting sRGB G8, I8, 565, 4444, 8888.
(A8 and F16 will always be linear.) This fixes 565, and lays out the rest of the accum_*.

I did a little reorganization to keep things in ascending bit depth, just for sanity.

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=5145
CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot

Change-Id: Ib0508e5a4ee1bab2044a76bcabc367841d634cd2
Reviewed-on: https://skia-review.googlesource.com/5145
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
/external/skia/src/image/SkImageShader.cpp
cb2c12b68f42e26c87534a706735b33fbab5badc 22-Nov-2016 Mike Klein <mtklein@chromium.org> accum_565 and accum_f16

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=5125
CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot

Change-Id: I2e338ae14db0068d9a09e16a0678dd2ee9f97efd
Reviewed-on: https://skia-review.googlesource.com/5125
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Herb Derby <herb@google.com>
/external/skia/src/image/SkImageShader.cpp
46e66a2bf51546a7c3b08625769899b9ead56ec6 21-Nov-2016 Mike Klein <mtklein@chromium.org> bilerp

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=5107

Change-Id: I5c30105501cbdb57896d9ec35737494eabd5998b
Reviewed-on: https://skia-review.googlesource.com/5107
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
/external/skia/src/image/SkImageShader.cpp
f7f883b09df55548936635dd8fd1dc8c415db18c 21-Nov-2016 Mike Klein <mtklein@chromium.org> Rearrange NN sampling to more naturally support bilerp.

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=5105

Change-Id: Ic692b5faf2d33fee31b119ff8d3653118b25b7c2
Reviewed-on: https://skia-review.googlesource.com/5105
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
/external/skia/src/image/SkImageShader.cpp
7992da32f02f90e0ac9ab6914eb31676b502eb71 18-Nov-2016 Brian Osman <brianosman@google.com> Support decoding images to multiple formats, depending on usage

Our codec generator will now preserve any asked-for color space, and
convert the encoded data to that representation. Cacherator now
allows decoding an image to both legacy (nullptr color space), and
color-correct formats. In color-correct mode, we choose the best
decoded format, based on the original properties, and our backend's
capabilities. Preference is given to the native format, when it's
already texturable (sRGB 8888 or F16 linear). Otherwise, we prefer
linear F16, and fall back to sRGB when that's not an option.

Re-land (and fix) of:
https://skia-review.googlesource.com/c/4438/
https://skia-review.googlesource.com/c/4796/

BUG=skia:5907

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4838

Change-Id: I20ff972ffe1c7e6535ddc501e2a8ab8c246e4061
Reviewed-on: https://skia-review.googlesource.com/4838
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Matt Sarett <msarett@google.com>
/external/skia/src/image/SkImageShader.cpp
2e35e8a45c9ff04b88d7a98b381ce56e565d8402 18-Nov-2016 Mike Klein <mtklein@chromium.org> mirror tiling

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=5064
CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot

Change-Id: I9d48ba73e145701245e5ec4f32c8c360da6baddd
Reviewed-on: https://skia-review.googlesource.com/5064
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
/external/skia/src/image/SkImageShader.cpp
c01e7dff5fa013832b808f72ac74d81eaa1cb145 17-Nov-2016 Mike Klein <mtklein@chromium.org> perspective matrix

Nothing too tricky. The path of least resistance was to keep the matrix row-major when in perspective. It should make no difference in the end.

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4983
CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot

Change-Id: I48bb9de0265e7873c465874cc37076a8111f5ea1
Reviewed-on: https://skia-review.googlesource.com/4983
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
/external/skia/src/image/SkImageShader.cpp
b273fc429fff8af5984e1e3dc1068c71dd369d57 17-Nov-2016 Mike Klein <mtklein@chromium.org> repeat tiling

Does the note in repeat() look right?

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4980
CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot

Change-Id: I347023f312ab4643fc387e486192c3ae3357db8b
Reviewed-on: https://skia-review.googlesource.com/4980
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
/external/skia/src/image/SkImageShader.cpp
bf178a7f0f5c156e4bba53923ec4286a72e98816 17-Nov-2016 Mike Klein <mtklein@chromium.org> Replace my confusion with a pointer to the explanation.

NOTRY=true

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4982

Change-Id: I9f1686519ea1dd5b50dce2e6ecef22741468e9d6
Reviewed-on: https://skia-review.googlesource.com/4982
Reviewed-by: Herb Derby <herb@google.com>
/external/skia/src/image/SkImageShader.cpp
514baff8be7f71111aa7bfb9b099a096b31e16ec 17-Nov-2016 Brian Salomon <bsalomon@google.com> Rename GrTextureParams to GrSamplerParams

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4965

Change-Id: I7d52e81c670e92ca96117284f44b274ce3cc3671
Reviewed-on: https://skia-review.googlesource.com/4965
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
/external/skia/src/image/SkImageShader.cpp
7776029b54cc8c21fd6e0c1aa5a3b30e8bb52939 17-Nov-2016 Mike Klein <mtklein@chromium.org> Strength reduce bilerp to nearest neighbor when the matrix is integer translate.

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4967

Change-Id: I986f5695660d198532f5b0b367868ae904de92a1
Reviewed-on: https://skia-review.googlesource.com/4967
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
/external/skia/src/image/SkImageShader.cpp
06a65e2799eaead18f778792801406aff4aec0d9 17-Nov-2016 Mike Klein <mtklein@chromium.org> Support SkImageShader in SkRasterPipeline blitter

First of many CLs, I'm sure.

This handles 8888 or sRGB sources with an affine matrix, clamp/clamp tiling, and nearest-neighbor sampling only.

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4906
CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot

Change-Id: I99f7508852b3d44b6f52f7a0bee29a793af35c48
Reviewed-on: https://skia-review.googlesource.com/4906
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
/external/skia/src/image/SkImageShader.cpp
0bbecb21ab82b3d742c491780bcc2e74be03efed 17-Nov-2016 Brian Salomon <bsalomon@google.com> Rename GrTextureAccess to GrProcessor::TextureSampler.

Renames vars and methods that used the work "access" to refer to this type.

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4931

Change-Id: Ibcf488fbd445c5119fc13d190544cd98981bdbee
Reviewed-on: https://skia-review.googlesource.com/4931
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
/external/skia/src/image/SkImageShader.cpp
57ae6cfe01b811aaead80872ed9e5e1d30f35f81 15-Nov-2016 Brian Osman <brianosman@google.com> Revert "Support decoding images to multiple formats, depending on usage"

This reverts commit c73a1ecbed64652b3d7aa8dc6face9a2205ce830.

Reason for revert: ANGLE and CommandBuffer failures

Original change's description:
> Support decoding images to multiple formats, depending on usage
>
> Our codec generator will now preserve any asked-for color space, and
> convert the encoded data to that representation. Cacherator now
> allows decoding an image to both legacy (nullptr color space), and
> color-correct formats. In color-correct mode, we choose the best
> decoded format, based on the original properties, and our backend's
> capabilities. Preference is given to the native format, when it's
> already texturable (sRGB 8888 or F16 linear). Otherwise, we prefer
> linear F16, and fall back to sRGB when that's not an option.
>
> BUG=skia:5907
>
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4438
>
> Change-Id: I847c243dcfb72d8c0f1f6fc73c09547adea933f0
> Reviewed-on: https://skia-review.googlesource.com/4438
> Reviewed-by: Matt Sarett <msarett@google.com>
> Commit-Queue: Brian Osman <brianosman@google.com>
>

TBR=mtklein@google.com,bsalomon@google.com,msarett@google.com,brianosman@google.com,reed@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Change-Id: I1818f937464573d601f64e5a1f1eb43f5a778f4e
Reviewed-on: https://skia-review.googlesource.com/4832
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
/external/skia/src/image/SkImageShader.cpp
c73a1ecbed64652b3d7aa8dc6face9a2205ce830 14-Nov-2016 Brian Osman <brianosman@google.com> Support decoding images to multiple formats, depending on usage

Our codec generator will now preserve any asked-for color space, and
convert the encoded data to that representation. Cacherator now
allows decoding an image to both legacy (nullptr color space), and
color-correct formats. In color-correct mode, we choose the best
decoded format, based on the original properties, and our backend's
capabilities. Preference is given to the native format, when it's
already texturable (sRGB 8888 or F16 linear). Otherwise, we prefer
linear F16, and fall back to sRGB when that's not an option.

BUG=skia:5907

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4438

Change-Id: I847c243dcfb72d8c0f1f6fc73c09547adea933f0
Reviewed-on: https://skia-review.googlesource.com/4438
Reviewed-by: Matt Sarett <msarett@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
/external/skia/src/image/SkImageShader.cpp
7b8400dad2f82dcc6ed3c7cc1707ebaf85f04840 08-Nov-2016 Brian Osman <brianosman@google.com> Rename SkSourceGammaTreatment to SkDestinationSurfaceColorMode

This is much more explicit about what that type represents (are we in
legacy mode or not), which also makes it suitable for other (upcoming)
usage.

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4529

Change-Id: Iacb397c34e7765f1ca86c0195bc622b2be4d9acf
Reviewed-on: https://skia-review.googlesource.com/4529
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
/external/skia/src/image/SkImageShader.cpp
67b39de70fb5d10caebfc75f418754186e5226c3 07-Nov-2016 Hal Canary <halcanary@google.com> s/SkAutoTUnref/sk_sp/ in src/ part 1

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4480

Change-Id: I7d3219b02ad5094785e1b7635a9482e69aadbc8c
Reviewed-on: https://skia-review.googlesource.com/4480
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
/external/skia/src/image/SkImageShader.cpp
dc87a7d8ea51b05ba2e8d86a2665461ff641b971 17-Oct-2016 fmalita <fmalita@chromium.org> Skip SkBitmapProvider instantiation in SkImageShader::onContextSize

No reason to delegate through a SkBitmapProvider AFAICT. This avoids
some ref churn.

R=reed@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2419333002

Review-Url: https://codereview.chromium.org/2419333002
/external/skia/src/image/SkImageShader.cpp
627778d5ba4fd6f4a4a1238bbf7a1b561469fe21 28-Sep-2016 Mike Reed <reed@google.com> isABitmap is deprecated, use isAImage

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2748

Change-Id: I7006a3231ff0e9e39b187deae550364bc97f49d6
Reviewed-on: https://skia-review.googlesource.com/2748
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
/external/skia/src/image/SkImageShader.cpp
5192475bd8cb98e8e0c1192ab5ece7b8595701d6 12-Sep-2016 brianosman <brianosman@google.com> Two changes:

1. Remove special premul handling from gamut xform code

Alpha is a constant, so the gamut transformation results remain unchanged
(it distributes across the linear matrix multiply).

2. Use SkMatrix44 rather than array of floats

Preserves semantic intention, and makes upcoming code (where we transform
colors on the CPU by that matrix) simpler.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2329553002

Review-Url: https://codereview.chromium.org/2329553002
/external/skia/src/image/SkImageShader.cpp
77320dbabcddf05c0a1489eaf1f496729dc8de0e 07-Sep-2016 brianosman <brianosman@google.com> Add color gamut xform helpers to GrGLSLShaderBuilder

New helper functions inject the necessary shader
function. Texture lookup functions can now insert
the gamut xform at the appropriate place, too.

As written, could be used to transform non-texture
colors (e.g. vertex colors) as well.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2180803005

Review-Url: https://codereview.chromium.org/2180803005
/external/skia/src/image/SkImageShader.cpp
6b2d7acecdd1a1e2b94d6c3b46697c8e9df3dbe5 11-Aug-2016 reed <reed@google.com> fix memory leak, remake Imageshader to use sk_sp

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2239723002

Review-Url: https://codereview.chromium.org/2239723002
/external/skia/src/image/SkImageShader.cpp
a9ca05ca5e604b9ee18e9cce19b059085ca0e22c 11-Aug-2016 reed <reed@google.com> Deserialize pictures with custom image-deserializer

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2187613002

Review-Url: https://codereview.chromium.org/2187613002
/external/skia/src/image/SkImageShader.cpp
4c1abdcd21d65bb34a6b4aea969ef4485e117e67 05-Aug-2016 reed <reed@google.com> use tmp allocator for images in temp shaders

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2222593003

Review-Url: https://codereview.chromium.org/2222593003
/external/skia/src/image/SkImageShader.cpp
1ec04d9553af68b458c8dd6bd18d8c25ebd41d7a 05-Aug-2016 reed <reed@google.com> rename FoceCopyMode to SkCopyPixelMode

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2220603002

Review-Url: https://codereview.chromium.org/2220603002
/external/skia/src/image/SkImageShader.cpp
320a40d7733979703bdf675c31108255e011e34e 02-Aug-2016 reed <reed@google.com> Always return ImageShader, even from SkShader::MakeBitmapShader

Lessons learned

1. ImageShader (correctly) always compresses (typically via PNG) during serialization. This has the surprise results of
- if the image was marked opaque, but has some non-opaque pixels (i.e. bug in blitter or caller), then compressing may "fix" those pixels, making the deserialized version draw differently. bug filed.
- 565 compressess/decompresses to 8888 (at least on Mac), which draws differently (esp. under some filters). bug filed.

2. BitmapShader did not enforce a copy for mutable bitmaps, but ImageShader does (since it creates an Image). Thus the former would see subsequent changes to the pixels after shader creation, while the latter does not, hence the change to the BlitRow test to avoid this modify-after-create pattern. I sure hope this prev. behavior was a bug/undefined-behavior, since this CL changes that.

BUG=skia:5595
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2195893002

Review-Url: https://codereview.chromium.org/2195893002
/external/skia/src/image/SkImageShader.cpp
f1ac18229c3f0f813a128a10111766c991f9dfcf 01-Aug-2016 reed <reed@google.com> implement isABitmap for imageshader, return localmatrix for bitmap's impl

For imageshader, I only return true if the image is explicitly raster-backed. I do not return true for texture, nor for generator (i.e. lazy/picture) backed. Is that ok?

BUG=skia:5592
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2197323002

Review-Url: https://codereview.chromium.org/2197323002
/external/skia/src/image/SkImageShader.cpp
839345d63466a4209a0985654ec033624821fd78 22-Jul-2016 brianosman <brianosman@google.com> Bundle SkShader::asFragmentProcessor arguments in a struct

The signature of this thing keeps changing (and is about to change again).
This just makes maintenance much easier.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2175563003

Review-Url: https://codereview.chromium.org/2175563003
/external/skia/src/image/SkImageShader.cpp
54f30c13fc0a5d89797fc9be5f0fb1050d96b6f4 18-Jul-2016 brianosman <brianosman@google.com> Introduce GrColorSpaceXform, for gamut conversion on textures

GrTextureAccess optionally includes an instance, computed from the src
and dst color spaces. In all common cases (no color space for either src
or dst, or same color space for both), no object is allocated.

This change is orthogonal to my attempts to get color space attached to
render targets - regardless of how we choose to do that, this will give
us the source color space at all points where we are connecting src to
dst.

There are many dangling injection points where I've been inserting
nullptr, but I have a record of all of them. Additionally, there are now
three places (the most common simple paths for bitmap/image rendering)
where things are plumbed enough that I expect to have access to the dst
color space (all marked with XFORMTODO).

In addition to getting the dst color space, I need to inject shader code
and uniform uploading for appendTextureLookup and friends.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2154753003

Review-Url: https://codereview.chromium.org/2154753003
/external/skia/src/image/SkImageShader.cpp
06ca8ec87cf6fab57cadd043a5ac18c4154a4129 09-Jun-2016 bungeman <bungeman@google.com> sk_sp for Ganesh.

Convert use of GrFragmentProcessor, GrGeometryProcessor, and
GrXPFactory to sk_sp. This clarifies ownership and should
reduce reference count churn by moving ownership.

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2041113004

Review-Url: https://codereview.chromium.org/2041113004
/external/skia/src/image/SkImageShader.cpp
982eb7f377a0c771345276558072deb2fcea0d3e 06-Jun-2016 brianosman <brianosman@google.com> Add new SkSourceGammaTreatment enum, used in situations like mipmap construction, where we need to know if we should respect (vs. ignore) the gamma encoding of sRGB tagged images. Plumb that extensively.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2037413002

Review-Url: https://codereview.chromium.org/2037413002
/external/skia/src/image/SkImageShader.cpp
60c9b58b3214b0154c931656e91e39b230e987d8 03-Apr-2016 reed <reed@google.com> change flattenable factory to return sk_sp

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1855733002

Review URL: https://codereview.chromium.org/1855733002
/external/skia/src/image/SkImageShader.cpp
5671c5b9124f17d33bc14b6d347cdc6fe5d19dc8 09-Mar-2016 reed <reed@google.com> SkImage now has makeShader to return sk_sp

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1785473002

Review URL: https://codereview.chromium.org/1785473002
/external/skia/src/image/SkImageShader.cpp
d8829015768a1cf989ffb13e6e632c8f21d339db 04-Mar-2016 reed <reed@google.com> Add support for new bitmapshader context (patchset #5 id:80001 of https://codereview.chromium.org/1757993002/ )"

This reverts commit cd660e1c07371d9cf97824245639b1c0b5ac92fc.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1760123003

Review URL: https://codereview.chromium.org/1760123003
/external/skia/src/image/SkImageShader.cpp
773ceda51ca120b686ba2d1aff1b6d5173143be0 04-Mar-2016 reed <reed@google.com> Enforce 16byte alignment in shader contexts (patchset #1 id:1 of https://codereview.chromium.org/1759653004/ )"

This reverts commit e38bcaf24b00066e167e03a5ac63cf828914d747.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1763973002

TBR=

Review URL: https://codereview.chromium.org/1763973002
/external/skia/src/image/SkImageShader.cpp
e38bcaf24b00066e167e03a5ac63cf828914d747 03-Mar-2016 halcanary <halcanary@google.com> Revert of enforce 16byte alignment in shader contexts (patchset #1 id:1 of https://codereview.chromium.org/1759653004/ )

Reason for revert:

Test-Win8-MSVC-ShuttleB-CPU-AVX2-x86-Debug failed dm:

....
FYI: loaded 23439 distinct uninteresting hashes from 23439 lines
Skipping config gpu: Don't understand 'gpu'.
Skipping config msaa16: Don't understand 'msaa16'.
168400 srcs * 7 sinks + 481 tests == 1179281 tasks
0ns elapsed, 5 active, 1179276 queued, 55MB RAM, 55MB peak
565 gm xfermodes2
565 gm xfermodes
565 gm xfermodeimagefilter
565 gm xfermodes3
565 gm verylarge_picture_image
c:\0\build\slave\workdir\build\skia\src\core\skshader.cpp:108:
fatal error: ""(0 == ((size) & 15))""
step returned non-zero exit code: 3
@@@STEP_FAILURE@@@

Original issue's description:
> enforce 16byte alignment in shader contexts
>
> BUG=skia:
> GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1759653004
>
> Committed: https://skia.googlesource.com/skia/+/d812fb458807245daa812adb7af0733cf5b54d96

TBR=mtklein@google.com,fmalita@chromium.org,herb@google.com,reed@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/1759323002
/external/skia/src/image/SkImageShader.cpp
d812fb458807245daa812adb7af0733cf5b54d96 03-Mar-2016 reed <reed@google.com> enforce 16byte alignment in shader contexts

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1759653004

Review URL: https://codereview.chromium.org/1759653004
/external/skia/src/image/SkImageShader.cpp
cd660e1c07371d9cf97824245639b1c0b5ac92fc 03-Mar-2016 reed <reed@google.com> Revert of add support for new bitmapshader context (patchset #5 id:80001 of https://codereview.chromium.org/1757993002/ )

Reason for revert:
oops, need to update bench to know about the large size needed for the new shader

Original issue's description:
> add support for new bitmapshader context
>
> BUG=skia:
> GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1757993002
>
> Committed: https://skia.googlesource.com/skia/+/19cef56344b5a5f26f802d7be34c44af36b7e797

TBR=herb@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/1763743002
/external/skia/src/image/SkImageShader.cpp
19cef56344b5a5f26f802d7be34c44af36b7e797 03-Mar-2016 reed <reed@google.com> add support for new bitmapshader context

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1757993002

Review URL: https://codereview.chromium.org/1757993002
/external/skia/src/image/SkImageShader.cpp
05a5647efed7fcbcc5bd1efa445a6a3ab445a6c3 02-Mar-2016 reed <reed@google.com> fission bitmapprocstate

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1753903002

CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot

Review URL: https://codereview.chromium.org/1753903002
/external/skia/src/image/SkImageShader.cpp
8d9f2e474ac9d175c28079357b022d31408e2fe4 22-Feb-2016 fmalita <fmalita@chromium.org> Add ContextRec param to SkShader::contextSize()

To facilitate upcoming context selection changes.

R=reed@google.com,mtklein@google.com,herb@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1720933002

Review URL: https://codereview.chromium.org/1720933002
/external/skia/src/image/SkImageShader.cpp
8515377d8f67b7d4d3edfd669fbc727a007ddab3 05-Nov-2015 bsalomon <bsalomon@google.com> Make bicubic FP factories return const FPs

TBR=egdaniel@google.com

Review URL: https://codereview.chromium.org/1413403008
/external/skia/src/image/SkImageShader.cpp
afa95e270c64c9777647b6c58b796750ced57c39 12-Oct-2015 bsalomon <bsalomon@google.com> Remove image usage type enum. Use GrTextureParams instead.

BUG=skia:

Review URL: https://codereview.chromium.org/1404433002
/external/skia/src/image/SkImageShader.cpp
f276ac5c16d39a2b877300d760041f0291bb5ec9 09-Oct-2015 bsalomon <bsalomon@google.com> Move functions from SkGr to SkGrPriv.h

Review URL: https://codereview.chromium.org/1397123002
/external/skia/src/image/SkImageShader.cpp
4a339529612a43871d021877e58698e067d6c4cd 06-Oct-2015 bsalomon <bsalomon@google.com> Bye bye processor data manager.

Review URL: https://codereview.chromium.org/1388113002
/external/skia/src/image/SkImageShader.cpp
856e9d921462136da8562f8f122d42e114cd4710 30-Sep-2015 reed <reed@google.com> Revert[4] of add ImageShader, sharing code with its Bitmap cousin

Now with GrTextureMaker subclasses to handle npot usage.

This reverts commit 476506d070dbc59b158acc1a00c34bff95ab2968.

BUG=skia:

Review URL: https://codereview.chromium.org/1370223002
/external/skia/src/image/SkImageShader.cpp
476506d070dbc59b158acc1a00c34bff95ab2968 28-Sep-2015 reed <reed@google.com> Revert of Revert[2] of add ImageShader, sharing code with its Bitmap cousin (patchset #11 id:200001 of https://codereview.chromium.org/1352293002/ )

Reason for revert:
guess: Need to handle NPOT support in shader case

Original issue's description:
> Revert[2] of add ImageShader, sharing code with its Bitmap cousin
>
> Adjustment from previous land : runtime check for npot-support when texture is requested for tiling.
>
> (patchset #10 id:180001 of https://codereview.chromium.org/1342113002/ )
>
> This reverts commit f2608513626264459a00388537175600b515cae2.
>
> BUG=skia:4365
>
> Committed: https://skia.googlesource.com/skia/+/fe05707c356d2a8c2c69222591d4cafbd456b4e5

TBR=fmalita@chromium.org,robertphillips@google.com,bsalomon@google.com,reed@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:4365

Review URL: https://codereview.chromium.org/1375673002
/external/skia/src/image/SkImageShader.cpp
f1b7a1d82860e106ed7d3e0e876419e65783fb84 28-Sep-2015 bsalomon <bsalomon@google.com> Make skpaint->grpaint flow work for composing draws (verts and atlas)

One side effect is that the SkShader's (or implicit shader's) fragment processor is responsible for the transition from an unpremul paint color to a premul color.

Review URL: https://codereview.chromium.org/1348583002
/external/skia/src/image/SkImageShader.cpp
fe05707c356d2a8c2c69222591d4cafbd456b4e5 25-Sep-2015 reed <reed@google.com> Revert[2] of add ImageShader, sharing code with its Bitmap cousin

Adjustment from previous land : runtime check for npot-support when texture is requested for tiling.

(patchset #10 id:180001 of https://codereview.chromium.org/1342113002/ )

This reverts commit f2608513626264459a00388537175600b515cae2.

BUG=skia:4365

Review URL: https://codereview.chromium.org/1352293002
/external/skia/src/image/SkImageShader.cpp
f2608513626264459a00388537175600b515cae2 18-Sep-2015 tomhudson <tomhudson@google.com> Revert of add ImageShader, sharing code with its Bitmap cousin (patchset #10 id:180001 of https://codereview.chromium.org/1342113002/ )

Reason for revert:
Failing ImageNewShaderTest on both Android (Tegra3 GPU) and iOS bots.

e.g.

/Users/chrome-bot/buildbot/skiabot-ipad4-000/build/slave/workdir/build/skia/tests/
ImageNewShaderTest.cpp:24 0 == memcmp(bm1.getPixels(), bm2.getPixels(), bm1.getSize())
ImageNewShaderTest.cpp:95 0xFFFF0000 == bmt.getColor(0, y)
ImageNewShaderTest.cpp:98 0xFFDEDEDE == bmt.getColor(x, y)
ImageNewShaderTest.cpp:98 0xFFDEDEDE == bmt.getColor(x, y)
ImageNewShaderTest.cpp:98 0xFFDEDEDE == bmt.getColor(x, y)
ImageNewShaderTest.cpp:98 0xFFDEDEDE == bmt.getColor(x, y)
ImageNewShaderTest.cpp:95 0xFFFF0000 == bmt.getColor(0, y)
...

Original issue's description:
> add ImageShader, sharing code with its Bitmap cousin
>
> This is done by having abstracted the BitmapShaderContext to take a BitmapProvider, instead of just a bitmap. This allows us to share all of that code between SkBitmap and SkImage, since both are valid providers.
>
> It also means that we can simplify SkImage_Base to not need a virtual for onNewShader, since ALL images can uniformly be turned into a shader now.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/0b93e3149d2cb30860c51f9f3204ae811d9a97ca

TBR=fmalita@chromium.org,bsalomon@google.com,robertphillips@google.com,reed@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/1355863002
/external/skia/src/image/SkImageShader.cpp
0b93e3149d2cb30860c51f9f3204ae811d9a97ca 18-Sep-2015 reed <reed@google.com> add ImageShader, sharing code with its Bitmap cousin

This is done by having abstracted the BitmapShaderContext to take a BitmapProvider, instead of just a bitmap. This allows us to share all of that code between SkBitmap and SkImage, since both are valid providers.

It also means that we can simplify SkImage_Base to not need a virtual for onNewShader, since ALL images can uniformly be turned into a shader now.

BUG=skia:

Review URL: https://codereview.chromium.org/1342113002
/external/skia/src/image/SkImageShader.cpp