Commit Graph

27768 Commits

Author SHA1 Message Date
Mike Klein
097d0939e3 more symmetry for from_half/to_half
Tweaks to make the parallels between from_half and to_half stand out.

We can logically do the `auto denorm = em < ...;` comparisons as either
U32 or I32.  U32 would read more naturally, but we do I32 because some
instruction sets have direct signed comparison but must synthesize an
unsigned comparison.

CQ_INCLUDE_TRYBOTS=skia.primary:Test-Android-Clang-PixelC-CPU-TegraX1-arm64-Release-Android,Test-Android-Clang-Ci20-CPU-IngenicJZ4780-mipsel-Release-Android,Test-Android-Clang-Nexus10-CPU-Exynos5250-arm-Release-Android,Test-Mac-Clang-MacMini6.2-CPU-AVX-x86_64-Release,Test-Ubuntu-GCC-GCE-CPU-AVX2-x86-Debug,Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Debug

Change-Id: Ic74fe5b3b850f5bb7fd00fd4435bc32b8628eecd
Reviewed-on: https://skia-review.googlesource.com/13963
Reviewed-by: Matt Sarett <msarett@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-04-20 14:29:46 +00:00
Ethan Nicholas
5338f99a8a rectangle texture scaling is now handled in skslc
Bug: skia:
Change-Id: I658a95576143d69656cd63aec44ff65d430d332f
Reviewed-on: https://skia-review.googlesource.com/13813
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
2017-04-20 14:00:57 +00:00
Brian Osman
7b2391bc06 Remove incorrect assert
We only need to verify that we've tested the PM conversion if we're about
to use GrConfigConversionEffect. For the else case, no such guarantee is
made, so the assert is wrong.

Bug: chromium:713462
Change-Id: I5ffcc0c5f7de4e9614e9ccd83140acc9ab4f7283
Reviewed-on: https://skia-review.googlesource.com/13962
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2017-04-20 13:59:16 +00:00
Leon Scroggins III
2c65d51612 Make SkPngCodec only read as much of the stream as necessary
Previously, SkPngCodec assumed that the stream only contained one
image, which ended at the end of the stream. It read the stream in
arbitrarily-sized chunks, and then passed that data to libpng for
processing.

If a stream contains more than one image, this may result in reading
beyond the end of the image, making future reads read the wrong data.

Now, SkPngCodec starts by reading 8 bytes at a time. After the
signature, 8 bytes is enough to know which chunk is next and how many
bytes are in the chunk.

When decoding the size, we stop when we reach IDAT, and when decoding
the image, we stop when we reach IEND.

This manual parsing is necessary to support APNG, which is planned in
the future. It also allows us to remove the SK_GOOGLE3_PNG_HACK, which
was a workaround for reading more than necessary at the beginning of
the image.

Add a test that simulates the issue, by decoding a special stream that
reports an error if the codec attempts to read beyond the end.

Temporarily disable the partial decoding tests for png. A larger change
will be necessary to get those working again, and no clients are
currently relying on incrementally decoding PNGs (i.e. decode part of
an image, then decode further with more data).

Bug: skia:5368
BUG:34073812

Change-Id: If832f7b20565411226fb5be3c305a4d16bf9269d
Reviewed-on: https://skia-review.googlesource.com/13900
Commit-Queue: Leon Scroggins <scroggo@google.com>
Reviewed-by: Matt Sarett <msarett@google.com>
2017-04-20 13:40:17 +00:00
Greg Daniel
c819e66993 Check-in vulkan.h into third_party and use that instead of local sdk vulkan.h
This change is needed since once we start getting support for varrying of extensions
and newer version support in general, we need a common vulkan header to compile off of.
Otherwise we will run into problems if clients have older headers that don't include
functions/symbols we are trying to use.

Additionally it has the benefit of not needing to add if SK_VULKAN around code in
include which wants to use vulkan symbols.

This is a reland of the reverted cl: https://skia-review.googlesource.com/13804

Bug: skia:
Change-Id: I9023e80e60d2f2ebbdc8e794ec46d6f5c5c7c917
Reviewed-on: https://skia-review.googlesource.com/13874
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2017-04-20 13:09:27 +00:00
Mike Klein
d0ce148ed4 test and fix f16<->f32 conversion stages
This refactors from_half() and to_half() a bit, totally
reimplementing the non-hardware cases to be more clearly correct.

