Commit Graph

8397 Commits

Author SHA1 Message Date
Mike Reed
1f275851ec remove unused/dumb methods from SkRect
Bug: skia:
Change-Id: I407dc94256a347c7a9343b75a5af43c4294891d3
Reviewed-on: https://skia-review.googlesource.com/119360
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Yuqian Li <liyuqian@google.com>
2018-04-11 19:40:57 +00:00
Yuqian Li
ed5e069dbb Revert "Add private fIsBadForDAA bit to SkPath"
This reverts commit 54aefc7410.

Reason for revert: Forget the guard flag. Pixel tests would fail.

Original change's description:
> Add private fIsBadForDAA bit to SkPath
> 
> Bug: chromium:821353
> Change-Id: Ic6585e76df692bb1853d0990d75f0e8d1dee22f4
> Reviewed-on: https://skia-review.googlesource.com/120201
> Commit-Queue: Yuqian Li <liyuqian@google.com>
> Reviewed-by: Mike Reed <reed@google.com>

TBR=caryclark@google.com,liyuqian@google.com,reed@google.com

Change-Id: I2fe7cfcc3a80a51415f72d656da95a894a3240a4
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:821353
Reviewed-on: https://skia-review.googlesource.com/120505
Reviewed-by: Yuqian Li <liyuqian@google.com>
Commit-Queue: Yuqian Li <liyuqian@google.com>
2018-04-11 18:37:29 +00:00
Yuqian Li
54aefc7410 Add private fIsBadForDAA bit to SkPath
Bug: chromium:821353
Change-Id: Ic6585e76df692bb1853d0990d75f0e8d1dee22f4
Reviewed-on: https://skia-review.googlesource.com/120201
Commit-Queue: Yuqian Li <liyuqian@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2018-04-11 18:32:27 +00:00
Florin Malita
8eaf64ae12 Fix SkTCopyOnFirstWrite copy semantics
The implicit SkTCopyOnFirstWrite copy-ctor and assignment operator are
incorrect: fObj must point to the local copy, not to the source copy
(when a copy has been made).

Add corrected explicit copy (and move) ctor + assignment operator.

Also add a get() helper to facilitate rawptr access.

Change-Id: Ie3983e12c04eae4f32c40e3e267618cf02008c20
Reviewed-on: https://skia-review.googlesource.com/120442
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2018-04-11 17:25:07 +00:00
Greg Daniel
044b67d6c7 Remove guard around getBackendTexture/RenderTarget calls
Bug: skia:
Change-Id: Ia9ad987d4af183985724f32b022553af0fcb2b78
Reviewed-on: https://skia-review.googlesource.com/120124
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2018-04-11 13:38:26 +00:00
Robert Phillips
c64ee20e13 Revert "Fix handling of MaskFilter matrices"
This reverts commit 2097fd03ff.

Reason for revert: This is breaking a lot of Windows bots (esp. on the shadermaskfilter_localmatrix)

Original change's description:
> Fix handling of MaskFilter matrices
> 
> 1) extend GrFPArgs to track pre/post local matrices, add helpers for
>    creating pre/post wrapper args
> 
> 2) add a SkShaderBase helper (totalLocalMatrix) to centralize the LM
>    sandwich logic.
> 
> 3) update call sites to use the above
> 
> 4) rename SkMatrixFilter::makeWithLocalMatrix -> makeWithMatrix, to
>    disambiguate vs. SkShader::makeWithLocalMatrix.
> 
> BUG=skia:7744
> 
> Change-Id: Ib2b7b007e6924979b00649dde7c94ef4b34771f1
> Reviewed-on: https://skia-review.googlesource.com/119330
> Commit-Queue: Florin Malita <fmalita@chromium.org>
> Reviewed-by: Brian Salomon <bsalomon@google.com>

TBR=bsalomon@google.com,robertphillips@google.com,fmalita@chromium.org,reed@google.com

Change-Id: I918dbb95bf00b3122e6699b84566ec82dbb5fc5c
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:7744
Reviewed-on: https://skia-review.googlesource.com/120340
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2018-04-11 12:38:47 +00:00
Florin Malita
2097fd03ff Fix handling of MaskFilter matrices
1) extend GrFPArgs to track pre/post local matrices, add helpers for
   creating pre/post wrapper args

2) add a SkShaderBase helper (totalLocalMatrix) to centralize the LM
   sandwich logic.

3) update call sites to use the above

4) rename SkMatrixFilter::makeWithLocalMatrix -> makeWithMatrix, to
   disambiguate vs. SkShader::makeWithLocalMatrix.

BUG=skia:7744

Change-Id: Ib2b7b007e6924979b00649dde7c94ef4b34771f1
Reviewed-on: https://skia-review.googlesource.com/119330
Commit-Queue: Florin Malita <fmalita@chromium.org>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2018-04-11 11:25:06 +00:00
Greg Daniel
323fbcf6d1 Move GrBackendRenderTarget over to new system of getting backed infos
Bug: skia:
Change-Id: I3927390894715e8424b3d0240dad3ee6cd03dc38
Reviewed-on: https://skia-review.googlesource.com/120181
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2018-04-11 11:14:58 +00:00
Greg Daniel
ff7fa50f0c Add ctor to GrVkImageInfo.
Adds an additional ctor so clients who used brace initialization on the
struct don't break.

Bug: skia:
Change-Id: I78ebdbe8242147e48859f2234265365141fe81b1
Reviewed-on: https://skia-review.googlesource.com/120185
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2018-04-10 17:41:32 +00:00
Greg Daniel
52e16d9848 Update getBackendInfo calls on GrBackendTexture to support VkImageLayout better.
The big api level change here is that the getBackendInfo calls now return by value
instead of a pointer. These changes are being made in support of Vulkan so that
the client can update the VkImageLayout on the GrBackendTexture and have that
update get reflected in our internal tracking of the image. This is done by storing
a ref counted GrVkImageLayout object on the GrBackendTexture and the GrVkImage.

Bug: skia:
Change-Id: I8c6158fd3a66eb61fef97ebf09ea5364bca3f1ae
Reviewed-on: https://skia-review.googlesource.com/119101
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2018-04-10 14:20:22 +00:00
Cary Clark
5c71518847 fix path to rect when missing close verb
R=brianosman@google.com,robertphillips@google.com
TBR=reed@google.com
Bug: 824145,skia:7792
Change-Id: I24f121cfa7d437c95b94bd917d3c4888a10c519e
Reviewed-on: https://skia-review.googlesource.com/119569
Commit-Queue: Cary Clark <caryclark@skia.org>
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2018-04-10 11:53:53 +00:00
Brian Salomon
a7b8e74eb6 Reland "Remove deprectated GrContext::MakeGL overloads that take raw ptr"
This reverts commit 87f852d1a3.

Reason for revert: Google3 updated

Original change's description:
> Revert "Remove deprectated GrContext::MakeGL overloads that take raw ptr"
> 
> This reverts commit efa60a1d13.
> 
> Reason for revert: Surprise! Google3 still uses these.
> 
> Original change's description:
> > Remove deprectated GrContext::MakeGL overloads that take raw ptr
> > 
> > Change-Id: Iae12bf61fa1e2f5d4b13b98198cddb7482656fdf
> > Reviewed-on: https://skia-review.googlesource.com/118660
> > Reviewed-by: Greg Daniel <egdaniel@google.com>
> > Commit-Queue: Brian Salomon <bsalomon@google.com>
> 
> TBR=egdaniel@google.com,bsalomon@google.com
> 
> Change-Id: Ica09d80e1563924a286a4a6aa8a1f93cb5ca9c5d
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Reviewed-on: https://skia-review.googlesource.com/119001
> Reviewed-by: Robert Phillips <robertphillips@google.com>
> Commit-Queue: Robert Phillips <robertphillips@google.com>

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

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

Change-Id: I87c12253f759a97cb4da3ff35dc1ec846513caef
Reviewed-on: https://skia-review.googlesource.com/119921
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2018-04-09 17:14:46 +00:00
Brian Osman
0cfd547b46 Remove SK_SUPPORT_LEGACY_BLURMASKFILTER
Change-Id: I1d99d9bb83d8a612d1c1fd298c1f7ed706a2277b
Reviewed-on: https://skia-review.googlesource.com/118990
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2018-04-06 15:02:03 +00:00
Brian Salomon
c1b9c1005f Add versions of MakeGL() that don't require include GrGLInterface.h in order to use the GrGLMakeNativeInterface
Change-Id: I77bd3c683c284aecc50a3552bbf1fb901f1bcc44
Reviewed-on: https://skia-review.googlesource.com/119002
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2018-04-06 14:44:53 +00:00
Greg Daniel
9ca3065ca5 Don't use GrPixelConfig value as proxy for valid on GrBackendSurface.
Bug: skia:
Change-Id: I275b74b915240c9918bb2efa6a9708341f3bb189
Reviewed-on: https://skia-review.googlesource.com/119004
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2018-04-06 14:42:23 +00:00
Cary Clark
99885411ae remove SK_IGNORE_TO_STRING
SK_IGNORE_TO_STRING is not defined anywhere.
The same effect can be had by using a modern
linker.

Removing it simplifies bookmaker and makes
our includes easier to understand.

R=robertphillips@google.com
TBR=reed@google.com

Bug: skia:6898
Change-Id: Ib716f5ef1b42a7fbda0df43ece212d1b7c40289f
Reviewed-on: https://skia-review.googlesource.com/118963
Reviewed-by: Robert Phillips <robertphillips@google.com>
Reviewed-by: Cary Clark <caryclark@skia.org>
Commit-Queue: Cary Clark <caryclark@skia.org>
2018-04-05 23:52:23 +00:00
Robert Phillips
87f852d1a3 Revert "Remove deprectated GrContext::MakeGL overloads that take raw ptr"
This reverts commit efa60a1d13.

Reason for revert: Surprise! Google3 still uses these.

Original change's description:
> Remove deprectated GrContext::MakeGL overloads that take raw ptr
> 
> Change-Id: Iae12bf61fa1e2f5d4b13b98198cddb7482656fdf
> Reviewed-on: https://skia-review.googlesource.com/118660
> Reviewed-by: Greg Daniel <egdaniel@google.com>
> Commit-Queue: Brian Salomon <bsalomon@google.com>

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

Change-Id: Ica09d80e1563924a286a4a6aa8a1f93cb5ca9c5d
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/119001
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2018-04-05 19:37:49 +00:00
Brian Salomon
efa60a1d13 Remove deprectated GrContext::MakeGL overloads that take raw ptr
Change-Id: Iae12bf61fa1e2f5d4b13b98198cddb7482656fdf
Reviewed-on: https://skia-review.googlesource.com/118660
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2018-04-05 17:23:22 +00:00
Brian Salomon
f932a6328a Add maxTextureSize()/maxRenderTargetSize() to GrContext
This provides an alternative way to access these values which will allow removal GrContext::caps() from public API

Change-Id: I53d3c00563da8847e1fc14aea9750dc9fd90d1e5
Reviewed-on: https://skia-review.googlesource.com/118962
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2018-04-05 17:21:32 +00:00
Robert Phillips
8caf85f9f4 Add GrBackendTexture/RenderTarget accessors to SkSurface
Change-Id: I63477fd4b8d48dc50af72736f0f8df566cd96d4a
Reviewed-on: https://skia-review.googlesource.com/85220
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Cary Clark <caryclark@skia.org>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2018-04-05 14:21:07 +00:00
Robert Phillips
91749c8252 Add SK_API to SkSurfaceCharacterization
TBR=bsalomon@google.com
Change-Id: I111a6e3eef798d6ad904c17eb536bb64c3801bb2
Reviewed-on: https://skia-review.googlesource.com/118594
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2018-04-05 14:20:12 +00:00
Cary Clark
ba75aee952 tweak SkImage documentation
- fix syntactic nits
- add how to check result of getBackendTexture
- add example

R=robertphillips@google.com
TBR=reed@google.com
Docs-Preview: https://skia.org/?cl=118590
Bug: skia:6898
Change-Id: I60cfcf448dc2f201ecc34d33ead707d0c3e3b86b
Reviewed-on: https://skia-review.googlesource.com/118590
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Cary Clark <caryclark@skia.org>
2018-04-05 12:47:52 +00:00
Robert Phillips
c5509955b9 Add GrBackendTexture accessor to SkImage (take 2)
This makes accessing the GPU resource behind an SkImage a lot more typesafe. Additionally, the GrBackendObject is being deprecated so this is the path forward.

I split the controversial stuff off into https://skia-review.googlesource.com/c/skia/+/118575 (Add SkImage::setLayout call).

Change-Id: I297e72770e8fb360fac7c7cd74f050ae759ae133
Reviewed-on: https://skia-review.googlesource.com/118571
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2018-04-04 20:34:28 +00:00
Mike Reed
1fda0247a7 move SkIPoint16 to private header
Bug: skia:
Change-Id: Ib8045ac7cc24a44c4b70e73153c6faf098730b63
Reviewed-on: https://skia-review.googlesource.com/118721
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Cary Clark <caryclark@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2018-04-04 20:16:58 +00:00
Robert Phillips
c1267c6051 Add SkSurfaceCharacterization operator== && !=
TBR=bsalomon@google.com
Change-Id: Ic58849dcb3be1f00431f897af328f6f3c3f00d75
Reviewed-on: https://skia-review.googlesource.com/118340
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2018-04-04 15:41:48 +00:00
Robert Phillips
be77a02a67 Hide GrPixelConfig in SkSurfaceCharacterization
TBR=bsalomon@google.com
Change-Id: Ifc38d0ca2b18128d27c187f789461fea62d1edae
Reviewed-on: https://skia-review.googlesource.com/117440
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2018-04-04 13:32:01 +00:00
Khushal
42f8bc40fd Add API for SkTextBlob serialization into caller's memory.
R=reed@google.com

Change-Id: Iaeb67504aabf0dc036e81fa23c1a3c949b72b2b9
Reviewed-on: https://skia-review.googlesource.com/114262
Commit-Queue: Khusal Sagar <khushalsagar@chromium.org>
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2018-04-04 01:25:11 +00:00
Cary Clark
3a494f6eb4 fix SkImageInfo indentation
The presence of global functions threw off the
indentation of themselves and everything following.

TBR=reed@google.com
Bug: skia:6898
Change-Id: I3c6c21b62922f42157085fa7aaa19deb9560f16d
Reviewed-on: https://skia-review.googlesource.com/118380
Reviewed-by: Cary Clark <caryclark@skia.org>
Commit-Queue: Cary Clark <caryclark@skia.org>
2018-04-03 19:59:21 +00:00
Cary Clark
ecf548bf8a update autogenerated includes
SkImageInfo.h is generated for the first time.
Minor corrections in the other includes.

TBR=reed@google.com
Bug: skia:6898
Change-Id: I9a16753e234ace3bfbcc5b58381347fd0e63b1c8
Reviewed-on: https://skia-review.googlesource.com/118168
Commit-Queue: Cary Clark <caryclark@skia.org>
Reviewed-by: Cary Clark <caryclark@skia.org>
2018-04-03 16:33:10 +00:00
Mike Klein
22c1f373b7 Revert "implement SkTDArray with std::vector"
This reverts commit 80e1d56e19.

Reason for revert: SkRTree.cpp:57 asserting, probably this?

