History log of /external/skia/src/gpu/ops/GrAtlasTextOp.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
c4039ea466d39ede0ea44fc7a18f1174f893f11d 01-Mar-2018 Robert Phillips <robertphillips@google.com> Fission GrAtlasGlyphCache in two (take 2)

Reland all the things

This CL splits the old GrAtlasGlyphCache into a GrAtlasGlyphCache and an GrAtlasManager.

The GrAtlasManager itself is split into a rather limited base class (GrRestrictedAtlasManager)
and the all powerful GrAtlasManager. The GrRestrictedAtlasManager is available at op creation
time and provides access to the proxies backing the atlases. The full GrAtlasManager is
only available at flush time and allows instantiation of the proxies and uploading to them.

In the DDL world all of the DDL Contexts will receive a GrRestrictedAtlasManager-version of the
GrAtlasManager in the main thread. This future atlas manager will have had all of its
GrDrawOpAtlases created (but not instantiated) so there should be no race conditions.

TBR=jvanverth@google.com
Change-Id: I05c6cd8d301bf2decca39765e5cae62993d9da04
Reviewed-on: https://skia-review.googlesource.com/111362
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
/external/skia/src/gpu/ops/GrAtlasTextOp.cpp
4bc7011802e411da74eb2d213d6328e42f7dce1c 01-Mar-2018 Robert Phillips <robertphillips@google.com> Separate creation time & flush time behavior in GrDrawOpAtlas (take 3)

This CL clarifies what is going on in the GrDrawOpAtlas and GrAtlasGlyphCache.

For the GrDrawOpAtlas:
At creation time all the allowed pages are created (with their backing GrTextureProxies) but they aren't instantiated.

The GrDrawOpAtlas::instantiate call is called in preFlushCB and allocates any pages known to be needed at the start of flush

GrDrawOpAtlas::addToAtlas is called at flush time and, if a new page is activated, will instantiated it at that time.

During compaction, an unused page will be deInstantiated but its Plots and backing GrTextureProxy will remain alive.

The GrAtlasGlyphCache reflects the changes to the GrDrawOpAtlas
It now carries a GrProxyProvider for when it needs to create an atlas
It passes in a GrResourceProvider* at flush time to allow instantiation.

It does not, yet, allocate that GrDrawOpAtlases it might ever require.

TBR=bsalomon@google.com
Change-Id: I276d339d81e7b709140e082a7b58c5584f73ab70
Reviewed-on: https://skia-review.googlesource.com/111100
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
/external/skia/src/gpu/ops/GrAtlasTextOp.cpp
ba7a16519468dc49ea02d9256ee06f319edf9511 28-Feb-2018 Robert Phillips <robertphillips@google.com> Revert "Revert "Revert "Separate creation time & flush time behavior in GrDrawOpAtlas (take 2)"""

This reverts commit 934c3d0c548d254a0d986963ee751caf0ffcb500.

Reason for revert: Chrome

Original change's description:
> Revert "Revert "Separate creation time & flush time behavior in GrDrawOpAtlas (take 2)""
>
> This reverts commit 84d823a5e2a03b09f7db4964218b9e04e821c878.
>
> Reason for revert: The DFT diffs don't repro on Windows so I'm chalking it up to minor device differences
>
> Original change's description:
> > Revert "Separate creation time & flush time behavior in GrDrawOpAtlas (take 2)"
> >
> > This reverts commit 96165ebeaa36a2aae0eedaf12d81f53d3caf999a.
> >
> > Reason for revert: DFT GMs w/ LCD text are slightly different
> >
> > Original change's description:
> > > Separate creation time & flush time behavior in GrDrawOpAtlas (take 2)
> > >
> > > This CL clarifies what is going on in the GrDrawOpAtlas and GrAtlasGlyphCache.
> > >
> > > For the GrDrawOpAtlas:
> > > At creation time all the allowed pages are created (with their backing GrTextureProxies) but they aren't instantiated.
> > >
> > > The GrDrawOpAtlas::instantiate call is called in preFlushCB and allocates any pages known to be needed at the start of flush
> > >
> > > GrDrawOpAtlas::addToAtlas is called at flush time and, if a new page is activated, will instantiated it at that time.
> > >
> > > During compaction, an unused page will be deInstantiated but its Plots and backing GrTextureProxy will remain alive.
> > >
> > > The GrAtlasGlyphCache reflects the changes to the GrDrawOpAtlas
> > > It now carries a GrProxyProvider for when it needs to create an atlas
> > > It passes in a GrResourceProvider* at flush time to allow instantiation.
> > >
> > > It does not, yet, allocate that GrDrawOpAtlases it might ever require.
> > >
> > > Change-Id: Ie9b64b13e261b01ee14be09fbf7e17841b7781dc
> > > Reviewed-on: https://skia-review.googlesource.com/109749
> > > Reviewed-by: Jim Van Verth <jvanverth@google.com>
> > > Commit-Queue: Robert Phillips <robertphillips@google.com>
> >
> > TBR=jvanverth@google.com,robertphillips@google.com
> >
> > Change-Id: I62efc61c8394477e54d6e79fa2f65180c91a4515
> > No-Presubmit: true
> > No-Tree-Checks: true
> > No-Try: true
> > Reviewed-on: https://skia-review.googlesource.com/110220
> > Reviewed-by: Robert Phillips <robertphillips@google.com>
> > Commit-Queue: Robert Phillips <robertphillips@google.com>
>
> TBR=jvanverth@google.com,robertphillips@google.com
>
> Change-Id: I7c87b4523f9b53285f0de5c2d741a25893522d9a
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Reviewed-on: https://skia-review.googlesource.com/110221
> Reviewed-by: Robert Phillips <robertphillips@google.com>
> Commit-Queue: Robert Phillips <robertphillips@google.com>

TBR=jvanverth@google.com,robertphillips@google.com

# Not skipping CQ checks because original CL landed > 1 day ago.

Change-Id: I7dd73ab0159f38595f21b21eef3becc10aa0934d
Reviewed-on: https://skia-review.googlesource.com/111080
Reviewed-by: Robert Phillips <robertphillips@google.com>
/external/skia/src/gpu/ops/GrAtlasTextOp.cpp
5c56af1790f58e24d7e9a887c73637fee9b97b38 28-Feb-2018 Robert Phillips <robertphillips@google.com> Revert "Fission GrAtlasGlyphCache in two"

This reverts commit acf17904d6286f2a63a5d895541804d0ea1be646.

Reason for revert: Chrome