CQ_INCLUDE_TRYBOTS=skia.primary:Test-Android-Clang-PixelC-CPU-TegraX1-arm64-Release-Android,Test-Android-Clang-Ci20-CPU-IngenicJZ4780-mipsel-Release-Android,Test-Android-Clang-Nexus10-CPU-Exynos5250-arm-Release-Android,Test-Mac-Clang-MacMini6.2-CPU-AVX-x86_64-Release,Test-Ubuntu-GCC-GCE-CPU-AVX2-x86-Debug,Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Debug

Change-Id: I439463cf90935c5e8fe2369cbcf45e07f3af62c7
Reviewed-on: https://skia-review.googlesource.com/13921
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Matt Sarett <msarett@google.com>
2017-04-20 12:49:03 +00:00
Mike Reed
544e0ad49c remove dead code around SK_SUPPORT_LEGACY_CANVAS_READPIXELS
Bug: skia:6513
Change-Id: I8e4e0ffb371ae5b1af972110339e57d491ad9ff1
Reviewed-on: https://skia-review.googlesource.com/13779
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2017-04-20 09:42:32 +00:00
Mike Klein
da16434928 refactor approx_{log2,pow2,powf}
- Move to SkJumper_vectors.h
    - Fold the -127 and +2.774485010.
    - approx_powf(F,F) instead of approx_powf(F,float) for consistency.
    - A little layout reformatting.

Change-Id: If9cb3d62a097cb6ecf89f157a1dde672c1516371
Reviewed-on: https://skia-review.googlesource.com/13865
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-04-19 21:06:40 +00:00
Herb Derby
ecc364c426 Remove SkOpTAllocator
Have the callsites of SkOpTAllocator call SkArenaAlloc directly.

Bug: skia:
Change-Id: Ic54e92c3e9a0abed038aa3ae40e8a195895af99d
Reviewed-on: https://skia-review.googlesource.com/13870
Reviewed-by: Cary Clark <caryclark@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2017-04-19 20:36:15 +00:00
Chris Blume
66f2332b1e Fix spacing style
Change-Id: I525277c89466f1d30e651c5ef3ac4198021e0bff
Reviewed-on: https://skia-review.googlesource.com/13830
Reviewed-by: Leon Scroggins <scroggo@google.com>
Commit-Queue: Leon Scroggins <scroggo@google.com>
2017-04-19 20:29:12 +00:00
Greg Daniel
41cf197bf0 Update ProxyTest to skip configs that don't support the requested sample counts
Bug: skia:
Change-Id: I806dc153b8b6cf6dd6b74549905990cadb55daab
Reviewed-on: https://skia-review.googlesource.com/13871
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2017-04-19 20:05:51 +00:00
Eric Boren
ffb48e1aaf Recipes: remove some pragma: no cover
These are the remaining instances, and they're harder to deal with:
$ git grep pragma
recipe_modules/swarming/api.py:    except self.m.step.StepFailure as e:  # pragma: no cover
recipe_modules/swarming/api.py:      if len(ids) > 1:  # pragma: nocover
recipes/ct_skps.py:  if api.path.exists(version_file):  # pragma: nocover
recipes/ct_skps.py:  if api.path.exists(blacklist_file):  # pragma: nocover
recipes/upload_nano_results.py:  if len(results) != 1:  # pragma: nocover

Bug: skia:6473
Change-Id: If75e2ffcf39a944b513b9005bbc4bd9c4fb031f6
Reviewed-on: https://skia-review.googlesource.com/13867
Reviewed-by: Ravi Mistry <rmistry@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
2017-04-19 19:14:46 +00:00
Joe Gregorio
1e735c0256 [fiddle] Add simple animation support.
BUG=skia:

Change-Id: I6453afb1fe18e210d3c505b56777b8b19501ca2f
Reviewed-on: https://skia-review.googlesource.com/13810
Commit-Queue: Joe Gregorio <jcgregorio@google.com>
Reviewed-by: Hal Canary <halcanary@google.com>
2017-04-19 18:46:52 +00:00
Eric Boren
b82fdc70b5 Reland Recipes: Use strict coverage, part 2
Bug: skia:6473
Change-Id: I90c1c3a3108ce583df60933150d97b426173a315
Reviewed-on: https://skia-review.googlesource.com/13840
Reviewed-by: Ravi Mistry <rmistry@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
2017-04-19 18:10:40 +00:00
Greg Daniel
1e9ddccd41 Disable multisampling on Vulkan Nexus Player bot
Bug: skia:
Change-Id: Ic0dcca7a5dd21f1bfd1e40c78f98ac4c9f7e9ee5
Reviewed-on: https://skia-review.googlesource.com/13815
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2017-04-19 17:44:58 +00:00
Mike Klein
44375176c0 jumper, parametric_{r,g,b,a}
I've tried a couple of ideas for approx_powf():
   1) accumulate integer powers of x, then 4th roots, then 16th roots
   2) continue 1) all the way to 256th roots
   3) decompose into pow2 and log2, exploiting IEEE float layout
   4) slightly tune constants used in 3)
   5) accumulate integer powers of x, then 3+4) with different tuning
   6) follow a source online, basically 5 with finesse
   7) a new source quoting and improving on the method in 6).

7) seems perfect, enough that maybe we can explore improving its speed
at cost of precision.  Might be nice to get rid of those divides.  If we
allow a small tolerance (2-5) in our tests, we could use the very simple
fast forms from 3) (e.g. PS 5).  I wish I had some images to look at!

Anything involving roots seems to be subverted by poor rsqrt precision.

This change of course affects the pipelines created by the tests for
exponential and full parametric gamma curves.  What's less obvious is
that it also means SkJumper can now for the first time run the pipeline
created by the mixed gamma curves test.  This means we now need to relax
our tolerance for the table-based channel, just like we did when
implementing table_{r,g,b,a}.

This took me an embarassingly long time to figure out.  *face palm*

Change-Id: I451ee3c970a0a4a4e285f8aa8f6ef709a654d247
Reviewed-on: https://skia-review.googlesource.com/13656
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Matt Sarett <msarett@google.com>
Reviewed-by: Herb Derby <herb@google.com>
2017-04-19 17:43:58 +00:00
Mike Klein
8f2911f840 add unit tests for parametric_* stages
Change-Id: I7fab6d1c7240c17f2cc8436e8c6e7c8d2df940bb
Reviewed-on: https://skia-review.googlesource.com/13814
Reviewed-by: Matt Sarett <msarett@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-04-19 17:39:48 +00:00
Florin Malita
03013084aa Fix SkATan2_255 fuzzer crash
Test for degenerate values after computing the ratio, instead of
attempting to catch all tricky cases upfront.

BUG=skia:6511

Change-Id: I8e3421675994dd68a1eff1af3f1456917dd1f9e1
Reviewed-on: https://skia-review.googlesource.com/13726
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2017-04-19 17:33:08 +00:00
Eric Boren
a4432dd418 Revert "Recipes: Use strict coverage, part 2"
This reverts commit 4dbc9cead9.

Reason for revert: flaky?

Original change's description:
> Recipes: Use strict coverage, part 2
> 
> Bug: skia:6473
> Change-Id: Ia3a1587215a6a868c9577f2d864bc5c4e671a3fa
> Reviewed-on: https://skia-review.googlesource.com/13812
> Reviewed-by: Ravi Mistry <rmistry@google.com>
> Commit-Queue: Eric Boren <borenet@google.com>
> 

TBR=borenet@google.com,rmistry@google.com,reviews@skia.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Change-Id: Id746de56609fbaf5ec8ecdd22b5e60bcb3c01fa2
Reviewed-on: https://skia-review.googlesource.com/13819
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
2017-04-19 17:23:37 +00:00
Matt Sarett
6cc6ae7573 SkColorSpaceXformer: Add SkShader::makeColorSpace()
Just a refactor - reimplements the shader xforms with makeColorSpace().

11 gms have diffs.  Some are down to floating precision.  The old
implementation would go float->fixed->float in some cases.  Others
are due to improvements with gradient shaders inside local matrix
shaders.