Original change's description:
> implement SkTDArray with std::vector
> 
> It's always worth seeing if we can get away with replacing custom data
> structures with ones from the standard library.  Our array-like types
> are all good candidates to replace with std::vector, and it's especially
> easy to start with SkTDArray.  Unlike the others, it has no preallocated
> S-variant, which is tricky to make work with std::vector.
> 
> SkTDArray also has known integer overflow bugs, leading to out of range
> writes.  It'd be _very_ nice to ditch it for a better standard vector.
> 
> I removed a bunch of unused or little-used methods, and updated a couple
> call sites that used methods in unusual or dangerous ways.
> 
> I've had to tweak GrAAConvexTessellator and SkBaseShadowTessellator just
> a touch to work within the constraints of an std::vector impl.  It's not
> intended to be legal to write to the reserved-but-not-counted elements
> of an SkTDArray, but you can get away with it in our old implementation.
> This version now uses setCount() to actually reserve and count them, and
> should have the same performance and use the same amount of memory.
> 
> The PathMeasure_explosion GM I added recently to reproduce this bug now
> draws without triggering undefined behavior or ASAN errors, provided you
> have ~40GB of RAM.
> 
> Bug: skia:7674
> 
> Change-Id: I4eacae18a976cd4a6d218102f8ca5d973d4d7d0e
> Reviewed-on: https://skia-review.googlesource.com/115982
> Reviewed-by: Brian Osman <brianosman@google.com>
> Commit-Queue: Mike Klein <mtklein@chromium.org>

TBR=mtklein@chromium.org,bungeman@google.com,brianosman@google.com

Change-Id: Icffd9f22fe89746a970ff598e1a05c774960bc0e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:7674
Reviewed-on: https://skia-review.googlesource.com/117901
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2018-04-02 20:37:52 +00:00
Mike Klein
224edf0a3c Revert "In older STLs, std::vector::insert() returns void."
This reverts commit 7dd8ee9c60.

Reason for revert: going to revert primary CL

Original change's description:
> In older STLs, std::vector::insert() returns void.
> 
> CQ_INCLUDE_TRYBOTS=skia.primary:Build-Debian9-Clang-arm-Debug-Chromebook_GLES
> 
> Change-Id: I7bd15ecc7122965db16fbb51e51ee166b05dce2f
> Reviewed-on: https://skia-review.googlesource.com/117722
> Reviewed-by: Brian Osman <brianosman@google.com>
> Commit-Queue: Mike Klein <mtklein@chromium.org>

TBR=mtklein@chromium.org,brianosman@google.com

Change-Id: I9c126edbef74293d8e7a2b7e2365e464ba367ae5
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Cq-Include-Trybots: skia.primary:Build-Debian9-Clang-arm-Debug-Chromebook_GLES
Reviewed-on: https://skia-review.googlesource.com/117900
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2018-04-02 20:37:13 +00:00
Mike Klein
7dd8ee9c60 In older STLs, std::vector::insert() returns void.
CQ_INCLUDE_TRYBOTS=skia.primary:Build-Debian9-Clang-arm-Debug-Chromebook_GLES

Change-Id: I7bd15ecc7122965db16fbb51e51ee166b05dce2f
Reviewed-on: https://skia-review.googlesource.com/117722
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2018-04-02 17:32:42 +00:00
Chris Dalton
7c7ff031a5 ccpr: Normalize homogeneous coords with frexp/ldexp
Hopefully increases cubic accuracy by manipulating exponents
instead of calling normalize().

Bug: skia:
Change-Id: I8d3596e858a2fbb6650c158753133c5a2e01e166
Reviewed-on: https://skia-review.googlesource.com/117009
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2018-04-02 16:05:05 +00:00
Mike Klein
80e1d56e19 implement SkTDArray with std::vector
It's always worth seeing if we can get away with replacing custom data
structures with ones from the standard library.  Our array-like types
are all good candidates to replace with std::vector, and it's especially
easy to start with SkTDArray.  Unlike the others, it has no preallocated
S-variant, which is tricky to make work with std::vector.

SkTDArray also has known integer overflow bugs, leading to out of range
writes.  It'd be _very_ nice to ditch it for a better standard vector.

I removed a bunch of unused or little-used methods, and updated a couple
call sites that used methods in unusual or dangerous ways.

I've had to tweak GrAAConvexTessellator and SkBaseShadowTessellator just
a touch to work within the constraints of an std::vector impl.  It's not
intended to be legal to write to the reserved-but-not-counted elements
of an SkTDArray, but you can get away with it in our old implementation.
This version now uses setCount() to actually reserve and count them, and
should have the same performance and use the same amount of memory.

The PathMeasure_explosion GM I added recently to reproduce this bug now
draws without triggering undefined behavior or ASAN errors, provided you
have ~40GB of RAM.

Bug: skia:7674

Change-Id: I4eacae18a976cd4a6d218102f8ca5d973d4d7d0e
Reviewed-on: https://skia-review.googlesource.com/115982
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2018-04-02 15:38:05 +00:00
Cary Clark
9b8b0cee51 fix SkRRect fuzzer assert
fuzzer bug triggers an assert in SkRRect::isValid because
on radius is zero and the other, while small, is not.

The radii are normally both set to zero if one is zero
in SkRRect::setRectRadii. However, subsequently scaleRadii
may set one to zero when normalizing the pair.

Move the clamping code out of setRectRadii so it can be
called from scaleRadii as well.

R=reed@google.com
Bug: skia:
Change-Id: Ib9a86da7212567b2f4b83d99a41cf9ba2c30e9b9
Reviewed-on: https://skia-review.googlesource.com/115701
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Cary Clark <caryclark@google.com>
2018-04-02 15:15:25 +00:00
Robert Phillips
6b6fcc7862 Add SkSurface factory that takes an SkSurfaceCharacterization
TBR=bsalomon@google.com
Change-Id: Ie38123dc7c35005bfe8500bf4a16e0d16bbf36bd
Reviewed-on: https://skia-review.googlesource.com/117236
Reviewed-by: Robert Phillips <robertphillips@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2018-03-30 19:12:26 +00:00
Chris Dalton
df1681ec06 Revert "vulkan: Blacklist MSAA path renderer on Qualcomm drivers"
This reverts commit 0361657402.

Reason for revert: Caused more bad golds than it fixed

Original change's description:
> vulkan: Blacklist MSAA path renderer on Qualcomm drivers
> 
> Bug: skia:7758
> Change-Id: I96b5c259352949d67f5e0263a7164cdce54b3269
> Reviewed-on: https://skia-review.googlesource.com/117152
> Reviewed-by: Derek Sollenberger <djsollen@google.com>
> Reviewed-by: Greg Daniel <egdaniel@google.com>
> Commit-Queue: Chris Dalton <csmartdalton@google.com>

TBR=djsollen@google.com,egdaniel@google.com,csmartdalton@google.com

Change-Id: I80714a4cba7d495bc6ad89616b6c5f6eb8492bdb
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:7758
Reviewed-on: https://skia-review.googlesource.com/117340
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2018-03-29 23:17:07 +00:00
Robert Phillips
155dd716f1 Add SK_API to GrContextThreadSafeProxy
TBR=egdaniel@google.com
TBR=bsalomon@google.com
Change-Id: I7dabb22ae391c6ec124bdfc65c4120de4193352e
Reviewed-on: https://skia-review.googlesource.com/117235
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2018-03-29 22:00:05 +00:00
Chris Dalton
0361657402 vulkan: Blacklist MSAA path renderer on Qualcomm drivers
Bug: skia:7758
Change-Id: I96b5c259352949d67f5e0263a7164cdce54b3269
Reviewed-on: https://skia-review.googlesource.com/117152
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2018-03-29 19:05:46 +00:00
Derek Sollenberger
cf6da8c0f2 Dump additional details about the gpu resources.
GpuResources now dump optional string values that describe the type and
category of the resource.  The type provides a description of the kind
of resource it is (e.g. texture, buffer object, stencil, etc.) and the
category describes what the resource is currently tasked to do (e.g.
path masks, images, scratch, etc.)

This CL also refactors the dump logic in an attempt to consolidate
duplicated code into GrGpuResources.cpp.

Bug: b/74435803
Change-Id: I83cae825f41e6450a21398ab3ecea349c7c61c15
Reviewed-on: https://skia-review.googlesource.com/115989
Commit-Queue: Derek Sollenberger <djsollen@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2018-03-29 18:08:15 +00:00
Kaloyan Donev
560d283295 Fixing build with SK_IGNORE_TO_STRING defined.
Change-Id: Id7238e427e490338d1f610255774c2069cfd4879
Reviewed-on: https://skia-review.googlesource.com/117060
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2018-03-29 13:42:45 +00:00
Robert Phillips
6eba063b63 Add new GrResourceCache::purgeUnlockedResources variant
TBR=bsalomon@google.com
Change-Id: I05bef1f8a271474db878a046cc1f6ac7b60a15f1
Reviewed-on: https://skia-review.googlesource.com/116801
Reviewed-by: Greg Daniel <egdaniel@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2018-03-28 18:56:14 +00:00
Kaloyan Donev
dfffb39ca8 Fixed warnings for casting large type to smaller one.
Change-Id: Ib3e2661d0383bf154bc9178dac070dfd910a393c
Reviewed-on: https://skia-review.googlesource.com/115200
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2018-03-27 13:28:24 +00:00
Brian Osman
094fba9cd6 Add SkColorSpaceXform_skcms
Currently only enabled in Skia dev builds. Has some diffs
in GMs and images, but (hopefully) nothing major.

Bug: skia:
Change-Id: Ifdf5d2804e59f555a3dc84f657e438dd589a2751
Reviewed-on: https://skia-review.googlesource.com/116520
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
2018-03-27 13:15:24 +00:00
Brian Salomon
34df0d385b Hide GrBackendTexture/RenderTarget constructors that take a GrPixelConfig
Make GrGLTexture use the version that takes GrMipMapped.

Bug: skia:6718
Change-Id: Id3e801bcb5e781938e610bdea75bd92498117935
Reviewed-on: https://skia-review.googlesource.com/116221
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2018-03-23 23:17:01 +00:00
Brian Salomon
032aaae5be Remove legacy GrContext factories function and supporting code/types.
Change-Id: I437a4a0a58bf70ea1b8b0659b099a2af2bfa64fe
Reviewed-on: https://skia-review.googlesource.com/116197
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2018-03-23 21:12:50 +00:00
Brian Salomon
a6a3df7d64 Move GrPixelConfig to GrTypesPriv
BUG= skia:6718

Change-Id: I254a5d289c1216e580b8f7fe613236c090d0e901
Reviewed-on: https://skia-review.googlesource.com/116196
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2018-03-23 21:05:10 +00:00
Brian Salomon
49edccd775 Remove legacy SkSurface::MakeFromBackendRenderTarget that does not take SkColorType
Bug: skia:6718
Change-Id: Iefec5be49bf7450426c5ddb668f5525876f8ec2d
Reviewed-on: https://skia-review.googlesource.com/116194
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2018-03-23 20:44:50 +00:00
Brian Salomon
f4a00e4b4a Move a bunch of internal types from GrTypes to GrTypesPriv
Change-Id: I9fe1297ae7d185957c76681305bcf22cc972e53b
Reviewed-on: https://skia-review.googlesource.com/116189
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2018-03-23 20:36:00 +00:00
Herb Derby
7956b59ba5 Remove SkAutoGlyphCache decls that happen to work
...and fix sample code.

Change-Id: I673770125064f8451e3d88ec4929a68409935ad1
Reviewed-on: https://skia-review.googlesource.com/115995
Reviewed-by: Ben Wagner <bungeman@google.com>
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2018-03-22 23:47:19 +00:00
Mike Klein
539ebb8f75 rm SkTDArray::{Deleter,release()}
These are unused, and would make it conceptually tricky to replace
with something like std::vector that does not have a .release() method.

Change-Id: Iaee913d6a513d078989166c6e97097eeec0100ba
Reviewed-on: https://skia-review.googlesource.com/115921
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2018-03-22 17:17:24 +00:00
Brian Salomon
5fba7ad39a Support GL_RGB textures and render targets.
Bug= skia:7533

Change-Id: Iba30e90dbf2574368b773bb5cf2ebd5219559717
Reviewed-on: https://skia-review.googlesource.com/108188
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2018-03-22 14:49:44 +00:00
Brian Salomon
42409c2efa Remove deprecated version of SkImage::MakeFromAdoptedTexture that does not take SkColorType
Bug: skia:6718
Change-Id: Ia2762855078bcbad8faf2f538f0afc64913e5e9b
Reviewed-on: https://skia-review.googlesource.com/115364
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2018-03-21 19:08:59 +00:00
Mike Reed
ca37f32c70 change canvas-state to just record clip bounds
This reflects the long-standing restrictions in our clients (webview) and the reality of the gpu target which just uses scissors.

It also removes one of the few callers of canvas::clipRegion, which we'd like to remove.

Bug: skia:
Change-Id: Ie3b3c6e8752f82cddef256f753000f9da4bdbdee
Reviewed-on: https://skia-review.googlesource.com/113260
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2018-03-21 18:13:20 +00:00
Hal Canary
10450134e8 GrGLExtensions: remove unneded unique_ptr
Change-Id: Ic949b186fbb4f503d2edbea7033ad242c12ad101
Reviewed-on: https://skia-review.googlesource.com/115640
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
2018-03-21 17:57:08 +00:00
Robert Phillips
abf7b763e2 Add texture-specific flags for External & Rectangle textures
For DDLs, Ganesh needs to know about External & Rectangle textures prior to instantiation (or PromiseImage fulfillment). These new flags allow the client to provide this information when the lazyProxy is created.

The new texture flags work analogously to the render target flags:
   GrSurface and GrSurfaceProxy get a new set of accessors for the new flags
   The new flags are set appropriately on a GrGLTexture when it is created
   For wrapped texture proxies the flags are just copied off of the GrSurface
   For lazy-proxies/promise-images the flags are computed up front and passed to the proxy
   The GrSurfaceProxy/GrSurface flags equivalence is verified in GrSurfaceProxy::assign

Change-Id: Ia8e1998aa0a36ce4481bfd9e56be21f990e83148
Reviewed-on: https://skia-review.googlesource.com/114985
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2018-03-21 17:04:18 +00:00
Brian Salomon
bfd2749048 Remove deprecated SkImage::MakeFromTexture variants that don't take SkColorType
Bug: skia:6718

Change-Id: I3b23ddb903fab5c41b7e6b1811a78cc38ba64590
Reviewed-on: https://skia-review.googlesource.com/115086
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2018-03-20 19:58:00 +00:00
Cary Clark
3b68882918 remove imageinfo flatten altogether
If SkImageInfo flatten and unflatten aren't referenced outside
of one test, perhaps they can be removed altogether.

R=reed@google.com

Bug: skia:6898
Change-Id: Ia6f82b66d4496a628ad95c386d1865793f3e31a9
Reviewed-on: https://skia-review.googlesource.com/115074
Commit-Queue: Cary Clark <caryclark@skia.org>
Reviewed-by: Mike Reed <reed@google.com>
2018-03-19 21:28:46 +00:00
Brian Salomon
19eaf2dbe7 Revert "Revert "New read pixels implementation that is simpler but does all conversions on CPU.""
This reverts commit be5947c2f3.

