Commit Graph

28096 Commits

Author SHA1 Message Date
Matt Sarett
94fd06f074 Move SkPngEncoder into public API
Bug: 713862
Change-Id: I45068ed39affe41ffe0f29bf42c5ea1d9b0247ba
Reviewed-on: https://skia-review.googlesource.com/15897
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Reviewed-by: Leon Scroggins <scroggo@google.com>
Commit-Queue: Matt Sarett <msarett@google.com>
2017-05-09 17:46:30 +00:00
Mike Klein
6dfcecad33 Make SkColorFilter::appendStages() not fail.
This makes SkColorFilter::appendStages() first try onAppendStages(),
and if it's unimplemented or fails, fall back to filterSpan4f().

This also makes onAppendStages() private to try to ensure that
appendStages() is now its only caller, ensuring everyone goes
through this fallback path.

The fallback uses the color filter transformed into the dst colorspace
using our new SkColorSpaceXformer... that seem ok Matt?

Change-Id: I4751a6859596fa4f7e844e69ef0d986f005b52c7
Reviewed-on: https://skia-review.googlesource.com/16031
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Matt Sarett <msarett@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-05-09 17:46:29 +00:00
Brian Salomon
2a55c8ef49 Avoid assertion in MSAA rendering buffer about indexed draw with zero index count
Also add some GrMesh::validate() calls earlier to make future debugging easier. Previously this only asserted when the draws executed, now it asserts as soon as the draw is prepared in the op subclass.

Bug: skia:
Change-Id: Ibdd4488b9a9263f0ed337a2c8c6066bc36297001
Reviewed-on: https://skia-review.googlesource.com/16029
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2017-05-09 17:41:28 +00:00
Eric Karl
5c77975e4c Add flag to avoid stencil buffers in Skia
Certain systems experience a leak in the GL driver associated with
stencil buffers. Attempts to avoid the leak (while still using stencil
buffers) dind't succeed. This patch adds a GrContextOption
fAvoidStencilBuffers. This disables certain path rendering modes, as
well as stencil based masking/clipping.

Bug: 713854
Change-Id: Ifa6c0f2bd5ee395547bda9165d6c79d197ae8b8b
Reviewed-on: https://skia-review.googlesource.com/15253
Commit-Queue: Eric Karl <ericrk@chromium.org>
Reviewed-by: Eric Karl <ericrk@chromium.org>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2017-05-09 17:41:25 +00:00
Hal Canary
fda4600e41 SkPerlinNoiseShader: handle pathological inputs
BUG=skia:6429
Change-Id: Ifc20c1f480c1396e40ab7fc3a3789aa7c2ae5d85
Reviewed-on: https://skia-review.googlesource.com/15896
Commit-Queue: Hal Canary <halcanary@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2017-05-09 17:36:27 +00:00
Matt Sarett
8734566151 Convert color to dst (once) in color shaders
BUG=skia:

Change-Id: Ideba16972b82fc26766349c808ae406e5ea23163
Reviewed-on: https://skia-review.googlesource.com/9418
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Matt Sarett <msarett@google.com>
2017-05-09 17:36:23 +00:00
Robert Phillips
c84c030295 Add debug-only helper methods to get #ops & #clips per opList
These are being/will be used to determine the correct amout of memory to preallocate for ops & clips in the opLists.

Change-Id: I98ebaec8a6e72a43d97101aca5fbc58264964ebd
Reviewed-on: https://skia-review.googlesource.com/15882
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2017-05-09 17:31:23 +00:00
Eric Boren
234fc140eb [recipes] Remove inputs to BundleRecipes task
This should enable deduplication.

Bug: skia:
Change-Id: I2be98f648acd666c420885f08377c256f9102a8f
Reviewed-on: https://skia-review.googlesource.com/14651
Commit-Queue: Eric Boren <borenet@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2017-05-09 17:31:22 +00:00
Robert Phillips
6410d29e11 Remove 'fDrawFace' from GrPipeline
This will, hopefully, unblock the roll.