Bug: skia:6516
Change-Id: I424406990c5c58a47833cf4c9ef146cd3ea6c37e
Reviewed-on: https://skia-review.googlesource.com/13769
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Matt Sarett <msarett@google.com>
2017-04-19 16:28:44 +00:00
Eric Boren
4dbc9cead9 Recipes: Use strict coverage, part 2
Bug: skia:6473
Change-Id: Ia3a1587215a6a868c9577f2d864bc5c4e671a3fa
Reviewed-on: https://skia-review.googlesource.com/13812
Reviewed-by: Ravi Mistry <rmistry@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
2017-04-19 16:23:44 +00:00
Eric Boren
7de9c1a4cb Fix tasks.json and the infra bot
Diffs caused by a collision between two CLs:

https://skia-review.googlesource.com/c/13597/
https://skia-review.googlesource.com/c/13770/

Bug: skia:
Change-Id: I1173560148e54a273df2ce16bcd8365557938873
Reviewed-on: https://skia-review.googlesource.com/13808
Reviewed-by: Ben Wagner <benjaminwagner@google.com>
Reviewed-by: Matt Sarett <msarett@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
2017-04-19 15:28:29 +00:00
Brian Osman
33ea136cf8 Update blacklist for Iris 540 Vulkan to exclude new test
This test is very similar to the existing WritePixels_Gpu test, which
was blacklisted for failing in the same way.

Bug: skia:
Change-Id: Id8e4253e030e01e215f161f81969764bc8364352
Reviewed-on: https://skia-review.googlesource.com/13809
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2017-04-19 15:21:59 +00:00
Greg Daniel
5238f994bf Revert "Check-in vulkan.h into third_party and use that instead of local sdk vulkan.h"
This reverts commit 3a3bc42b7d.

Reason for revert: still breaking android

Original change's description:
> Check-in vulkan.h into third_party and use that instead of local sdk vulkan.h
> 
> This change is needed since once we start getting support for varrying of extensions
> and newer version support in general, we need a common vulkan header to compile off of.
> Otherwise we will run into problems if clients have older headers that don't include
> functions/symbols we are trying to use.
> 
> Additionally it has the benefit of not needing to add if SK_VULKAN around code in
> include which wants to use vulkan symbols.
> 
> This is a reupload of CL: https://skia-review.googlesource.com/13651
> 
> Bug: skia:
> Change-Id: I091f526b8c4a61774c34834cd7bfb7e2c822ff5c
> Reviewed-on: https://skia-review.googlesource.com/13804
> Reviewed-by: Derek Sollenberger <djsollen@google.com>
> Commit-Queue: Greg Daniel <egdaniel@google.com>
> 

TBR=djsollen@google.com,egdaniel@google.com,mtklein@google.com,jvanverth@google.com,reviews@skia.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Change-Id: Ic595e32005761170156499cfb6efc1acfce96001
Reviewed-on: https://skia-review.googlesource.com/13806
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2017-04-19 14:44:47 +00:00
Greg Daniel
3a3bc42b7d Check-in vulkan.h into third_party and use that instead of local sdk vulkan.h
This change is needed since once we start getting support for varrying of extensions
and newer version support in general, we need a common vulkan header to compile off of.
Otherwise we will run into problems if clients have older headers that don't include
functions/symbols we are trying to use.

Additionally it has the benefit of not needing to add if SK_VULKAN around code in
include which wants to use vulkan symbols.

This is a reupload of CL: https://skia-review.googlesource.com/13651

Bug: skia:
Change-Id: I091f526b8c4a61774c34834cd7bfb7e2c822ff5c
Reviewed-on: https://skia-review.googlesource.com/13804
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2017-04-19 13:58:52 +00:00
Mike Reed
c86d377a4c Revert "remove legacy flags from google3"
This reverts commit d71730accb.

Reason for revert: broke g3, have fix underway

Original change's description:
> remove legacy flags from google3
> 
> Bug: skia:6481,skia:6513
> Change-Id: I3aac61df1252c16d1b7b8b4d78955da9accc464e
> Reviewed-on: https://skia-review.googlesource.com/13777
> Reviewed-by: Mike Reed <reed@google.com>
> 

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

Change-Id: Iccb1721e0d2a0724f6bb503abcb4360727a78f90
Reviewed-on: https://skia-review.googlesource.com/13801
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2017-04-19 11:47:22 +00:00
Eric Boren
e16fb7584a Recipes: Use strict coverage, part 1
Shouldn't change any behavior.