Bug: skia:
Change-Id: I06dc15b31042d7827511d0ac2a7f4262c3f09622
Reviewed-on: https://skia-review.googlesource.com/115079
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2018-03-19 21:17:15 +00:00
Brian Salomon
56dc04bdc1 Remove deprecated versions of YUV texture SkImage factories
Bug: skia:6718
Change-Id: I856b64192e1b797f60b833dd58014e058ea351b3
Reviewed-on: https://skia-review.googlesource.com/115124
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2018-03-19 21:04:55 +00:00
Eric Karl
af7700265b Allow SkTraceMemoryDump to exclude wrapped objects
Allow SkTraceMemoryDump to exclude wrapped objects from dumps. This
helps avoid duplicate dumping when Skia is wrapping an external object
which is already dumped externally.

Bug: 795358
Change-Id: Icbda96b564c81b958d40f74693280ac7d5ba7332
Reviewed-on: https://skia-review.googlesource.com/114681
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Eric Karl <ericrk@chromium.org>
2018-03-19 20:37:25 +00:00
Brian Salomon
53706774a7 Remove SkSurface::MakeFromBackendTexture variant that doesn't take SkColorType
Bug: skia:6718
Change-Id: I8289c54ca9a5f89d10dc0b0dfe750d4fd1da0b64
Reviewed-on: https://skia-review.googlesource.com/115102
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2018-03-19 20:12:05 +00:00
Brian Salomon
cb88470d82 Remove SkSurface::MakeFromBackendTextureAsRenderTarget variant that doesn't take SkColorType
Bug: skia:6718
Change-Id: I3fabe2050394bfbd8ad2fa600d07323838308ae5
Reviewed-on: https://skia-review.googlesource.com/115087
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2018-03-19 18:43:25 +00:00
Brian Salomon
be5947c2f3 Revert "New read pixels implementation that is simpler but does all conversions on CPU."
This reverts commit c9a642edf2.

Reason for revert: 1010102 gms broke

Original change's description:
> New read pixels implementation that is simpler but does all conversions on CPU.
> 
> Change-Id: Ia548cd24a8544b35a233311706faf48de353b7cf
> Reviewed-on: https://skia-review.googlesource.com/109902
> Commit-Queue: Brian Salomon <bsalomon@google.com>
> Reviewed-by: Robert Phillips <robertphillips@google.com>

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

Change-Id: I7724a6eef79885ba2a32c1ac871e5b2a9a3c0c12
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/115140
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2018-03-19 18:42:36 +00:00
Brian Salomon
c9a642edf2 New read pixels implementation that is simpler but does all conversions on CPU.
Change-Id: Ia548cd24a8544b35a233311706faf48de353b7cf
Reviewed-on: https://skia-review.googlesource.com/109902
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2018-03-19 17:19:45 +00:00
Robert Phillips
fe0253f8bb Alter GrSurface/GrSurfaceProxy flags to prepare for GrTexture/GrTextureProxy -specific flags
This CL:
  moves GrRenderTarget::fFlags to GrSurface::fSurfaceFlags
  adds a GrInternalSurfaceFlags type and uses it for GrSurfaceProxy::fSurfaceFlags

  The goal of this is to provide a location where GrTexture/GrTextureProxy-specific flags
(i.e., isExternal & isRectangle) can be stored.

Change-Id: I8df7b79036a6853dd378ff6cf10d4b37c60dd511
Reviewed-on: https://skia-review.googlesource.com/114796
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2018-03-19 12:21:05 +00:00
Herb Derby
76d69b44bb Apply filterTextFlags so the fonts are the same.
In order to apply filterTextFlags correctly, teach
TrackLayerDevice how to process save and restore layers.

At this point, I don't see any other traffic than the
cache warming traffic.

This code has a performance between 82% and 105% of just
drawing the picture.

BUG=skia:7515

Change-Id: I44736be46884f18b6d120d4b5ca582f34dbdff0f
Reviewed-on: https://skia-review.googlesource.com/114641
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2018-03-16 20:28:36 +00:00
Greg Daniel
7278d68cac Add DoneProc to Promise Images
This proc will notify the client when we will no longer call fulfill on
their promise image so that can delete any meta data they needed to store
to be able to complete the fulfill requests.

Bug: skia:
Change-Id: Ife1e6845f221c31ce1ae2c0d2ba5e4c8f0203b74
Reviewed-on: https://skia-review.googlesource.com/114092
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2018-03-16 19:27:46 +00:00
Robert Phillips
6ceaafa7b9 Handle GrContext creation failure in DDL
TBR=bsalomon@google.com
Change-Id: Ib34448a60cb127ef89bcb0b1f85d07abc91af582
Reviewed-on: https://skia-review.googlesource.com/114569
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2018-03-15 21:25:16 +00:00
Brian Salomon
6a426c1d72 Cleanup SkImage YUV texture factories.
Remove unused GrBackendObject variants.

Add versions without redundant size param.

Make this work with GrBackendTextures that weren't created with a GrPixelConfig.

Change-Id: Ic1bbf5f2817cebab938b4f31000126a6ab5c44d5
Reviewed-on: https://skia-review.googlesource.com/114460
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2018-03-15 19:41:26 +00:00
Mike Reed
9c2916e0c7 drawTextRSXform should not apply matrix to shader
drawTextRSXform should draw the same as drawTextOnPath (as regards shaders)

Bug: b/69904791
Change-Id: I393dd8fd7a5bdc6a018b1ca33592b208c7141868
Reviewed-on: https://skia-review.googlesource.com/114468
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Herb Derby <herb@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
2018-03-15 18:14:16 +00:00
Robert Phillips
7f4419696b Make CreateBackendFormatFromTexture shared code
TBR=bsalomon@google.com
Change-Id: I19e6e6c8dc32ba584738545d443de092e4987a5a
Reviewed-on: https://skia-review.googlesource.com/114374
Reviewed-by: Robert Phillips <robertphillips@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2018-03-15 16:51:36 +00:00
Robert Phillips
38eb740b94 Remove SK_RASTER_RECORDER_IMPLEMENTATION
TBR=bsalomon@google.com
Change-Id: I9608ce5ce2b9d38c5e356d8428a8ff05df6ccda7
Reviewed-on: https://skia-review.googlesource.com/114490
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2018-03-15 12:55:06 +00:00
Greg Daniel
057627f6f1 Make sure we set correct GrPixelConfig in promise images
Land just the Promise image fixes from, https://skia-review.googlesource.com/c/skia/+/114261

Bug: skia:
Change-Id: I917cf2c1f5c6e51f9d7f1d3ec4526db551e89d84
Reviewed-on: https://skia-review.googlesource.com/114472
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2018-03-15 12:22:16 +00:00
Greg Daniel
56008aac75 Add SkColorType getter on SkImage.
Bug: skia:
Change-Id: I131fb5f7faf3f54e0eb6d31b800d224e6d4963ce
Reviewed-on: https://skia-review.googlesource.com/114464
Reviewed-by: Cary Clark <caryclark@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2018-03-14 20:10:49 +00:00
Greg Daniel
8a3f55c659 Revert "Improve handling of GrPixelConfig in GrBackendTex/RT ctors"
This reverts commit 7d2b16ad13.

Reason for revert: Maybe breaking chrome?

Original change's description:
> Improve handling of GrPixelConfig in GrBackendTex/RT ctors
> 
> Make sure that no client facing code was relying on what we set as the
> default value for fConfig by making in kUnkown.
> 
> Bug: skia:
> Change-Id: Ie52ff08ba8deeacc16fe06eb0dd0c7292b2edf91
> Reviewed-on: https://skia-review.googlesource.com/114261
> Reviewed-by: Robert Phillips <robertphillips@google.com>
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Greg Daniel <egdaniel@google.com>

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

Change-Id: I91e190d72407f9c4bee93a031a557f740bb49b66
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:
Reviewed-on: https://skia-review.googlesource.com/114423
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2018-03-14 17:32:41 +00:00
Mike Reed
1be1f8d097 hide SkBlurMaskFilter and SkBlurQuality
SK_SUPPORT_LEGACY_BLURMASKFILTER

Bug: skia:
Change-Id: Ic3e27e08e6e3cd2ffc1cd13b044e197bebc96236
Reviewed-on: https://skia-review.googlesource.com/113940
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
2018-03-14 17:27:36 +00:00
Chris Dalton
c2d0dd658b Add a shader cap for incomplete short int precision
Bug: skia:
Change-Id: Iac36eb763e687f6ecc3acbd4afced66f95596be2
Reviewed-on: https://skia-review.googlesource.com/109003
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2018-03-14 16:35:50 +00:00
Robert Phillips
e4aae34f4f Provide promise images when rendering SKPs w/ DDL
Change-Id: I8014693eefb3c7811a1fc0354ee8441c90c97328
Reviewed-on: https://skia-review.googlesource.com/113213
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2018-03-14 15:00:12 +00:00
Greg Daniel
7d2b16ad13 Improve handling of GrPixelConfig in GrBackendTex/RT ctors
Make sure that no client facing code was relying on what we set as the
default value for fConfig by making in kUnkown.

Bug: skia:
Change-Id: Ie52ff08ba8deeacc16fe06eb0dd0c7292b2edf91
Reviewed-on: https://skia-review.googlesource.com/114261
Reviewed-by: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2018-03-14 14:12:42 +00:00
Cary Clark
7eddfb8656 consolidate SaveLayerFlag internal references
Add a third define in SkCanvasPriv to complement
SkCanvas::kDontClipToLayer_PrivateSaveLayerFlag and
SkCanvas::kDontClipToLayer_Legacy_SaveLayerFlag.

SkCanvas::kDontClipToLayer_PrivateSaveLayerFlag exists only to define
SkCanvas::kDontClipToLayer_Legacy_SaveLayerFlag and
SkCanvasPriv::kDontClipToLayer_SaveLayerFlag.

SkCanvas::kDontClipToLayer_Legacy_SaveLayerFlag is used only by
Android framework.

SkCanvasPriv::kDontClipToLayer_SaveLayerFlag is used internally.

Note that changes to CanvasStateTest.cpp inside
SK_SUPPORT_LEGACY_CLIPTOLAYERFLAG aren't testable by existing
skiabots; it requires building an Android framework aware version
of dm. CanvasStateTest.cpp may have bit-rotted.

R=reed@google.com,scroggo@google.com
Bug: skia:6454,skia:7690
Change-Id: I74f2a54636fae89a5a88a7e13f1baba49d3e2115
Reviewed-on: https://skia-review.googlesource.com/112401
Commit-Queue: Cary Clark <caryclark@skia.org>
Reviewed-by: Leon Scroggins <scroggo@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2018-03-13 19:36:12 +00:00
Brian Osman
98242a847a Revert "Reland "Add SkColorSpaceXform_skcms""
This reverts commit 57337d90a5.

Reason for revert: More investigation needed...

Original change's description:
> Reland "Add SkColorSpaceXform_skcms"
> 
> This reverts commit 8103ecae7b.
> 
> Reason for revert: Investigated the 565 diffs, they appear to be *more* correct.
> 
> Original change's description:
> > Revert "Add SkColorSpaceXform_skcms"
> > 
> > This reverts commit 67f62b1a61.
> > 
> > Reason for revert: I want to investigate the image/colorimage gold diffs. May be correct, but some of them are pretty large.
> > 
> > Original change's description:
> > > Add SkColorSpaceXform_skcms
> > > 
> > > Currently only enabled in Skia dev builds. Passes all unit
> > > tests. Has some GM differences, but nothing major.
> > > 
> > > Bug: skia:
> > > Change-Id: Ib87f8cff44649c731e829f063ccef448d67d1910
> > > Reviewed-on: https://skia-review.googlesource.com/112520
> > > Commit-Queue: Brian Osman <brianosman@google.com>
> > > Reviewed-by: Mike Klein <mtklein@google.com>
> > 
> > TBR=mtklein@google.com,brianosman@google.com,reed@google.com
> > 
> > Change-Id: Ib4d7174f5c2700d6f742f488e740e5a6c87ac7a8
> > No-Presubmit: true
> > No-Tree-Checks: true
> > No-Try: true
> > Bug: skia:
> > Reviewed-on: https://skia-review.googlesource.com/113880
> > Reviewed-by: Brian Osman <brianosman@google.com>
> > Commit-Queue: Brian Osman <brianosman@google.com>
> 
> TBR=mtklein@google.com,brianosman@google.com,reed@google.com
> 
> Change-Id: I6501ff55349a6aeed62bb64afc47f789e8cc3460
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: skia:
> Reviewed-on: https://skia-review.googlesource.com/114040
> Reviewed-by: Brian Osman <brianosman@google.com>
> Commit-Queue: Brian Osman <brianosman@google.com>

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

Change-Id: Ic9ee46032762a8b5fc96314c460ce01708673472
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:
Reviewed-on: https://skia-review.googlesource.com/114100
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2018-03-13 14:35:33 +00:00
Brian Osman
57337d90a5 Reland "Add SkColorSpaceXform_skcms"
This reverts commit 8103ecae7b.

Reason for revert: Investigated the 565 diffs, they appear to be *more* correct.

Original change's description:
> Revert "Add SkColorSpaceXform_skcms"
> 
> This reverts commit 67f62b1a61.
> 
> Reason for revert: I want to investigate the image/colorimage gold diffs. May be correct, but some of them are pretty large.
> 
> Original change's description:
> > Add SkColorSpaceXform_skcms
> > 
> > Currently only enabled in Skia dev builds. Passes all unit
> > tests. Has some GM differences, but nothing major.
> > 
> > Bug: skia:
> > Change-Id: Ib87f8cff44649c731e829f063ccef448d67d1910
> > Reviewed-on: https://skia-review.googlesource.com/112520
> > Commit-Queue: Brian Osman <brianosman@google.com>
> > Reviewed-by: Mike Klein <mtklein@google.com>
> 
> TBR=mtklein@google.com,brianosman@google.com,reed@google.com
> 
> Change-Id: Ib4d7174f5c2700d6f742f488e740e5a6c87ac7a8
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: skia:
> Reviewed-on: https://skia-review.googlesource.com/113880
> Reviewed-by: Brian Osman <brianosman@google.com>
> Commit-Queue: Brian Osman <brianosman@google.com>

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

Change-Id: I6501ff55349a6aeed62bb64afc47f789e8cc3460
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:
Reviewed-on: https://skia-review.googlesource.com/114040
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2018-03-13 14:00:43 +00:00
Brian Osman
8103ecae7b Revert "Add SkColorSpaceXform_skcms"
This reverts commit 67f62b1a61.

Reason for revert: I want to investigate the image/colorimage gold diffs. May be correct, but some of them are pretty large.

Original change's description:
> Add SkColorSpaceXform_skcms
> 
> Currently only enabled in Skia dev builds. Passes all unit
> tests. Has some GM differences, but nothing major.
> 
> Bug: skia:
> Change-Id: Ib87f8cff44649c731e829f063ccef448d67d1910
> Reviewed-on: https://skia-review.googlesource.com/112520
> Commit-Queue: Brian Osman <brianosman@google.com>
> Reviewed-by: Mike Klein <mtklein@google.com>

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