Original change's description:
> Fission GrAtlasGlyphCache in two
>
> This CL splits the old GrAtlasGlyphCache into a GrAtlasGlyphCache and an GrAtlasManager.
>
> The GrAtlasManager itself is split into a rather limited base class (GrRestrictedAtlasManager)
> and the all powerful GrAtlasManager. The GrRestrictedAtlasManager is available at op creation
> time and provides access to the proxies backing the atlases. The full GrAtlasManager is
> only available at flush time and allows instantiation of the proxies and uploading to them.
>
> In the DDL world all of the DDL Contexts will receive a GrRestrictedAtlasManager-version of the
> GrAtlasManager in the main thread. This future atlas manager will have had all of its
> GrDrawOpAtlases created (but not instantiated) so there should be no race conditions.
>
> Change-Id: I9967d3a4116af50128f390c5039a712b8cd4db08
> Reviewed-on: https://skia-review.googlesource.com/108001
> Commit-Queue: Robert Phillips <robertphillips@google.com>
> Reviewed-by: Jim Van Verth <jvanverth@google.com>

TBR=jvanverth@google.com,bsalomon@google.com,robertphillips@google.com

Change-Id: I7c760ea1a9f041a310b96d552aa1497ee5902cd8
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/111040
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
/external/skia/src/gpu/ops/GrAtlasTextOp.cpp
acf17904d6286f2a63a5d895541804d0ea1be646 27-Feb-2018 Robert Phillips <robertphillips@google.com> Fission GrAtlasGlyphCache in two

This CL splits the old GrAtlasGlyphCache into a GrAtlasGlyphCache and an GrAtlasManager.

The GrAtlasManager itself is split into a rather limited base class (GrRestrictedAtlasManager)
and the all powerful GrAtlasManager. The GrRestrictedAtlasManager is available at op creation
time and provides access to the proxies backing the atlases. The full GrAtlasManager is
only available at flush time and allows instantiation of the proxies and uploading to them.

In the DDL world all of the DDL Contexts will receive a GrRestrictedAtlasManager-version of the
GrAtlasManager in the main thread. This future atlas manager will have had all of its
GrDrawOpAtlases created (but not instantiated) so there should be no race conditions.

Change-Id: I9967d3a4116af50128f390c5039a712b8cd4db08
Reviewed-on: https://skia-review.googlesource.com/108001
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
/external/skia/src/gpu/ops/GrAtlasTextOp.cpp
934c3d0c548d254a0d986963ee751caf0ffcb500 26-Feb-2018 Robert Phillips <robertphillips@google.com> Revert "Revert "Separate creation time & flush time behavior in GrDrawOpAtlas (take 2)""

This reverts commit 84d823a5e2a03b09f7db4964218b9e04e821c878.

Reason for revert: The DFT diffs don't repro on Windows so I'm chalking it up to minor device differences

Original change's description:
> Revert "Separate creation time & flush time behavior in GrDrawOpAtlas (take 2)"
>
> This reverts commit 96165ebeaa36a2aae0eedaf12d81f53d3caf999a.
>
> Reason for revert: DFT GMs w/ LCD text are slightly different
>
> Original change's description:
> > Separate creation time & flush time behavior in GrDrawOpAtlas (take 2)
> >
> > This CL clarifies what is going on in the GrDrawOpAtlas and GrAtlasGlyphCache.
> >
> > For the GrDrawOpAtlas:
> > At creation time all the allowed pages are created (with their backing GrTextureProxies) but they aren't instantiated.
> >
> > The GrDrawOpAtlas::instantiate call is called in preFlushCB and allocates any pages known to be needed at the start of flush
> >
> > GrDrawOpAtlas::addToAtlas is called at flush time and, if a new page is activated, will instantiated it at that time.
> >
> > During compaction, an unused page will be deInstantiated but its Plots and backing GrTextureProxy will remain alive.
> >
> > The GrAtlasGlyphCache reflects the changes to the GrDrawOpAtlas
> > It now carries a GrProxyProvider for when it needs to create an atlas
> > It passes in a GrResourceProvider* at flush time to allow instantiation.
> >
> > It does not, yet, allocate that GrDrawOpAtlases it might ever require.
> >
> > Change-Id: Ie9b64b13e261b01ee14be09fbf7e17841b7781dc
> > Reviewed-on: https://skia-review.googlesource.com/109749
> > Reviewed-by: Jim Van Verth <jvanverth@google.com>
> > Commit-Queue: Robert Phillips <robertphillips@google.com>
>
> TBR=jvanverth@google.com,robertphillips@google.com
>
> Change-Id: I62efc61c8394477e54d6e79fa2f65180c91a4515
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Reviewed-on: https://skia-review.googlesource.com/110220
> Reviewed-by: Robert Phillips <robertphillips@google.com>
> Commit-Queue: Robert Phillips <robertphillips@google.com>

TBR=jvanverth@google.com,robertphillips@google.com

Change-Id: I7c87b4523f9b53285f0de5c2d741a25893522d9a
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/110221
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
/external/skia/src/gpu/ops/GrAtlasTextOp.cpp
84d823a5e2a03b09f7db4964218b9e04e821c878 26-Feb-2018 Robert Phillips <robertphillips@google.com> Revert "Separate creation time & flush time behavior in GrDrawOpAtlas (take 2)"

This reverts commit 96165ebeaa36a2aae0eedaf12d81f53d3caf999a.

Reason for revert: DFT GMs w/ LCD text are slightly different

Original change's description:
> Separate creation time & flush time behavior in GrDrawOpAtlas (take 2)
>
> This CL clarifies what is going on in the GrDrawOpAtlas and GrAtlasGlyphCache.
>
> For the GrDrawOpAtlas:
> At creation time all the allowed pages are created (with their backing GrTextureProxies) but they aren't instantiated.
>
> The GrDrawOpAtlas::instantiate call is called in preFlushCB and allocates any pages known to be needed at the start of flush
>
> GrDrawOpAtlas::addToAtlas is called at flush time and, if a new page is activated, will instantiated it at that time.
>
> During compaction, an unused page will be deInstantiated but its Plots and backing GrTextureProxy will remain alive.
>
> The GrAtlasGlyphCache reflects the changes to the GrDrawOpAtlas
> It now carries a GrProxyProvider for when it needs to create an atlas
> It passes in a GrResourceProvider* at flush time to allow instantiation.
>
> It does not, yet, allocate that GrDrawOpAtlases it might ever require.
>
> Change-Id: Ie9b64b13e261b01ee14be09fbf7e17841b7781dc
> Reviewed-on: https://skia-review.googlesource.com/109749
> Reviewed-by: Jim Van Verth <jvanverth@google.com>
> Commit-Queue: Robert Phillips <robertphillips@google.com>

TBR=jvanverth@google.com,robertphillips@google.com