Bug: skia:
Change-Id: I953e0da886a6d61096eba7915101f245a6cec741
Reviewed-on: https://skia-review.googlesource.com/13765
Reviewed-by: Ravi Mistry <rmistry@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
2017-04-19 11:24:24 +00:00
Eric Boren
c1e9617e82 Revert "Roll recipe dependencies (nontrivial)."
This reverts commit 6bc873f0be.

Reason for revert: Broke CT SKPs bots

Original change's description:
> Roll recipe dependencies (nontrivial).
> 
> 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).
> 
> 
> Please review the expectation changes, and LGTM+CQ.
> 
> 
> More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.
> build:
>   https://crrev.com/06e6b3accc66f6c31053055c8e0efcd978f18b03 Implement a generic postprocess/merge hook for swarming tasks. (RELAND 4) (jbudorick@chromium.org)
> 
> 
> Change-Id: Ib62301f7336873f022cd5a7efe8df577c1414689
> Recipe-Tryjob-Bypass-Reason: Autoroller
> Bugdroid-Send-Email: False
> Reviewed-on: https://skia-review.googlesource.com/13775
> Commit-Queue: Eric Boren <borenet@google.com>
> Reviewed-by: Eric Boren <borenet@google.com>
> 

TBR=borenet@google.com,rmistry@google.com,recipe-roller@chromium.org,reviews@skia.org,iannucci@google.com,jbudorick@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Change-Id: I534dfb1d9adbb57ccafa1c1306b852106a7f8c31
Reviewed-on: https://skia-review.googlesource.com/13778
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
2017-04-19 11:12:25 +00:00
Mike Reed
d71730accb remove legacy flags from google3
Bug: skia:6481,skia:6513
Change-Id: I3aac61df1252c16d1b7b8b4d78955da9accc464e
Reviewed-on: https://skia-review.googlesource.com/13777
Reviewed-by: Mike Reed <reed@google.com>
2017-04-19 10:58:16 +00:00
recipe-roller
6bc873f0be Roll recipe dependencies (nontrivial).
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).


Please review the expectation changes, and LGTM+CQ.


More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.
build:
  https://crrev.com/06e6b3accc66f6c31053055c8e0efcd978f18b03 Implement a generic postprocess/merge hook for swarming tasks. (RELAND 4) (jbudorick@chromium.org)


Change-Id: Ib62301f7336873f022cd5a7efe8df577c1414689
Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Reviewed-on: https://skia-review.googlesource.com/13775
Commit-Queue: Eric Boren <borenet@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
2017-04-19 10:49:34 +00:00
Greg Daniel
df07ddd1f0 Revert "Check-in vulkan.h into third_party and use that instead of local sdk vulkan.h"
This reverts commit edbb7d8860.

Reason for revert: breaking android

Original change's description:
> Check-in vulkan.h into third_party and use that instead of local sdk vulkan.h
> 
> This change is needed since once we start getting support for varrying of extensions
> and newer version support in general, we need a common vulkan header to compile off of.
> Otherwise we will run into problems if clients have older headers that don't include
> functions/symbols we are trying to use.
> 
> Additionally it has the benefit of not needing to add if SK_VULKAN around code in
> include which wants to use vulkan symbols.
> 
> Bug: skia:
> Change-Id: I674a253308596dc75bd23574984ae933923679f9
> Reviewed-on: https://skia-review.googlesource.com/13651
> Commit-Queue: Greg Daniel <egdaniel@google.com>
> Reviewed-by: Jim Van Verth <jvanverth@google.com>
> Reviewed-by: Mike Klein <mtklein@chromium.org>
> 

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

Change-Id: I179647e6ae213b1b17a9c42ced5e98c6599b96c2
Reviewed-on: https://skia-review.googlesource.com/13774
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2017-04-19 01:22:52 +00:00
Stan Iliev
7fa5c31c2c Revert "Plumb GrBackendTexture throughout skia."
This reverts commit 7da62b9059.

Reason for revert: fix android roll

Original change's description:
> Plumb GrBackendTexture throughout skia.
> 
> Bug: skia:
> Change-Id: I1bae6768ee7229818a83ba608035a1f7867e6875
> Reviewed-on: https://skia-review.googlesource.com/13645
> Commit-Queue: Greg Daniel <egdaniel@google.com>
> Reviewed-by: Robert Phillips <robertphillips@google.com>
> 

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