Change-Id: I2e33ccca7161334cdecd881e2699ae0c61ba2a31
Reviewed-on: https://skia-review.googlesource.com/16101
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2017-05-09 12:31:37 +00:00
Brian Osman
d2da87d0b8 Forward getGrContext in color space xform canvas
Bug: chromium:719664
Change-Id: I7477c1eb0479d5305233dc6a643280d88029bd17
Reviewed-on: https://skia-review.googlesource.com/15888
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2017-05-09 03:52:04 +00:00
Mike Reed
7f1d020bbf remove (possibly slow) call to refEncoded in getDeferredTextureImageData
- explicitly reject already-texture-backed and picture-backed

Needed to add a virtual to image_base and generator to distinguish
generators that can (or cannot) natively "generate" on the gpu (e.g. pictures)
Bug: 646089
Change-Id: I3aea22f89b31009ecbb3bd50d88512e6532f0a0f

Change-Id: I3aea22f89b31009ecbb3bd50d88512e6532f0a0f
Reviewed-on: https://skia-review.googlesource.com/15765
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Leon Scroggins <scroggo@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2017-05-09 03:52:03 +00:00
Herb Derby
090fbf86cf Add radial gradient stage.
Change-Id: Ie1f9640f5149f21bd8b3b864ff8b176232e1b0a9
Reviewed-on: https://skia-review.googlesource.com/15461
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Herb Derby <herb@google.com>
2017-05-09 03:46:57 +00:00
recipe-roller
599bf5831a Roll recipe dependencies (trivial).
This is an automated CL created by the recipe roller. This CL rolls recipe
changes from upstream projects (e.g. depot_tools) into downstream projects
(e.g. tools/build).


More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.
build:
  https://crrev.com/59b248f278e4828bbb0a8d8685975856a7f60509 Stop manually adding webkit_layout_tests if it's already configured src-side. (mcgreevy@chromium.org)
  https://crrev.com/ff38188006831a2f281b68c091a0c02f3fd51ec1 Migrate remaining chromium configs from depot_tools (machenbach@chromium.org)
  https://crrev.com/20950290930a4e7e2fb51f627b0066e883eefb3c Refactoring: rename obsolete v8 config (machenbach@chromium.org)
  https://crrev.com/4ac4debb7b303e5ce213acee4d0d6777299121be remote_run: Bump Kitchen, add LogDog tags. (dnj@chromium.org)
  https://crrev.com/f65b85259d62281f29e37ae28b002f6a98a486d8 Revert Kitchen bump. (dnj@chromium.org)
  https://crrev.com/577ed8c48dcad41653d0559a119abbb84f461afe remote_run: Decouple canary from Kitchen. (dnj@chromium.org)
  https://crrev.com/fa6566763ff505e21cb7a012ae31b363dc08aad6 Promote Win32 ASan to the main waterfall and remove Win SyzyASan. (ehmaldonado@chromium.org)
  https://crrev.com/671dc2edd993a46cb4d34621ed5e4c01b269d3a8 Enforce strict coverage for syzygy recipe module (phajdan.jr@chromium.org)
depot_tools:
  https://crrev.com/e39a9a46be39aac5fad2d66cf11ccdd6f8b9f081 Migrate remaining chromium configs to build repo (machenbach@chromium.org)
  https://crrev.com/b4a79690367881c427c9c5adf614823a01fc9990 Add back helper method still used in build repo (machenbach@chromium.org)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I0e5b52a9dac9408276d4adb021a20b1a6ec4c524
Reviewed-on: https://skia-review.googlesource.com/15883
Reviewed-by: Recipe Roller <recipe-roller@chromium.org>
Commit-Queue: Recipe Roller <recipe-roller@chromium.org>
2017-05-09 03:46:56 +00:00
Greg Daniel
8606cf836e Implement disconnect function for GrVkGpu
Apparently this was not added to Vk when it was added to GL. It may be
the cause of a flutter error they are seeing.
Bug: skia:
Change-Id: I4d4e9d1817b308b6c4f01e83f712eb3437e2ad71
Reviewed-on: https://skia-review.googlesource.com/15887
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
2017-05-09 03:41:52 +00:00
Ethan Nicholas
0c9d13b97a Minor sksl parser cleanup
This adds a new method "checkNext" which is essentially a conditional
nextToken(). This allows for some simplification of the parser code,
but has no other effect.