Change-Id: I62efc61c8394477e54d6e79fa2f65180c91a4515
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/110220
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
/external/skia/src/gpu/ops/GrAtlasTextOp.cpp
96165ebeaa36a2aae0eedaf12d81f53d3caf999a 23-Feb-2018 Robert Phillips <robertphillips@google.com> Separate creation time & flush time behavior in GrDrawOpAtlas (take 2)

This CL clarifies what is going on in the GrDrawOpAtlas and GrAtlasGlyphCache.

For the GrDrawOpAtlas:
At creation time all the allowed pages are created (with their backing GrTextureProxies) but they aren't instantiated.

The GrDrawOpAtlas::instantiate call is called in preFlushCB and allocates any pages known to be needed at the start of flush

GrDrawOpAtlas::addToAtlas is called at flush time and, if a new page is activated, will instantiated it at that time.

During compaction, an unused page will be deInstantiated but its Plots and backing GrTextureProxy will remain alive.

The GrAtlasGlyphCache reflects the changes to the GrDrawOpAtlas
It now carries a GrProxyProvider for when it needs to create an atlas
It passes in a GrResourceProvider* at flush time to allow instantiation.

It does not, yet, allocate that GrDrawOpAtlases it might ever require.

Change-Id: Ie9b64b13e261b01ee14be09fbf7e17841b7781dc
Reviewed-on: https://skia-review.googlesource.com/109749
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
/external/skia/src/gpu/ops/GrAtlasTextOp.cpp
59ddc6d5ee39c026e78bf39361cc788e30ca0afa 21-Feb-2018 Robert Phillips <robertphillips@google.com> Revert "Separate creation time & flush time behavior in GrDrawOpAtlas"

This reverts commit 056c1a821afcfbe606615ad1a7d1b554549d0846.

Reason for revert: GM issues

Original change's description:
> Separate creation time & flush time behavior in GrDrawOpAtlas
>
> This CL clarifies what is going on in the GrDrawOpAtlas and GrAtlasGlyphCache.
>
> For the GrDrawOpAtlas:
> At creation time all the allowed pages are created (with their backing GrTextureProxies) but they aren't instantiated.
>
> The GrDrawOpAtlas::instantiate call is called in preFlushCB and allocates any pages known to be needed at the start of flush
>
> GrDrawOpAtlas::addToAtlas is called at flush time and, if a new page is activated, will instantiated it at that time.
>
> During compaction, an unused page will be deInstantiated but its Plots and backing GrTextureProxy will remain alive.
>
> The GrAtlasGlyphCache reflects the changes to the GrDrawOpAtlas
> It now carries a GrProxyProvider for when it needs to create an atlas
> It passes in a GrResourceProvider* at flush time to allow instantiation.
>
> It does not, yet, allocate that GrDrawOpAtlases it might ever require.
>
> Change-Id: I54909b7a3ba4bec2db5f1218f6a2a3a1636f66d6
> Reviewed-on: https://skia-review.googlesource.com/108520
> Commit-Queue: Robert Phillips <robertphillips@google.com>
> Reviewed-by: Jim Van Verth <jvanverth@google.com>

TBR=jvanverth@google.com,bsalomon@google.com,robertphillips@google.com

Change-Id: I36eafe46209380f533aa84e831d1c9d18844b6be
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/109280
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
/external/skia/src/gpu/ops/GrAtlasTextOp.cpp
056c1a821afcfbe606615ad1a7d1b554549d0846 21-Feb-2018 Robert Phillips <robertphillips@google.com> Separate creation time & flush time behavior in GrDrawOpAtlas

This CL clarifies what is going on in the GrDrawOpAtlas and GrAtlasGlyphCache.

For the GrDrawOpAtlas:
At creation time all the allowed pages are created (with their backing GrTextureProxies) but they aren't instantiated.

The GrDrawOpAtlas::instantiate call is called in preFlushCB and allocates any pages known to be needed at the start of flush

GrDrawOpAtlas::addToAtlas is called at flush time and, if a new page is activated, will instantiated it at that time.

During compaction, an unused page will be deInstantiated but its Plots and backing GrTextureProxy will remain alive.

The GrAtlasGlyphCache reflects the changes to the GrDrawOpAtlas
It now carries a GrProxyProvider for when it needs to create an atlas
It passes in a GrResourceProvider* at flush time to allow instantiation.

It does not, yet, allocate that GrDrawOpAtlases it might ever require.

Change-Id: I54909b7a3ba4bec2db5f1218f6a2a3a1636f66d6
Reviewed-on: https://skia-review.googlesource.com/108520
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
/external/skia/src/gpu/ops/GrAtlasTextOp.cpp
e4fda6c70d8a46bfb323c6921069228d583a285f 21-Feb-2018 Robert Phillips <robertphillips@google.com> Pull non-substantive changes out of omnibus CL

These come from: https://skia-review.googlesource.com/c/skia/+/108001 (Fission GrAtlasGlyphCache in two)

Bug: skia:
Change-Id: Ife15cad018f9ddedec578fcd6aa07da00a77196e
Reviewed-on: https://skia-review.googlesource.com/109026
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
/external/skia/src/gpu/ops/GrAtlasTextOp.cpp
f3690dd416a1ff63868dd886c0c08b7698c5dd1f 20-Feb-2018 Robert Phillips <robertphillips@google.com> Change signature of GrAtlasGlyphCache::getProxies

Split out of https://skia-review.googlesource.com/c/skia/+/108001 (Fission GrAtlasGlyphCache in two)

TBR=bsalomon@google.com
Change-Id: I573730fdeddf178915eb5f5b8cf59a3ab29e0654
Reviewed-on: https://skia-review.googlesource.com/108441
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
/external/skia/src/gpu/ops/GrAtlasTextOp.cpp
7c2192b33635d3e72bb455aeddeac71267ee63df 08-Jan-2018 Brian Salomon <bsalomon@google.com> Make SkMatrixPriv stride mapping functions take separate src and dst strides

Change-Id: Ib7600a7611e3ca78f6a8ca091fa383ceddb751cf
Reviewed-on: https://skia-review.googlesource.com/91402
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
/external/skia/src/gpu/ops/GrAtlasTextOp.cpp
fa3783f17dba971e3204ba950965d9c65eb8711d 05-Jan-2018 Brian Salomon <bsalomon@google.com> Remove public version of SkMatrix::mapPointsWithStride.

Use private version already in SkMatrixPriv.

Change-Id: I6e9546afdf2b072402f9deecec99a6d236e2c7f4
Reviewed-on: https://skia-review.googlesource.com/91400
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
/external/skia/src/gpu/ops/GrAtlasTextOp.cpp
09068256d6a12a365f36f14c9fa7e3d6b221abec 03-Jan-2018 Brian Osman <brianosman@google.com> Remove unused color from all distance field GPs and GrAtlasTextOp

