Many old pathops-related fuzz failures have built up while
the codebase was under a state a flux. Now that the code
is stable, address these failures.
Most of the CL plumbs the debug global state to downstream
routines so that, if the data is not trusted (ala fuzzed)
the function can safely exit without asserting.
TBR=reed@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2426173002
Review-Url: https://chromiumcodereview.appspot.com/2426173002
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3727
Change-Id: Ic07ea6bd2756f1be08e80075c236a70ce6c08a3b
TBR=mtklein
Reviewed-on: https://skia-review.googlesource.com/3727
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Reed <reed@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
- Support ObjC / ObjC++
- Build SDL on Mac.
- Build viewer on Mac.
Patched from Jim's CL.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3760
Change-Id: I12663f2ed2969e22f51aefed560fbc22b2524167
Reviewed-on: https://skia-review.googlesource.com/3760
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
The Android builders don't need the clang_linux asset.
I don't think anything needs the android_sdk asset.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3740
Change-Id: I3e61ba23ed661a998f9dc0eb4c46cc8eb1cf3226
Reviewed-on: https://skia-review.googlesource.com/3740
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
SkRRectsGaussianEdgeShader will be removed once the usage of the
MaskFilter flavor has been propagated to Android
I will complete the raster implementation in a follow up CL.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3632
Change-Id: I42470b17308582b040a5db1a7283c3d717405345
Reviewed-on: https://skia-review.googlesource.com/3632
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Some classes directly call global operator new to reserve space in
addition to the space the class will occupy. These clases must be
deleted with the unsized global operator new. If a build is configured
such that sized global operator new is called from a delete expression,
this must be overridden by such classes.
TBR=reed
Only affects private bits of SkData.
Change-Id: I797935db17a37aa8c2ca7b562a4ea65a7978a9f0
Reviewed-on: https://skia-review.googlesource.com/3678
Reviewed-by: Ben Wagner <bungeman@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Ben Wagner <bungeman@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
MSVC was not picking up that tail==0 in the non-_tail versions of the kernel functions in SkRasterPipeline_opts.h. This passes through a template bool parameter to convey the same message.
This makes the body code a bit smaller and faster on MSVC now by removing the tail>0 check and code.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3669
Change-Id: I8bf81717a83f216eb1eb28a75dac41779dc508c1
Reviewed-on: https://skia-review.googlesource.com/3669
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
This reverts commit 4f02ce7995.
Reason for revert: missed a stage
TBR=mtklein@chromium.org,msarett@google.com,herb@google.com,reviews@skia.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Change-Id: I1dc1229183d67fe72977e492977a97b19dc630d2
Reviewed-on: https://skia-review.googlesource.com/3675
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
All SkNx are now in anonymous namespaces and all their methods are force-inlined. We should not have any ODR problems.
This is still a near 2x speedup, more so for f16.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3667
Change-Id: I6db9a46f7164f49827ab4d7983e80bf8cea99995
Reviewed-on: https://skia-review.googlesource.com/3667
Reviewed-by: Matt Sarett <msarett@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
crrev.com/2420843003 (DIFFERENT ISSUE) introduced some changes in
sampled images. (I already corrected the problem for interlaced PNGs
in crrev.com/2424353003.)
When deciding whether a row is needed, we need to subtract the starting
coordinate, similar to how we subtracted fFirstRow in SkPngCodec.
This should "fix" the remaining untriaged images in Gold (i.e. we will
go back to producing the original image).
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2440563002
Review-Url: https://chromiumcodereview.appspot.com/2440563002
We check this define to know which intrinsics we can call safely. The -msse flags set it for us on non-MSVC, but MSVC has no such switch. We do this in GYP (and Chrome's GN) too. No need for any defines on :avx or :hsw targets... the /arch:AVX and /arch:AVX2 do set SK_CPU_SSE_LEVEL for us.
Most directly, this means things like Sk4f::thenElse() will now use blendps when compiled into SkOpts_sse41.cpp.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3666
Change-Id: Ie80a8b8e5544250b45cfe51c40604fade06b3ef9
Reviewed-on: https://skia-review.googlesource.com/3666
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Matt Sarett <msarett@google.com>
All small stuff:
- printf doesn't go to the Visual Studio console, SkDebugf does;
- the Windows console can't show an ellipsis;
- overwriting the console line is a little different on Windows.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3664
Change-Id: I0175afd6d0147feaff8ff6edae2b35a7435c25f5
Reviewed-on: https://skia-review.googlesource.com/3664
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
In this function, when count is 0, it maps the dst point to start, where
it should really be stop. A test case is also added.
In the test case, it should be drawing three lines, without the change in
SkPath class, it will draw 2 lines only with the top horizontal line
missing because it maps the dst point to the start point, and hence
the horizontal line is not drawn.
BUG=640031
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2409983004
Review-Url: https://chromiumcodereview.appspot.com/2409983004
Was just perusing DEPS and I realized shaderc is probably no longer needed.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3561
Change-Id: I054a424b26e51dbfee77dbe79e1e175399627902
Reviewed-on: https://skia-review.googlesource.com/3561
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Reviewed-by: Greg Daniel <egdaniel@google.com>
I think the Ninja [nnn/mmm] counts started going off when we landed this.
I'd rather have the [nnn/mmm] be correct than have the timestamps.
Change-Id: I96d24664789393056f94202f2b549ed5a4fe4bdb
Reviewed-on: https://skia-review.googlesource.com/3604
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reduces copy-paste and eases maintenance. I'll be adding another field to
AsFPArgs soon, and this is going to streamline that change.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3639
Change-Id: I6372ed5dce50a5ba9d73039bd4714e34502a1f75
Reviewed-on: https://skia-review.googlesource.com/3639
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
MSVC's not so good at inlining. So tell it where to. It won't hurt the others.
This has nothing directly to do with ODR safety. The anonymous namespaces and 'static' on freestanding functions provide the correctness we need there. But this change can help to mechanically prevent the sort of problems ODR violations can lead to.
I may follow up by extending this strategy further to Sk4px, which is used to implement a lot of the legacy xfermodes.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3608
CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot
Change-Id: I927334c40910ce43da1fbabdf243c9cd5438bea6
Reviewed-on: https://skia-review.googlesource.com/3608
Reviewed-by: Matt Sarett <msarett@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
This also removes the class operator new override along with
directly calling malloc in SkData, since it has a similar requirements.
CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Debug-ASAN-Trybot;master.client.skia:Test-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Debug-MSAN-Trybot
Change-Id: Ic68aacf2028d6964d9735a55558862afc9edd19b
Reviewed-on: https://skia-review.googlesource.com/3541
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Ben Wagner <bungeman@google.com>
CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Win-MSVC-ShuttleC-GPU-GTX960-x86_64-Debug-ANGLE-Trybot
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3597
Change-Id: Id948caa1f28f415c453895fd30ff032bcadbb3d3
Reviewed-on: https://skia-review.googlesource.com/3597
Commit-Queue: Brian Salomon <bsalomon@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
This reverts commit f00decf644.
Reason for revert: Breaking master-skia cause of SK_SUPPORT_LEGACY_PICTURE_PTR
TBR=rmistry@google.com,scroggo@google.com,reed@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Change-Id: Ib33b8fafeee847e0ef92e5865e50c2070ba3939c
Reviewed-on: https://skia-review.googlesource.com/3624
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
BUG=skia:
Change-Id: Ia0c10db49905fc5a3bdf424c38576e1a6cf09ecf
Reviewed-on: https://skia-review.googlesource.com/3606
Reviewed-by: Mike Klein <mtklein@chromium.org>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
The refactoring breaks off A2B0 tag support into a separate
subclass of SkColorSpace_Base, while keeping the current
(besides CLUT) functionality in a XYZTRC subclass.
ICC profile loading is now aware of this and creates the A2B0
subclass when SkColorSpace::NewICC() is called on a profile
in need of the A2B0 functionality.
The LabPCSDemo GM loads a .icc profile containing a LAB PCS and
then runs a Lab->XYZ conversion on an image using it so we can
display it and test out the A2B0 SkColorSpace functionality,
sans a/b/m-curves, as well as the Lab->XYZ conversion code.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2389983002
Review-Url: https://codereview.chromium.org/2389983002
All our bots but the iOS ones are on GN now. This cleans up a bunch of GYP and other obsolete stuff.
- Nothing's using default_flavor.py any more except as a base class.
- There are no -CMake, -Shared or -VisualBench bots anymore.
- Only the iOS bots care about GYP_DEFINES.
You'll see the PDFium bot's GYP_DEFINES change, but that doesn't matter... it's using PDFium's own (GN) build system, and it ignores GYP_DEFINES.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3567
Change-Id: I699e10f013ea77df4dcaa1cb559c51c5bf55dfdb
Reviewed-on: https://skia-review.googlesource.com/3567
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
This CL is a pre CL to fix some issues where we will need a GpuCB to
internally have multiple commandbuffers that it submits. Because of
this, I need to move the bounds calculations down into the VkGpuCB
since we need to know the bounds for each sub commandbuffer and not
just entire set of commands. In part this is good since GL actually
never needed the calculations so it saves some work there.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3142
Change-Id: Ied918765da3630aa6d87e29ccce6c883b96c4ead
Reviewed-on: https://skia-review.googlesource.com/3142
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
crrev.com/2420843003 (DIFFERENT ISSUE) resulted in a slight difference
in Gold for interlaced PNGs. The new images appeared to have slid down
slightly, implying that we sampled pixels higher (earlier) in the
image.
It turns out we were not truly taking get_start_coord into account.
This CL initializes the srcRow to consider get_start_coord, and should
fix the problem/difference.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2424353003
Review-Url: https://codereview.chromium.org/2424353003
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3584
CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Win-MSVC-ShuttleC-GPU-GTX960-x86_64-Debug-ANGLE-Trybot
Change-Id: Ic70002d13261d22d374f0fd29e2f8dd3c783d552
Reviewed-on: https://skia-review.googlesource.com/3584
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
This reverts commit d7d1997643.
This breaks the Chromium roll (it did last time it landed too).
https://codereview.chromium.org/2429853002
Please gate your next attempt on at least one of linux_android_rel_ng, linux_chromium_rel_ng, or mac_chromium_rel_ng.
TBR=benjaminwagner@google.com,ethannicholas@google.com,reviews@skia.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Change-Id: I999d4af70a5704b8990f3cd7d145eabff57646f5
Reviewed-on: https://skia-review.googlesource.com/3590
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
A pair of cubics may be difficult to sort if the tangents suggest
one sort but the midpoints suggest a different one. When in this
gray area, and when the cumulative sort of all the angles fails to
resolve, reverse the sort to break the tie.
Before, when tiger8 was run through the signed distance field
generated directly from the path data, the simplify call might
hang since the angle could not be resolved. If the endless loop
is detected, and if there is no tie to break, just fail instead.
TBR=reed@google.com
BUG=skia:5131
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2426753002
Review-Url: https://codereview.chromium.org/2426753002