Bug: skia:
Change-Id: I4e08fd5f2c69cbcb4c31fd936b3a65dc50347191
Reviewed-on: https://skia-review.googlesource.com/15881
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Ben Wagner <benjaminwagner@google.com>
2017-05-09 03:41:51 +00:00
Mike Klein
892af1ec7b add a guide to contributing to SkJumper
Change-Id: Icd40cf5eff3d2156a3ca00d7950059d5b77f48bf
Reviewed-on: https://skia-review.googlesource.com/15890
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-05-08 23:40:14 +00:00
Brian Salomon
449d78f5a8 Revert "Added SkImage::MakeCrossContextFromEncoded"
This reverts commit 83b1b3db36.

Reason for revert: unit test failing and asan leaks

Original change's description:
> Added SkImage::MakeCrossContextFromEncoded
> 
> Designed for Flutter's threading architecture, with
> an eye to being useful to other clients. Under the
> hood, uses a new image generator class to lazily wrap
> a texture for multiple GrContexts.
> 
> Bug: skia:
> Change-Id: I6c37b12c8ab5bce94b91190e5f0beb91d31ae81b
> Reviewed-on: https://skia-review.googlesource.com/14180
> Commit-Queue: Brian Osman <brianosman@google.com>
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> 

TBR=egdaniel@google.com,bsalomon@google.com,robertphillips@google.com,brianosman@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Change-Id: I1f0bf580aa0ea2d132e18b64ff610ddac9d073a7
Reviewed-on: https://skia-review.googlesource.com/15892
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2017-05-08 20:46:26 +00:00
Ethan Nicholas
823bdd96ef fixed InstanceProcessor SkSL code
Bug: skia:5935
Change-Id: I9ca0e8a7bd30886d8240e338eefbfab368935ac5
Reviewed-on: https://skia-review.googlesource.com/15627
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
2017-05-08 20:07:35 +00:00
Mike Klein
d1835d7491 "can we?" -> "do we want to?" for SkRasterPipelineBlitter
There has been a supported() function in SkRasterPipelineBlitter.cpp for
a long time that's becoming increasingly misnamed.  That blitter ought
to be able to handle all destination formats.

This CL moves that logic outside to the creator of the blitter, changing
it from "can we handle this format?" to "do we want to use this blitter
for this format?".

In other CLs I'm working to make creating a pipeline blitter never fail.

Change-Id: Ie59fb8ec6e63d215d1baef439e464e8f0ab3ae4d
Reviewed-on: https://skia-review.googlesource.com/15842
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-05-08 20:05:44 +00:00
Brian Osman
83b1b3db36 Added SkImage::MakeCrossContextFromEncoded
Designed for Flutter's threading architecture, with
an eye to being useful to other clients. Under the
hood, uses a new image generator class to lazily wrap
a texture for multiple GrContexts.

Bug: skia:
Change-Id: I6c37b12c8ab5bce94b91190e5f0beb91d31ae81b
Reviewed-on: https://skia-review.googlesource.com/14180
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2017-05-08 19:56:27 +00:00
UpdateSKPs
aef837a542 Update SKP version
Automatic commit by the RecreateSKPs bot.

TBR=update-skps@skia.org
NO_MERGE_BUILDS

Change-Id: I8919465322d3621689bcab4bb577b42b9fd736d7
Reviewed-on: https://skia-review.googlesource.com/15920
Reviewed-by: update-skps <update-skps@skia.org>
Commit-Queue: update-skps <update-skps@skia.org>
2017-05-08 19:36:39 +00:00
Hal Canary
9e1469657e SkAdvancedTypefaceMetrics: pack fields better
64-bit pointers: 88 -> 80 bytes
    32-bit pointers: 68 -> 64 bytes

Change-Id: I2d6e186d15ad84a3b23bf8f6c816eaf482c3bdd5
Reviewed-on: https://skia-review.googlesource.com/15878
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
2017-05-08 18:58:58 +00:00
Mike Klein
be25600e9e fix commented-out gaussian
The original was

  static inline float eval_gaussian(float x) {
      float factor = 1 - x;
      return sk_float_exp(-factor * factor * 4) - 0.018f;
  }

