BUG=skia:7191
Change-Id: I9a7f03fb332dc31e053ae3b3569474a49869c7db
Reviewed-on: https://skia-review.googlesource.com/61364
Reviewed-by: Eric Boren <borenet@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Move Origin to its own header so that SkPixmap and SkJpegEncoder need
not depend on SkCodec.
Add libexif, which is already used by Android, and use it to write the
orientation. Write a makefile based on the Android.bp in Android, minus
warnings. (libexif has an LGPL license.)
Add a test that verifies all the orientations work.
Optionally enable writing the orientation (and therefore including
libexif). Chromium does not currently need it, and Android does not
expose an API that would allow using it. Disable on Windows, where we
still have build errors to fix.
Bug: skia:7138
Change-Id: Iaeff44c36aebe0e639666979dc00e1b7594bbeb1
Reviewed-on: https://skia-review.googlesource.com/60721
Commit-Queue: Leon Scroggins <scroggo@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Reed <reed@google.com>
This is a quick-and-dirty solution to select color mode, backend, etc.
from the command line.
e.g. 'out/Debug/SampleApp --keys CCd' for opengl and srgb
Bug: skia:
Change-Id: I61f9e0fd4209a5fadb585c02c71984398f2f0860
Reviewed-on: https://skia-review.googlesource.com/61482
Reviewed-by: Yuqian Li <liyuqian@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Bug: skia:
Change-Id: Iceb1834f1a3aa7594227ff3adf187c650aa30367
Reviewed-on: https://skia-review.googlesource.com/61480
Commit-Queue: Eric Boren <borenet@google.com>
Reviewed-by: Ravi Mistry <rmistry@google.com>
As this array grows longer it causes troublesome code generation
when we're compiling offline, but it's easy as an argument.
Change-Id: I53526443f534f29d3bff17c3aec24a9e916c9b86
Reviewed-on: https://skia-review.googlesource.com/60564
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Herb Derby <herb@google.com>
SkMatrix::mapHomogeneousPoints takes an array of SkScalar,
but expects essentially SkPoint3, so make it so.
R: robertphillips@google.com, reed@google.com
Bug: skia:6898
Change-Id: Ibaf8b05c08b7df16c67d6a77d914667ace9a70da
Reviewed-on: https://skia-review.googlesource.com/58380
Commit-Queue: Cary Clark <caryclark@skia.org>
Commit-Queue: Cary Clark <caryclark@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Today (x,y) are the integer coordinates of the first destination pixel
we're working on. By renaming them (dx,dy), we free up the names (x,y)
for working (i.e. _source_) x and y.
Until now we've generally just been continuing to call those (r,g), but
in the _lowp code that won't be possible (r+g hold x together, b+a y)
but we'll have the ability to just give them proper names x and y.
Change-Id: Id5faa09c4406116df5df7494efc6cb23659e9a2f
Reviewed-on: https://skia-review.googlesource.com/60820
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
This reverts commit a0020f987e.
Reason for revert: don't need this
Original change's description:
> Remove some blur tests on google3 until the flag is removed.
>
> Change 52771 is causing google3 to fail because some tests changed
> and were not guarded by a legacy flag.
>
> Change-Id: I7ad5b83315bba98744f89860dd03fffc66a88248
> Reviewed-on: https://skia-review.googlesource.com/60740
> Commit-Queue: Herb Derby <herb@google.com>
> Reviewed-by: Mike Klein <mtklein@chromium.org>
TBR=mtklein@chromium.org,mtklein@google.com,herb@google.com
Change-Id: Ib4f102442f6b11c276e020406808bd88344657a5
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/61321
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Special images, image shaders, and all texture producers,
as well as bicubic (which simplifies factory call sites).
Bug: skia:
Change-Id: I3f7c178060f25db8b659fe66e132f5ea066317b1
Reviewed-on: https://skia-review.googlesource.com/61261
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
This is an FP that just applies a GrColorSpaceXform. I have a long string
of follow-up changes that use this, which greatly simplifies many other
FPs, and ultimately eliminates the need for color space xforms to be a
first-class type in SkSL.
Bug: skia:
Change-Id: I070d8bab81c9a620a2173c83b0013c63ad53bc8e
Reviewed-on: https://skia-review.googlesource.com/60726
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
SkOpSegment::moveNearby may loop for a long time, maybe forever.
The longest loop isolated is 500 in a fuzzer generated test, and
50 in a real world test. Add an escape hatch to abandon the op
after 9999 loops.
While this puts a limit on the complexity path ops can handle,
realistically paths this complex fail otherwise.
TBR:hcm@google.com
Bug: 764699
Change-Id: Iad62b9d505b94b2c2845ad2874342ac90478642e
Reviewed-on: https://skia-review.googlesource.com/61200
Reviewed-by: Cary Clark <caryclark@skia.org>
Commit-Queue: Cary Clark <caryclark@skia.org>
This reverts commit 62563deb6b.
Reason for revert: change that affected similar set of GMs reverted, relanding now that this is more easily triagable.
Original change's description:
> Revert "Make GPU backend triangulate rects such that they are rendered as tri strips rather than tri fans."
>
> This reverts commit fa2d604a7d.
>
> Reason for revert: <INSERT REASONING HERE>
>
> Original change's description:
> > Make GPU backend triangulate rects such that they are rendered as tri strips rather than tri fans.
> >
> > Right now when we turn rects into quads we use a vertex order compatible with a tri fan rather than a tri strip.
> >
> > I wanted it to be the case that the same code could be used to generate a non-indexed mesh for a single rect or indexed using the quad index buffer when batching. Triangle fanning is not available in all APIS (e.g. is emulated in ANGLE and not supported in Metal) so it seems better to use a triangle strip over a fan in the single rect case.
> >
> >
> > Change-Id: I31eebd794e7328f4b39e3ec3377bf2ec556360ca
> > Reviewed-on: https://skia-review.googlesource.com/60081
> > Commit-Queue: Brian Salomon <bsalomon@google.com>
> > Reviewed-by: Robert Phillips <robertphillips@google.com>
>
> TBR=bsalomon@google.com,robertphillips@google.com
>
> Change-Id: I7c4c23aa418da09c9708b28cce64ab58e282dd3a
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Reviewed-on: https://skia-review.googlesource.com/60683
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Brian Salomon <bsalomon@google.com>
TBR=bsalomon@google.com,robertphillips@google.com
Change-Id: Iefcd16676a7617d32e89fc84206cd4e88e9a06e1
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/61160
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
ebf7299e4a..c514348e2a
$ git log ebf7299e4..c514348e2 --date=short --no-merges --format='%ad %ae %s'
2017-10-15 jmadill Vulkan: Minor cleanups to ProgramVk.
Created with:
roll-dep skia/third_party/externals/angle2
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md
If the roll is causing failures, see:
http://www.chromium.org/developers/tree-sheriffs/sheriff-details-chromium#TOC-Failures-due-to-DEPS-rolls
CQ_INCLUDE_TRYBOTS=skia.primary:Perf-Win10-MSVC-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE,Perf-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Debug-All-ANGLE,Perf-Win10-MSVC-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE,Perf-Win10-MSVC-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE,Perf-Win10-MSVC-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE,Perf-Win10-MSVC-ShuttleC-GPU-GTX960-x86_64-Debug-All-ANGLE,Test-Win10-MSVC-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE,Test-Win10-MSVC-Golo-GPU-QuadroP400-x86_64-Debug-All-ANGLE,Test-Win10-MSVC-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE,Test-Win10-MSVC-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE,Test-Win10-MSVC-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE,Test-Win10-MSVC-ShuttleC-GPU-GTX960-x86_64-Debug-All-ANGLE,Build-Debian9-GCC-x86_64-Release-ANGLE
TBR=benjaminwagner@google.com
Change-Id: I969d095d70377b1013c6d655095b6d6a789d92a7
Reviewed-on: https://skia-review.googlesource.com/61020
Reviewed-by: angle-deps-roller . <angle-deps-roller@chromium.org>
Commit-Queue: angle-deps-roller . <angle-deps-roller@chromium.org>
No-Try: true
Change-Id: If4320eae12e4967ee59a230549bbd34fca2fed94
Reviewed-on: https://skia-review.googlesource.com/60883
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Ben Wagner <benjaminwagner@google.com>
Because what can be better than marking things that can be constexpr as
constexpr. Also, I have a change where this would be nice to have.
Change-Id: Ie313b19d1930b98ddcd60cc17a320971625f18e3
Reviewed-on: https://skia-review.googlesource.com/60862
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Recent clang versions produce output like
../../samplecode/SampleAll.cpp:306:27:
error: redundant parentheses surrounding declarator
[-Werror,-Wredundant-parens]
Remove these to clean up the code a bit.
Change-Id: Ib099201f23f83cd712487c238b6a508290e667a7
Reviewed-on: https://skia-review.googlesource.com/60822
Commit-Queue: Ben Wagner <bungeman@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Bug: skia:
Change-Id: I28d28f514b46ad0c30109beba90ae8a1bd8fc4e3
Reviewed-on: https://skia-review.googlesource.com/59961
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
Bug: skia:
Change-Id: Iae6b2dc1098c9763ceec0289129818e1948a974c
Reviewed-on: https://skia-review.googlesource.com/60543
Reviewed-by: Ravi Mistry <rmistry@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
As \r doesn't work on bot output, the new output will be much more concise.
TBR: borenet@google.com
Bug: skia:
Change-Id: I190daeae230ea6e0c4bfebc53c6c5c1fd46c503a
Reviewed-on: https://skia-review.googlesource.com/60840
Reviewed-by: Yuqian Li <liyuqian@google.com>
Commit-Queue: Yuqian Li <liyuqian@google.com>
Change 52771 is causing google3 to fail because some tests changed
and were not guarded by a legacy flag.
Change-Id: I7ad5b83315bba98744f89860dd03fffc66a88248
Reviewed-on: https://skia-review.googlesource.com/60740
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
This reverts commit 2fb81c04d7.
Reason for revert: Apparently no gpu can consistently perform a full screen clear
Original change's description:
> Add unit test for clear bug
>
> Bug: 768134
> Change-Id: Ifb5a0eaeb85a8f399204467c22d0845d630d0d3d
> Reviewed-on: https://skia-review.googlesource.com/60562
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Robert Phillips <robertphillips@google.com>
TBR=bsalomon@google.com,robertphillips@google.com
Change-Id: I88434e55e5391e858ee7c37873d74d71f0c5b69f
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 768134
Reviewed-on: https://skia-review.googlesource.com/60684
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
This reverts commit fa2d604a7d.
Reason for revert: <INSERT REASONING HERE>
Original change's description:
> Make GPU backend triangulate rects such that they are rendered as tri strips rather than tri fans.
>
> Right now when we turn rects into quads we use a vertex order compatible with a tri fan rather than a tri strip.
>
> I wanted it to be the case that the same code could be used to generate a non-indexed mesh for a single rect or indexed using the quad index buffer when batching. Triangle fanning is not available in all APIS (e.g. is emulated in ANGLE and not supported in Metal) so it seems better to use a triangle strip over a fan in the single rect case.
>
>
> Change-Id: I31eebd794e7328f4b39e3ec3377bf2ec556360ca
> Reviewed-on: https://skia-review.googlesource.com/60081
> Commit-Queue: Brian Salomon <bsalomon@google.com>
> Reviewed-by: Robert Phillips <robertphillips@google.com>
TBR=bsalomon@google.com,robertphillips@google.com
Change-Id: I7c4c23aa418da09c9708b28cce64ab58e282dd3a
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/60683
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
It's properly 16 today because of HSW/lowp stages handling 16 pixels at
a time, but it hasn't yet had an effect on lowp so we didn't notice.
As we add lowp shader stages this will start to matter,
so might as well bump it up to 16 now.
(One day _skx lowp stages could bump this up to 32.)
Change-Id: Idd8185c08e12dc657389a35bf659662c9670f98a
Reviewed-on: https://skia-review.googlesource.com/60565
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Add new application, called GPU-CTS (GPU Compatibility Test Suite),
which executes skia gms against OpenGL and Vulkan backends. Makes use
of googletest library for consistancy with Android CTS programs.
Add googletest to DEPS
gm_knowledge.h header as a stub for future work on validating gm output.
gm_runner can be re-used in other programs. Talks to Skia and GM with a
simple API.
gpuctx executable wraps gm_runner and googletest together.
Change-Id: Ie7350b22164fa73e44121c39b0f36da4038a700b
Reviewed-on: https://skia-review.googlesource.com/56601
Reviewed-by: Hal Canary <halcanary@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
Enables for volatile paths and when path mask caching is disabled.
Bug: skia:
Change-Id: I644b17f2a4f77a4ddf85265f520599499c0800cf
Reviewed-on: https://skia-review.googlesource.com/60481
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Clang trunk will warn about this. The variable's constructor doesn't
have side-effect and it has a trivial destructor.
Bug: skia:
Change-Id: I4f20904fef2fd3617bb3062aa5ea71619e37c06c
Reviewed-on: https://skia-review.googlesource.com/60660
Commit-Queue: Benjamin Kramer <kramerb@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Right now when we turn rects into quads we use a vertex order compatible with a tri fan rather than a tri strip.
I wanted it to be the case that the same code could be used to generate a non-indexed mesh for a single rect or indexed using the quad index buffer when batching. Triangle fanning is not available in all APIS (e.g. is emulated in ANGLE and not supported in Metal) so it seems better to use a triangle strip over a fan in the single rect case.
Change-Id: I31eebd794e7328f4b39e3ec3377bf2ec556360ca
Reviewed-on: https://skia-review.googlesource.com/60081
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
developer reported a harmless, but misleading typo
in pathops. Verified that correcting it is also
harmless
TBR:reed@google.com
Bug: skia:7172
Change-Id: I3aff926752ef6c5d95a78f4e6cf57c9b42789f64
Reviewed-on: https://skia-review.googlesource.com/60561
Reviewed-by: Cary Clark <caryclark@skia.org>
Commit-Queue: Cary Clark <caryclark@skia.org>
Patching from internal cl/171888276.
No-Try: true
Change-Id: I6919769ad4e367ded394f1094944cea2b3901fd0
Reviewed-on: https://skia-review.googlesource.com/60583
Reviewed-by: Ben Wagner <benjaminwagner@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Ben Wagner <benjaminwagner@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
This would allow us to have more test coverage on specific scan converters
which may help us detect some wierd bugs such as crbug.com/774008
Bug: chromium:774008
Change-Id: I9213b11bb47ce48a6eff8da494e1b2699d386ae9
Reviewed-on: https://skia-review.googlesource.com/60540
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Yuqian Li <liyuqian@google.com>