platform/upstream/libSkiaSharp.git
7 years agoRemove exec bit from source file.
Ben Wagner [Mon, 3 Oct 2016 17:15:58 +0000 (13:15 -0400)]
Remove exec bit from source file.

Exec bit added in https://skia.googlesource.com/skia/+/40ff5fe59b77b0b3e34467cc2f8666e4e88356f9

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2869

Change-Id: I238f75fe2a865923568ac8f63ee1978df6c89f6c
Reviewed-on: https://skia-review.googlesource.com/2869
Reviewed-by: Matt Sarett <msarett@google.com>
Commit-Queue: Matt Sarett <msarett@google.com>

7 years agoremove quickreject for drawables
reed [Mon, 3 Oct 2016 17:35:37 +0000 (10:35 -0700)]
remove quickreject for drawables

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2388873002

Review-Url: https://codereview.chromium.org/2388873002

7 years agoreplace SkXfermode obj with SkBlendMode enum in paints
Mike Reed [Mon, 3 Oct 2016 16:57:32 +0000 (12:57 -0400)]
replace SkXfermode obj with SkBlendMode enum in paints

BUG=skia:5814

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2714

Change-Id: I4fb489ba6b3f77b458f7e4a99f79c7ad10859135
Reviewed-on: https://skia-review.googlesource.com/2714
Reviewed-by: Florin Malita <fmalita@chromium.org>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Mike Reed <reed@google.com>

7 years agoAvoid unnecessary GrShape->SkPath conversion in GrStencilAndCoverPathRenderer
bsalomon [Mon, 3 Oct 2016 16:48:22 +0000 (09:48 -0700)]
Avoid unnecessary GrShape->SkPath conversion in GrStencilAndCoverPathRenderer

Also remove redundant param to the path batch constructor.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2348543002

Review-Url: https://codereview.chromium.org/2348543002

7 years agoFix alpha threshold GM to test with and without crop rect
Brian Osman [Mon, 3 Oct 2016 15:06:45 +0000 (11:06 -0400)]
Fix alpha threshold GM to test with and without crop rect

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2864

Change-Id: I09f24303b2a693a384fb7399c2287ab476f16319
Reviewed-on: https://skia-review.googlesource.com/2864
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
7 years agoFix precision issues in SkRRectsGaussianEdgeShader.cpp
robertphillips [Mon, 3 Oct 2016 15:41:04 +0000 (08:41 -0700)]
Fix precision issues in SkRRectsGaussianEdgeShader.cpp

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2383863002

Review-Url: https://codereview.chromium.org/2383863002

7 years agoRoll recipe DEPS
borenet [Mon, 3 Oct 2016 13:21:56 +0000 (06:21 -0700)]
Roll recipe DEPS

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2386153002

Review-Url: https://codereview.chromium.org/2386153002

7 years agoThere are no more cmake bots, so clean up their old scripts.
Mike Klein [Fri, 30 Sep 2016 20:56:13 +0000 (16:56 -0400)]
There are no more cmake bots, so clean up their old scripts.

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2854

Change-Id: Ieb94788182b35d8fd3197ce090d5f28a65903204
Reviewed-on: https://skia-review.googlesource.com/2854
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>

7 years agoDelete unused avx2_sources.
Mike Klein [Fri, 30 Sep 2016 20:31:30 +0000 (16:31 -0400)]
Delete unused avx2_sources.

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2853

Change-Id: If546af6bea8c51b857860be6d266347cdf064d33
Reviewed-on: https://skia-review.googlesource.com/2853
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>

7 years agoAdd a SkRWBuffer reserve mechanism
fmalita [Fri, 30 Sep 2016 20:34:19 +0000 (13:34 -0700)]
Add a SkRWBuffer reserve mechanism

Currently, Chromium stores segmented data in a SharedBuffer and appends
to SkRWBuffer one segment at a time:

        const char* segment = 0;
        for (size_t length = data->getSomeData(segment, m_rwBuffer->size());
            length; length = data->getSomeData(segment, m_rwBuffer->size())) {
            m_rwBuffer->append(segment, length, remaining);
        }

This can yield a bunch of just-above-4k allocations => wasted RAM due to
internal fragmentation.

Ideally, we'd want a SkRWBuffer::reserve(size_t bytes) API, but the
current internals don't support that trivially.

Alternatively, the caller can pass a reserve hint at append() time.

BUG=chromium:651698
R=scroggo@google.com,reed@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2385803002

Review-Url: https://codereview.chromium.org/2385803002

7 years agoFix nanobench crashes
msarett [Fri, 30 Sep 2016 20:09:01 +0000 (13:09 -0700)]
Fix nanobench crashes

TBR=egdaniel@google.com
NOTRY=true
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2383223003

Review-Url: https://codereview.chromium.org/2383223003

7 years ago[task scheduler] Add gen_tasks.go
borenet [Fri, 30 Sep 2016 19:53:12 +0000 (12:53 -0700)]
[task scheduler] Add gen_tasks.go

This mimics the flow of infra/bots/recipes/swarm_trigger.py
but it builds the tasks.json file instead of triggering the
actual tasks.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2386663002

Review-Url: https://codereview.chromium.org/2386663002

7 years agofix mac build
Mike Reed [Fri, 30 Sep 2016 19:26:47 +0000 (15:26 -0400)]
fix mac build

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2852

Change-Id: I58ba4c8be14b5a40ae94a1f8e69a3c1aa08060d5
Reviewed-on: https://skia-review.googlesource.com/2852
Reviewed-by: Matt Sarett <msarett@google.com>
Commit-Queue: Mike Reed <reed@google.com>

7 years agoAdd a src rect to drawImageLattice() API
msarett [Fri, 30 Sep 2016 19:41:42 +0000 (12:41 -0700)]
Add a src rect to drawImageLattice() API

This will allow us to draw ninepatches directly from an asset
texture without having to upload them individually.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2382893002

Review-Url: https://codereview.chromium.org/2382893002

7 years agoStop uploading nanobench results on Valgrind bot
borenet [Fri, 30 Sep 2016 19:39:31 +0000 (12:39 -0700)]
Stop uploading nanobench results on Valgrind bot

It's not needed, and it's probably making the bot a lot slower.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2382313003

Review-Url: https://codereview.chromium.org/2382313003

7 years agoupload_dm_results: Remove JSON validation step
borenet [Fri, 30 Sep 2016 19:18:47 +0000 (12:18 -0700)]
upload_dm_results: Remove JSON validation step

This is infra-failing frequently for some reason, possibly due to large
file size?

TBR=stephana
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2383163002

Review-Url: https://codereview.chromium.org/2383163002

7 years agoSkPDF: de-duplicate text-as-paths
Hal Canary [Fri, 30 Sep 2016 18:53:15 +0000 (14:53 -0400)]
SkPDF: de-duplicate text-as-paths