Change-Id: I0590f9b4b41870a0145a4fb7aff5ce3fa4d4e412
Reviewed-on: https://skia-review.googlesource.com/15781
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-05-08 18:53:58 +00:00
Jim Van Verth
e308a122ef Remove height functor for shadows and replace with plane equation params
Change-Id: I948eceb2c58dc50468993dba54c209f18e440e48
Reviewed-on: https://skia-review.googlesource.com/15873
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2017-05-08 18:42:48 +00:00
Chris Dalton
6f24180a99 vk: don't re-check the primitive type for each batch of a mesh
Bug: skia:
Change-Id: I00561d0a2d6296924ef0d8ee25fc7215832338d8
Reviewed-on: https://skia-review.googlesource.com/15832
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2017-05-08 18:27:47 +00:00
Robert Phillips
b37208f11a Revert "Revert "Re-enable deferred proxies in Chrome""
This reverts commit 05814de6ba.

Reason for revert: Chrome layout test suppressions have landed

Original change's description:
> Revert "Re-enable deferred proxies in Chrome"
> 
> This reverts commit 555c49c347.
> 
> Reason for revert: layout tests
> 
> Original change's description:
> > Re-enable deferred proxies in Chrome
> > 
> > Now that https://skia-review.googlesource.com/c/14605/ (Allow TextureSamplers to have null GrTexture pointer) has landed we should be able to re-enable deferred proxies in Chrome.
> > 
> > Bug: 715488
> > Change-Id: Ibd38e5ddf0558b94f09e29f17837e6abfd22fa34
> > Reviewed-on: https://skia-review.googlesource.com/15252
> > Reviewed-by: Brian Salomon <bsalomon@google.com>
> > Commit-Queue: Robert Phillips <robertphillips@google.com>
> > 
> 
> TBR=bsalomon@google.com,robertphillips@google.com
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> 
> Change-Id: Ie90e64a2e4d5efc4b6909a04f8a862dd3a708d97
> Reviewed-on: https://skia-review.googlesource.com/15809
> Reviewed-by: Robert Phillips <robertphillips@google.com>
> Commit-Queue: Robert Phillips <robertphillips@google.com>
> 

TBR=bsalomon@google.com,robertphillips@google.com,reviews@skia.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Change-Id: I957e8e59af2b2f441c75bae2eda4dcd5ed82b34d
Reviewed-on: https://skia-review.googlesource.com/15876
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2017-05-08 18:10:02 +00:00
Robert Phillips
49081d13ba Expand GrTextureProxy to handle highestFilterMode
Once TextureProxies aren't instantiated in the TextureSamplers, the they will need to be able to supply this information.

split out of: https://skia-review.googlesource.com/c/10484/ (Omnibus: Push instantiation of GrTextures later (post TextureSampler))
Change-Id: I66555c0746131f565862f7a30d54ff1d458d2062
Reviewed-on: https://skia-review.googlesource.com/15819
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2017-05-08 18:07:07 +00:00
Florin Malita
26368c3300 Minimize computeTotalInverse()'s inputs
The helper doesn't need a full context rec - it only looks at the CTM
and external local matrix.  Pass these explicitly instead.
Change-Id: I6a5884f65cd383c2df0e8d83c9086789bd96f345
Reviewed-on: https://skia-review.googlesource.com/15870
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2017-05-08 18:04:57 +00:00
Chris Dalton
8e45b4f3a3 GL: track enabled vertex arrays as a count rather than a mask
Bug: skia:
Change-Id: I63e70ab844a7e04df20165aba025b963efcafa9e
Reviewed-on: https://skia-review.googlesource.com/15630
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2017-05-08 17:36:34 +00:00
Mike Klein
39748b2771 port ok to SkPngEncoder
I can't tell you how excited I am to turn down the libpng settings...
anything that saves me a few seconds is a nice quality of life win.

This CL makes ok run in about half the time when producing .pngs.