Bug: skia:
Change-Id: I7f2bd68cc4f6ad65660a4415a08777bc71d34ab6
Reviewed-on: https://skia-review.googlesource.com/90522
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
/external/skia/src/gpu/ops/GrAtlasTextOp.cpp
8716b50aae949d5ad3af680c2530e9285f6491cc 27-Dec-2017 Brian Osman <brianosman@google.com> Update per-geo color after simplifying FPs in GrAtlasTextOp

FPs that were elided by analysis (eg SkColorShader) would previously
have their impact on input color ignored when it came time to build
vertex data for the run.

Bug: skia:7297
Change-Id: Id5d741ccf3607c2f34b8b01bb3a2289fa22d5c11
Reviewed-on: https://skia-review.googlesource.com/89640
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
/external/skia/src/gpu/ops/GrAtlasTextOp.cpp
5c6ac64516bb56bbdb5d7aedee1a348acc16e29b 19-Dec-2017 Brian Salomon <bsalomon@google.com> Revert "Revert "move homogenous with stride to matrixpriv""

This reverts commit de71572f650005e36d4fc2fe95fb5677a25ae4f6.

Revert "Revert "Transform vertices for distance field glyphs on CPU.""

This reverts commit f226e66d75374e370f3ae2c6895bc689670e9e18.

Change-Id: I2545afae3beb1d6b14bba056853ed826ae7a4679
Reviewed-on: https://skia-review.googlesource.com/86603
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
/external/skia/src/gpu/ops/GrAtlasTextOp.cpp
f226e66d75374e370f3ae2c6895bc689670e9e18 18-Dec-2017 Greg Daniel <egdaniel@google.com> Revert "Transform vertices for distance field glyphs on CPU."

This reverts commit 0215e39d7e415d0530231df6ad20d5f215c72152.

Reason for revert: break intel 540 and HD2000 intel release bots on gltestthreading gm dftext_blob_pers

Original change's description:
> Transform vertices for distance field glyphs on CPU.
>
> This allows batching of DF draws with different view matrices.
>
> For perspective matrices this means the transformed position vertex
> attribute must have w values. Currently, non-perspective DF draws still
> use 2 component positions, though this could be changed in the future.
> Consequently, perspective draws can batch with other perspective draws
> but not non-perspective draws.
>
> Adds a GM to test batching and reusing the same blobs with both perspective
> and non-perspective matrices.
>
> Change-Id: I0e42c5449ebf3a5a54025dbcdec824d904d5bd9e
> Reviewed-on: https://skia-review.googlesource.com/79900
> Commit-Queue: Brian Salomon <bsalomon@google.com>
> Reviewed-by: Jim Van Verth <jvanverth@google.com>

TBR=jvanverth@google.com,bsalomon@google.com

# Not skipping CQ checks because original CL landed > 1 day ago.

Change-Id: Idc658d9263976d5b5e00a5026c5d6d3c8f4bdc2d
Reviewed-on: https://skia-review.googlesource.com/86560
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
/external/skia/src/gpu/ops/GrAtlasTextOp.cpp
de71572f650005e36d4fc2fe95fb5677a25ae4f6 18-Dec-2017 Greg Daniel <egdaniel@google.com> Revert "move homogenous with stride to matrixpriv"

This reverts commit 2d53d984251a753b9d0fb3adad3be09243cf5c14.

Reason for revert: revert needed to revert previous cl

Original change's description:
> move homogenous with stride to matrixpriv
>
> this appears to be needed only by Skia
> internally, so move it out of the public
> includes.
>
> R=​bsalomon@google.com
> Bug: skia:6898
> Change-Id: Iebdda8f2c9a8fd953dd44bac9b74158d7491c21a
> Reviewed-on: https://skia-review.googlesource.com/85961
> Commit-Queue: Cary Clark <caryclark@skia.org>
> Commit-Queue: Cary Clark <caryclark@google.com>
> Reviewed-by: Brian Salomon <bsalomon@google.com>

TBR=bsalomon@google.com,caryclark@google.com,caryclark@skia.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: skia:6898
Change-Id: Icbd15ee0b524c770a324c490ab0cadf6a045e0d5
Reviewed-on: https://skia-review.googlesource.com/86800
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
/external/skia/src/gpu/ops/GrAtlasTextOp.cpp
2d53d984251a753b9d0fb3adad3be09243cf5c14 15-Dec-2017 Cary Clark <caryclark@skia.org> move homogenous with stride to matrixpriv

this appears to be needed only by Skia
internally, so move it out of the public
includes.

R=bsalomon@google.com
Bug: skia:6898
Change-Id: Iebdda8f2c9a8fd953dd44bac9b74158d7491c21a
Reviewed-on: https://skia-review.googlesource.com/85961
Commit-Queue: Cary Clark <caryclark@skia.org>
Commit-Queue: Cary Clark <caryclark@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
/external/skia/src/gpu/ops/GrAtlasTextOp.cpp
0215e39d7e415d0530231df6ad20d5f215c72152 15-Dec-2017 Brian Salomon <bsalomon@google.com> Transform vertices for distance field glyphs on CPU.

This allows batching of DF draws with different view matrices.

For perspective matrices this means the transformed position vertex
attribute must have w values. Currently, non-perspective DF draws still
use 2 component positions, though this could be changed in the future.
Consequently, perspective draws can batch with other perspective draws
but not non-perspective draws.

Adds a GM to test batching and reusing the same blobs with both perspective
and non-perspective matrices.

Change-Id: I0e42c5449ebf3a5a54025dbcdec824d904d5bd9e
Reviewed-on: https://skia-review.googlesource.com/79900
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
/external/skia/src/gpu/ops/GrAtlasTextOp.cpp
7ca90d2580853ae0658d70fa5b3b3ed2b47feb6b 10-Nov-2017 Brian Osman <brianosman@google.com> Use round rather than floor for snapping text vertex positions

Bug: skia:
Change-Id: I37e93657a692a7cea49029f8694418b827dc19d5
Reviewed-on: https://skia-review.googlesource.com/70181
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
/external/skia/src/gpu/ops/GrAtlasTextOp.cpp
deb53cceea94e2e10d9a0e33912d1c4c1ffbac8a 08-Nov-2017 Brian Salomon <bsalomon@google.com> Make GrTextBlob::VertexRegenerator determine vertex stride from mask format

Change-Id: Ib0910ca563150add6399ba3ca891ee23db3578ec
Reviewed-on: https://skia-review.googlesource.com/68861
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
/external/skia/src/gpu/ops/GrAtlasTextOp.cpp
18923f9a2e83675aecba7561f5095429fb467633 06-Nov-2017 Brian Salomon <bsalomon@google.com> Make GrAtlasTextBlob return to caller when a flush is required during subrun tessellation.