Change-Id: Ib4d7174f5c2700d6f742f488e740e5a6c87ac7a8
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:
Reviewed-on: https://skia-review.googlesource.com/113880
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2018-03-12 21:07:29 +00:00
Brian Osman
67f62b1a61 Add SkColorSpaceXform_skcms
Currently only enabled in Skia dev builds. Passes all unit
tests. Has some GM differences, but nothing major.

Bug: skia:
Change-Id: Ib87f8cff44649c731e829f063ccef448d67d1910
Reviewed-on: https://skia-review.googlesource.com/112520
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
2018-03-12 20:26:19 +00:00
Mike Reed
18e7556371 move blur impl into core
Ever since we added drawShadow to the public api, blurs have necessarily
part of the core. This CL just formalizes that.

This should also allow us to have builds that exclude all of /effects (for code size)
and still be valid.

Will follow-up with a change to deprecate SkBlurMaskFilter and SkBlurQuality (both no longer needed).

Bug: skia:
Change-Id: Ifbbd8b47a30a0386d215726b67bcf1e8b84fb8f5
Reviewed-on: https://skia-review.googlesource.com/113713
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2018-03-12 18:48:18 +00:00
Cary Clark
60ca8675e5 make paint flatten unflatten private
SkPaint flatten and unflatten rely
on interfaces that are not public,
SkReadBuffer and SkWriteBuffer.

R=reed@google.com
Bug: skia:6172
Change-Id: I487af9f8931c78daf763c51d9e0d3ff8ff440b22
Reviewed-on: https://skia-review.googlesource.com/112561
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Cary Clark <caryclark@skia.org>
2018-03-12 15:53:48 +00:00
Cary Clark
689d02d4b4 harden pathmeasure and fix empty case
change int to unsigned (just make it uniform,
part of it was already unsigned)

change path by pointer to path by value
since it will be copied on write; fixes bug
where path changes from underneath measure

Allow empty paths to still initialize measure state.
This fixes the GM failure from the earlier check-in attempt
in CL 113269.

R=reed@google.com
Bug: skia:7675
Change-Id: I6296bbf75296ead826e54662b025277dd226e2b8
Reviewed-on: https://skia-review.googlesource.com/113246
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2018-03-12 14:26:28 +00:00
Florin Malita
827af667bb Extend SkTrimPathEffect semantics
Add support for multiple contours, and an explicit "inverted" mode.

Bug: skia:
Change-Id: Iafadbbe9d4692f2467a4ef8585f7fcd9cee9566a
Reviewed-on: https://skia-review.googlesource.com/113270
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2018-03-12 14:07:28 +00:00
Mike Reed
8e03f6930f remove unused ConvertRadiusToSigma from SkBlurMaskFilter
Bug: skia:
Change-Id: I1726f22fc40ad61b1b0485bcda6d383614da1fdb
Reviewed-on: https://skia-review.googlesource.com/113463
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2018-03-12 13:26:48 +00:00
Brian Osman
46fe9c7f6c Remove SkDumpCanvas
Bug: skia:
Change-Id: I045e84f154d0294121a4c1966dcf47c0d7e52934
Reviewed-on: https://skia-review.googlesource.com/113464
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
2018-03-10 03:29:54 +00:00
Brian Salomon
0c51eeada6 Add GrMockRenderTarget and mock backend render targets
Change-Id: I59673dd7d0015471b7a81aa0c237c67043892454
Reviewed-on: https://skia-review.googlesource.com/113427
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2018-03-09 22:32:14 +00:00
Cary Clark
0fc41da384 Revert "start hardening pathmeasure"
This reverts commit 429a540673.

Reason for revert: <failed dm>

Original change's description:
> start hardening pathmeasure
> 
> change int to unsigned (just make it uniform,
> part of it was already unsigned)
> 
> change path by pointer to path by value
> since it will be copied on write; fixes bug
> where path changes from underneath measure
> 
> R=​reed@google.com
> 
> Bug: skia:7675
> Change-Id: Ibfcfd4379cabd86b4ef4ea9ff6788d5ccb137ac1
> Reviewed-on: https://skia-review.googlesource.com/113269
> Commit-Queue: Cary Clark <caryclark@skia.org>
> Reviewed-by: Mike Reed <reed@google.com>

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

Change-Id: I35f89c135233b166b09ce8887a967da3b1407db8
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:7675
Reviewed-on: https://skia-review.googlesource.com/113480
Reviewed-by: Cary Clark <caryclark@google.com>
Commit-Queue: Cary Clark <caryclark@google.com>
2018-03-09 20:50:31 +00:00
Cary Clark
429a540673 start hardening pathmeasure
change int to unsigned (just make it uniform,
part of it was already unsigned)

change path by pointer to path by value
since it will be copied on write; fixes bug
where path changes from underneath measure

R=reed@google.com

Bug: skia:7675
Change-Id: Ibfcfd4379cabd86b4ef4ea9ff6788d5ccb137ac1
Reviewed-on: https://skia-review.googlesource.com/113269
Commit-Queue: Cary Clark <caryclark@skia.org>
Reviewed-by: Mike Reed <reed@google.com>
2018-03-09 20:20:20 +00:00
Brian Osman
37886ce8cd Shim to enforce that canvas virtuals are overridden
Change-Id: Iad70d449bbc43195baefd70d20c41996a8435e6e
Reviewed-on: https://skia-review.googlesource.com/113320
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Brian Osman <brianosman@google.com>
2018-03-09 19:43:41 +00:00
Herb Derby
d49665513b Remove TLS glyph cache calls.
Change-Id: Iafeb02d395cac81e8fe6d74c989a37607503919c
Reviewed-on: https://skia-review.googlesource.com/113208
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2018-03-09 19:32:22 +00:00
Greg Daniel
7946c0cf78 Fix no gpu build
Bug: skia:
Change-Id: I9d357ec2e03ce83a7de70b61eab5cdd386724d22
Reviewed-on: https://skia-review.googlesource.com/113426
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2018-03-09 19:12:34 +00:00
Robert Phillips
11b30519f0 Enable opList-based DDLs
This relies on https://skia-review.googlesource.com/c/skia/+/113268 (https://skia-review.googlesource.com/c/skia/+/113268) landing first

Change-Id: I473d71adbf1e5a9f1ec9ff2d0060920e98429e03
Reviewed-on: https://skia-review.googlesource.com/113169
Reviewed-by: Greg Daniel <egdaniel@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2018-03-09 18:22:02 +00:00
Greg Daniel
a8d9211bc3 Add promise images for deferred instantiation of wrapped gpu textures
This will allow a client to make an SkImage that "wraps" a gpu texture,
however the client does need to supply the actual gpu texture at Image
creation time. Instead it is retrieve at flush time via a callback.

Bug: skia:
Change-Id: I6267a55ab7102101a7bd80a6f547b6a870d2df08
Reviewed-on: https://skia-review.googlesource.com/109021
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Reviewed-by: Cary Clark <caryclark@google.com>
2018-03-09 18:02:00 +00:00
Robert Phillips
41a3b87846 Make GrTextureStripAtlas DDL friendly
Change-Id: If8fdd7a1c027bc2b2791cfe1af13f99c2561d93d
Reviewed-on: https://skia-review.googlesource.com/113268
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2018-03-09 17:33:20 +00:00
Brian Salomon
afdc6b1ba9 Vulkan backend render targets don't allow client to specify stencil bits
We already always create the stencil buffer even for wrapped RTs.

Make VulkanWindowContext use SkSurface::MakeFromBackendRenderTarget.

Change-Id: I5df429d347331801954ec17cb9d75e323a7af345
Reviewed-on: https://skia-review.googlesource.com/113206
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2018-03-09 17:26:50 +00:00
Mike Reed
d07e4a226a Change behavior of custom image serial/deserial
New behavior is to *always* call the client's deserial image proc for all data.
This allows the client to make decisions even on "std" image data like PNG.

The change also means that if there is no client deserial image proc, Skia will
still attempt to create an image from the data, even if it was written by a
custom serial proc.

Bug: skia:7706
Change-Id: Ia58bdd10b86d497f02187082c6373c029e9c8293
Reviewed-on: https://skia-review.googlesource.com/113302
Reviewed-by: Florin Malita <fmalita@chromium.org>
Reviewed-by: Leon Scroggins <scroggo@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2018-03-08 21:50:51 +00:00
Greg Daniel
4684f82ebc Add ability to uninstantiate lazy proxies after every flush.
Bug: skia:
Change-Id: Id32540cda54a9c5e3e6cb721776699be3cc8ac1a
Reviewed-on: https://skia-review.googlesource.com/113263
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2018-03-08 21:05:21 +00:00
Brian Osman
3adc12213b Fill in some missing virtuals from canvas subclasses
Bug: skia:
Change-Id: If7306fa6c5a1619952e1159e6ebca8f04b4d9c8e
Reviewed-on: https://skia-review.googlesource.com/113262
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
2018-03-08 20:13:41 +00:00
Brian Salomon
f777897934 Delazify wrapped backend textures/render target proxies
These methods will fail on DDL contexts.

This is in preparation for removing the ability to specify origin for lazy proxies.

Change-Id: Iadcedfd4fce8ea2590729c974128e5c58cec38a8
Reviewed-on: https://skia-review.googlesource.com/112802
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2018-03-08 15:34:41 +00:00
Robert Phillips
5a66efbbab Remove GrRestrictedAtlasManager
Philosophically this relies on: https://skia-review.googlesource.com/c/skia/+/111807 (Revise Text & Small Path Atlas so instantiation failure is handled at flush time)

Change-Id: I4fdcf1af8c5e9ffefdfb973104045f4f5d223a4e
Reviewed-on: https://skia-review.googlesource.com/112702
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2018-03-08 14:29:11 +00:00
Mike Reed
4123223ccc add TrimPathEffect
Bug: skia:
Change-Id: I453fb81ded4435b33567e9c8a6f3abe9535d687f
Reviewed-on: https://skia-review.googlesource.com/112820
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
2018-03-07 22:32:20 +00:00
Brian Salomon
58389b90cd Initial texture data is never flipped when uploaded.
The first bytes of the data always refer to the pixel accessed by texture coord (0, 0).

Change-Id: I708702d90f35b3bc896a48c3c3fd6a0be73f505a
Reviewed-on: https://skia-review.googlesource.com/112261
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2018-03-07 18:22:40 +00:00
Greg Daniel
fcea56c5d8 Make GrReleaseProcHelper an SkWeakRefCnt
Bug: skia:
Change-Id: Iccc22d477c17c4c58615e3f3bf9e551f9596b710
Reviewed-on: https://skia-review.googlesource.com/112562
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2018-03-07 02:30:35 +00:00
Brian Osman
2c71133091 Cleaning up SkColorSpaceXform a bit
Remove SkColorSpaceXform_base from the inheritance chain. Move some
enums only used within XYZ to be class scoped. Eliminate redundant
context structs, and just use the SkJumper types directly.

SkColorSpaceXform_Base still exists, but just to hold a couple static
functions. Trying to untangle the dst gamma table mess next.

Bug: skia:
Change-Id: I6d2b7807c33e61a0d7df74e334356567d8a2c0e0
Reviewed-on: https://skia-review.googlesource.com/112601
Commit-Queue: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
2018-03-06 20:01:51 +00:00
Robert Phillips
94458ee0f2 Add SkSurfaceCharacterization::createResized
Change-Id: Ia98ce3cf6c0b9f9100eea9850af56048e43b8d07
Reviewed-on: https://skia-review.googlesource.com/112580
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2018-03-06 19:08:46 +00:00
Cary Clark
e041e31926 remove canvas internal private
interfaces not called externally
and aren't used internally

R=robertphillips@google.com,reed@google.com
Bug: skia:6455
Change-Id: Iee98ce4380a28a831d9bffe99932b54421dd339a
Reviewed-on: https://skia-review.googlesource.com/112481
Commit-Queue: Cary Clark <caryclark@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2018-03-06 19:06:16 +00:00
Herb Derby
eb3f674d6d Add GetTypefaceOrDefault to SkPaintPriv
Remove most uses of GetDefaultTypeface. SkTypeface has
fewer friends.

BUG=skia:7515

Change-Id: Iedec5b39b9ef8c638772be4971075491b59b740b
Reviewed-on: https://skia-review.googlesource.com/112300
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2018-03-06 15:50:26 +00:00
Heather Miller
7d8b06f783 Update Skia milestone to 67
TBR: reed

Bug: skia:
Change-Id: I11a5515c41d5bb7ed95294fdb63668c35d14d960
Reviewed-on: https://skia-review.googlesource.com/111326
Reviewed-by: Heather Miller <hcm@google.com>
2018-03-06 15:31:49 +00:00
Mike Reed
28d47731a1 make compute helper for blurs private
Precursor for moving blurmaskfilter into core, since it is referenced
by core code for drawShadow.

Bug: skia:
Change-Id: I900c6e10523115c75f45d2c410eb6a5ca56a6e4d
Reviewed-on: https://skia-review.googlesource.com/112301
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2018-03-06 15:12:16 +00:00
Robert Phillips
0c4b7b1f2f Move internal calls from GrContext to GrContextPriv
A mechanical bulk move just to get these out of the public API.

TBR=bsalomon@google.com
Change-Id: I813efbd54a09dd448275697c0e50947753a5cfd3
Reviewed-on: https://skia-review.googlesource.com/112262
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2018-03-06 14:23:45 +00:00
Herb Derby
974aa8eaba Remove routines no longer needed since stripping NVPR
Change-Id: Ia1a545cc5c52d9af654f980083803ece39a92614
Reviewed-on: https://skia-review.googlesource.com/112260
Reviewed-by: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2018-03-05 21:06:35 +00:00
Ben Wagner
4f893a8345 Remove BitmaskEnum from SkTypeface.
SkTypeface::Style is almost gone and is no longer marked as a
BitmaskEnum.

Change-Id: If61a2f46d130fbd8b50b5765119af951f12b189f
Reviewed-on: https://skia-review.googlesource.com/112203
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2018-03-05 20:54:25 +00:00
Herb Derby
dfeb2aa13b SkGlyphCache - update core routines.
- Allows different methods for creating SkGlyphCaches
- Enables passing FontMetrics for cache creation.
- Removes VisitCache
- Removes VisitAll
- Introduces SkExclusiveStrikePtr which should
  replaces SkAutoGlyphCache with simpler mechanism.

BUG=skia:7515

Change-Id: Ibada35e3985335179d2cc8284a837fc525224c92
Reviewed-on: https://skia-review.googlesource.com/111063
Reviewed-by: Ben Wagner <bungeman@google.com>
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2018-03-05 19:35:45 +00:00
Brian Salomon
2a4f983c94 Remove GrSurfaceOrigin from GrSurfaceDesc.
This field has no interpretation at the GrTexture/GrGpu as the orientation is
handled at the GrSurfaceProxy level.

This change requires GrGpu to accept a GrSurfaceOrigin when creating a texture with initial data. The origin refers to the texel data to be uploaded. Longer term the plan is to remove this and require the data to be kTopLeft. Additionally, kBottomLeft will only be allowed for wrapped texture/RTs as this evolves.

Change-Id: I7d25b0199aafd9bf3b74c39b2cae451acadcd772
Reviewed-on: https://skia-review.googlesource.com/111806
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2018-03-05 18:50:25 +00:00
Brian Osman
10fc6fddf2 Revert "Revert "Add 1010102 support to Ganesh""
This reverts commit ded47a5014.