Profile running `ok gm srgb png` before:
    10.59   s   16.5%    10.59   s          longest_match
    8.98    s   14.0%    8.98    s          png_setup_paeth_row
    8.93    s   13.9%    8.93    s          skia_png_write_find_filter
    7.75    s   12.1%    7.75    s          deflate_slow
    4.63    s    7.2%    4.63    s          std::wait_until(...) const
    959.00 ms    1.5%    959.00 ms          SkPathRef::validate() const
    935.00 ms    1.4%    935.00 ms          sk_to_srgb_hsw
    ...

After:
    2.35    s    8.7%    2.35    s          std::wait_until(...) const
    1.70    s    6.2%    1.70    s          longest_match
    1.19    s    4.4%    1.19    s          deflate_fast
    931.00 ms    3.4%    931.00 ms          SkPathRef::validate() const
    898.00 ms    3.3%    898.00 ms          sk_to_srgb_hsw
    ...

Change-Id: I425c30b2ecd97a0e4a4392779de6301db473ee47
Reviewed-on: https://skia-review.googlesource.com/15547
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Matt Sarett <msarett@google.com>
2017-05-08 17:09:31 +00:00
Ravi Mistry
ee06ffe455 Separate lines added via post upload from original description
BUG=skia:6598
NOTRY=true

Change-Id: I23fa415788e91da01d33ab3ab912aa420636574c
Reviewed-on: https://skia-review.googlesource.com/15869
Commit-Queue: Ravi Mistry <rmistry@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
2017-05-08 17:05:11 +00:00
Brian Salomon
15b2509a7e Update minimum non-ES OpenGL spec to 2.0.
As a consequence of removing support for GLs lacking separate stencil settings our effective minimum GL version is 2.0. This formalizes that by explicitly failing if the version in the version string is lower.

As a consequence we will always have wrapping stencil operations available.
Bug: skia:
Change-Id: Ibe302f72a063dbadc773bda811cc0d0f6c08c61a
Reviewed-on: https://skia-review.googlesource.com/15610
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2017-05-08 16:52:14 +00:00
Brian Salomon
f0861675d7 Remove support for GLs without separate stencil.
As a consequence we no longer need GrDrawFace.

This effectively raises the minimum bar for non-ES OpenGL to 2.0 as there is no extension that adds the GL 2.0 separate stencil functionality. GL_ATI_separate_stencil is close but it does not have glStencilMaskSeparate.
Bug: skia:
Change-Id: I36d17a69400c8beeacb6dab8d8c5c3317814cfe4
Reviewed-on: https://skia-review.googlesource.com/15603
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2017-05-08 16:50:04 +00:00
Matt Sarett
be4c9b0a8b Add filtering and zlib-level options to SkPngEncoder
Bug: skia:6409
Bug: 713862
Change-Id: If287e2bcad5af990fac11e9091305f45ec903dbf
Reviewed-on: https://skia-review.googlesource.com/15647
Commit-Queue: Matt Sarett <msarett@google.com>
Reviewed-by: Leon Scroggins <scroggo@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
2017-05-08 16:43:44 +00:00
Ravi Mistry
9bbed5ecd0 Revert "Presubmit: ensure empty line between CL title and description"
This reverts commit 9518830650.

Reason for revert: <INSERT REASONING HERE>

Original change's description:
> Presubmit: ensure empty line between CL title and description
> 
> Bug: skia:
> Change-Id: If1b2d655e9be4b960f76d2d17ce1cf1126f7b2d4
> Reviewed-on: https://skia-review.googlesource.com/15624
> Reviewed-by: Eric Boren <borenet@google.com>
> Commit-Queue: Eric Boren <borenet@google.com>
> 

TBR=borenet@google.com,rmistry@google.com
NOTRY=true
# Not skipping CQ checks because original CL landed > 1 day ago.

