SkColorSpaceXform now uses the same mechanism as our default path,
SkRasterPipeline. There's no real reason to jump out to it as a
special case any more.
Change-Id: I19490de5b331267209cf117534942fb175c624c9
Reviewed-on: https://skia-review.googlesource.com/29900
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Expand the existing GM with a column "stretching" the [0,1] color stop
domain onto something much wider than [0,360].
Change-Id: Ica4c4b40c2cad20fec12b7d2871354e119a7bcf2
Reviewed-on: https://skia-review.googlesource.com/29880
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
Does the transform before handling curves. This way all curves can be
carefully chopped in device space in order two avoid msaa.
Bug: skia:
Change-Id: I0508668142cda3fe3fda41f8475c408288aa4a47
Reviewed-on: https://skia-review.googlesource.com/29720
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Expand the sweep gradient definition to include a color stop angular range ([0, 360] by default).
Color stop positions in [0,1] are mapped to this range, and drawing outside is controlled by a
tile mode param.
This is closer to the CSS gradients spec and allows us to use fewer color stops in Blink conic
gradients.
Impl-wise, the remapping is effected after t calculation, and before tiling.
Change-Id: I5d71be01d134404d6eb9d7e2a904ec636b39f855
Reviewed-on: https://skia-review.googlesource.com/27704
Commit-Queue: Florin Malita <fmalita@chromium.org>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
This reverts commit 93061b5344.
Reason for revert: bot failures
Original change's description:
> support for 'half' types in sksl, plus general numeric type improvements
>
> Bug: skia:
> Change-Id: Id285262fda8291847f11343d499b5df62ddb4b09
> Reviewed-on: https://skia-review.googlesource.com/28980
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
TBR=bsalomon@google.com,ethannicholas@google.com
Change-Id: Ie8672271d35b9fcdf567f8bc3674084748be66ad
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:
Reviewed-on: https://skia-review.googlesource.com/29600
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
If we were doing this math with real numbers or even just doubles, these
clamps wouldn't be necessary. But we're favoring speed over accuracy
here when we emulate fmod() and some of those inaccuracies end up with
values outside the [0,tile) range, negative!
To keep the spirit of fast over 100% accurate, I've just added a safety
clamp to 0. The case in the unit test now returns 0 where it should
really return something like 7 or 8, but at least we won't try to read
_way_ outside the image buffer.
BUG=chromium:749260
Change-Id: Ifc5cfe69798beccbb2a16547510158576e06eb3a
Reviewed-on: https://skia-review.googlesource.com/29580
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Bug: angle:2098 skia:6857
Change-Id: I502f05cdeb56514db4e144fdbb6d6f5a6f476b2e
Reviewed-on: https://skia-review.googlesource.com/29520
Reviewed-by: Yuqian Li <liyuqian@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
A new fuzzer appears to be complaining about using uninitialized glyph
ids. These uninitilized glyph ids appear to be comming from far up the
stack, but they don't actually get used until much later. If Skia is
passed uninitialized memory in a draw call it will of course eventually
need to use it and be blamed when it does. This change will make it
obvious if the issue is up stack from Skia.
BUG=chromium:750070,chromium:750071,chromium:750072
Change-Id: Ic6ca2f6af3620ad4a31cb017570f42550360891a
Reviewed-on: https://skia-review.googlesource.com/29421
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Ben Wagner <bungeman@google.com>
Change-Id: I8108f48bb55cfb39532ef05e8e263769ff8fb10f
Reviewed-on: https://skia-review.googlesource.com/29420
Reviewed-by: Yuqian Li <liyuqian@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
This reverts commit 876aed8758.
Reason for revert: the bots seem to be unhappily red with this CL
Original change's description:
> Revert "Revert "Add support for semaphores to be inserted on GrContext flush""
>
> This reverts commit 8724b46099.
>
> Reason for revert: Creating a test CL to see what happens on the bots
>
> Original change's description:
> > Revert "Add support for semaphores to be inserted on GrContext flush"
> >
> > This reverts commit cd1416efbc.
> >
> > Reason for revert: speculative, to try to fix roll see gpu_tests.pixel_integration_test.PixelIntegrationTest.Pixel_GpuRasterization_ConcavePaths
> >
> > Original change's description:
> > > Add support for semaphores to be inserted on GrContext flush
> > >
> > > This also moves the logic of inserting semaphores down into GrDrawingManager
> > > and finishFlush on GrGpu. With it being on finishFlush, there should be no
> > > issues when the DrawingManager starts respecting the proxy passed in assuming
> > > it always calls finishFlush at the end (which it should).
> > >
> > > Bug: skia:
> > > Change-Id: I925c2a289dcbbb9159b9120878af1d34f21a2dc7
> > > Reviewed-on: https://skia-review.googlesource.com/25641
> > > 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: I9c5b9cf8c060193e1861dbb8f0c10fb11dfb5249
> > No-Presubmit: true
> > No-Tree-Checks: true
> > No-Try: true
> > Bug: skia:
> > Reviewed-on: https://skia-review.googlesource.com/25980
> > Reviewed-by: Mike Reed <reed@google.com>
> > Commit-Queue: Mike Reed <reed@google.com>
>
> TBR=egdaniel@google.com,bsalomon@google.com,robertphillips@google.com,reed@google.com
>
> # Not skipping CQ checks because original CL landed > 1 day ago.
>
> Bug: skia:
> Change-Id: I5edbeaa0769670ee58f362f0ccaa78319410aa6c
> Reviewed-on: https://skia-review.googlesource.com/26160
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Greg Daniel <egdaniel@google.com>
TBR=egdaniel@google.com,bsalomon@google.com,robertphillips@google.com,reed@google.com
Change-Id: I22fd6febafe70489a5fdb695c6f4263368eb423d
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:
Reviewed-on: https://skia-review.googlesource.com/29422
Reviewed-by: Yuqian Li <liyuqian@google.com>
Commit-Queue: Yuqian Li <liyuqian@google.com>
Bug: skia:
Change-Id: I0d421874e7ab71a39e2708575314f5b3615882e4
Reviewed-on: https://skia-review.googlesource.com/29221
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
cce8965d2c..878c8b1e5e
ANGLE now crashes (on program compilation) if there isn't a flush between uses of different flavors of ANGLE context (e.g., angle_gl_es2 vs. angle_gl_es3).
Change-Id: If59b6ec683e682db5214bb002a70863cee5fe013
Reviewed-on: https://skia-review.googlesource.com/28865
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
This reverts commit 8724b46099.
Reason for revert: Creating a test CL to see what happens on the bots
Original change's description:
> Revert "Add support for semaphores to be inserted on GrContext flush"
>
> This reverts commit cd1416efbc.
>
> Reason for revert: speculative, to try to fix roll see gpu_tests.pixel_integration_test.PixelIntegrationTest.Pixel_GpuRasterization_ConcavePaths
>
> Original change's description:
> > Add support for semaphores to be inserted on GrContext flush
> >
> > This also moves the logic of inserting semaphores down into GrDrawingManager
> > and finishFlush on GrGpu. With it being on finishFlush, there should be no
> > issues when the DrawingManager starts respecting the proxy passed in assuming
> > it always calls finishFlush at the end (which it should).
> >
> > Bug: skia:
> > Change-Id: I925c2a289dcbbb9159b9120878af1d34f21a2dc7
> > Reviewed-on: https://skia-review.googlesource.com/25641
> > 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: I9c5b9cf8c060193e1861dbb8f0c10fb11dfb5249
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: skia:
> Reviewed-on: https://skia-review.googlesource.com/25980
> Reviewed-by: Mike Reed <reed@google.com>
> Commit-Queue: Mike Reed <reed@google.com>
TBR=egdaniel@google.com,bsalomon@google.com,robertphillips@google.com,reed@google.com
# Not skipping CQ checks because original CL landed > 1 day ago.
Bug: skia:
Change-Id: I5edbeaa0769670ee58f362f0ccaa78319410aa6c
Reviewed-on: https://skia-review.googlesource.com/26160
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
We use several symbols from this library... we currently fail to link.
(The other small changes in here are automatic from gn format.)
BUG=skia:6891
Change-Id: Iec6f5deceecdb61571827ebb502a9f7e7e4a4bef
Reviewed-on: https://skia-review.googlesource.com/29260
Commit-Queue: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Heather Miller <hcm@google.com>
This reverts commit df0e09feac.
Reason for revert: Experimental revert to see if this is blocking the roll
Original change's description:
> Remove origin field from GrSurface
>
> This mainly consists of rm origin from GrSurface and the wrapBackEnd*
> methods and then re-adding an explicit origin parameter to all the
> GrGpu methods that need it.
>
> Change-Id: Iabd79ae98b227b5b9409f3ab5bbcc48af9613c18
> Reviewed-on: https://skia-review.googlesource.com/26363
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Robert Phillips <robertphillips@google.com>
TBR=bsalomon@google.com,robertphillips@google.com
Change-Id: Id606aa01e84e2b83be71d833eefca477c1ad0d01
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/29220
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Note that this does not clean up the users of this function, which
may themselves be subject to other overflow issues.
BUG=chromium:728936
Change-Id: I3eaa7627c3b6ff49296ea2618a0157dacdc1d9cc
Reviewed-on: https://skia-review.googlesource.com/29121
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Reviewed-by: Ben Wagner <bungeman@google.com>
- add a Debug builder
- add Debug and Release CPU testers on GCE
CQ_INCLUDE_TRYBOTS=skia.primary:Build-Win-Clang-x86_64-Debug,Test-Win2k8-Clang-GCE-CPU-AVX2-x86_64-Debug,Test-Win2k8-Clang-GCE-CPU-AVX2-x86_64-Release
Change-Id: I4f2d7309b36a532683f68fbdde9c7a9aaaa861ea
Reviewed-on: https://skia-review.googlesource.com/29023
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
By default it emulates your installed cl.exe, but the bots don't have
one. I think the fallback is 2013, which causes all sorts of pre-C++11
problems.
CQ_INCLUDE_TRYBOTS=skia.primary:Build-Win-Clang-x86_64-Release
Change-Id: I2556abe68825e58762b4172d067ba6826de5c133
Reviewed-on: https://skia-review.googlesource.com/29021
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Currently just adding support functions to go back and forth between
GrPixelConfigs and MTLPixelFormats.
Bug: skia:
Change-Id: I01a7d6877ebed87b87090ac2b920fee45dc0e856
Reviewed-on: https://skia-review.googlesource.com/29080
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
Remove CanCombine and AreEqual (unused)
Remove isInitialized() now that pipelines are initialized at creation.
Change-Id: Ibacf81d1f879c7ef9ea91a8f471c3d1df3eb2fed
Reviewed-on: https://skia-review.googlesource.com/29020
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Without this patch, the pipeline
1. converts to unpremultiplied
2. applies the sRGB transfer assuming the pixel is premultiplied
In step 2, we should assume the pixel is unpremultiplied.
Bug:738517
Change-Id: Ic11fcf64faa423577ccb1cfc0cfe96feb57db09a
Reviewed-on: https://skia-review.googlesource.com/28404
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
It seems rather implausible that this could be occuring but the Chrome
bug seems to say otherwise.
Bug: 748155
Change-Id: I8e14f1562c71da4ae80d626e4dba053d7ee13d97
Reviewed-on: https://skia-review.googlesource.com/28863
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
BUG=skia:2679
CQ_INCLUDE_TRYBOTS=skia.primary:Build-Win-Clang-x86_64-Release
Change-Id: I861366ae1340abcc67e87041904d08337b465bbe
Reviewed-on: https://skia-review.googlesource.com/28864
Reviewed-by: Eric Boren <borenet@google.com>
This should shut up any warnings in the win toolchain headers?
Change-Id: I7d17bf6d63d56e66afffa557d0ed06bc3994200d
Reviewed-on: https://skia-review.googlesource.com/28981
Reviewed-by: Ben Wagner <bungeman@google.com>
Bug: skia:2679
Change-Id: I7abffae32102a69271b23834a121c51426813e27
Reviewed-on: https://skia-review.googlesource.com/28785
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Bug: chromium:750420
Change-Id: Ie1a62356a3263c440a94ba1fd637c12884465515
Reviewed-on: https://skia-review.googlesource.com/28862
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
1) Run python bin/fetch-clang-win
2) Set clang_win = "../bin/clang_win"
3) ???
4) Profit
Most changes here are to pass the right -mfoo flags to Clang
to enable advanced instruction sets, or fixed warning-as-errors.
BUG=skia:2679
Change-Id: Ieed145d35c209131c7c16fdd3ee11a3de4a1a921
Reviewed-on: https://skia-review.googlesource.com/28740
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Stroking has some debug code that is examined
by StrokerTest.cpp; this test is not thread-safe.
Chrome detects this in TSAN, so disable the
test code in SkStroker.cpp the same way it
is disabled in StrokerTest.cpp
R=bsalomon@google.com
Bug: 749315
Change-Id: I6e424648b4d28509789e3e4123112e0fc95e34ed
Reviewed-on: https://skia-review.googlesource.com/28780
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Cary Clark <caryclark@skia.org>
Bug: skia:6556
Change-Id: Iebe8b30de70685f56b795521ccc2242b0682000b
Reviewed-on: https://skia-review.googlesource.com/28660
Reviewed-by: Ben Wagner <benjaminwagner@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
try removing self references in method definitions.
If this creates awkward wording, it can always be allowed
in another CL. Also tighten rules for identifying function
references in include comments.
R=briansoman@google.com, caryclark@google.comTBR=reed@google.com
Bug: skia:6898
Change-Id: I1a0e6b2a76dacfe71d134deb4589fb74e6611a03
Reviewed-on: https://skia-review.googlesource.com/28624
Commit-Queue: Cary Clark <caryclark@skia.org>
Reviewed-by: Cary Clark <caryclark@skia.org>
This mainly consists of rm origin from GrSurface and the wrapBackEnd*
methods and then re-adding an explicit origin parameter to all the
GrGpu methods that need it.
Change-Id: Iabd79ae98b227b5b9409f3ab5bbcc48af9613c18
Reviewed-on: https://skia-review.googlesource.com/26363
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Change-Id: Iec5725d594cc4726ac72526a1cc62f48e35b6647
Reviewed-on: https://skia-review.googlesource.com/28640
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>