Change-Id: I5cb8763cc837c83ebc6d10366fe2dd3efe35fb89
Reviewed-on: https://skia-review.googlesource.com/13773
Reviewed-by: Stan Iliev <stani@google.com>
Commit-Queue: Stan Iliev <stani@google.com>
2017-04-19 00:23:50 +00:00
Mike Klein
edec99b640 jumper, disable u16 table load stages
Bug: b/37433905

Change-Id: I829d76967f9da162388bad3f6bc2484d2a28043d
Reviewed-on: https://skia-review.googlesource.com/13771
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Matt Sarett <msarett@google.com>
2017-04-18 23:56:12 +00:00
Matt Sarett
3c846cf49c Add 16-bit P3 png test image
Bug: b/37433905
Change-Id: Ifcbee1879885c6c235d69f924846e34475804f8c
Reviewed-on: https://skia-review.googlesource.com/13770
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Matt Sarett <msarett@google.com>
2017-04-18 23:30:55 +00:00
Greg Daniel
7da62b9059 Plumb GrBackendTexture throughout skia.
Bug: skia:
Change-Id: I1bae6768ee7229818a83ba608035a1f7867e6875
Reviewed-on: https://skia-review.googlesource.com/13645
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2017-04-18 21:55:10 +00:00
Robert Phillips
b712a85aea Fix missing tolerance in GrPathUtils::worstCasePointCount
https://skia-review.googlesource.com/c/10752/ (Use correct tolerance for
conic chopping in MSAA and default path renderers) changed the tolerance
used in createGeom but didn't change the setting in worstCasePointCount.

Bug: 711936, 712749
Change-Id: I540d8bc8cfdebc3eae5204e1acfeba3cefc2b12e
Reviewed-on: https://skia-review.googlesource.com/13768
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2017-04-18 21:38:30 +00:00
Greg Daniel
7d6f6666fe Fix resolve assert in vulkan
Bug: skia:
Change-Id: I4fbf067112901a86faa7df301d3442281f563bcb
Reviewed-on: https://skia-review.googlesource.com/13767
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2017-04-18 21:12:14 +00:00
Greg Daniel
9440345a81 Add backend safe classes for passing in external texture and render targets into gpu
This CL adds the GrBackend* classes as well as just updates the API for SkSurface and
SkImage. The implementation on SkSurface/Image and the plumbing down into Ganesh will
be in an additional CL.

Besides the change to use the type safe classes, we also pull the SurfaceFlags, origin,
samples, out of the descriptor and pass those in directly.

Bug: skia:
Change-Id: I9702981fe26c3d5d7d2cbcf6977ba569d356d854
Reviewed-on: https://skia-review.googlesource.com/13122
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2017-04-18 20:33:58 +00:00
Kevin Lubick
4d8adbccc4 Speculative update of Nexus Players to O preview release 1
Bug: skia:
NOTRY=true
Change-Id: Ifc6fed23cfe6c81e4bd89068583a36b30742e45f
Reviewed-on: https://skia-review.googlesource.com/13729
Reviewed-by: Ben Wagner <benjaminwagner@google.com>
Commit-Queue: Ben Wagner <benjaminwagner@google.com>
2017-04-18 19:51:12 +00:00
Ben Wagner
56738d85ae Add Win7 and Win8 bots.
Bug: skia:6517
No-Try: true
Change-Id: I02abf8aae6c356be23612f2d5442e6837919a1dc
Reviewed-on: https://skia-review.googlesource.com/13597
Commit-Queue: Ben Wagner <benjaminwagner@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
2017-04-18 19:47:42 +00:00
Herb Derby
3f4531d312 Remove SkVarAlloc
Change-Id: Id41d3e03390185f72b682225aeb140df45c84a34
Reviewed-on: https://skia-review.googlesource.com/13763
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
2017-04-18 19:43:42 +00:00
Greg Daniel
edbb7d8860 Check-in vulkan.h into third_party and use that instead of local sdk vulkan.h
This change is needed since once we start getting support for varrying of extensions
and newer version support in general, we need a common vulkan header to compile off of.
Otherwise we will run into problems if clients have older headers that don't include
functions/symbols we are trying to use.

Additionally it has the benefit of not needing to add if SK_VULKAN around code in
include which wants to use vulkan symbols.