Change-Id: I311ee790f152dbb8325214650838839f6821c995
Reviewed-on: https://skia-review.googlesource.com/15862
Reviewed-by: Ravi Mistry <rmistry@google.com>
Commit-Queue: Ravi Mistry <rmistry@google.com>
2017-05-08 16:40:44 +00:00
Ethan Nicholas
2983f4022d Re-land of "eliminated GrGLSLExpr".
This change is exactly the same as the last time it was landed; I believe the
underlying optimizer bug that was causing this to cause problems has been
fixed by a prior CL.
Bug: skia:
Change-Id: I5436422f094ea758caa3cd69e9338db31b1f93fa
Reviewed-on: https://skia-review.googlesource.com/15768
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
2017-05-08 16:08:44 +00:00
Brian Osman
0562eb9c6c Allow wrapped resources to have unique keys
Previously, wrapped resources were never budgeted. Now we explicitly allow
wrapped, unbudgeted resources with unique keys. This allows code that
wraps (and re-wraps) external resources with a deterministic key to find
the same wrapped resource - saving time and ensuring a single wrapped
copy, to preserve state on the resource (like texture sampler state).

Bug: skia:
Change-Id: I1dd7642f1ed8bb6c620029d46203cf5cb6b3c160
Reviewed-on: https://skia-review.googlesource.com/15241
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2017-05-08 15:48:44 +00:00
Ben Wagner
af6522adc1 [Bazel] Omit bigrect GM for ASAN.
Added in https://skia-review.googlesource.com/c/14751/; known to fail
float-cast-overflow check but forgot to omit in that CL.

Bug: skia:4632
No-Try: true
Change-Id: Ic62e0cbc00229ab3bdde60b3e7300fc66ad7d8e1
Reviewed-on: https://skia-review.googlesource.com/15815
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
2017-05-08 15:46:45 +00:00
Stephen White
ff60b17f67 GrTessellator AA: fix 1px wide paths.
Move 0 count check below the call to count outer polygons,
so we don't abort on a path with outer but no inner 
geometry.

This fixes the "thin_right_angle" and "thin_rect_and_triangle"
samples when running GM:thinconcavepaths --pr tess.

Change-Id: I9a75711787f729ce3a1d5313daa491098e397184
Reviewed-on: https://skia-review.googlesource.com/15661
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Stephen White <senorblanco@chromium.org>
2017-05-08 15:43:40 +00:00
Florin Malita
63f717da11 Remove Sk4fGradientInterval::fZeroRamp
It's cheap enough to compute when needed, and we don't need it in hot
loops anyway.
Change-Id: Ib0242f98f8bee31bff939cfdc7356d51525092e4
Reviewed-on: https://skia-review.googlesource.com/15764
Commit-Queue: Florin Malita <fmalita@chromium.org>
Reviewed-by: Herb Derby <herb@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
2017-05-08 15:41:40 +00:00
Brian Osman
5bbd076c52 SkImage::isValid
Lets clients know if an image is drawable to a particular GrContext
(or to CPU). Checks for abandoned GrContexts beneath GPU backed
images, as well as context mis-match.

Bug: skia:
Change-Id: Ibe88c7ce8091f965c14f6023a3597be4b70c3f99
Reviewed-on: https://skia-review.googlesource.com/15801
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2017-05-08 15:36:00 +00:00
Mike Klein
bb33833ed2 jumper, finish blend modes
I've decided to ignore our existing CPU implementations and start from
scratch, mostly referencing the GL ES 3.2 spec and w3 spec.

This implementation ought to look a lot like the reference
implementation I've written in gm/hsl.cpp, with the addition of
handling alpha: unpremul, blend, re-premul with a simple SrcOver alpha.

Change-Id: I38cf6be2dc66a6f46d7b18b91847f6933d2fab62
Reviewed-on: https://skia-review.googlesource.com/15316
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-05-08 15:24:01 +00:00
Robert Phillips
05814de6ba Revert "Re-enable deferred proxies in Chrome"
This reverts commit 555c49c347.

Reason for revert: layout tests

Original change's description:
> Re-enable deferred proxies in Chrome
> 
> Now that https://skia-review.googlesource.com/c/14605/ (Allow TextureSamplers to have null GrTexture pointer) has landed we should be able to re-enable deferred proxies in Chrome.
> 
> Bug: 715488
> Change-Id: Ibd38e5ddf0558b94f09e29f17837e6abfd22fa34
> Reviewed-on: https://skia-review.googlesource.com/15252
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Robert Phillips <robertphillips@google.com>
> 