The old code used a helper object in the tessellation code that called flush() on GrAtlasTextOp.
A confusing aspect of this was that the pre-flush vertex data generated for the sub run was copied
to the op's vertex buffer after flush() had already recorded the draw that read the data.

The new code adds a tessellator nested helper class to GrAtlasTextBlob. The helper exits early if
a flush is required, the op performs the flush, and then the helper is invoked again until
tessellation is complete.

This also changes the blob object to use char* instead of unsigned char* for its vertex pointers.

Change-Id: I31bed251435f13b2172e6f5829ba437b882dd44d
Reviewed-on: https://skia-review.googlesource.com/67856
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
/external/skia/src/gpu/ops/GrAtlasTextOp.cpp
56c37143830d8318853663bf2bcd5bc99c960a75 31-Oct-2017 Jim Van Verth <jvanverth@google.com> More attempts at clipping perf.

With the 1.5x allocation strategy, it can take more reallocations
to reach a similar size as before. Increasing this initial size
reduces the number of reallocations.

Also reduce size of Geometry struct slightly.

Bug: skia:7230
Change-Id: Ied3f275b01b07aa300e0b7e1f24abc5fc3853ea7
Reviewed-on: https://skia-review.googlesource.com/64500
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
/external/skia/src/gpu/ops/GrAtlasTextOp.cpp
29b60c9020ce4376df3d31db15d1aa316d640711 31-Oct-2017 Brian Salomon <bsalomon@google.com> Make deferred upload handling and draw recording be virtual interfaces implemented by GrOpFlushState.

The motivation for this is to allow other clients of GrDrawOpAtlas. Making GrMeshDrawOp::Target also be an abstract interface is somewhat incidental to this goal.

Bug: skia:
Change-Id: I0987adfa8a269aa2ca94147e933a2827d734c1cc
Reviewed-on: https://skia-review.googlesource.com/65121
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
/external/skia/src/gpu/ops/GrAtlasTextOp.cpp
1a8f234f616063ee2990c681f269c81ca1575298 26-Oct-2017 Jim Van Verth <jvanverth@google.com> Fix assert in text clipping.

The original code was truncating to int rather than taking the floor.
This would give us the wrong integer value for negative numbers.

Bug: skia:7225
Change-Id: Ief6a01358d936dd3b3e1d36af569274995c2586e
Reviewed-on: https://skia-review.googlesource.com/64064
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
/external/skia/src/gpu/ops/GrAtlasTextOp.cpp
c8a65e3e6ee5505e44ad1e8adcd3189edc61328c 25-Oct-2017 Jim Van Verth <jvanverth@google.com> Some more clipped text optimizations.

* Limit size of text batches to keep inside default vertex buffer size
* Expand geodata allocation by 1.5x rather than 2x
* Don't add text subruns that lie outside the clip rect

Bug: skia:3990
Change-Id: I2b8f8bc5599d14c43e0a98e9633bc51980a7619c
Reviewed-on: https://skia-review.googlesource.com/62861
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
/external/skia/src/gpu/ops/GrAtlasTextOp.cpp
328a33fc7abd9b6de99409a9b6e44c5c372609d5 20-Oct-2017 Jim Van Verth <jvanverth@google.com> Use uint16_t instead of SkIPoint16 when clipping texCoords for text.

The texCoords and texture indices are packed into two uint16_t, so that
should be used instead of SkIPoint16 for clipping. This CL also cleans up
the clipping code a little, and keeps everything in int arithmetic
(since the positions and coords are pixel/texel aligned).

Bug: skia:6990
Change-Id: I9a237f7df32467adb6a56ddeca6352cbd4f8dd6f
Reviewed-on: https://skia-review.googlesource.com/62360
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
/external/skia/src/gpu/ops/GrAtlasTextOp.cpp
b68defab6ded545f03e186392c65b0ed62e7855b 20-Oct-2017 Jim Van Verth <jvanverth@google.com> Fix ASAN issue with clipped text.

Change-Id: I340dfc77afc26cd4c97ca7ec1419e7716e632dca
Reviewed-on: https://skia-review.googlesource.com/62280
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
/external/skia/src/gpu/ops/GrAtlasTextOp.cpp
58c3cce1144f83bc7e4ee5e93931b8721560735b 19-Oct-2017 Jim Van Verth <jvanverth@google.com> Clip text geometrically when possible.

Currently when we clip text we can't batch the clipped text with non-clipped text.
By modifying the quads and texCoords we can produce the same effect, and allow batching.
Includes some minor text code cleanup.

Bug: skia:6990
Change-Id: Ibfd4bc2fdc2d7680071e2abddd4d77fc3017e3d3
Reviewed-on: https://skia-review.googlesource.com/60780
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
/external/skia/src/gpu/ops/GrAtlasTextOp.cpp
d28a79d49549568c3ebac36288ea3965496333f8 16-Oct-2017 Brian Salomon <bsalomon@google.com> Make GrResourceProvider more sk_spified

Change-Id: If191553093031705756358f4551a5b1e96439742
Reviewed-on: https://skia-review.googlesource.com/60000
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
/external/skia/src/gpu/ops/GrAtlasTextOp.cpp
9a725dd9485654155e2e4196c32d372360bcdb61 20-Sep-2017 Brian Osman <brianosman@google.com> Use shader based blending to clamp kPlus mode w/F16

Bug: skia:6173
Change-Id: I21042d484d9a7b3eee04aa3301d9793d00ad6908
Reviewed-on: https://skia-review.googlesource.com/48183
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
/external/skia/src/gpu/ops/GrAtlasTextOp.cpp
eafa64b4018a334daae74492fb33bc54bd0bb6aa 18-Sep-2017 Jim Van Verth <jvanverth@google.com> Revert "Revert "Allow GrDrawOpAtlas to grow as needed""

Bug: skia:3550
Change-Id: I11a3b39ed7470542447f0e46141a26eef7a9bdaf
Reviewed-on: https://skia-review.googlesource.com/47240
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
/external/skia/src/gpu/ops/GrAtlasTextOp.cpp
ad70c41f678771f889449c296a8ab48640742050 15-Sep-2017 Jim Van Verth <jvanverth@google.com> Revert "Allow GrDrawOpAtlas to grow as needed"

This reverts commit 03168b8a62a0d3d14b7a0d14642df4d82203b87c.

Reason for revert: Assert in resetting texture proxies.