Bug: skia:
Change-Id: I674a253308596dc75bd23574984ae933923679f9
Reviewed-on: https://skia-review.googlesource.com/13651
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
2017-04-18 19:35:22 +00:00
Brian Osman
33910297e0 Fix some bugs with read/writePixels
- On both GL and Vulkan, we must draw if writing to an MSAA surface.
  Otherwise we just write to the resolve target texture, which gets
  overwritten on the next resolve.
- On Vulkan, we must draw if the target isn't a texture. (This check
  was already present in onWritePixels).
- On Vulkan, when reading from an MSAA surface as a different config,
  we don't need the readConfig to be renderable with MSAA - the temp
  surface is always created non-MSAA.

- Added tests for these fixes, verified that they failed previously.

Bug: skia:
Change-Id: Ia2d5025d7a8f8de8630413453f83b58028dd41aa
Reviewed-on: https://skia-review.googlesource.com/13691
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2017-04-18 19:12:23 +00:00
Mike Reed
15bff50a62 remove unneeded android flag for lockpixels
Bug: skia:6481
Change-Id: I6f9e299b34f396fbab892a4f91d3c4265c7c0ae2
Reviewed-on: https://skia-review.googlesource.com/13762
Reviewed-by: Mike Reed <reed@google.com>
2017-04-18 19:01:26 +00:00
Greg Daniel
bc26c392b2 Allow the dst of vulkan resolves to be a non RT
Bug: skia:
Change-Id: I79884127719b2364c2a986beda8856bee0583a5b
Reviewed-on: https://skia-review.googlesource.com/13724
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2017-04-18 18:00:16 +00:00
Robert Phillips
7ce67db564 Revert "Split up opLists"
This reverts commit bc8ee52d46.

Reason for revert: Instanced rendering is broken

Original change's description:
> Split up opLists
> 
> Split into:
>    https://skia-review.googlesource.com/c/11793/ (Remove lastProxy capability from GrSurface)
> 
> Change-Id: I903ba30e17de4aab8cb0d2cc3281ae5c262142f9
> Reviewed-on: https://skia-review.googlesource.com/11581
> Commit-Queue: Robert Phillips <robertphillips@google.com>
> Reviewed-by: Brian Osman <brianosman@google.com>
> 

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

Change-Id: Ic3ae650630a09730d40da4a9587d9e25a9dd5e6c
Reviewed-on: https://skia-review.googlesource.com/13725
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2017-04-18 17:10:22 +00:00
Cary Clark
73e597d0ed keep integral rectangle intersections integral
A pair of coincident lines can generate multiple intersection
points. Path ops is more stable when the intersection T value
is used to recompute the intersection point, but this has
the side-effect of making integral edges intersect at non-integral
values.

While it's worthwhile to fix this, for the moment it is less
disruptive to only worry about keeping intersection values
integral if the original intersection point is integral in
both axes.

Also, fix some debugging code that bit-rotted.

R=msarett@google.com

Change-Id: Iefd27b25d1d21c22b224c174bd59bc6c105033c4
Reviewed-on: https://skia-review.googlesource.com/13721
Reviewed-by: Matt Sarett <msarett@google.com>
Commit-Queue: Cary Clark <caryclark@google.com>
2017-04-18 16:40:48 +00:00
Herb Derby
4304d11ada Change SkRecord to use SkArenaAlloc
This CL uses the strategy of allocating raw bytes with the proper
alignment so that SkRecord can manage the object lifetimes.

Change-Id: I73604d41a3c6a12d1e2f7f8419f75b95c0190f68
Reviewed-on: https://skia-review.googlesource.com/13621
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
2017-04-18 16:19:47 +00:00
Robert Phillips
bc8ee52d46 Split up opLists
Split into:
   https://skia-review.googlesource.com/c/11793/ (Remove lastProxy capability from GrSurface)

Change-Id: I903ba30e17de4aab8cb0d2cc3281ae5c262142f9
Reviewed-on: https://skia-review.googlesource.com/11581
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2017-04-18 15:59:45 +00:00
Matt Sarett
6e83479994 Fix out of bounds read in SkColorSpace::MakeICC
Bug: 711895
Change-Id: I8574289bda842cf1be3fb5bcf347a81b98fdc6b0
Reviewed-on: https://skia-review.googlesource.com/13690
Commit-Queue: Matt Sarett <msarett@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
2017-04-18 15:37:29 +00:00