Bug: skia:
Change-Id: I7d7552e6ccc8591cae91426407ab13b628b93b68
Reviewed-on: https://skia-review.googlesource.com/111760
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2018-03-02 18:19:50 +00:00
Robert Phillips
fde6fa0903 Fix creation of extra GrContextThreadSafeProxies in DDL world
For the DDLContexts we simply want to reuse the threadSafeProxy from the main thread but we, obviously, still need to create one for the main DirectContext.

TBR=bsalomon@google.com
Change-Id: I99449bc375172c9004e2e80c21d95ab2d7708309
Reviewed-on: https://skia-review.googlesource.com/110781
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2018-03-02 17:10:30 +00:00
Robert Phillips
f2ec024c44 Make use of the buffer data null hint a GrContextOption
TBR=bsalomon@google.com
Change-Id: I5a3fd18479ca8c95e1bc8c087c28346264049eb0
Reviewed-on: https://skia-review.googlesource.com/111604
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2018-03-02 12:11:05 +00:00
Greg Daniel
a17729f36b Add ctor to GrVkAlloc
TBR=bsalomon@google.com

Bug: skia:
Change-Id: I7b4b372674df6ff43f737ac1b3f2f63b87719b6a
Reviewed-on: https://skia-review.googlesource.com/111660
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2018-03-02 01:15:34 +00:00
Hal Canary
ee08b4a2e9 SkString: remove externally unused ::setUTF16() from API
Moved to SkStringUtils in src/

Change-Id: I026e3a325570bbf34e90797d921cb2f05b9a29f6
Reviewed-on: https://skia-review.googlesource.com/111602
Commit-Queue: Hal Canary <halcanary@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
2018-03-01 22:16:34 +00:00
Brian Osman
ded47a5014 Revert "Add 1010102 support to Ganesh"
This reverts commit 44b61204d9.

Reason for revert: TSAN bot crashing

Original change's description:
> Add 1010102 support to Ganesh
> 
> Adds gl1010102, gles1010102, vk1010102, and mtl1010102
> configs to DM.
> 
> This uses the same saveLayer approach as CPU, switching
> to 8888 so that we have enough alpha precision.
> 
> Change-Id: I9f5b63747ec01031c8db97dadfc42f77e4863ccb
> Reviewed-on: https://skia-review.googlesource.com/110500
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Brian Osman <brianosman@google.com>

TBR=mtklein@google.com,bsalomon@google.com,brianosman@google.com

Change-Id: I782e740763044c1ae78fb219161e37eec7617c74
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/111580
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2018-03-01 20:10:15 +00:00
Robert Phillips
1056eb821f Move atlas manager creation to GrContext derived classes (take 2)
TBR=bsalomon@google.com
Change-Id: Ie10b7e770e24104d10c36ce7882126dd8551a8ba
Reviewed-on: https://skia-review.googlesource.com/110822
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2018-03-01 19:41:04 +00:00
Robert Phillips
c4039ea466 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>
2018-03-01 19:09:14 +00:00
Brian Osman
44b61204d9 Add 1010102 support to Ganesh
Adds gl1010102, gles1010102, vk1010102, and mtl1010102
configs to DM.

This uses the same saveLayer approach as CPU, switching
to 8888 so that we have enough alpha precision.

Change-Id: I9f5b63747ec01031c8db97dadfc42f77e4863ccb
Reviewed-on: https://skia-review.googlesource.com/110500
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2018-03-01 18:34:35 +00:00
Robert Phillips
4bc7011802 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>
2018-03-01 15:47:34 +00:00
Cary Clark
65e409faca make SkDestinationSurfaceColorMode private
R=brianosman@google.com, reed@google.com
Bug: skia:
Change-Id: Ibbf91a664cc504737137717d9170ce4de09b017c
Reviewed-on: https://skia-review.googlesource.com/111161
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Cary Clark <caryclark@google.com>
2018-02-28 20:31:33 +00:00
Jim Van Verth
a556684b10 Remove deprecated drawShadow interfaces
Bug: skia:7263
Change-Id: I90fcc35e8d070b324287139ebecc3d15dbec0137
Reviewed-on: https://skia-review.googlesource.com/109164
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2018-02-28 19:07:29 +00:00
Robert Phillips
ba7a165194 Revert "Revert "Revert "Separate creation time & flush time behavior in GrDrawOpAtlas (take 2)"""
This reverts commit 934c3d0c54.

Reason for revert: Chrome

Original change's description:
> Revert "Revert "Separate creation time & flush time behavior in GrDrawOpAtlas (take 2)""
> 
> This reverts commit 84d823a5e2.
> 
> 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 96165ebeaa.
> > 
> > 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>
2018-02-28 17:42:11 +00:00
Robert Phillips
5c56af1790 Revert "Fission GrAtlasGlyphCache in two"
This reverts commit acf17904d6.

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>
2018-02-28 16:37:47 +00:00
Robert Phillips
0551818a01 Revert "Move atlas manager creation to GrContext derived classes"
This reverts commit e5b7ceeac8.

Reason for revert: Breaking Mus/Viz tests in Chrome roll

Original change's description:
> Move atlas manager creation to GrContext derived classes
> 
> This CL relies on: https://skia-review.googlesource.com/c/skia/+/108001 (Fission GrAtlasGlyphCache in two)
> 
> TBR=bsalomon@google.com
> Change-Id: Ic3f91cea2238221b970f8ebbda99b10202925cd8
> Reviewed-on: https://skia-review.googlesource.com/110621
> Commit-Queue: Robert Phillips <robertphillips@google.com>
> Reviewed-by: Greg Daniel <egdaniel@google.com>

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

Change-Id: I3973463b7b837145d9732171a91d82f0f0cea148
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/110821
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2018-02-28 14:19:16 +00:00
Brian Salomon
3d86a19f42 Refactor GrCaps::renderTargetWritePixelsSupported to support for some GL workarounds
Make indirect path in writeSurfacePixels2 use a copy rather than a draw.

Fix issue in GrVkGpu where render target dirty region is not updated after copy-as-draw

Remove unnecessary resolve of MSAA RT in GrVkCopyManager.

Splits WritePixelsNonTexture_Gpu test into MSAA and non-MSAA variants. MSAA variant blacklisted
on Adreno because of:

Bug: skia:7663

~~~~~~AND~~~~~~~

Revert "Suppress CopySurface test on Nexus 7"

This reverts commit b42b6169d5.

Bug: skia:7658
Change-Id: I8337d718efb41e266537744bbf5ff8b1545322a7
Reviewed-on: https://skia-review.googlesource.com/110700
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2018-02-28 03:14:25 +00:00
Robert Phillips
e5b7ceeac8 Move atlas manager creation to GrContext derived classes
This CL relies on: https://skia-review.googlesource.com/c/skia/+/108001 (Fission GrAtlasGlyphCache in two)

TBR=bsalomon@google.com
Change-Id: Ic3f91cea2238221b970f8ebbda99b10202925cd8
Reviewed-on: https://skia-review.googlesource.com/110621
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2018-02-28 00:20:06 +00:00
Robert Phillips
acf17904d6 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>
2018-02-27 22:05:55 +00:00
Mike Reed
bb586b2eeb fix crasher in path-->region
Bug: skia:7491
Change-Id: I7e8b9fbe43098094d5935331107c3f40fb6971ec
Reviewed-on: https://skia-review.googlesource.com/110721
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Cary Clark <caryclark@google.com>
Reviewed-by: Yuqian Li <liyuqian@google.com>
2018-02-27 21:03:49 +00:00
Cary Clark
7595939168 updated includes
update includes to latest
bookmaker docs

TBR=reed@google.com
Bug: skia:6898
Change-Id: If42ab25f98a0f0d8b410ae30ca1cd641e19ce89f
Reviewed-on: https://skia-review.googlesource.com/107021
Commit-Queue: Cary Clark <caryclark@skia.org>
Reviewed-by: Cary Clark <caryclark@skia.org>
2018-02-27 16:37:39 +00:00
Brian Salomon
5f33a8ccac Start on new GPU pixel ops implementation.
The new ops attempt to be less optimal by falling back to CPU conversions
rather than relying on intermediate draws and complex coordination between
GrContext and GrGpu to determine how conversions are performed.

This adds the new writePixels implementation.

Change-Id: I7496d86d5a40277ed2ca63668881c160e54d80d3
Reviewed-on: https://skia-review.googlesource.com/109880
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2018-02-26 20:43:18 +00:00
Jim Van Verth
a947e29bfd Add some additional checks for shadow generation
Change-Id: I4dae4173ad879827e4e1fa3ad12aa0447d1df252
Reviewed-on: https://skia-review.googlesource.com/110360
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2018-02-26 20:02:38 +00:00
Greg Daniel
8385a8a44b Revert "Revert "Fixes to alignment issues with regards to mapped vulkan memory.""
This reverts commit 88fdee9bde.

Reason for revert: Pre Fixes landed in other repos

Original change's description:
> Revert "Fixes to alignment issues with regards to mapped vulkan memory."
> 
> This reverts commit 9fb6cf4c49.
> 
> Reason for revert: breaks fuchsia
> 
> Original change's description:
> > Fixes to alignment issues with regards to mapped vulkan memory.
> > 
> > Bug: skia:
> > Change-Id: Ida9813fe774580a6d157b8eb8d330488c8e8c4bc
> > Reviewed-on: https://skia-review.googlesource.com/109483
> > Commit-Queue: Greg Daniel <egdaniel@google.com>
> > Reviewed-by: Jim Van Verth <jvanverth@google.com>
> 
> TBR=djsollen@google.com,egdaniel@google.com,jvanverth@google.com
> 
> # Not skipping CQ checks because original CL landed > 1 day ago.
> 
> Bug: skia:
> Change-Id: If1223313cab27737ada401d1f3fe4b7ab849d03f
> Reviewed-on: https://skia-review.googlesource.com/110040
> Reviewed-by: Greg Daniel <egdaniel@google.com>
> Commit-Queue: Greg Daniel <egdaniel@google.com>

Bug: skia:
Change-Id: Ifeebf535c3617674846f7ef25e686ee11ceee65c
Reviewed-on: https://skia-review.googlesource.com/110160
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2018-02-26 18:59:38 +00:00
Robert Phillips
934c3d0c54 Revert "Revert "Separate creation time & flush time behavior in GrDrawOpAtlas (take 2)""
This reverts commit 84d823a5e2.

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 96165ebeaa.
> 
> 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>
2018-02-26 16:49:28 +00:00
Robert Phillips
84d823a5e2 Revert "Separate creation time & flush time behavior in GrDrawOpAtlas (take 2)"
This reverts commit 96165ebeaa.

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>
2018-02-26 16:03:58 +00:00
Robert Phillips
96165ebeaa 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>
2018-02-26 14:56:17 +00:00
Greg Daniel
88fdee9bde Revert "Fixes to alignment issues with regards to mapped vulkan memory."
This reverts commit 9fb6cf4c49.

Reason for revert: breaks fuchsia

Original change's description:
> Fixes to alignment issues with regards to mapped vulkan memory.
> 
> Bug: skia:
> Change-Id: Ida9813fe774580a6d157b8eb8d330488c8e8c4bc
> Reviewed-on: https://skia-review.googlesource.com/109483
> Commit-Queue: Greg Daniel <egdaniel@google.com>
> Reviewed-by: Jim Van Verth <jvanverth@google.com>

TBR=djsollen@google.com,egdaniel@google.com,jvanverth@google.com

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

Bug: skia:
Change-Id: If1223313cab27737ada401d1f3fe4b7ab849d03f
Reviewed-on: https://skia-review.googlesource.com/110040
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2018-02-25 14:00:39 +00:00
Greg Daniel
9fb6cf4c49 Fixes to alignment issues with regards to mapped vulkan memory.
Bug: skia:
Change-Id: Ida9813fe774580a6d157b8eb8d330488c8e8c4bc
Reviewed-on: https://skia-review.googlesource.com/109483
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
2018-02-23 20:17:16 +00:00
Chris Dalton
2612baecd8 ccpr: Prefer atlas sizes under 4k on ARM
Bug: skia:
Change-Id: Ib5afb84647efe2e64a3ec2f9da422b39228431e9
Reviewed-on: https://skia-review.googlesource.com/108871
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2018-02-22 21:06:05 +00:00
Mike Reed
242135a402 move some RRect methods into priv
also, return radii by value instead of reference, in possible prep for changing underlying representation

Bug: skia:7649
Change-Id: Iff42a49c53cc48171fc63462be366cc3500b2273
Reviewed-on: https://skia-review.googlesource.com/109385
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2018-02-22 19:09:10 +00:00
Robert Phillips
59ddc6d5ee Revert "Separate creation time & flush time behavior in GrDrawOpAtlas"
This reverts commit 056c1a821a.

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>
2018-02-21 21:56:47 +00:00
Mike Reed
267ecccfed change path serialization version to 4
New format should be much simpler:
- only store public data (e.g. points, verbs, filltype)
- deserialize just uses public APIs

Refactor reading code to manage different (older) versions, to make
it clear (hopefully) what we can delete when we can abandon version
3 support.

Bug: skia:
Change-Id: I30465f891cba3f044ae1cb2c13c04f04fdc9da78
Reviewed-on: https://skia-review.googlesource.com/109160
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Reed <reed@google.com>
2018-02-21 21:22:37 +00:00
Peng Huang
df285ce3be Fix the link error for component build
Bug: skia:
Change-Id: I670eeee09547edb46db498a9439c5d6066c6fe55
Reviewed-on: https://skia-review.googlesource.com/109106
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2018-02-21 19:49:16 +00:00
Robert Phillips
056c1a821a 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>
2018-02-21 19:46:56 +00:00
Mike Reed
cbb85a7275 remove deprecated method
Bug: skia:
Change-Id: Icd5c3b83c97f5039a530f87a3a813e4d9e9f8833
Reviewed-on: https://skia-review.googlesource.com/108662
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2018-02-20 21:41:44 +00:00
Robert Phillips
f3690dd416 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>
2018-02-20 21:16:53 +00:00
Mike Reed
0c3137c4f4 hide complex versions of isOval and isRRect
Bug: skia:
Change-Id: I9fa899d409470f424fdfbef5b0c3bb528bcce40e
Reviewed-on: https://skia-review.googlesource.com/108660
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2018-02-20 19:33:53 +00:00
Brian Salomon
c320b15768 Introduce GrColorType
This begins the journey towards using different types to refer to CPU data and GPU texture formats. This is one part of removing GrPixelConfig and more directly using GL/VK texture formats

GrColorType represents a particular layout of color/gray/alpha channels in CPU memory. It does not refer to texture formats or sRGB-encoding. It is basically SkColorType specialized to the GPU backend with some formats added and some removed.

Read/WritePixel interfaces use GrColorType to describe the CPU side of the transaction.

There's still a lot of punting to GrPixelConfig in API-specific code. There's a lot more to be done.

Bug: 6718
Bug: 7580

Change-Id: I8d813ae9a4416a06596f22a4b87da02091989718
Reviewed-on: https://skia-review.googlesource.com/107264
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2018-02-20 19:30:13 +00:00
Florin Malita
eb420457fd Add SkRect::contains(SkScalar x, SkScalar y)
Similar to its SkIRect counterpart.