Original change's description:
> Allow GrDrawOpAtlas to grow as needed
>
> Bug: skia:3550
> Change-Id: Ib5312c8c06ba8549d90545658df6686c45058255
> Reviewed-on: https://skia-review.googlesource.com/45841
> Commit-Queue: Jim Van Verth <jvanverth@google.com>
> Reviewed-by: Robert Phillips <robertphillips@google.com>

TBR=jvanverth@google.com,robertphillips@google.com

Change-Id: I05e084b4cefa57e558f296d6087d4f03fa16ac81
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:3550
Reviewed-on: https://skia-review.googlesource.com/47140
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
/external/skia/src/gpu/ops/GrAtlasTextOp.cpp
03168b8a62a0d3d14b7a0d14642df4d82203b87c 15-Sep-2017 Jim Van Verth <jvanverth@google.com> Allow GrDrawOpAtlas to grow as needed

Bug: skia:3550
Change-Id: Ib5312c8c06ba8549d90545658df6686c45058255
Reviewed-on: https://skia-review.googlesource.com/45841
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
/external/skia/src/gpu/ops/GrAtlasTextOp.cpp
a950b63b442f1376d022740457b020ada62f6554 12-Sep-2017 Jim Van Verth <jvanverth@google.com> Add support for additional textures in GrDrawOpAtlas

Step two in supporting growable/shrinkable atlases.

Bug: skia:3550
Change-Id: I0cdec2a9f59cc8ced071bfeec2f8ed5a228c4b7a
Reviewed-on: https://skia-review.googlesource.com/43260
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
/external/skia/src/gpu/ops/GrAtlasTextOp.cpp
2bbdcc44c63974f29f3743bb58d929601a3f65c6 07-Sep-2017 Brian Salomon <bsalomon@google.com> Rework GrSamplerParams to be more compact and use its own wrap mode enum.

The main change is to make GrSamplerParams smaller by making its enums have byte-sized underlying types. The rest is cosmetic.

Change-Id: Ib71ea50612d24619a85e463826c6b8dfb9b445e3
Reviewed-on: https://skia-review.googlesource.com/43200
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
/external/skia/src/gpu/ops/GrAtlasTextOp.cpp
bfd18cdd5421b6fac063bd07a96a5b9b1afa6a88 09-Aug-2017 Brian Salomon <bsalomon@google.com> Move GrAppliedClip into GrPipeline

Change-Id: I522c2fd52bea9813baba7cdb3f11b63e7ab96b50
Reviewed-on: https://skia-review.googlesource.com/28861
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
/external/skia/src/gpu/ops/GrAtlasTextOp.cpp
91326c34ee1f1531d62caa153746821b58e6e55d 09-Aug-2017 Brian Salomon <bsalomon@google.com> Move GrProcessorSet into GrPipeline

Change-Id: Ibfa5e1adda3c32140590aa62a31d35654cef79dd
Reviewed-on: https://skia-review.googlesource.com/28187
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
/external/skia/src/gpu/ops/GrAtlasTextOp.cpp
e5b399ee69332e0d68a660d6695d1182a4cb16b1 19-Jul-2017 Brian Salomon <bsalomon@google.com> Remove GrLegacyMeshDrawOp and GrPipelineBuilder

Change-Id: Ib301a0e7d4b4c4f05417d28862017307949748c9
Reviewed-on: https://skia-review.googlesource.com/23584
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
/external/skia/src/gpu/ops/GrAtlasTextOp.cpp
44acb5b09bb87163bc9c010be915b3f33e3157eb 19-Jul-2017 Brian Salomon <bsalomon@google.com> Revert "Revert "Make GrAtlasTextOp a non-legacy GrMeshDrawOp""

This reverts commit e3e9628ecf863f433f26bf6107d6a39ced57fe30.

Adds blendmode_mask_* benchs to blacklist for Chromecast.
Otherwise a clean revert of the revert.

Bug: skia:
Change-Id: I9f64ae55804fa4aad97c1785834281039570c56c
Reviewed-on: https://skia-review.googlesource.com/24409
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
/external/skia/src/gpu/ops/GrAtlasTextOp.cpp
e3e9628ecf863f433f26bf6107d6a39ced57fe30 16-Jul-2017 Brian Salomon <bsalomon@google.com> Revert "Make GrAtlasTextOp a non-legacy GrMeshDrawOp"

This reverts commit 434a58ab5fefcc1b86588c7fce898b1e5bd248ba.

Reason for revert: <INSERT REASONING HERE>

Original change's description:
> Make GrAtlasTextOp a non-legacy GrMeshDrawOp
>
> Change-Id: Ib9eaf149100b0ccecf1c18a755263f2579b8e6f6
> Reviewed-on: https://skia-review.googlesource.com/23482
> Reviewed-by: Jim Van Verth <jvanverth@google.com>
> Commit-Queue: Brian Salomon <bsalomon@google.com>

TBR=jvanverth@google.com,bsalomon@google.com

# Not skipping CQ checks because original CL landed > 1 day ago.

Change-Id: I7fd8503b4e0c297b2cfaf979545354aa58d1f989
Reviewed-on: https://skia-review.googlesource.com/23760
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
/external/skia/src/gpu/ops/GrAtlasTextOp.cpp
434a58ab5fefcc1b86588c7fce898b1e5bd248ba 14-Jul-2017 Brian Salomon <bsalomon@google.com> Make GrAtlasTextOp a non-legacy GrMeshDrawOp

Change-Id: Ib9eaf149100b0ccecf1c18a755263f2579b8e6f6
Reviewed-on: https://skia-review.googlesource.com/23482
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
/external/skia/src/gpu/ops/GrAtlasTextOp.cpp
90e89b366a7dc90111c861ba76c492ce1743a0d1 06-Jul-2017 Jim Van Verth <jvanverth@google.com> Add proper aliased support for SDF text

Previously, when asked to render aliased text with distance fields,
we would get the aliased glyph from the cache and then try to
anti-alias the edge. This change instead grabs the anti-aliased glyph,
then deliberately aliases the edge.

Bug: chromium:707979
Change-Id: I05766af17d7ae58bca27aaffd9e08e5c586e789c
Reviewed-on: https://skia-review.googlesource.com/21728
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
/external/skia/src/gpu/ops/GrAtlasTextOp.cpp
fbcef6eb8abad142daf45418516550f7635b4a52 15-Jun-2017 Robert Phillips <robertphillips@google.com> Clean up GrResourceProvider usage

The only substantive changes are the removal of GrProxy instantiation in:

SkGpuBlurUtils::GaussianBlur
GrSimpleTextureEffect::Make*