TBR=bsalomon@google.com,robertphillips@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Change-Id: Ie90e64a2e4d5efc4b6909a04f8a862dd3a708d97
Reviewed-on: https://skia-review.googlesource.com/15809
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2017-05-08 15:18:53 +00:00
Mike Klein
9bb75afed4 Tighten up gradient clamp logic.
This is just a little refactor.  Shouldn't change any logic or pixels.

Change-Id: I782df78f2d693dc7e35c286b049730e763aa3dc8
Reviewed-on: https://skia-review.googlesource.com/15653
Reviewed-by: Florin Malita <fmalita@chromium.org>
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-05-08 15:17:11 +00:00
Greg Daniel
c2dd5ed937 Add GrVkTexelBuffer class
Bug: skia:
Change-Id: I6111902f58df3af92702d974a52d9c7f267634d4
Reviewed-on: https://skia-review.googlesource.com/15628
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2017-05-08 13:32:31 +00:00
Robert Iannucci
2629ea36db Manually roll recipes.
build:
  crrev.com/50e26da30b6cde158a39b6bdc99ddb2ba1a47614 Enforce strict coverage for isolate recipe module
  crrev.com/9f1038e0bc39f6348ce21f4af7cd9ad07184068d chromium_tests: Fix gtest validation when no valid json is present.
  crrev.com/d262a9497b79aa5352ea85c68f4b132872127e37 Buildbot pubsub: Remove LRU for buildsets
  crrev.com/95f0d5777e7c3db976c941758b2caa447f3c9872 remote_run: add support for new kitchen result format
  crrev.com/a081bfaddc1f94073a0ab73f31e7870dea764e27 V8: Bump shards on slowest bot
  crrev.com/0cd7b48611fc2feadb6348a2e16fcb509d45f44f WebRTC: Add logdog cipd package install for webrtc_perf_tests
  crrev.com/bb9f32300c4ca57516ee1b7c35579fe75553b6c6 Switch Android nexus 5x bot over to swarming
  crrev.com/db4dfab8c7f51f5527ecb0ec8d71bb38a45540b1 master.chromium.infra.cron; fix typo in slave name
  crrev.com/178e486407840b54b93429d92d2629c1ef731c1e CrOS: Update Chromite pin.
  crrev.com/7022f73461b3fa296e0acede710d80b2f5436b14 Add new machine to master.chromiumos
  crrev.com/e26fdac7c1d6928a70bdfee80ae267f506ccc35b Enforce strict coverage for chromium_tests recipe module
  crrev.com/2c630ad197926ac96d6600472d8082a2439322b6 Merge build requests on testers on the chromium.chromiumos waterfall.
  crrev.com/3fbbeef094717d4e371d78ec0fe2ca71bcaac765 Reland #2: Run "supersize archive" on Android perf builders
  crrev.com/2c5dd84cc74d0a650aa4cdc040daa8103124a7c4 Revert "Reland: Run "supersize archive" on Android perf builders"
  crrev.com/08b150c6d6e6f3208803bda4ea6af95012008596 Fetch Telemetry binary dependencies on main Linux and Mac builders.
  crrev.com/56598af93d1cf5bd853039c2de8b14ad358bb996 Bisect - Perf-Try - Don't call bot_update on the patched run.
  crrev.com/cccc78db18bb9c80d1689afe883b8131ec878a1f Reland: Run "supersize archive" on Android perf builders
  crrev.com/1130031d6393e79d1954c3554ce994babc5f3ea5 Revert "Run "supersize archive" on Android perf builders"
  crrev.com/37b16786dee83e4e72e8be310c68d46d3da7b19c Revert "Disable kitchen on Site Isolation Linux for now."
  crrev.com/9d59ac6854b57e8d12ce5fcc3266fd413521cc49 Run "supersize archive" on Android perf builders
  crrev.com/f25c842180da0df876d765503b0edddc0f95e048 Don't pin the SyzyAsan bots to VS2015.
  crrev.com/30d8d501de8b35a7e97060ed6b03f737dd424652 Rename android_webview_test_apk to webview_instrumentation_test_apk
  crrev.com/a53da2efbfa651d6437cbbedbe6222d512d3ef65 disconnect 3 masters from buildbucket
  crrev.com/7a08020351a41f514581c7ca75ac38beaef02975 Dart: allocate Windows slaves to integration builders for Dartium roll
  crrev.com/ce235777011d4277ccd791b8e53ac55e28954f2a WebRTC: Remove --timeout=900 from the recipe.
  crrev.com/b810b4628c808d13c4b6481db5693a1e6e0bd0d2 Add Chromium's gclient configs
  crrev.com/ef5479c25e00f2fe22d7f7011236fb313cb56b16 V8: Add gcc debug bots
  crrev.com/f55ee770c2582d2f27778ea78a7736aa8ef82a45 Add speed-profile in the buildbot steps.
  crrev.com/039b01833d51bfdf37a918a1162ac7b2019fa81d Roll recipes.
  crrev.com/0118b6411bc3ea9406b3e360715577b1f7eaeb4b Set fetch_telemetry_dependencies=1 on GPU FYI Mac/Linux builders.
  crrev.com/09b8f2f7f2de95dc3515487a32fa330667265e20 Simplify code which controls adding swarmed or local layout tests.
  crrev.com/da1809cb625558cf7c29df694587997dde022d3f Revert "Roll recipes."