Change-Id: I6872694d8602ed4181a1a15b4cd1c2c32aeab3f9
Reviewed-on: https://skia-review.googlesource.com/108506
Reviewed-by: Cary Clark <caryclark@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2018-02-20 17:57:53 +00:00
Chris Dalton
535ba8d2b8 Drop unused support for MSAA sample locations
Bug: skia:
Change-Id: I96f0c25732d79c5881e400b121e81c5696a747a6
Reviewed-on: https://skia-review.googlesource.com/107441
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2018-02-20 17:19:13 +00:00
Chris Dalton
7fe33c0a42 Drop unused shader support for multisample interpolation
Bug: skia:
Change-Id: Ie19f13877bf6828ab94ffbb20e6f74e0e376f6cb
Reviewed-on: https://skia-review.googlesource.com/107359
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2018-02-20 16:41:43 +00:00
Greg Daniel
2a30390ce6 Update createWrappedRenderTargetProxy with BackendRT to work with lazy proxies.
This change also triggered a bunch of side changes thanks to WrappedProxyTest
fixing/improving how we handle wrapped proxies in genernal.

Bug: skia:
Change-Id: I743a458923cff1c2e947627d0e9154a4c808a668
Reviewed-on: https://skia-review.googlesource.com/108102
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2018-02-20 15:32:33 +00:00
Mike Reed
a3d9e21f04 don't trust stored segment mask
Bug: skia:7604
Change-Id: I508bbdc006e1c6edce2006be0c43b037038c876b
Reviewed-on: https://skia-review.googlesource.com/108360
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
2018-02-20 15:13:23 +00:00
Mike Reed
19d7bd6504 hide virtual and rename to onMakeComposed
Bug: skia:
Change-Id: Ic18ee2af3273f81ebec9c9031162e808186c0acd
Reviewed-on: https://skia-review.googlesource.com/108300
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2018-02-19 19:40:14 +00:00
Mike Reed
dfc0e910df add decal tilemode to shaders
Plenty more to follow-up:
- gradients
- gpu impl

Bug: skia:7638
Change-Id: I8e54fd0e24921f040f178c793b36c7fb855b136e
Reviewed-on: https://skia-review.googlesource.com/107420
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
2018-02-16 23:19:47 +00:00
Chris Dalton
46563d1d91 Forward internal_private_accessTopLayerRenderTargetContext from SkPaintFilterCanvas
Fixes viewer slides that need direct access to Ganesh.

Bug: skia:
Change-Id: Icfdd814e53ce333f4a20353e8bc4dddde3cc72df
Reviewed-on: https://skia-review.googlesource.com/108020
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2018-02-16 20:10:47 +00:00
Greg Daniel
f6f7b67ac2 When creating emptyp MipMap proxies, don't instantiate them immediately. Attempt 3
original: https://skia-review.googlesource.com/106966

Bug: skia:
Change-Id: I779985cef2d3c4f36a0129d8ecedd12e510bec7e
Reviewed-on: https://skia-review.googlesource.com/107781
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2018-02-15 20:13:32 +00:00
Chris Dalton
602836138e Drop unused shader support for sample variables
Bug: skia:
Change-Id: I9e2b7da8c916703027d8dd4303ae67f4e69bcf87
Reviewed-on: https://skia-review.googlesource.com/107356
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2018-02-15 19:37:52 +00:00
Mike Reed
36c0b57698 use safe increment for edge walker
Bug: oss-fuzz:6126
Change-Id: I8f6865cbbbfbe37acf940cc2d4ae93204ba7168d
Reviewed-on: https://skia-review.googlesource.com/107783
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Reed <reed@google.com>
2018-02-15 17:14:19 +00:00
Greg Daniel
7080a431a7 Revert "Revert "Revert "When creating emptyp MipMap proxies, don't instantiate them immediately."""
This reverts commit 95edb43251.

Reason for revert: breaking Ubuntu Linux GMs

Original change's description:
> Revert "Revert "When creating emptyp MipMap proxies, don't instantiate them immediately.""
> 
> This reverts commit 0ee866dac7.
> 
> Reason for revert: <INSERT REASONING HERE>
> 
> Original change's description:
> > Revert "When creating emptyp MipMap proxies, don't instantiate them immediately."
> > 
> > This reverts commit 8242c5c199.
> > 
> > Reason for revert: Hitting assert on intel bots on skbug6850overlay2.skp, SkASSERT(proxy->getUniqueKey().isValid()); in processInvalidProxyUniqueKey
> > 
> > Original change's description:
> > > When creating emptyp MipMap proxies, don't instantiate them immediately.
> > > 
> > > This chnages makes it match how we handle non mipped proxies where we
> > > don't actually instantiate them until we need to.
> > > 
> > > Bug: skia:
> > > Change-Id: Id0c50eefce43ef1458a3ff0bb1881a817b045279
> > > Reviewed-on: https://skia-review.googlesource.com/106966
> > > Commit-Queue: Greg Daniel <egdaniel@google.com>
> > > Reviewed-by: Robert Phillips <robertphillips@google.com>
> > 
> > TBR=egdaniel@google.com,robertphillips@google.com
> > 
> > Change-Id: I1fa6165b69c5bbb1d6bb10abba33dcdb55a27ba3
> > No-Presubmit: true
> > No-Tree-Checks: true
> > No-Try: true
> > Bug: skia:
> > Reviewed-on: https://skia-review.googlesource.com/107263
> > Reviewed-by: Greg Daniel <egdaniel@google.com>
> > Commit-Queue: Greg Daniel <egdaniel@google.com>
> 
> TBR=egdaniel@google.com,robertphillips@google.com
> 
> Bug: skia:
> Change-Id: Ice34283f9ac183faed6e061d8162cf2226b18289
> Reviewed-on: https://skia-review.googlesource.com/107320
> Reviewed-by: Robert Phillips <robertphillips@google.com>
> Commit-Queue: Greg Daniel <egdaniel@google.com>

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

Change-Id: I53f166d508cc8ccd71e7473934a12a52f2eba7bb
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:
Reviewed-on: https://skia-review.googlesource.com/107321
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2018-02-14 21:10:15 +00:00
Brian Salomon
9b009bb069 Prepare sRGB encoding conversion for the removal of GrPixelConfig
Standardizes that GrGpu subclass's onRead/WritePixels never do sRGB<->linear conversion. This means that they can eventually take a color type rather than config. It also means direct callers of GrGpu::read/writePixels can never expect conversion (which in practice is no change).

Consolidate logic about whether to do sRGB<->linear encoding conversions in GrContext::read/writeSurfacePixels helpers. No change in when conversions are done (yet). This prepares this logic to operate on SkColorSpace and color type rather than config WRT the CPU data.

Bug: skia:6718
Change-Id: I346d669624861578f1bb9ea465a7ab4b549117fa
Reviewed-on: https://skia-review.googlesource.com/105286
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2018-02-14 19:58:14 +00:00
Greg Daniel
95edb43251 Revert "Revert "When creating emptyp MipMap proxies, don't instantiate them immediately.""
This reverts commit 0ee866dac7.

Reason for revert: <INSERT REASONING HERE>

Original change's description:
> Revert "When creating emptyp MipMap proxies, don't instantiate them immediately."
> 
> This reverts commit 8242c5c199.
> 
> Reason for revert: Hitting assert on intel bots on skbug6850overlay2.skp, SkASSERT(proxy->getUniqueKey().isValid()); in processInvalidProxyUniqueKey
> 
> Original change's description:
> > When creating emptyp MipMap proxies, don't instantiate them immediately.
> > 
> > This chnages makes it match how we handle non mipped proxies where we
> > don't actually instantiate them until we need to.
> > 
> > Bug: skia:
> > Change-Id: Id0c50eefce43ef1458a3ff0bb1881a817b045279
> > Reviewed-on: https://skia-review.googlesource.com/106966
> > Commit-Queue: Greg Daniel <egdaniel@google.com>
> > Reviewed-by: Robert Phillips <robertphillips@google.com>
> 
> TBR=egdaniel@google.com,robertphillips@google.com
> 
> Change-Id: I1fa6165b69c5bbb1d6bb10abba33dcdb55a27ba3
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: skia:
> Reviewed-on: https://skia-review.googlesource.com/107263
> Reviewed-by: Greg Daniel <egdaniel@google.com>
> Commit-Queue: Greg Daniel <egdaniel@google.com>

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

Bug: skia:
Change-Id: Ice34283f9ac183faed6e061d8162cf2226b18289
Reviewed-on: https://skia-review.googlesource.com/107320
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2018-02-14 19:55:24 +00:00
Robert Phillips
7d79e7b588 Use a lazy proxy in OnFlushCallbackTest to fulfill some old TODOs
Change-Id: I194e38c87c2f341f16a5048f02027165d7c28ae9
Reviewed-on: https://skia-review.googlesource.com/107022
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2018-02-14 16:31:47 +00:00
Greg Daniel
0ee866dac7 Revert "When creating emptyp MipMap proxies, don't instantiate them immediately."
This reverts commit 8242c5c199.

Reason for revert: Hitting assert on intel bots on skbug6850overlay2.skp, SkASSERT(proxy->getUniqueKey().isValid()); in processInvalidProxyUniqueKey

Original change's description:
> When creating emptyp MipMap proxies, don't instantiate them immediately.
> 
> This chnages makes it match how we handle non mipped proxies where we
> don't actually instantiate them until we need to.
> 
> Bug: skia:
> Change-Id: Id0c50eefce43ef1458a3ff0bb1881a817b045279
> Reviewed-on: https://skia-review.googlesource.com/106966
> Commit-Queue: Greg Daniel <egdaniel@google.com>
> Reviewed-by: Robert Phillips <robertphillips@google.com>

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

Change-Id: I1fa6165b69c5bbb1d6bb10abba33dcdb55a27ba3
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:
Reviewed-on: https://skia-review.googlesource.com/107263
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2018-02-14 14:40:48 +00:00
Greg Daniel
8242c5c199 When creating emptyp MipMap proxies, don't instantiate them immediately.
This chnages makes it match how we handle non mipped proxies where we
don't actually instantiate them until we need to.

Bug: skia:
Change-Id: Id0c50eefce43ef1458a3ff0bb1881a817b045279
Reviewed-on: https://skia-review.googlesource.com/106966
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2018-02-14 14:07:47 +00:00
Robert Phillips
fc711a2b01 Add SkCharacterization creation helper to GrContextThreadSafeProxy (take 2)
TBR=bsalomon@google.com
Change-Id: Id96d4fdbb6889065f10a4a7e0c22a03ad9aa5fef
Reviewed-on: https://skia-review.googlesource.com/107000
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2018-02-14 12:42:18 +00:00
Robert Phillips
ce5209a8a5 Make fully lazy proxies possess an origin
Change-Id: Icd3d68bce78568562aa12167a58b6d6e5064b124
Reviewed-on: https://skia-review.googlesource.com/106901
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2018-02-13 21:25:53 +00:00
Mike Reed
655bf8f022 saturate IPoint math, handle NaN in isEmpty
Bug: skia:7507
Change-Id: Ibdb40584effdea70e6499eab1bb64bb4b2260d06
Reviewed-on: https://skia-review.googlesource.com/106972
Commit-Queue: Mike Reed <reed@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
2018-02-13 18:14:20 +00:00
Cary Clark
559823d1fe Revert "Add SkCharacterization creation helper to GrContextThreadSafeProxy"
This reverts commit d76e56d93c.

Reason for revert: broke NexusPlayer Vulkan

Original change's description:
> Add SkCharacterization creation helper to GrContextThreadSafeProxy
> 
> Change-Id: I8ad7cf335f2b586cf501eaa70573690fbbd53efa
> Reviewed-on: https://skia-review.googlesource.com/106105
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Robert Phillips <robertphillips@google.com>

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

Change-Id: I72b75ff700d39839f7207955566e48bb544aaf6b
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/106968
Reviewed-by: Cary Clark <caryclark@google.com>
Commit-Queue: Cary Clark <caryclark@google.com>
2018-02-13 17:02:31 +00:00
Brian Osman
8a83ca4e9a Add "sharpen" option to SkSL, to LOD bias all textures
This adds a fixed bias (-0.5) to the computed LOD of all
mip-mapped texture fetches. (Technically, to all texture
fetches, but that only matters for mip-mapped ones).

Clients can opt-in with a new GrContextOption.

Bug: skia:7541
Bug: chromium:562162
Change-Id: Ie3cd0679c4ab66f62d2dc32e7e68e5c99355115e
Reviewed-on: https://skia-review.googlesource.com/106322
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2018-02-13 16:30:20 +00:00
Robert Phillips
d76e56d93c Add SkCharacterization creation helper to GrContextThreadSafeProxy
Change-Id: I8ad7cf335f2b586cf501eaa70573690fbbd53efa
Reviewed-on: https://skia-review.googlesource.com/106105
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2018-02-13 16:03:50 +00:00
Brian Osman
3fc79ea031 Remove image functions from GrGLInterface, part two
First part is at:
https://skia-review.googlesource.com/c/skia/+/106120

Change-Id: I52c79a8635dcfb9eaf4c70f3a48b11349f9540d5
Reviewed-on: https://skia-review.googlesource.com/106268
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2018-02-12 20:45:43 +00:00
Mike Reed
faffa86771 begin to wrap all float divides
Bug: skia:7607 skia:6134
Change-Id: Id126e92816bef1df1372bd531238cda9f3b36fab
Reviewed-on: https://skia-review.googlesource.com/106261
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Reed <reed@google.com>
2018-02-12 19:04:19 +00:00
Greg Daniel
d2d8e92e5e Remove tracking of SkDestinationSurfaceColorMode on GrTextureProxy for mips
When we create a new surface from a proxy we were always using legacy and
when we wrapped an existing surface we never actaully had to use the value
we pulled off of it since the proxy was already instantiatied.

Bug: skia:
Change-Id: Ifcb5f3ac2f1dcf41b01a98c554d682ae57028d5a
Reviewed-on: https://skia-review.googlesource.com/106207
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2018-02-12 18:51:28 +00:00
Kevin Lubick
2416f968a6 Add 2 fuzz targets for image decoding (oss-fuzz)
This also adds in a few small guards to prevent libfuzzer from frequently
running out of memory when an image claims to have billions of pixels.

Bug: skia:
Change-Id: I47a9daac832c4d85a42000698482b61721c38880
Reviewed-on: https://skia-review.googlesource.com/106264
Commit-Queue: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Leon Scroggins <scroggo@google.com>
2018-02-12 15:25:59 +00:00
Mike Reed
0a5f99ccdf can't cheat on contains due to underflow
Bug: skia:
Change-Id: Ic7fc4e1b843f885a2d52cd54861679f6c500eff4
Reviewed-on: https://skia-review.googlesource.com/106267
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Reed <reed@google.com>
2018-02-10 02:37:31 +00:00
Greg Daniel
3081508215 Remove unused code resulted from deleting DeferredTextureImage
Bug: skia:
Change-Id: Iaedc09880bd6a2d8fda4ce52f1644a944dd72605
Reviewed-on: https://skia-review.googlesource.com/106266
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2018-02-10 01:22:11 +00:00
Mike Reed
1617899b67 add helper to know when a colortype is always opaque
Now that surface creation is more picky about its imageinfo, we need to
allow clients to know when they should clean-up their alphatype (like
our own gm)