Change-Id: I10970609693bd6ff5b3a3c21b41d82642bb277bc
Reviewed-on: https://skia-review.googlesource.com/19965
Reviewed-by: Greg Daniel <egdaniel@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
/external/skia/src/gpu/ops/GrAtlasTextOp.cpp
3809bab7ed344ad140346c38e149dabf10bd525f 13-Jun-2017 Chris Dalton <csmartdalton@google.com> Add GrPrimitiveType::kLinesAdjacency

Converts GrPrimitiveType to an enum class and adds kLinesAdjacency.

Bug: skia:
Change-Id: I3b5e68acfb20476f6c6923968f5a4ac4f73ae12d
Reviewed-on: https://skia-review.googlesource.com/19680
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
/external/skia/src/gpu/ops/GrAtlasTextOp.cpp
7cd974fc7d7d1c197f961136775e188468f02ec9 13-Jun-2017 Ravi Mistry <rmistry@google.com> Revert "Add GrPrimitiveType::kLinesAdjacency"

This reverts commit f7eb015083aba8942031145736251dd32094115d.

Reason for revert: Looks like this is causing build failures:
* https://chromium-swarm.appspot.com/task?id=36baaf4d376bbf10&refresh=10
* https://chromium-swarm.appspot.com/task?id=36baad1f17e93510&refresh=10


Original change's description:
> Add GrPrimitiveType::kLinesAdjacency
>
> Converts GrPrimitiveType to an enum class and adds kLinesAdjacency.
>
> Bug: skia:
> Change-Id: If57d26277182aac1375e8181211ddaf7ea6d1e0a
> Reviewed-on: https://skia-review.googlesource.com/19581
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Chris Dalton <csmartdalton@google.com>

TBR=bsalomon@google.com,csmartdalton@google.com

Change-Id: I37a1c575123b357abd8b9af9eea8871fe199f44b
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:
Reviewed-on: https://skia-review.googlesource.com/19661
Reviewed-by: Ravi Mistry <rmistry@google.com>
Commit-Queue: Ravi Mistry <rmistry@google.com>
/external/skia/src/gpu/ops/GrAtlasTextOp.cpp
f7eb015083aba8942031145736251dd32094115d 13-Jun-2017 Chris Dalton <csmartdalton@google.com> Add GrPrimitiveType::kLinesAdjacency

Converts GrPrimitiveType to an enum class and adds kLinesAdjacency.

Bug: skia:
Change-Id: If57d26277182aac1375e8181211ddaf7ea6d1e0a
Reviewed-on: https://skia-review.googlesource.com/19581
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
/external/skia/src/gpu/ops/GrAtlasTextOp.cpp
bc2cdd154bf5a031ca9d3a530123d9f7a4c0925d 08-Jun-2017 Jim Van Verth <jvanverth@google.com> Fix LCD distance field text color filtering

Distance field text was applying the color filter to determine any gamma
adjustments, but not any effects of the shader as well.

Bug: skia:6669
Change-Id: I73384f68141fb523ea2058e00d0a9fbb2fbc622b
Reviewed-on: https://skia-review.googlesource.com/19049
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
/external/skia/src/gpu/ops/GrAtlasTextOp.cpp
114a3c0b2b26c84b9d0907a99fd8ab7938631246 26-May-2017 Chris Dalton <csmartdalton@google.com> Fix glDrawRangeElements

Adds explicit min/max index value fields to GrMesh. This eliminates the
previous assumption that the index values were within the range
[0..vertexCount-1]. In the pattern case we still maintain this
assumption.

Updates GrMesh to hide its fields and handle its new complexity using a
"helper" interface instead.

Adds a unit test for GrMesh.

Bug: skia:
Change-Id: Ia23de72d510f8827cee56072b727fb70a6e46b8d
Reviewed-on: https://skia-review.googlesource.com/17964
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
/external/skia/src/gpu/ops/GrAtlasTextOp.cpp
bca46e29e9f96999df0b38fb9359e71b73217c94 15-May-2017 Chris Dalton <csmartdalton@google.com> Convert GrMesh back to a class

Specific methods that limit the data to valid configurations are better
than a runtime mega-assert.

Bug: skia:
Change-Id: Ie15f2dc79659e44cfaddd16eb474795b110fda73
Reviewed-on: https://skia-review.googlesource.com/16577
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
/external/skia/src/gpu/ops/GrAtlasTextOp.cpp
ec8f8b064340b030fc4ce10f6cbbc3d6f63b946f 11-May-2017 Brian Osman <brianosman@google.com> Fix GPU text colors when color spaces are involved

1) Only store GrColors in GrTextUtils::Paint. We still store
premul and unpremul versions, but this is slightly clearer.
2) GrTextUtils::Paint also needs info from the render target
context to linearize and transform the color to dst space.

Bug: skia:6605
Change-Id: I6e12c55eafaecd2a090c82b4f56827401305bf3a
Reviewed-on: https://skia-review.googlesource.com/16486
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
/external/skia/src/gpu/ops/GrAtlasTextOp.cpp
ff926502069d0ddafaecc18dc08973762e4befd2 03-May-2017 Chris Dalton <csmartdalton@google.com> Convert GrMesh to a struct

Converts GrMesh to a struct and changes the names/semantics of its
fields to be more inline with their GL counterparts. Also renames the
"instancing" feature to "pattern", to avoid ambiguity with hardware
instancing.

Bug: skia:
Change-Id: Ia0999d4f9c83b5dd31f81b9bf4f36ed9abd26286
Reviewed-on: https://skia-review.googlesource.com/15157
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
/external/skia/src/gpu/ops/GrAtlasTextOp.cpp
d3ccb0a37f0e62c84fdcd6a77b7b15476b04db7a 03-Apr-2017 Brian Salomon <bsalomon@google.com> Move pipeline handling out of GrMeshDrawOp.

The monolithic GrPipeline is moved to a subclass GrLegacyDrawMeshOp.

The pipeline used to record a GrMesh draw in a GrMeshDrawOp must now be passed rather than implicitly using the op's pipeline.

Change-Id: I50d77e4dcc8d91a523fa7566ce43a9a291174706
Reviewed-on: https://skia-review.googlesource.com/11002
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
/external/skia/src/gpu/ops/GrAtlasTextOp.cpp
a811b1200cc0b5e3819c89f62def23ec203d4b5a 30-Mar-2017 Brian Salomon <bsalomon@google.com> Renames of processor analysis-related classes and method.

GrProcesserSet::FragmentProcessorAnalysis->GrProcessorSet::Analysis
GrPipelineAnalysisColor->GrProcessorAnalysisColor
GrPipelineAnalysisCoverage->GrProcessorAnalysisCoverage
GrMeshDrawOp::getFragmentProcessorAnalysisInputs->GrMeshDrawOp::getProcessorAnalysisInputs