depot_tools:
  crrev.com/a469aeec53a5983550e4b6a61e569971cb583b36 Remove Chromium's gclient configs from depot_tools
  crrev.com/362bc168c49d9e7b1223d126f5e0a2436eaeb7f3 Revert "[git_bootstrap.py] Remove unused options, use cipd in %PATH%."
  crrev.com/0f2e6c53db1b464e3dc7637c00c6251b864ae539 Add vpython.bat.

recipe_engine:
  crrev.com/5cdf9803d55420f3ae8d2e0dd524bc2de9c7284b Minor loader improvements.
  crrev.com/2dc658ad29ce38a0364540d85d05dc3a2ab87f16 [recipe_engine/step] Add ability for recipe engine invocation to inject paths.
  crrev.com/2dba35d569811216433ebd96760f3e9bde78b7e9 [PROPERTIES] Allow declaration of $package_name/module properties.

R=borenet@google.com

Bug: skia:
Change-Id: Ieea18b43b328ce4bccf63ac97c70c5b25f0111d8
Reviewed-on: https://skia-review.googlesource.com/15656
Commit-Queue: Eric Boren <borenet@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
Reviewed-by: Robbie Iannucci <iannucci@google.com>
2017-05-08 11:53:24 +00:00
Robert Phillips
555c49c347 Re-enable deferred proxies in Chrome
Now that https://skia-review.googlesource.com/c/14605/ (Allow TextureSamplers to have null GrTexture pointer) has landed we should be able to re-enable deferred proxies in Chrome.

Bug: 715488
Change-Id: Ibd38e5ddf0558b94f09e29f17837e6abfd22fa34
Reviewed-on: https://skia-review.googlesource.com/15252
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2017-05-08 11:49:54 +00:00
Mike Klein
ba8ca0a129 polish up gm/hsl.cpp
- remove broken clip_color_KHR().
   - rearrange a little to match spec closer
   - remove some TODOs

Change-Id: I2de6aa3138455d5970e2cda74f5da6ffadc3db56
Reviewed-on: https://skia-review.googlesource.com/15681
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
2017-05-07 04:56:13 +00:00
Mike Klein
bc63fd45d4 bug fix in hsl GM reference impls
As written the "constants" in clip() and channel() change as we update
each channel... duh.  Thankfully this ought to make most GMs look good.

Change-Id: I904e20e8e5114c827233dd1a93c0c59f7e7790fa
Reviewed-on: https://skia-review.googlesource.com/15680
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-05-07 04:19:10 +00:00
Mike Klein
f484ac692f hsl GM: more realistic references for non-legacy backends
Change-Id: I94663a2a3b9080ac318b2805ee8baa09d2985c9a
Reviewed-on: https://skia-review.googlesource.com/15545
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-05-06 20:09:34 +00:00