Bug: skia:
Change-Id: Ic110c75769e0154a8343d7e2160d3351f02cf48f
Reviewed-on: https://skia-review.googlesource.com/106320
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2018-02-10 01:00:41 +00:00
Mike Reed
7fcfb62199 move a bunch of helpers from SkImageInfo.h into priv
Bug: skia:
Change-Id: I8c91cfdb89e4f22448d1201d391556fe43d86dca
Reviewed-on: https://skia-review.googlesource.com/105289
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Reviewed-by: Cary Clark <caryclark@google.com>
2018-02-09 20:38:32 +00:00
Greg Daniel
3b2ebbb2d4 When querying mipmapped on proxies return targets state if possible
In the non-ddl world where we are still using lazy proxies, we may create
those proxies with no mipmaps, but when we instantiate them immediately we
end up getting a surface with mips. This allows future queries on that
proxy to take advatage of the fact that we actaully have mips.

For lazy ddl proxies, this makes it work in a world where we may decide to
uninstantiate the proxies and we continue to track the request mip level as
well as the actually one from instantiation.

Bug: skia:
Change-Id: I4824e74d5e2a2fdf860709c85469aa8cf74632d5
Reviewed-on: https://skia-review.googlesource.com/106121
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2018-02-09 16:14:51 +00:00
Brian Osman
426e6c5cba Remove (unused) NV_bindless_texture from GL interface
Change-Id: I232c200c30f348da4f61cd7d6d73f3f3b46e0770
Reviewed-on: https://skia-review.googlesource.com/105984
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2018-02-09 15:01:41 +00:00
Brian Salomon
67f8584b6f Revert "Revert "Remove SkImage deferred texture image data APIs.""
This reverts commit aae533e418.

Change-Id: I0434892d8946490a75e17620c49c594eaa18158e
Reviewed-on: https://skia-review.googlesource.com/100603
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2018-02-09 14:19:51 +00:00
Brian Osman
0ee0190173 Remove EXT_direct_state_access (unused)
Change-Id: I501fab7be512f5a0c4b26d666bbf883de4b73a59
Reviewed-on: https://skia-review.googlesource.com/105902
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2018-02-09 13:51:19 +00:00
Greg Daniel
457469c7a0 Make non-ddl lazy proxys clean-up and delete their callbacks immediately after instanstation.
This makes sure resources are released and free'd as soon as possible if we
no longer need them.

Bug: skia:
Change-Id: Ic216987649c54183f8cbbff90a633860a97754b3
Reviewed-on: https://skia-review.googlesource.com/105721
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2018-02-08 20:33:40 +00:00
Mike Reed
4c790bd7dd add writePixels to SkSurface --> so we can remove it from canvas
Bug: skia:
Change-Id: Ib35d7bdc113c3fd9f6dfacb42ec61aaa448cb165
Reviewed-on: https://skia-review.googlesource.com/105623
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2018-02-08 19:34:50 +00:00
Robert Phillips
a3f70261cc Switch MDB GrContextOptions over to Enable style
Change-Id: Id6541c346a13649c89ca3b9ccb13972976f9b973
Reviewed-on: https://skia-review.googlesource.com/105603
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2018-02-08 16:28:30 +00:00
Cary Clark
4f5a79c676 remove kRW_LegacyBitmapMode
experiment to see if there are any unknown dependencies
on kRW_LegacyBitmapMode

R=reed@google.com,fmalita@chromium.org,bungeman@google.com
Bug: skia:5615
Change-Id: I2cc578570ac18cd31c3520e1bd801f4a7a669347
Reviewed-on: https://skia-review.googlesource.com/105283
Reviewed-by: Florin Malita <fmalita@chromium.org>
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Cary Clark <caryclark@google.com>
2018-02-08 13:34:49 +00:00
Robert Phillips
4150eea6c4 Move control of explicit GPU resource allocation to GrContextOptions
Change-Id: Ic284acc79bab5936f0007d5ae5fb1e7a9929e2af
Reviewed-on: https://skia-review.googlesource.com/104880
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2018-02-08 12:36:29 +00:00
Robert Phillips
383c418ec9 Remove GrStencilAndCoverTextContext
TBR=bsalomon@google.com
Change-Id: Ibbb26e2ba74df43c3156f95bea258cda998500cb
Reviewed-on: https://skia-review.googlesource.com/105260
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
2018-02-07 18:28:22 +00:00
Mike Klein
e083f7c9f2 Reland "remove SkCanvas::kIsOpaque_SaveLayerFlag"
This reverts the revert 9ff8c8c073.

Original:

    This is a performance-only hint that no one but fuzzers
    is using.  It's even explicitly filtered out in Android.

    The fuzzers have noticed they can trick us into allocating
    uninitialized memory and treating it as opaque, blending
    uninitialized pixels, etc.

    Since no one's using this, we can just kill the bit.

    Bug: skia:7566, chromium:808830

Docs-Preview: https://skia.org/?cl=105282
Change-Id: I4326c663f777aa373ff7ec9f319519da9729350d
Reviewed-on: https://skia-review.googlesource.com/105282
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2018-02-07 18:18:52 +00:00
Robert Phillips
8e546043c6 Revert "Re-enable explicit resource allocation in Skia (take 2)"
This reverts commit ed858ec095.

Reason for revert: Breaking some text GMs

Original change's description:
> Re-enable explicit resource allocation in Skia (take 2)
> 
> Unsurprisingly, given how we're adding them to the opList's deferredProxy list, a proxy can appear twice.
> 
> Change-Id: I474357a1c3ee8cedf51dbeffcd0e0a96f396375c
> Reviewed-on: https://skia-review.googlesource.com/103701
> Commit-Queue: Robert Phillips <robertphillips@google.com>
> Reviewed-by: Brian Salomon <bsalomon@google.com>

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

Change-Id: I90aa30c37bfc506e5a8e4c2ccf3bd1b968fd9c5f
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/105100
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2018-02-07 16:02:50 +00:00
Robert Phillips
ed858ec095 Re-enable explicit resource allocation in Skia (take 2)
Unsurprisingly, given how we're adding them to the opList's deferredProxy list, a proxy can appear twice.

Change-Id: I474357a1c3ee8cedf51dbeffcd0e0a96f396375c
Reviewed-on: https://skia-review.googlesource.com/103701
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2018-02-07 14:22:58 +00:00
Mike Klein
9ff8c8c073 Revert "remove SkCanvas::kIsOpaque_SaveLayerFlag"
This reverts commit 9a7a2ee5ad.

Reason for revert: still need to update blink_headless in Google3

Original change's description:
> remove SkCanvas::kIsOpaque_SaveLayerFlag
> 
> This is a performance-only hint that no one but fuzzers
> is using.  It's even explicitly filtered out in Android.
> 
> The fuzzers have noticed they can trick us into allocating
> uninitialized memory and treating it as opaque, blending
> uninitialized pixels, etc.
> 
> Since no one's using this, we can just kill the bit.
> 
> Bug: skia:7566, chromium:808830
> 
> Change-Id: Id74a85e51bc4d0907b4127eb9ac5b02576f8f0a7
> Reviewed-on: https://skia-review.googlesource.com/104441
> Reviewed-by: Mike Reed <reed@google.com>
> Commit-Queue: Mike Klein <mtklein@chromium.org>

TBR=mtklein@chromium.org,fmalita@chromium.org,reed@google.com

Change-Id: I10d3c7e5184b9322715a5bfb6a7106292c8876a3
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:7566, chromium:808830
Reviewed-on: https://skia-review.googlesource.com/104781
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2018-02-07 01:58:56 +00:00
Mike Klein
9a7a2ee5ad remove SkCanvas::kIsOpaque_SaveLayerFlag
This is a performance-only hint that no one but fuzzers
is using.  It's even explicitly filtered out in Android.

The fuzzers have noticed they can trick us into allocating
uninitialized memory and treating it as opaque, blending
uninitialized pixels, etc.

Since no one's using this, we can just kill the bit.

Bug: skia:7566, chromium:808830

Change-Id: Id74a85e51bc4d0907b4127eb9ac5b02576f8f0a7
Reviewed-on: https://skia-review.googlesource.com/104441
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2018-02-07 00:00:25 +00:00
Mike Reed
5dd202dc90 Revert "Revert "move GrColor.h to private, IWYU""
This reverts commit 63cc29304a.

Reason for revert: pdfium updated

Original change's description:
> Revert "move GrColor.h to private, IWYU"
> 
> This reverts commit e602f39581.
> 
> Reason for revert: Breaks PDFIUM
> 
> Original change's description:
> > move GrColor.h to private, IWYU
> > 
> > Bug: skia:
> > Change-Id: I0f0dabd7cc54cb7786f53bd6da0c0c012375037e
> > Reviewed-on: https://skia-review.googlesource.com/104160
> > Commit-Queue: Mike Reed <reed@google.com>
> > Reviewed-by: Brian Salomon <bsalomon@google.com>
> 
> TBR=bsalomon@google.com,reed@google.com
> 
> Change-Id: Ifaa50f8771fa1ca8bc152270efdb1fe27f7210f2
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: skia:
> Reviewed-on: https://skia-review.googlesource.com/104440
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Brian Salomon <bsalomon@google.com>

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

Change-Id: I22fa5c0e0628b5c1f3b5f13879c7d1a4528cc93a
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:
Reviewed-on: https://skia-review.googlesource.com/104561
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2018-02-06 23:05:46 +00:00
Mike Reed
be33bab92b add maskfilter+localmatrix to fix savelayer
Bug: skia:7590
Change-Id: I0fcaf342f0dece9a2ddce39f72ad2694626544c7
Reviewed-on: https://skia-review.googlesource.com/104324
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Mike Reed <reed@google.com>
2018-02-06 21:39:45 +00:00
Brian Salomon
63cc29304a Revert "move GrColor.h to private, IWYU"
This reverts commit e602f39581.

Reason for revert: Breaks PDFIUM

Original change's description:
> move GrColor.h to private, IWYU
> 
> Bug: skia:
> Change-Id: I0f0dabd7cc54cb7786f53bd6da0c0c012375037e
> Reviewed-on: https://skia-review.googlesource.com/104160
> Commit-Queue: Mike Reed <reed@google.com>
> Reviewed-by: Brian Salomon <bsalomon@google.com>

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

Change-Id: Ifaa50f8771fa1ca8bc152270efdb1fe27f7210f2
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:
Reviewed-on: https://skia-review.googlesource.com/104440
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2018-02-06 18:33:26 +00:00
Mike Reed
e602f39581 move GrColor.h to private, IWYU
Bug: skia:
Change-Id: I0f0dabd7cc54cb7786f53bd6da0c0c012375037e
Reviewed-on: https://skia-review.googlesource.com/104160
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2018-02-06 15:42:15 +00:00
Brian Salomon
5711133a1b Remove integer texture support
Change-Id: I0db1c4d705711b8d980bbe0d986013daec6c8ef3
Reviewed-on: https://skia-review.googlesource.com/103762
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2018-02-06 12:56:46 +00:00
Mike Reed
b915b978e3 move SkMask.h to src
Bug: skia:
Change-Id: Ie51476412fb52df7cc07fdbd4dbbbfc89d9c08a7
Reviewed-on: https://skia-review.googlesource.com/104081
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2018-02-06 02:50:15 +00:00
Mike Reed
245af1ff99 fix symbol for intersection
Bug: skia:
Change-Id: I51e85eeba9975d20d897672f44935f573654619d
Reviewed-on: https://skia-review.googlesource.com/104141
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2018-02-06 02:40:16 +00:00
Peng Huang
52347e7d77 Fix link error with compoent build
Bug: skia:
Change-Id: I5f390b7e7cb4351cb08bfdeb2af93f5851e001b2
Reviewed-on: https://skia-review.googlesource.com/103900
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2018-02-05 19:37:56 +00:00
Robert Phillips
11bdbe0013 Revert "Re-enable explicit resource allocation in Skia"
This reverts commit ac18b46904.

Reason for revert: erg - bit rot

Original change's description:
> Re-enable explicit resource allocation in Skia
> 
> I can no longer repro the bug (assignment of the same GrTexture to both
> sides of a dest read) locally. Let's see what the bots have to say.
> 
> Change-Id: Ia71bb6fb44c5b8dc3dd870f7b20e12a6db70e26c
> Reviewed-on: https://skia-review.googlesource.com/103581
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Robert Phillips <robertphillips@google.com>

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

Change-Id: I5264986d3ddd439e5944c801b5d9113283921308
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/103660
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2018-02-05 16:19:57 +00:00
Robert Phillips
ac18b46904 Re-enable explicit resource allocation in Skia
I can no longer repro the bug (assignment of the same GrTexture to both
sides of a dest read) locally. Let's see what the bots have to say.

Change-Id: Ia71bb6fb44c5b8dc3dd870f7b20e12a6db70e26c
Reviewed-on: https://skia-review.googlesource.com/103581
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2018-02-05 15:56:06 +00:00
Robert Phillips
e8fabb2665 Update LazyProxy creation to allow for a non-textureable result
Change-Id: Ic284b4f4220afa714159e07f57798a94fd40d63a
Reviewed-on: https://skia-review.googlesource.com/102484
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2018-02-04 20:01:28 +00:00
Brian Salomon
bdecacfbe4 Revert "Revert "Revert "Revert "Revert "Revert "Redefine the meaning of sample counts in GPU backend.""""""
This reverts commit 3a2cc2c2ec.

Fix code with samplecnt=0 that slipped in between trybots/CQ and landing of previous version

Change-Id: Iab19f2e8d1e9901601c8c76244d7a88c5d707fab
Reviewed-on: https://skia-review.googlesource.com/103181
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2018-02-03 01:59:59 +00:00
Brian Salomon
3a2cc2c2ec Revert "Revert "Revert "Revert "Revert "Redefine the meaning of sample counts in GPU backend."""""
This reverts commit 5bb82cbecd.

Reason for revert: <INSERT REASONING HERE>

Original change's description:
> Revert "Revert "Revert "Revert "Redefine the meaning of sample counts in GPU backend.""""
> 
> This reverts commit 18c52a7b52.
> 
> Also relands "More sample count cleanup:" and "Add new GrContext queries for imagability, surfacability, and max sample count of color types"
> 
> 
> Bug: skia:
> Change-Id: I4028105a3a1f16ce3944e134619eb6245af6b947
> Reviewed-on: https://skia-review.googlesource.com/102940
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Brian Salomon <bsalomon@google.com>

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

Change-Id: Idee23be2f1719f0bdc9305043e95a2d589bee8d1
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:
Reviewed-on: https://skia-review.googlesource.com/103220
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2018-02-03 00:25:20 +00:00
Brian Salomon
5bb82cbecd Revert "Revert "Revert "Revert "Redefine the meaning of sample counts in GPU backend.""""
This reverts commit 18c52a7b52.

Also relands "More sample count cleanup:" and "Add new GrContext queries for imagability, surfacability, and max sample count of color types"


Bug: skia:
Change-Id: I4028105a3a1f16ce3944e134619eb6245af6b947
Reviewed-on: https://skia-review.googlesource.com/102940
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2018-02-02 23:37:59 +00:00
Brian Salomon
18c52a7b52 Revert "Revert "Revert "Redefine the meaning of sample counts in GPU backend."""
This reverts commit d0d7270fcc.