Change-Id: I28ad19dfab5f4ac1788c4eacdec5e1af2a701dd0
Reviewed-on: https://skia-review.googlesource.com/10747
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
/external/skia/src/gpu/ops/GrAtlasTextOp.cpp
e7d30484ea8a5677a9403ccd23a9c0961df62ccd 29-Mar-2017 Brian Salomon <bsalomon@google.com> Remove GrPipelineOptimizations computation from GrPipeline::init and nest in GrMeshDrawOp.

Change-Id: I4a702c83857606c1cb050294c408922eef5769ea
Reviewed-on: https://skia-review.googlesource.com/10414
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
/external/skia/src/gpu/ops/GrAtlasTextOp.cpp
c0b642ca48d58416409e555549434066f09692b7 27-Mar-2017 Brian Salomon <bsalomon@google.com> Split GrPipelineInput into separate color and coverage types, the latter of which is just an enum.

Assign names that indicate that they aren't just for the input phase since I plan to use them at the boundary between FPs and XPs as well.

Renamed GrProcOptInfo to GrColorFragmentProcessorAnalysis. This is now only used on the color side and the new name seems clearer to me.

Change GrMeshDrawOp::getFragmentProcessorAnalysisInputs to use the new color/coverage types directly rather than a class that has been reduced to simply bundling them together.

Change-Id: If93bae74c9d590486eecdf63f302418c96deab65
Reviewed-on: https://skia-review.googlesource.com/10161
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
/external/skia/src/gpu/ops/GrAtlasTextOp.cpp
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/gpu/ops/GrAtlasTextOp.cpp
9e50f7b11e9a9d3dc23c924bbb0f0b85c6f1d6cb 06-Mar-2017 Brian Salomon <bsalomon@google.com> Store clipped bounds on GrOp rather than in parallel in GrRenderTargetOpList.

When the op is recorded we update its bounds to incorporate both clipping and aa bloat.

Change-Id: Ia205e058ebeda5fcdb2cd5e9b8a30a4972672b14
Reviewed-on: https://skia-review.googlesource.com/9233
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
/external/skia/src/gpu/ops/GrAtlasTextOp.cpp
32f2818c9d10090efeea62ccc211d48a33322dfb 28-Feb-2017 Robert Phillips <robertphillips@google.com> Clean up/remove unused GrFragmentProcessor-derived ctors

This is the simple (i.e., non-TextureAdjuster) portion of: https://skia-review.googlesource.com/c/8823/ (Remove GrFragmentProcessor-derived class' GrTexture-based ctors)

Change-Id: I8f673ebe922e03c69473c18c166bcf818507c662
Reviewed-on: https://skia-review.googlesource.com/8997
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
/external/skia/src/gpu/ops/GrAtlasTextOp.cpp
5298dc8bf30f580f551d130346c007efaf4b2098 22-Feb-2017 Brian Salomon <bsalomon@google.com> Make GrPipelineAnalysis a nested class of GrProcessorSet.

It is renamed to FragmentProcessorAnalysis since it represents the outputs of the final FPs.

It now stores the analysis results that are subsequently needed rather than exposing GrProcOptInfo.

GrProcOptInfo is now only used on color FPs (not coverage).

Miscellaneous related renamings.


Change-Id: I95c518a7a76df6dc294a9fa67c611f8f653247bc
Reviewed-on: https://skia-review.googlesource.com/8534
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
/external/skia/src/gpu/ops/GrAtlasTextOp.cpp
c6b7146eef808dc7b60a1d5f49eb98f947c0bfe3 14-Feb-2017 Brian Salomon <bsalomon@google.com> Remove component flags from GrPipelineInput.

We don't use these anywhere downstream except to check for opaqueness.

Change-Id: I897137135d69004ed45c0f4c1e7297183f49fc6d
Reviewed-on: https://skia-review.googlesource.com/8402
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
/external/skia/src/gpu/ops/GrAtlasTextOp.cpp
bfd5183b9e039b50fb33441d1f90130b8eced80a 04-Jan-2017 Brian Salomon <bsalomon@google.com> Removes tracking of whether color is ignored by XP.

Removes the feedback to GrDrawOp via GrPipelineOptimizations.

Change-Id: I3cb17cad41779af292a92385fcd5ac23ae5a1ffd
Reviewed-on: https://skia-review.googlesource.com/6561
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
/external/skia/src/gpu/ops/GrAtlasTextOp.cpp
8c852be264d003b2e610c5b8634bc0f81c46bbba 04-Jan-2017 Brian Salomon <bsalomon@google.com> Removing tracking of whether GP/FP coverage calculations are used by XP.

Remove readsCoverage from GrPipelineOptimizations

Remove kNone from GrDefaultGeoProc::Coverage

Remove kIgnoreCoverage from GrXferProcessor::OptFlags

Remove GrPipeline::fIgnoresCoverage

Change-Id: I8f0c9337ee98b9c77af1e9a8a184519ce63822d4
Reviewed-on: https://skia-review.googlesource.com/6552
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
/external/skia/src/gpu/ops/GrAtlasTextOp.cpp
09d994ecb30de2e62a31af2c16307af31fe0e0b3 21-Dec-2016 Brian Salomon <bsalomon@google.com> Misc batch->op cleanup Part 1 of 2

Change-Id: I80f951976558a284e55386e0a368f08bd835d8ca
Reviewed-on: https://skia-review.googlesource.com/6359
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
/external/skia/src/gpu/ops/GrAtlasTextOp.cpp
92aee3d6857386f2b5b8e1148e680a7b58e9b1fc 21-Dec-2016 Brian Salomon <bsalomon@google.com> This renames methods and classes that relate to static analysis of combinations of GrDrawOps and GrPipelines.

Change-Id: I737b901a19d3c67d2ff7f95802fb4df35656beb2
Reviewed-on: https://skia-review.googlesource.com/6199
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
/external/skia/src/gpu/ops/GrAtlasTextOp.cpp
f856fd1ccdd839646159767f6aa9a2f2a1b97f04 16-Dec-2016 Brian Salomon <bsalomon@google.com> Rename GrBatchFontCache->GrAtlasGlyphCache

Change-Id: Ie21e18b631daa24e70df630b9f910213f62bdbdf
Reviewed-on: https://skia-review.googlesource.com/6164
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
/external/skia/src/gpu/ops/GrAtlasTextOp.cpp
895274391db8df7357334aec260edca2e1735626 16-Dec-2016 Brian Salomon <bsalomon@google.com> move src/gpu/batches -> src/gpu/ops

Change-Id: I6410eae41f051ce38bef6f38d670924c3483c325
Reviewed-on: https://skia-review.googlesource.com/6163
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
/external/skia/src/gpu/ops/GrAtlasTextOp.cpp