TBR=

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2851

Change-Id: I0accbca13945587cd5ef903cbd4127f1f6a3fb13
Reviewed-on: https://skia-review.googlesource.com/2851
Reviewed-by: Hal Canary <halcanary@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>

7 years agoUnomit SkSL in public.bzl.
benjaminwagner [Fri, 30 Sep 2016 19:06:27 +0000 (12:06 -0700)]
Unomit SkSL in public.bzl.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2380563006

Review-Url: https://codereview.chromium.org/2380563006

7 years agoAdd gn option to set the location of the Vulkan SDK
Brian Salomon [Fri, 30 Sep 2016 17:41:03 +0000 (13:41 -0400)]
Add gn option to set the location of the Vulkan SDK

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2848

Change-Id: I0b60ae03d7b155d4f9a581cab6b551e152b03a86
Reviewed-on: https://skia-review.googlesource.com/2848
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>

7 years agoSkRWBuffer: preallocate 'initialCapacity'
fmalita [Fri, 30 Sep 2016 17:52:08 +0000 (10:52 -0700)]
SkRWBuffer: preallocate 'initialCapacity'

We're currently ignoring the hint, resulting in multiple unneeded
allocations later.

BUG=chromium:651698
R=scroggo@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2384763002

Review-Url: https://codereview.chromium.org/2384763002

7 years agoClean up public.bzl after G3-side CL.
Mike Klein [Fri, 30 Sep 2016 16:36:55 +0000 (12:36 -0400)]
Clean up public.bzl after G3-side CL.

One more tiny G3 CL after this...

BUG=skia:
NOTRY=true

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2847

Change-Id: Id237ca3853614c2b9b68eb0a679f6e64b3e95983
Reviewed-on: https://skia-review.googlesource.com/2847
Reviewed-by: Ben Wagner <benjaminwagner@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>

7 years agoHelper functions to do SkColor -> GrColor4f
Brian Osman [Fri, 30 Sep 2016 15:41:59 +0000 (11:41 -0400)]
Helper functions to do SkColor -> GrColor4f

I started fixing more effects and realized I needed something like this.
Wanted to land it separately. After this, I'll add the DC's cached xform
from sRGB to AsFPArgs, so that we can easily leverage this code in more
places (mostly GrConstColorProcessor, or any effect that falls back to
that based on invariants, etc...)

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2844

Change-Id: I335546f02a6c49620494d736140a72c14441b35d
Reviewed-on: https://skia-review.googlesource.com/2844
Reviewed-by: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>

7 years agoPropagate validation errors from inner readbuffer when deserializing picture. Also...
reed [Fri, 30 Sep 2016 16:27:20 +0000 (09:27 -0700)]
Propagate validation errors from inner readbuffer when deserializing picture. Also allow null paints.

BUG=skia:5812
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2379383002

Review-Url: https://codereview.chromium.org/2379383002

7 years agoAdd fence support for TransferBuffers
jvanverth [Fri, 30 Sep 2016 15:39:02 +0000 (08:39 -0700)]
Add fence support for TransferBuffers

BUG=skia:4604
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2384463003

Review-Url: https://codereview.chromium.org/2384463003

7 years agoFix G3 excludes lists for AVX2 -> HSW.
Mike Klein [Fri, 30 Sep 2016 15:34:54 +0000 (11:34 -0400)]
Fix G3 excludes lists for AVX2 -> HSW.

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2843

Change-Id: I8dfd4133808dd768217a7978d7ae3f6d518cd744
Reviewed-on: https://skia-review.googlesource.com/2843
Reviewed-by: Mike Klein <mtklein@chromium.org>
7 years agoSkPDF: subset drawImageRect while still deduping
Hal Canary [Fri, 30 Sep 2016 14:25:39 +0000 (10:25 -0400)]
SkPDF: subset drawImageRect while still deduping

  - Replace SkImageBitmap with SkImageSubset

  - SkBitmapKey becomes trivial for simplicity.

  - SkPDFCanvas::onDraw(Bitmap|Image)Rect now clip and call
    SkCanvas::onDraw(Bitmap|Image)Rect.

  - SkPDFDevice::draw(Bitmap|BitmapRect|Sprite) now convert bitmap
    into SkImageSubset via make_image_subset function.

  - SkPDFDevice::draw(Image|Bitmap)Rect now implemented again.

  - SkPDFDevice::internalDrawImage now performs image subsetting
    as needed, while still deduping properly.

BUG=633528

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2785

Change-Id: I063346d12b0e9c6b6c0c4943ee25400c88aa1a44
Reviewed-on: https://skia-review.googlesource.com/2785
Reviewed-by: Ben Wagner <bungeman@google.com>
7 years agoAdd an SkOpts target for Haswell+ Intel chips.
Mike Klein [Fri, 30 Sep 2016 14:48:01 +0000 (10:48 -0400)]
Add an SkOpts target for Haswell+ Intel chips.

Haswell brought a whole slew of handy new instructions for us (AVX2, FMA, BMI1+BMI2) and also feature F16C, which came one generation earlier on Ivybridge.  We work with integers often enough that we really want to target AVX2 instead of AVX, and this means it's pretty practical to ask for all those other goodies along with it.

Chrome's GN files and Google3's BUILD file will need an update, before or after this CL.

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2840
CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot

Change-Id: I826daf77b5104664c5d31ddaabee347e287b87a2
Reviewed-on: https://skia-review.googlesource.com/2840
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Herb Derby <herb@google.com>
7 years agoRevert of Turned on SkSL->GLSL compiler (patchset #41 id:880001 of https://codereview...
fmalita [Fri, 30 Sep 2016 15:05:24 +0000 (08:05 -0700)]
Revert of Turned on SkSL->GLSL compiler (patchset #41 id:880001 of https://codereview.chromium.org/2288033003/ )

Reason for revert:
1) Chromium roll failures: https://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_rel_ng/builds/307297/steps/screenshot_sync_tests%20on%20NVIDIA%20GPU%20on%20Linux%20%28with%20patch%29%20on%20Linux/logs/stdio

2) G3 roll failures

3) iOS failures: https://uberchromegw.corp.google.com/i/client.skia/builders/Perf-iOS-Clang-iPad4-GPU-SGX554-Arm7-Release/builds/7177/steps/perf_skia%20on%20iOS-9.2/logs/stdio

Original issue's description:
> Turned on SkSL->GLSL compiler
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2288033003
>
> Committed: https://skia.googlesource.com/skia/+/9b0fe3d125f237d9884732a48414fa85fc71b4e3
> Committed: https://skia.googlesource.com/skia/+/b12b3c6908c62c908b3680be01e3b5bfd30de310
> Committed: https://skia.googlesource.com/skia/+/f008b0a59f45c0d4bea3e66faf3b01805009ec89