Revert "More sample count cleanup:"

This reverts commit d653cac70e.

Revert "Add new GrContext queries for imagability, surfacability, and max sample count of color types"

This reverts commit 85ae7159c9.


Need to understand NVPR perf changes before relanding

Change-Id: I0db075fb42438ef2a1f9885df184dce52892ac4b
Reviewed-on: https://skia-review.googlesource.com/102780
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2018-02-02 12:19:52 +00:00
Brian Salomon
85ae7159c9 Add new GrContext queries for imagability, surfacability, and max sample count of color types
Bug: skia:7538
Change-Id: I235fc1aa947ba57faa7aef5e7e7ce9241b315fff
Reviewed-on: https://skia-review.googlesource.com/99704
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2018-02-02 00:16:28 +00:00
Brian Salomon
d653cac70e More sample count cleanup:
rename getSampleCount -> getRenderTargetSampleCount because it will return
0 when a config is not renderable but *is* supported as a texture format.
(Old name kept around until Chrome stops calling it)

Add virtual GrCaps::maxRenderTargetSampleCount(GrPixelConfig).

Devirtualize isConfigRenderable() and implement as maxRTSC != 0. Separate implementation for version with bool withMSAA param to be removed after Flutter is updated to no longer call.

Consolidate various file static GrSurfaceDesc validators fns into GrCaps::validateSurfaceDesc().


Bug: skia:
Change-Id: Ie30a291aa027e910df3bd90fac8518ccdb39e53f
Reviewed-on: https://skia-review.googlesource.com/102141
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2018-02-01 21:56:49 +00:00
Brian Salomon
d0d7270fcc Revert "Revert "Redefine the meaning of sample counts in GPU backend.""
Fixes gpu config default samples to be 1 and updates config parsing test accordingly.

This reverts commit c1ce2f7966.

Bug: skia:
Change-Id: I456973b1f52ced85a2011ea10fc49449bfc5846f
Reviewed-on: https://skia-review.googlesource.com/102147
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2018-02-01 21:15:39 +00:00
Brian Salomon
c1ce2f7966 Revert "Redefine the meaning of sample counts in GPU backend."
This reverts commit 48825b11ad.

Reason for revert: nanobench

Original change's description:
> Redefine the meaning of sample counts in GPU backend.
> 
> Old: 0  -> nonMSAA
>      1+ -> MSAA
> 
> New:
>      0  -> error/unsupported
>      1  -> nonMSAA
>      2+ -> MSAA
> 
> We still allow 0 to mean nonMSAA in three sets of public APIs for backwards compatibility:
> 
> 1) SkSurface factories
> 2) GrBackendRenderTarget constructors
> 3) GrCaps::getSampleCnt()'s requestedCount parameter
> 
> However, we immediately clamp to 1 and treat 0 as invalid/non-renderable internally.
> 
> This also changes the behavior when using a large sample count. We now fail in that case rather than using the largest sample available sample count. GrCaps::getSampleCount() will return 0 in this case.
> 
> 
> Bug: skia:
> Change-Id: Ida22c6b22c1365e563c9046b611e88bf5eb3ff33
> Reviewed-on: https://skia-review.googlesource.com/101560
> Reviewed-by: Greg Daniel <egdaniel@google.com>
> Commit-Queue: Brian Salomon <bsalomon@google.com>

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

Change-Id: Ic257619a8a5ee9ac15419ecf10259e42daed7f82
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:
Reviewed-on: https://skia-review.googlesource.com/102662
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2018-02-01 18:34:40 +00:00
Brian Salomon
48825b11ad Redefine the meaning of sample counts in GPU backend.
Old: 0  -> nonMSAA
     1+ -> MSAA

New:
     0  -> error/unsupported
     1  -> nonMSAA
     2+ -> MSAA

We still allow 0 to mean nonMSAA in three sets of public APIs for backwards compatibility:

1) SkSurface factories
2) GrBackendRenderTarget constructors
3) GrCaps::getSampleCnt()'s requestedCount parameter

However, we immediately clamp to 1 and treat 0 as invalid/non-renderable internally.

This also changes the behavior when using a large sample count. We now fail in that case rather than using the largest sample available sample count. GrCaps::getSampleCount() will return 0 in this case.


Bug: skia:
Change-Id: Ida22c6b22c1365e563c9046b611e88bf5eb3ff33
Reviewed-on: https://skia-review.googlesource.com/101560
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2018-02-01 18:16:58 +00:00
Greg Daniel
0a375db9a4 Have lazy proxies keep their callbacks around and clean up their lambdas in the dtor
I believe after this CL we will be at a place where we just have to null out the
fTarget of a lazy proxy and it will reinstantiate itself.

Bug: skia:
Change-Id: I88fdc70e149eba4514a0823da99383583394005c
Reviewed-on: https://skia-review.googlesource.com/102021
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2018-02-01 17:24:38 +00:00
Robert Phillips
6200036929 Implement GPU/OpList DDLs
This relies on https://skia-review.googlesource.com/c/skia/+/102101 (Add SkSurface_Gpu::MakeWrappedRenderTarget method) landing first

TBR=bsalomon@google.com
Change-Id: I4d2d66af5800407f638ef32d7b19ce49084bd4e4
Reviewed-on: https://skia-review.googlesource.com/102263
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2018-02-01 15:00:53 +00:00
Mike Reed
3d5a6b5f25 add saturate helper for float2int64
Bug: skia:
Change-Id: I157f8c047145874c4585ae870018163908389b26
Reviewed-on: https://skia-review.googlesource.com/102321
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
2018-01-31 21:21:36 +00:00
Robert Phillips
d5f9cdd4b3 Add SkSurface_Gpu::MakeWrappedRenderTarget method
This is pulled out of https://skia-review.googlesource.com/c/skia/+/101480 (Implement GPU/OpList DDLs)

Change-Id: I12b1ac346c7c1fa10f2120bc92bee63c93fc2249
Reviewed-on: https://skia-review.googlesource.com/102101
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2018-01-31 21:15:45 +00:00
Mike Reed
1c5906f562 saturate some irect ops for fuzzers
Bug: skia:
Change-Id: I1c4f879a455048652abb619814841cd687a0474a
Reviewed-on: https://skia-review.googlesource.com/101881
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2018-01-30 21:50:30 +00:00
Leon Scroggins III
495e0f079c Simplify SkAnimatedImage
Bug: b/63908092

Rather than keeping track of the time and whether the animation is
running, leave that up to the client. Offer a single method to decode
the next frame, allowing the client to stay one frame ahead.

Change-Id: I546013e32e3a0874181b0dce1349bbec07aaadd4
Reviewed-on: https://skia-review.googlesource.com/101544
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Leon Scroggins <scroggo@google.com>
2018-01-30 18:46:35 +00:00
Greg Daniel
6a0176bf03 Add ref counted wrapped around GrTexture ReleaseProc
Bug: skia:
Change-Id: I0cd11a539fd6b16d4b3f9512694f84e0a429518c
Reviewed-on: https://skia-review.googlesource.com/101341
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2018-01-30 14:50:00 +00:00
Robert Phillips
7f861927fc Revert "Drop support for unused MSAA extensions"
This reverts commit 7df27465c4.

Reason for revert: experimental revert to see if this is the cause of the tree redness

Original change's description:
> Drop support for unused MSAA extensions
> 
> Bug: skia:
> Change-Id: I113b80e3f991f195155148625ceb29242ea82776
> Reviewed-on: https://skia-review.googlesource.com/101403
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Chris Dalton <csmartdalton@google.com>

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

Change-Id: I4fa4123e2d176bef88cd76a09a14053d9ac5809f
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:
Reviewed-on: https://skia-review.googlesource.com/101680
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2018-01-30 13:13:56 +00:00
Mike Reed
2f5b8d81c2 don't draw non-finite contexts in imagefilters
Bug: skia:7507
Change-Id: Ifc210951c17f74770f15de1c2e13b42117a3354e
Reviewed-on: https://skia-review.googlesource.com/101202
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2018-01-30 02:02:42 +00:00
Brian Salomon
e41e1769e7 Add kRGBX_8888, kRGBA_1010102, and kRGBX_1010102 color types. Unused for now.
BUG= skia:7533

Change-Id: I4b3f6b827fd833ba2d07895884d2abc9a3132366
Reviewed-on: https://skia-review.googlesource.com/99781
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2018-01-30 01:59:31 +00:00
Chris Dalton
7df27465c4 Drop support for unused MSAA extensions
Bug: skia:
Change-Id: I113b80e3f991f195155148625ceb29242ea82776
Reviewed-on: https://skia-review.googlesource.com/101403
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2018-01-29 23:37:51 +00:00
Brian Salomon
7f1a074600 Remove some unused sample count caps
Change-Id: I4acb620b4b7b4c5bd83d7c7d65808ca8ebbd6804
Reviewed-on: https://skia-review.googlesource.com/101360
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2018-01-29 19:46:31 +00:00
Brian Salomon
1c80e99dd5 Allow printf style var args for messages in REPORTER_ASSERT.
Remove REPORTER_ASSERT_MESSAGE.

Change-Id: I6d00715901159c93e22d182fe24aac92b5fdbcf4
Reviewed-on: https://skia-review.googlesource.com/100361
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
2018-01-29 15:17:09 +00:00
Mike Klein
fbe6620284 add SkPicture::MakePlaceholder()
Bug: skia:7536

Change-Id: I6ca7c680ef4fd69419254dc7f1af27343dbb8e89
Reviewed-on: https://skia-review.googlesource.com/99664
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2018-01-28 00:18:37 +00:00
Mike Klein
88d90714fa Revert "hide picture virtuals (no public callers)"
This reverts commit 8005bff7e6.

Reason for revert: hwui, flutter, and headless blink in G3 all still using these.

Original change's description:
> hide picture virtuals (no public callers)
> 
> This prepares the way for a clean impl of a "placeholder" picture that never unrolls
> 
> Bug: skia:
> Change-Id: I3b5785c5c94432b54e9a7dc280b2a6e716592473
> Reviewed-on: https://skia-review.googlesource.com/100260
> Commit-Queue: Mike Reed <reed@google.com>
> Reviewed-by: Mike Klein <mtklein@chromium.org>

TBR=mtklein@chromium.org,mtklein@google.com,reed@google.com

Change-Id: I385789dd420588ea9a9390c8a44c6ecb96c7f358
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:
Reviewed-on: https://skia-review.googlesource.com/100880
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2018-01-27 17:30:15 +00:00
Mike Reed
8005bff7e6 hide picture virtuals (no public callers)
This prepares the way for a clean impl of a "placeholder" picture that never unrolls

Bug: skia:
Change-Id: I3b5785c5c94432b54e9a7dc280b2a6e716592473
Reviewed-on: https://skia-review.googlesource.com/100260
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
2018-01-27 04:02:55 +00:00
Leon Scroggins III
da3e9ad894 Make SkAndroidCodec (optionally) respect origin
Bug: b/63909536

ImageDecoder will respect the origin, but BitmapFactory will maintain
its current behavior of not respecting it. Add an option to respect it.

In addition, add support for reading the EXIF data from a WEBP. This
seems to be an uncommon use case, but is occasionally used when
converting from a JPEG. Add 8 WEBPs, all converted (with cwebp) from
their analogous JPEG files already checked in.

Change-Id: I38afca58c86fa99ee9ab7d1dc83aaa4f23132c11
Reviewed-on: https://skia-review.googlesource.com/95300
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Leon Scroggins <scroggo@google.com>
2018-01-26 22:13:34 +00:00
Leon Scroggins III
abe639caf4 Add SkAnimatedImage::getRepetitionCount
Bug: b/63908092

Android does not need to have its end listener attached if the
repetition count is infinite. Provide an accessor so it will know.

Change-Id: I481b048994a6e86ae88c913a5dcca3788b92bae2
Reviewed-on: https://skia-review.googlesource.com/99883
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Leon Scroggins <scroggo@google.com>
2018-01-26 20:08:40 +00:00
Mike Klein
8f11d4dcaf eliminate SK_BUILD_FOR_WIN32
SK_BUILD_FOR_WIN and SK_BUILD_FOR_WIN32 have long meant the same thing.

Chrome fix is https://chromium-review.googlesource.com/c/chromium/src/+/884007

Change-Id: I0e907b1bcd2a358eabf776f414fd3aeb3c689561
Reviewed-on: https://skia-review.googlesource.com/99340
Reviewed-by: Mike Reed <reed@google.com>
2018-01-26 19:52:04 +00:00
Brian Salomon
33bf56d6b4 Remove GrContext::getRecommendedSampleCount and SkPictureContentInfo::suitableForGpuRasterization
Change-Id: I8c5521f87c5eae185e68622aa104cb8911efa8c8
Reviewed-on: https://skia-review.googlesource.com/100183
Reviewed-by: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2018-01-26 17:13:00 +00:00
Mike Reed
1bd556a177 use coverage modes instead of blend modes
Bug: skia:
Change-Id: Ib3aa0137644358173ea4087693f33dbc2118c6d2
Reviewed-on: https://skia-review.googlesource.com/99661
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2018-01-26 17:03:58 +00:00
Mike Reed
20dc672821 compose and combine maskfilters
Bug: skia:
Change-Id: Id470124021d00ee25cf4ae392a4ee345ced84110
Reviewed-on: https://skia-review.googlesource.com/97760
Reviewed-by: Mike Klein <mtklein@chromium.org>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Mike Reed <reed@google.com>
2018-01-25 01:54:21 +00:00
Robert Phillips
a83d0132ba Misc guarding of enums in ImageFilter CreateProcs
Change-Id: I51886aaf2a4670f46ca489b2369dc00e60403c75
Reviewed-on: https://skia-review.googlesource.com/99328
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2018-01-24 21:54:30 +00:00
Cary Clark
745c398754 minor imageinfo fixes
teeny fixes to SkImageInfo.h to get
ready for documenting it. Selected
SkImageInfo.h as Herb discovered that
global enums (especially forward
declared ones) break bookmaker.

TBR=reed@google.com
Bug: skia:6898
Change-Id: I6ecf4f9dd7022c810f3d7a6cfee10fb07aa49aee
Reviewed-on: https://skia-review.googlesource.com/99342
Reviewed-by: Cary Clark <caryclark@skia.org>
Reviewed-by: Cary Clark <caryclark@google.com>
Commit-Queue: Cary Clark <caryclark@skia.org>
2018-01-24 21:26:29 +00:00
Robert Phillips
b0ae566b23 Check enum values in SkDisplacementMapEffect's CreateProc
Bug: skia:5635
Change-Id: Iaa01d2207916d0e2a2e2623f124b2b4023b51b1b
Reviewed-on: https://skia-review.googlesource.com/99204
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2018-01-24 20:14:19 +00:00
Greg Daniel
f2336e4500 Add lazy proxy's for wrapping backend textures
Bug: skia:
Change-Id: I3bb557cefc35312adc9515b5683d2ed747bb4eb3
Reviewed-on: https://skia-review.googlesource.com/96862
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2018-01-24 15:12:30 +00:00