TBR=benjaminwagner@google.com,bsalomon@google.com,egdaniel@google.com,ethannicholas@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review-Url: https://codereview.chromium.org/2387643003

7 years agoImplement 'action' in gn_to_cmake.py.
Ben Wagner [Thu, 29 Sep 2016 19:41:53 +0000 (15:41 -0400)]
Implement 'action' in gn_to_cmake.py.

With this change it is possible to build all Skia targets.

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2784

Change-Id: I5c53a6ba5746d210e0ae8f7a29b409d40c7b9bff
Reviewed-on: https://skia-review.googlesource.com/2784
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
7 years agoTurned on SkSL->GLSL compiler
ethannicholas [Fri, 30 Sep 2016 13:23:24 +0000 (06:23 -0700)]
Turned on SkSL->GLSL compiler
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2288033003

Committed: https://skia.googlesource.com/skia/+/9b0fe3d125f237d9884732a48414fa85fc71b4e3
Committed: https://skia.googlesource.com/skia/+/b12b3c6908c62c908b3680be01e3b5bfd30de310
Review-Url: https://codereview.chromium.org/2288033003

7 years agoRevert of Fix gamut GM to work w/serialization configs. Remove it from blacklist...
fmalita [Fri, 30 Sep 2016 13:14:49 +0000 (06:14 -0700)]
Revert of Fix gamut GM to work w/serialization configs. Remove it from blacklist. (patchset #2 id:20001 of https://codereview.chromium.org/2383513002/ )

Reason for revert:
Valgrind errors:

==2603== Invalid read of size 8
==2603==    at 0xA284E0: SkSurface::getCanvas() (SkSurface_Base.h:108)
==2603==    by 0x4F0B0F: gamut_GM(SkCanvas*) (gamut.cpp:163)
==2603==    by 0x483B77: DM::GMSrc::draw(SkCanvas*) const (DMSrcSink.cpp:69)
==2603==    by 0x485F04: DM::GPUSink::draw(DM::Src const&, SkBitmap*, SkWStream*, SkString*) const (DMSrcSink.cpp:1226)
==2603==    by 0x47E974: dm_main() (DM.cpp:1035)
==2603==    by 0x6652EC4: (below main) (libc-start.c:287)
==2603==  Address 0x20 is not stack'd, malloc'd or (recently) free'd
==2603==

https://uberchromegw.corp.google.com/i/client.skia/builders/Test-Ubuntu-GCC-ShuttleA-GPU-GTX550Ti-x86_64-Release-Valgrind/builds/1410/steps/test_skia%20on%20Ubuntu/logs/stdio

Original issue's description:
> Fix gamut GM to work w/serialization configs. Remove it from blacklist.
>
> BUG=skia:
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2383513002
>
> Committed: https://skia.googlesource.com/skia/+/e4a17372a188f1dffc3f9c9bcdfbb9860728630b

TBR=reed@google.com,borenet@google.com,brianosman@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review-Url: https://codereview.chromium.org/2380313002

7 years agoSupport monitor profile in SampleApp (on Windows)
brianosman [Thu, 29 Sep 2016 21:37:02 +0000 (14:37 -0700)]
Support monitor profile in SampleApp (on Windows)

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2381913003

Review-Url: https://codereview.chromium.org/2381913003

7 years agoRemove soft clip bool from SkCanvas
bsalomon [Thu, 29 Sep 2016 20:53:49 +0000 (13:53 -0700)]
Remove soft clip bool from SkCanvas
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2380163002

Review-Url: https://codereview.chromium.org/2380163002

7 years agoRemove caching from the draw-atlas GMs. Fixes bugs cycling backends.
brianosman [Thu, 29 Sep 2016 20:43:49 +0000 (13:43 -0700)]
Remove caching from the draw-atlas GMs. Fixes bugs cycling backends.

When we would change backend or color type in SampleApp, we'd be rendering
from a no-longer-valid image, leading to missing output, etc...

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2381893004

Review-Url: https://codereview.chromium.org/2381893004

7 years agoAdd skstd version of std::exchange
csmartdalton [Thu, 29 Sep 2016 20:11:23 +0000 (13:11 -0700)]
Add skstd version of std::exchange

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2381793004

Review-Url: https://codereview.chromium.org/2381793004

7 years agosimplify composing raster surface into window
Mike Reed [Thu, 29 Sep 2016 18:12:11 +0000 (14:12 -0400)]
simplify composing raster surface into window

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2820

Change-Id: Ifce7bce8b764d2dea02733d823396576a7da609f
Reviewed-on: https://skia-review.googlesource.com/2820
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Mike Reed <reed@google.com>

7 years agoReenable GM:arithmode
fmalita [Thu, 29 Sep 2016 19:25:26 +0000 (12:25 -0700)]
Reenable GM:arithmode

Convert to SkXfermodeImageFilter and reenable.

R=reed@google.com,robertphillips@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2379873003

Review-Url: https://codereview.chromium.org/2379873003

7 years agoFixed invalid memory access issue in SkColorSpaceXform::apply()
raftias [Thu, 29 Sep 2016 18:31:44 +0000 (14:31 -0400)]
Fixed invalid memory access issue in SkColorSpaceXform::apply()

Passing in a large buffer along with a source colour space that
used a CLUT would cause apply() to read freed heap memory, or
for smaller buffers read possibly re-used stack memory.
The code previously likely lucked out due to optimizations
removing most or all of the subsequent stack allocations.

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2759

Change-Id: I39f357bce080c4d737a83dd019f0d1ccbc56f995
Reviewed-on: https://skia-review.googlesource.com/2759
Commit-Queue: Robert Aftias <raftias@google.com>
Reviewed-by: Matt Sarett <msarett@google.com>
7 years agoAdd an enum layer of indirection for stock raster pipeline stages.
Mike Klein [Thu, 29 Sep 2016 17:40:01 +0000 (13:40 -0400)]
Add an enum layer of indirection for stock raster pipeline stages.

This is handy now, and becomes necessary with fancier backends:
   - most code can't speak the type of AVX pipeline stages,
     so indirection's definitely needed there;
   - if the pipleine is entirely composed of stock stages,
     these enum values become an abstract recipe that can be JITted.

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2782
CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot

Change-Id: Iedd62e99ce39e94cf3e6ffc78c428f0ccc182342
Reviewed-on: https://skia-review.googlesource.com/2782
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>

7 years agoUse SkOnce to squelch command buffer spam
brianosman [Thu, 29 Sep 2016 17:49:46 +0000 (10:49 -0700)]
Use SkOnce to squelch command buffer spam

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2382793002

Review-Url: https://codereview.chromium.org/2382793002

7 years agoRecent image filter work now allows this check to be enabled.
brianosman [Thu, 29 Sep 2016 17:08:36 +0000 (10:08 -0700)]
Recent image filter work now allows this check to be enabled.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2379053002

Review-Url: https://codereview.chromium.org/2379053002

7 years agoRevert of Explicit control in tools of ANGLE frontend and backend (patchset #6 id...
bsalomon [Thu, 29 Sep 2016 17:07:22 +0000 (10:07 -0700)]
Revert of Explicit control in tools of ANGLE frontend and backend (patchset #6 id:90001 of https://codereview.chromium.org/2381033002/ )

Reason for revert:
Broke bots

Original issue's description:
> Explicit control in tools of ANGLE frontend and backend
>
> Update the ANGLE test GL context, GrContextFactory, and config parsing to allow explicit control of ANGLE front/backend.
>
> This will allow us to explicitly test ES2 vs ES3 interfaces to ANGLE as well as D3D9, D3D11, and OpenGL backends.
>
> Also makes the angle api types valid in all builds (but will just fail when SK_ANGLE=1 or not on windows for the d3d backends).
>
> BUG=skia:5804
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2381033002
>
> Committed: https://skia.googlesource.com/skia/+/50094fb489543655df026be4e4f99e09e57a1f49

TBR=brianosman@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:5804

Review-Url: https://codereview.chromium.org/2384483003

7 years agoExplicit control in tools of ANGLE frontend and backend
bsalomon [Thu, 29 Sep 2016 16:49:06 +0000 (09:49 -0700)]
Explicit control in tools of ANGLE frontend and backend

Update the ANGLE test GL context, GrContextFactory, and config parsing to allow explicit control of ANGLE front/backend.

This will allow us to explicitly test ES2 vs ES3 interfaces to ANGLE as well as D3D9, D3D11, and OpenGL backends.

Also makes the angle api types valid in all builds (but will just fail when SK_ANGLE=1 or not on windows for the d3d backends).

BUG=skia:5804
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2381033002
NOTREECHECKS=true
NOTRY=true
NOPRESUBMIT=true

Review-Url: https://codereview.chromium.org/2381033002

7 years agoRevert of Add SK_SUPPORT_LEGACY_HAIRLINE_END_CAP to work around dependent test failur...
benjaminwagner [Thu, 29 Sep 2016 16:36:29 +0000 (09:36 -0700)]
Revert of Add SK_SUPPORT_LEGACY_HAIRLINE_END_CAP to work around dependent test failure. (patchset #1 id:1 of https://codereview.chromium.org/2379843002/ )

Reason for revert:
Dependent test has been fixed.

Original issue's description:
> Add SK_SUPPORT_LEGACY_HAIRLINE_END_CAP to work around dependent test failure.
>
> BUG=skia:
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2379843002
>
> Committed: https://skia.googlesource.com/skia/+/aa6ef3ebc60e0f70db0e599f4cd34d5be06486c9

TBR=caryclark@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review-Url: https://codereview.chromium.org/2379993004

7 years agoStart moving SkRasterPipeline stages to SkOpts.
Mike Klein [Thu, 29 Sep 2016 13:04:15 +0000 (09:04 -0400)]
Start moving SkRasterPipeline stages to SkOpts.

This lets them pick up runtime CPU specializations.  Here I've plugged in SSE4.1.  This is still one of the N prelude CLs to full 8-at-a-time AVX.

I've moved the union of the stages used by SkRasterPipelineBench and SkRasterPipelineBlitter to SkOpts... they'll all be used by the blitter eventually.  Picking up SSE4.1 specialization here (even still just 4 pixels at a time) is a significant speedup, especially to store_srgb(), so much that it's no longer really interesting to compare against the fused-but-default-instruction-set version in the bench.  So that's gone now.

That left the SkRasterPipeline unit test as the only other user of the EasyFn simplified interface to SkRasterPipeline.  So I converted that back down to the bare-metal interface, and EasyFn and its friends became SkRasterPipeline_opts.h exclusive abbreviations (now called Kernel_Sk4f).  This isn't really unexpected: SkXfermode also wanted to build up its own little abstractions, and once you build your own abstraction, the value of an additional EasyFn-like layer plummets to negative.

For simplicity I've left the SkXfermode stages alone, except srcover() which was always part of the blitter.  No particular reason except keeping the churn down while I hack.  These _can_ be in SkOpts, but don't have to be until we go 8-at-a-time.

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2752
CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot

Change-Id: I3b476b18232a1598d8977e425be2150059ab71dc
Reviewed-on: https://skia-review.googlesource.com/2752
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>

7 years agoDisable FP contraction on -Fast bot.
Mike Klein [Thu, 29 Sep 2016 15:26:37 +0000 (11:26 -0400)]
Disable FP contraction on -Fast bot.

It's more annoying than helpful to have GCC turn mul,add into fma.

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2780

CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-Fast-Trybot

Change-Id: I63f4615f73aed112f10f6cb516d899b820918298
Reviewed-on: https://skia-review.googlesource.com/2780
Commit-Queue: Cary Clark <caryclark@google.com>
Reviewed-by: Cary Clark <caryclark@google.com>
7 years ago*SkTCast<int*>(float*) -> memcpy
Mike Klein [Thu, 29 Sep 2016 15:15:15 +0000 (11:15 -0400)]
*SkTCast<int*>(float*) -> memcpy

In some build configurations (I think, GN, GCC 6, Debug) I get a warning that i is used unintialized.  This likely has something to do with GCC correctly seeing that the SkTCast construction there is illegal aliasing, and perhaps thus "doesn't happen".  Might be that if the SkTCast gets inlined, it decides its implementation is secretly kosher, and so Release builds don't see this.  None of this happens with the GCCs we have on the bots... too old?

Instead use memcpy() here, which is well defined to do what we intended.

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2758

Change-Id: Iaf5c75fbd852193b0b861bf5e71450502511d102
Reviewed-on: https://skia-review.googlesource.com/2758
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
7 years agoSkPDF/Documentation: backend limitations
halcanary [Thu, 29 Sep 2016 15:43:41 +0000 (08:43 -0700)]
SkPDF/Documentation: backend limitations

NOTRY=true

Review-Url: https://codereview.chromium.org/2377473002

7 years agoFix obvious bug in KTX encoder.
benjaminwagner [Thu, 29 Sep 2016 15:20:41 +0000 (08:20 -0700)]
Fix obvious bug in KTX encoder.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2383523002

Review-Url: https://codereview.chromium.org/2383523002

7 years agoFix gamut GM to work w/serialization configs. Remove it from blacklist.
brianosman [Thu, 29 Sep 2016 14:25:45 +0000 (07:25 -0700)]
Fix gamut GM to work w/serialization configs. Remove it from blacklist.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2383513002

Review-Url: https://codereview.chromium.org/2383513002

7 years agoAdd SK_SUPPORT_LEGACY_HAIRLINE_END_CAP to work around dependent test failure.
benjaminwagner [Thu, 29 Sep 2016 13:42:52 +0000 (06:42 -0700)]
Add SK_SUPPORT_LEGACY_HAIRLINE_END_CAP to work around dependent test failure.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2379843002

Review-Url: https://codereview.chromium.org/2379843002

7 years agoskpbench: use accumulative result as the default
csmartdalton [Thu, 29 Sep 2016 13:23:23 +0000 (06:23 -0700)]
skpbench: use accumulative result as the default

Uses accum instead of median for the first column in skpbench.cpp, and
the default result for parseskpbench.py. The accum is empirically
proving to be more repeatable than the median.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2378383002

Review-Url: https://codereview.chromium.org/2378383002

7 years agoskpbench: use double buffering instead of triple
csmartdalton [Wed, 28 Sep 2016 21:53:07 +0000 (14:53 -0700)]
skpbench: use double buffering instead of triple

We have no need for our command stream to get more than a couple of
frames deep. Any more and we only increase our chances of sporadic
flushing and unreliable timings.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2376043002

Review-Url: https://codereview.chromium.org/2376043002

7 years agoisABitmap is deprecated, use isAImage
Mike Reed [Wed, 28 Sep 2016 21:13:38 +0000 (17:13 -0400)]
isABitmap is deprecated, use isAImage

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2748

Change-Id: I7006a3231ff0e9e39b187deae550364bc97f49d6
Reviewed-on: https://skia-review.googlesource.com/2748
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
7 years agoImprove GN to CMake translation for building.
bungeman [Wed, 28 Sep 2016 20:45:35 +0000 (16:45 -0400)]
Improve GN to CMake translation for building.

This adds proper target types, dependencies, and library handling. This
is enough to build and run dm on Linux and Mac.

Change-Id: I5220f67f7dd3dbada7ad03ef83fff8fd80158fad
Reviewed-on: https://skia-review.googlesource.com/2664
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
7 years agoTag checkerboard bitmaps as sRGB
brianosman [Wed, 28 Sep 2016 21:02:10 +0000 (14:02 -0700)]
Tag checkerboard bitmaps as sRGB

Significantly reduces the diff between legacy and sRGB/F16 on about 25
GMs. This is just the biggest piece of low-hanging fruit. Many GMs create
N32 raster surfaces to procedurally generate source textures, and I'd like
to fix all of them. It's much easier to reason about the GMs (is sRGB
doing the right thing) when everything is tagged like this - the only
expected differences are due to filtering and blending.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2368933003

Committed: https://skia.googlesource.com/skia/+/fe843cea499ba163d53281425af210b1887d28e7
Review-Url: https://codereview.chromium.org/2368933003

7 years agoLatest ANGLE as of September 27, 2016
brianosman [Wed, 28 Sep 2016 21:01:51 +0000 (14:01 -0700)]
Latest ANGLE as of September 27, 2016

Includes a fix for ES3 texture reuse that solves many of the problems
we saw using ES3. (There are still issues with some YUV planes).

Also includes a fix for anglebug.com/1478, so half-float formats are
allowed again.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2302993004

Review-Url: https://codereview.chromium.org/2302993004

7 years agoskpbench: run for a fixed duration
csmartdalton [Wed, 28 Sep 2016 20:56:01 +0000 (13:56 -0700)]
skpbench: run for a fixed duration

Runs for a fixed amount of time instead of a fixed amount of samples.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2374093002

Review-Url: https://codereview.chromium.org/2374093002

7 years agoMake applyCropRect/pad_image convert to the output color space
brianosman [Wed, 28 Sep 2016 20:03:05 +0000 (13:03 -0700)]
Make applyCropRect/pad_image convert to the output color space

The source's color space may not be renderable, leading to makeSurface
failing. This is unfortunate, but this solution is by far the simplest.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2380833002

Review-Url: https://codereview.chromium.org/2380833002

7 years agoUse brackets for explicit GPU config params in tools
bsalomon [Wed, 28 Sep 2016 19:40:22 +0000 (12:40 -0700)]
Use brackets for explicit GPU config params in tools
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2378163003

Review-Url: https://codereview.chromium.org/2378163003

7 years agomonobench: usability tweaks
Mike Klein [Wed, 28 Sep 2016 18:00:51 +0000 (14:00 -0400)]
monobench: usability tweaks

 - Allow an second argument to limit the number of samples.
 - If no benchmarks match, warn and exit instead of infinitely looping.

The default limit of 2147483647 10ms samples will run for 9 months, which I think is long enough to not need any special infinity logic.
BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2747

Change-Id: Id70cf77b624e19dc04e1d75a71385aee3c988a80
Reviewed-on: https://skia-review.googlesource.com/2747
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>

7 years agoRoll buildtools adb8bf4e8fc..5fd66957f08bb7
Ben Wagner [Wed, 28 Sep 2016 18:05:39 +0000 (14:05 -0400)]
Roll buildtools adb8bf4e8fc..5fd66957f08bb7

https://chromium.googlesource.com/chromium/buildtools/+log/adb8bf4e8fc..5fd66957f08bb7

Primarily to pick up
https://chromium.googlesource.com/chromium/src/+/d51d3527da33

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2749

Change-Id: I3f9ac18c8946fa28effcf8c8cff3bbd1120a86df
Reviewed-on: https://skia-review.googlesource.com/2749
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Ben Wagner <bungeman@google.com>

7 years agoGradients are serialized (and can be constructed) as SkColor4f + SkColorSpace
brianosman [Wed, 28 Sep 2016 18:27:28 +0000 (11:27 -0700)]
Gradients are serialized (and can be constructed) as SkColor4f + SkColorSpace

Added gradient shader factories that take SkColor4f + SkColorSpace.
Modified Descriptor to only store SkColor4f + SkColorSpace.
Existing factories make use of helper code to convert SkColor and
forward to the new factories.

Bumped SKP version to handle new gradient serialization format.
I was toying with using half-float when serializing SkColor4f,
despite my aggressive packing of flags, this format is significantly
bigger.

Also added GM to use 4f factories. This GM should (and does)
look identical to the existing gradients GM.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2370063002

Review-Url: https://codereview.chromium.org/2370063002

7 years agodocumentation: update PDF design doc
halcanary [Wed, 28 Sep 2016 18:19:52 +0000 (11:19 -0700)]
documentation: update PDF design doc

NOTRY=true

Review-Url: https://codereview.chromium.org/2295373002

7 years agoMove toXYZD50() to SkColorSpace_Base
msarett [Wed, 28 Sep 2016 18:15:27 +0000 (11:15 -0700)]
Move toXYZD50() to SkColorSpace_Base

SkColorSpace needs to become more versatile, in order to support
profiles that cannot specified with just a "to XYZ D50" matrix.

This a just first step to clean up the public API.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2381553002

Review-Url: https://codereview.chromium.org/2381553002

7 years agoSkRasterPipeline: fuse clamp_01 into stores.
Mike Klein [Wed, 28 Sep 2016 15:54:46 +0000 (11:54 -0400)]
SkRasterPipeline: fuse clamp_01 into stores.

This is a less generally applicable trick than I have previously hoped.  The need to thread through contexts into each stage really means you can only include one context-dependent stage in each fused batch.

We can still manually fuse these, of course, as you can see in SkRasterPipelineBench.  It's just that we can't really write a generic compile-time template to do it except for context-free stages.  And since we can't write a generic version, and I have only this one specific use case right now, I've kept it quite specific to that use case.

This does work pretty well for this use case, though.  Here's the fused clamp-then-store-565:
+0x00 pushq               %rbp
+0x01 movq                %rsp, %rbp
+0x04 movq                8(%rdi), %rax
+0x08 xorps               %xmm4, %xmm4
+0x0b maxps               %xmm4, %xmm3
+0x0e maxps               %xmm4, %xmm0
+0x11 maxps               %xmm4, %xmm1
+0x14 maxps               %xmm4, %xmm2
+0x17 minps               4262818(%rip), %xmm3
+0x1e minps               %xmm3, %xmm0
+0x21 minps               %xmm3, %xmm1
+0x24 minps               %xmm3, %xmm2
+0x27 movaps              4965378(%rip), %xmm3
+0x2e mulps               %xmm3, %xmm0
+0x31 cvtps2dq            %xmm0, %xmm0
+0x35 pslld               $11, %xmm0
+0x3a mulps               4965375(%rip), %xmm1
+0x41 cvtps2dq            %xmm1, %xmm1
+0x45 pslld               $5, %xmm1
+0x4a mulps               %xmm3, %xmm2
+0x4d cvtps2dq            %xmm2, %xmm2
+0x51 orpd                %xmm0, %xmm2
+0x55 orpd                %xmm1, %xmm2
+0x59 pshufb              4474510(%rip), %xmm2
+0x62 movq                %xmm2, (%rax,%rsi,2)
+0x67 popq                %rbp
+0x68 retq

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2745

Change-Id: Ia7d66aecc6cbff154158d2600d7874feed1a76f6
Reviewed-on: https://skia-review.googlesource.com/2745
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>

7 years agoSkPDF: use SkImage::isAImage
Hal Canary [Wed, 28 Sep 2016 15:53:33 +0000 (11:53 -0400)]
SkPDF: use SkImage::isAImage

output size savings = ~0.4% with effected gms and skps.

BUG=568816
BUG=skia:5592

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2760

Change-Id: Ifead46ea5789e18aa3ddea9ca3986717296a6391
Reviewed-on: https://skia-review.googlesource.com/2760
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>

7 years agofix cubic linear test
caryclark [Wed, 28 Sep 2016 16:22:17 +0000 (09:22 -0700)]
fix cubic linear test

Check to see if the line between end points is
degenerate before measuring control points.

Also, add test case for a bug to see if it
shows up on any platform.

TBR=reed@google.com
BUG=skia:5169, skia:5240
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2375053002

Review-Url: https://codereview.chromium.org/2375053002

7 years agoMake GPU configs use kRGBA color type not kN32.
bsalomon [Wed, 28 Sep 2016 15:49:53 +0000 (08:49 -0700)]
Make GPU configs use kRGBA color type not kN32.

This makes ES msaa contexts testable on systems where kN32 is compiled as kBGRA due to the fact that render buffers are not always supported for GL_BGRA with GL_EXT_texture_format_BGRA8888.

BUG=skia:5804
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2378713002

Review-Url: https://codereview.chromium.org/2378713002

7 years agoRearrange SkRasterPipeline scanline tail handling.
Mike Klein [Wed, 28 Sep 2016 14:43:53 +0000 (10:43 -0400)]
Rearrange SkRasterPipeline scanline tail handling.

We used to step at a 4-pixel stride as long as possible, then run up to 3 times, one pixel at a time.  Now replace those 1-at-a-time runs with a single tail stamp if there are 1-3 remaining pixels.

This style is simply more efficient: e.g. we'll blend and lerp once for 3 pixels instead of 3 times.  This should make short blits significantly more efficient.  It's also more future-oriented... AVX+ on Intel and SVE on ARM support masked loads and stores, so we can do the entire tail in one direct step.

This also makes it possible to re-arrange the code a bit to encapsulate each stage better.  I think generally this code reads more clearly than the old code, but YMMV.  I've arranged things so you write one function, but it's compiled into two specializations, one for tail=0 (Body) and one for tail>0 (Tail).  It's pretty tidy.

For now I've just burned a register to pass around tail.  It's 2 bits now, maybe soon 3 with AVX, and capped at 4 for even the craziest new toys, so there are plenty of places we can pack it if we want to get clever.

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2717

Change-Id: I45852a3e5d4c5b5e9315302c46601aee0d32265f
Reviewed-on: https://skia-review.googlesource.com/2717
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>

7 years agoRevert of Tag checkerboard bitmaps as sRGB (patchset #1 id:1 of https://codereview...
brianosman [Wed, 28 Sep 2016 15:17:20 +0000 (08:17 -0700)]
Revert of Tag checkerboard bitmaps as sRGB (patchset #1 id:1 of https://codereview.chromium.org/2368933003/ )

Reason for revert:
Regression on displacement GM when sRGB support is lacking.

Original issue's description:
> Tag checkerboard bitmaps as sRGB
>
> Significantly reduces the diff between legacy and sRGB/F16 on about 25
> GMs. This is just the biggest piece of low-hanging fruit. Many GMs create
> N32 raster surfaces to procedurally generate source textures, and I'd like
> to fix all of them. It's much easier to reason about the GMs (is sRGB
> doing the right thing) when everything is tagged like this - the only
> expected differences are due to filtering and blending.
>
> BUG=skia:
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2368933003
>
> Committed: https://skia.googlesource.com/skia/+/fe843cea499ba163d53281425af210b1887d28e7

TBR=mtklein@google.com,reed@google.com,robertphillips@google.com
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=skia:

Review-Url: https://codereview.chromium.org/2375063002

7 years agoHide monobench target on debug builds.
Mike Klein [Tue, 27 Sep 2016 20:46:29 +0000 (16:46 -0400)]
Hide monobench target on debug builds.

Unlike nanobench this tool has no purpose when built in Debug mode.
Just don't let it happen.

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2718

Change-Id: Iaa7b8c44d46024485d4f5ce3d9c3e33d865b99d7
Reviewed-on: https://skia-review.googlesource.com/2718
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>

7 years agoMake SkPMColor BGRA on Fuchsia.
Mike Klein [Tue, 27 Sep 2016 01:37:09 +0000 (21:37 -0400)]
Make SkPMColor BGRA on Fuchsia.

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2700

Change-Id: I59b8463adcf3d49af524fec379e3b563dcbcbf6b
Reviewed-on: https://skia-review.googlesource.com/2700
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>

7 years agoAdded kSRGBLinear_Named color space, along with tests
brianosman [Tue, 27 Sep 2016 22:11:47 +0000 (15:11 -0700)]
Added kSRGBLinear_Named color space, along with tests

Gradients (and other shaders) are going to end up serializing this
particular color space very frequently, so we want a shorthand way of
writing it out. I think it's also helpful to have a clearer way of
creating it (vs. NewNamed(kSRGB_Named)->makeLinearGamma()).

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2377763002

Review-Url: https://codereview.chromium.org/2377763002

7 years agoAdd SK_SUPPORT_LEGACY_ARITHMETICMODE flag to public.bzl.
benjaminwagner [Tue, 27 Sep 2016 19:28:20 +0000 (12:28 -0700)]
Add SK_SUPPORT_LEGACY_ARITHMETICMODE flag to public.bzl.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2372703007

Review-Url: https://codereview.chromium.org/2372703007

7 years agoAdd command buffer submits before copy calls in vulkan.
egdaniel [Tue, 27 Sep 2016 19:13:05 +0000 (12:13 -0700)]
Add command buffer submits before copy calls in vulkan.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2363773006

Committed: https://skia.googlesource.com/skia/+/25661bac7722860b7589c5b01ec404531d941456
Review-Url: https://codereview.chromium.org/2363773006

7 years agoSkRasterPipeline: add last() and docs.
Mike Klein [Tue, 27 Sep 2016 16:08:10 +0000 (12:08 -0400)]
SkRasterPipeline: add last() and docs.

Today if you use the simple SK_RASTER_STAGE interface to build a pipeline, each stage you add calls into a next stage.  The last stage you add calls into a special backstop stage JustReturn that, well, just returns, ending the pipeline.

This adds last(), which cuts that last stage off the pipeline.  Instead, the stage you add using last() returns directly, ending the pipeline itself without jumping into JustReturn.

This reduces the overhead of using the pipelined version of SkRasterPipelineBench from ~25% to ~20% on my desktop.

Also, add docs.

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2713

Change-Id: I11469378e2765c6e34db52eb3eef648d6612da3f
Reviewed-on: https://skia-review.googlesource.com/2713
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>

7 years agoTurn on -Wgnu-anonymous-struct and -Wnested-anonymous-types.
Mike Klein [Tue, 27 Sep 2016 16:45:26 +0000 (12:45 -0400)]
Turn on -Wgnu-anonymous-struct and -Wnested-anonymous-types.

I'm not seeing any problems with these locally.  Perhaps the bots have something to say.

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2709

Change-Id: I6f0c7045c8f270efcd71d837f22a40e9f9d3e9b7
Reviewed-on: https://skia-review.googlesource.com/2709
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
7 years agoRevert of Add command buffer submits before copy calls in vulkan. (patchset #5 id...
egdaniel [Tue, 27 Sep 2016 17:14:44 +0000 (10:14 -0700)]
Revert of Add command buffer submits before copy calls in vulkan. (patchset #5 id:80001 of https://codereview.chromium.org/2363773006/ )

Reason for revert:
breaking things since apparently nvidia != windows always...

Original issue's description:
> Add command buffer submits before copy calls in vulkan.
>
> BUG=skia:
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2363773006
>
> Committed: https://skia.googlesource.com/skia/+/25661bac7722860b7589c5b01ec404531d941456

TBR=jvanverth@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review-Url: https://codereview.chromium.org/2373503004

7 years agoGN: match shell behavior for cc and cxx in is_clang.py
csmartdalton [Tue, 27 Sep 2016 16:29:24 +0000 (09:29 -0700)]
GN: match shell behavior for cc and cxx in is_clang.py

Interprets cc/cxx as part of the shell command rather than literal
arguments. This matches the behavior of shell invocations from ninja.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2375573002

Review-Url: https://codereview.chromium.org/2375573002

7 years agoOverAlignedTest: use sk_ malloc and free.
Mike Klein [Tue, 27 Sep 2016 15:26:50 +0000 (11:26 -0400)]
OverAlignedTest: use sk_ malloc and free.

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2712

Change-Id: I73b2b45ba6a1303b957aa03953eef305f8be9144
Reviewed-on: https://skia-review.googlesource.com/2712
Reviewed-by: Ben Wagner <benjaminwagner@google.com>
7 years agoUpdate vulkan varying locations to correctly handle arrays
egdaniel [Tue, 27 Sep 2016 16:09:44 +0000 (09:09 -0700)]
Update vulkan varying locations to correctly handle arrays

BUG=skia:5797
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2369013006

Review-Url: https://codereview.chromium.org/2369013006

7 years agoAdd command buffer submits before copy calls in vulkan.
egdaniel [Tue, 27 Sep 2016 16:03:05 +0000 (09:03 -0700)]
Add command buffer submits before copy calls in vulkan.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2363773006

Review-Url: https://codereview.chromium.org/2363773006

7 years agoFix dm/nanobench uploads for Gerrit-based trybots
Eric Boren [Tue, 27 Sep 2016 15:30:48 +0000 (11:30 -0400)]
Fix dm/nanobench uploads for Gerrit-based trybots

BUG=skia:5719

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2710

Change-Id: I43f03b19a9d7223b67de7dc7c4efea8cb75dba05
Reviewed-on: https://skia-review.googlesource.com/2710
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Eric Boren <borenet@google.com>

7 years agoTurn on -Wnewline-eof.
Mike Klein [Tue, 27 Sep 2016 15:21:15 +0000 (11:21 -0400)]
Turn on -Wnewline-eof.

I don't know _why_ Clang would like these .inc files to have a newline at the end of the file, but it seems a harmless way to silence the warning.

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2711

Change-Id: I6c530ee5096c48c91ddf322aca916e70a0dd770b
Reviewed-on: https://skia-review.googlesource.com/2711
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
7 years agoanother attempt to fix nonrectangular
caryclark [Tue, 27 Sep 2016 15:41:33 +0000 (08:41 -0700)]
another attempt to fix nonrectangular

For hairlines extended by the end cap,
set the first point to the first curve
following a move, which has had its
position adjusted.

R=fmalita@chromium.org
BUG=617658
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2371143002

Review-Url: https://codereview.chromium.org/2371143002

7 years agoneed to apply CTM to clip rect in arithmetic imagefilter
Mike Reed [Tue, 27 Sep 2016 15:07:11 +0000 (11:07 -0400)]
need to apply CTM to clip rect in arithmetic imagefilter

BUG=skia:5800

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2708

NOTRY=True
upload steps are failing, but the tests themselves passed

Change-Id: I0210d0095b4ffdd376f18fad895655d39714bf38
Reviewed-on: https://skia-review.googlesource.com/2708
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
7 years ago[task scheduler] Add uploads to tasks.json
borenet [Tue, 27 Sep 2016 15:22:03 +0000 (08:22 -0700)]
[task scheduler] Add uploads to tasks.json

BUG=skia:5719
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2376713002

Review-Url: https://codereview.chromium.org/2376713002

7 years agoRemove gen_bench_expectations_from_codereview
borenet [Tue, 27 Sep 2016 15:21:44 +0000 (08:21 -0700)]
Remove gen_bench_expectations_from_codereview

It hasn't been used in a long time.

BUG=skia:2969
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2373803002

Review-Url: https://codereview.chromium.org/2373803002

7 years agoremove more stray semicolons from Vulkan code
Mike Klein [Tue, 27 Sep 2016 14:52:35 +0000 (10:52 -0400)]
remove more stray semicolons from Vulkan code

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2707

Change-Id: Idc00efeda2f9901a6f33c987202be2a781b24269
Reviewed-on: https://skia-review.googlesource.com/2707
Reviewed-by: Mike Klein <mtklein@chromium.org>
7 years agoAdd GrVkCopyPipeline to handle vulkan copies as draws
egdaniel [Tue, 27 Sep 2016 15:00:53 +0000 (08:00 -0700)]
Add GrVkCopyPipeline to handle vulkan copies as draws

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2274663005

Review-Url: https://codereview.chromium.org/2274663005

7 years agoDelete unused upload_*_results.py
borenet [Tue, 27 Sep 2016 14:51:15 +0000 (07:51 -0700)]
Delete unused upload_*_results.py

BUG=skia:5719
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2371883004

Review-Url: https://codereview.chromium.org/2371883004

7 years agoAdd mips dsp arch variants to gyp_to_android.py.
branimir.vasic [Tue, 27 Sep 2016 14:37:20 +0000 (07:37 -0700)]
Add mips dsp arch variants to gyp_to_android.py.

Fixes Android  build for variants mips32r2dsp-fp and mips32r2dspr2-fp by
enabling correct Android.mk file generation.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2359793002

Review-Url: https://codereview.chromium.org/2359793002

7 years agoWe really shouldn't pass SkFontStyle to printf as %d.
Mike Klein [Tue, 27 Sep 2016 13:10:15 +0000 (09:10 -0400)]
We really shouldn't pass SkFontStyle to printf as %d.

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2721

Change-Id: I362063bea3909b2581d8e9b7860d4ac321082808
Reviewed-on: https://skia-review.googlesource.com/2721
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
7 years agoRemove stray semicolons.
Mike Klein [Tue, 27 Sep 2016 13:34:10 +0000 (09:34 -0400)]
Remove stray semicolons.

Turns out function declarations don't end in semicolons...

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2720

No public API changes.
TBR=reed@google.com

Change-Id: I72b56d52e1ff7fa6e89c295b0de8c46599791ebb
Reviewed-on: https://skia-review.googlesource.com/2720
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>

7 years agoAdd swarming task for upload_dm_results
borenet [Tue, 27 Sep 2016 13:52:26 +0000 (06:52 -0700)]
Add swarming task for upload_dm_results

BUG=skia:5719
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2360203004

Review-Url: https://codereview.chromium.org/2360203004

7 years agoFocus -Wno-over-aligned to just 32-bit x86 Android. (2)
Mike Klein [Tue, 27 Sep 2016 11:41:45 +0000 (07:41 -0400)]
Focus -Wno-over-aligned to just 32-bit x86 Android. (2)

I've even found the code that's making this happen, just don't know why.
I've added a test to assert that it's safe to assume malloc() is 8-byte aligned.

Test should compile this time.

CQ_INCLUDE_TRYBOTS=master.client.skia.android:Test-Android-Clang-NexusPlayer-CPU-Moorefield-x86-Release-GN_Android-Trybot

Change-Id: I48714b99670c20704adf4f7f216da0d60d7d9bcd
Reviewed-on: https://skia-review.googlesource.com/2662
Reviewed-on: https://skia-review.googlesource.com/2703
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>

7 years agoRevert "Focus -Wno-over-aligned to just 32-bit x86 Android."
Mike Reed [Tue, 27 Sep 2016 10:42:47 +0000 (10:42 +0000)]
Revert "Focus -Wno-over-aligned to just 32-bit x86 Android."

This reverts commit If8a2898ab3a77571622eb125c97f676e029b902c.

Reason for revert:

../../../../../work/skia/tests/OverAlignedTest.cpp: In function 'void test_OverAligned(skiatest::Reporter*, sk_gpu_test::GrContextFactory*)':
../../../../../work/skia/tests/OverAlignedTest.cpp:19:33: error: invalid operands of types 'void*' and 'int' to binary 'operator&'
         REPORTER_ASSERT(r, SkIsAlign8(p));
                                 ^
ninja: build stopped: subcommand failed.

Original issue's description:
> Focus -Wno-over-aligned to just 32-bit x86 Android.
>
> I've even found the code that's making this happen, just don't know why.
> I've added a test to assert that it's safe to assume malloc() is 8-byte aligned.
>
> BUG=skia:
>
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2662
>
> CQ_INCLUDE_TRYBOTS=master.client.skia.android:Test-Android-Clang-NexusPlayer-CPU-Moorefield-x86-Release-GN_Android-Trybot
>

TBR=mtklein@chromium.org,bungeman@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Change-Id: Ic9b30ce980d8d5155528a6f2b4e1913e5fa95dc0
Reviewed-on: https://skia-review.googlesource.com/2702
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>

7 years agoRemove outdated comments about pre-sk_sp semantics
brianosman [Tue, 27 Sep 2016 10:33:12 +0000 (03:33 -0700)]
Remove outdated comments about pre-sk_sp semantics

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2371603003

Review-Url: https://codereview.chromium.org/2371603003

7 years agoClamp Vulkan caps to INT_MAX
jvanverth [Tue, 27 Sep 2016 10:33:05 +0000 (03:33 -0700)]
Clamp Vulkan caps to INT_MAX

AMD sets some Vulkan caps values to 0xffffffff as a uint32_t, which
overflows our int values and causes merry havok.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2371923002

Review-Url: https://codereview.chromium.org/2371923002