Commit Graph

24313 Commits

Author SHA1 Message Date
csmartdalton
bf41fa841b Add Pixel C knobs to skpbench
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2369533002

Review-Url: https://codereview.chromium.org/2369533002
2016-09-23 11:36:11 -07:00
jvanverth
68c3d30702 Some Vulkan memory fixes and cleanup
* Switch back to not setting transfer_dst on all buffers
* Add some missing unit tests
* Add tracking of heap usage for debugging purposes
* Fall back to non-device-local memory if device-local allocation fails

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

Committed: https://skia.googlesource.com/skia/+/c5850e9fdb62cc4ae5ed2b6af51aea92cac07455
Review-Url: https://codereview.chromium.org/2356343003
2016-09-23 10:30:04 -07:00
Mike Reed
667a007ab3 change SkXfermodeImageFilter to carry no impl information
BUG=skia:

NOTREECHECKS=True

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

Change-Id: Ibf2dfa7722348ae71a99f1c895de0d2996350e58
Reviewed-on: https://skia-review.googlesource.com/2584
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2016-09-23 17:13:31 +00:00
caryclark
cc09372730 fix msan bug in pathops
Msan and Valgrind found an uninitialized memory mistake in
pathops. This also fixes similar bugs where not all parts
of the geometry were covered in the loop iteration.

R=borenet@google.com
NOTREECHECKS=true
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2366893003

Review-Url: https://codereview.chromium.org/2366893003
2016-09-23 09:32:27 -07:00
Mike Klein
9466379541 Include GLTestContext_command_buffer.cpp in G3 build.
This is now required to build our GPU testing tools.

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2587
NOTREECHECKS=true

Change-Id: I219665fbe50e9bbea9abb88a6d63c34b76ca92e6
Reviewed-on: https://skia-review.googlesource.com/2587
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Ben Wagner <benjaminwagner@google.com>
2016-09-23 16:06:53 +00:00
brianosman
a76554d2ae Revert of Create special surfaces according to original device (not always in N32) (patchset #9 id:160001 of https://codereview.chromium.org/2349373004/ )
Reason for revert:
DM crash and/or TSAN failure

Original issue's description:
> Change SkSpecialImage::makeSurface and makeTightSurface to take output
> properties (color space), bounds, and (optional) alphaType.
>
> We were being pretty inconsistent before. Raster was honoring all
> components of the info. GPU was using the supplied color type, but
> propagating the source's color space. All call sites were saying N32.
>
> What we want to do is propagate the original device's color space, and
> pick a good format from that. Rather than force all the clients to
> jump through hoops constructing an SkImageInfo that meets our criteria,
> just have them supply the few bits we care about, and do everything else
> internally.
>
> This also lets us always use RGBA on GPU, but N32 on raster.
>
> BUG=skia:
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2349373004
>
> Committed: https://skia.googlesource.com/skia/+/53c38087949252d27cde668368a3eeb59cc2eb00

TBR=robertphillips@google.com,reed@google.com,bsalomon@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/2366723004
2016-09-23 08:49:51 -07:00
Mike Reed
1cd88c4b75 use SkCanvas::ClipOp
BUG=skia:

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

Change-Id: I651e2c278bb4d2df08b6e134c734c5403c7e7ff7
Reviewed-on: https://skia-review.googlesource.com/2583
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2016-09-23 15:17:31 +00:00
bungeman
623ef92e4f Json ide script for gn to output cmake.
Can be run like

gn gen out/debug --ide=json --json-ide-script=../../gn/gn_to_cmake.py

or

gn gen out/debug --ide=json
python gn/gn_to_cmake.py out/debug/project.json

This first pass creates CMakeLists.txt with just enough information for an
ide. Each target is just a static library with sources, include
directories, and defines.

NOTRY=true
This isn't automatically tested.

Review-Url: https://codereview.chromium.org/2363873002
2016-09-23 08:16:04 -07:00
brianosman
53c3808794 Change SkSpecialImage::makeSurface and makeTightSurface to take output
properties (color space), bounds, and (optional) alphaType.

We were being pretty inconsistent before. Raster was honoring all
components of the info. GPU was using the supplied color type, but
propagating the source's color space. All call sites were saying N32.

What we want to do is propagate the original device's color space, and
pick a good format from that. Rather than force all the clients to
jump through hoops constructing an SkImageInfo that meets our criteria,
just have them supply the few bits we care about, and do everything else
internally.

This also lets us always use RGBA on GPU, but N32 on raster.

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

Review-Url: https://codereview.chromium.org/2349373004
2016-09-23 08:11:55 -07:00
brianosman
27a3aa5921 Make GrRenderableConfigForColorSpace argument const
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2367813002

Review-Url: https://codereview.chromium.org/2367813002
2016-09-23 07:11:34 -07:00
borenet
f23dc49893 Add swarming task for nanobench upload
BUG=skia:5719
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2364693003

Review-Url: https://codereview.chromium.org/2364693003
2016-09-23 06:37:58 -07:00
caryclark
27c015dfcf split tight quads and conics
Tight quads and conics may nearly fold over on themselves, confusing
coincidence against other curves. Split them at their max curvature
early on to avoid complicating later logic.

TBR=reed@google.com
BUG=skia:5131
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2357353002

Review-Url: https://codereview.chromium.org/2357353002
2016-09-23 05:47:20 -07:00
brianosman
5a9c2f110e sRGB cleanup in image filters. Ensure we configure paints correctly.
Net effect of the two calls is (basically) the same, but given that we're
propagating from isGammaCorrect on the DC, I figured it makes sense to use
the same-named API.

More importantly, a couple places had slipped through, so those draws would
ignore sRGB-ness of inputs entirely.

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

Review-Url: https://codereview.chromium.org/2357413004
2016-09-22 14:50:58 -07:00
brianosman
c68e8924c5 It is possible to try and draw to an unsupported format. Let this go.
Squelches assert firing in gradient code on low-end Android bots.

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

Review-Url: https://codereview.chromium.org/2365703002
2016-09-22 14:27:34 -07:00
halcanary
2a4d1e1c1f SkPDF: do not assert when openStream return nullptr
BUG=163892
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2332813002

Review-Url: https://codereview.chromium.org/2332813002
2016-09-22 14:13:16 -07:00
reed
d14df7c700 document.close from bool to void
Nothing meaningful is returned, it is inconsistent with the bulk of the rest of skia's api. The C api is waiting on this change as well.

Required chrome CL: https://codereview.chromium.org/2355343003/

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

Review-Url: https://codereview.chromium.org/2354403002
2016-09-22 14:12:47 -07:00
jvanverth
ae6e4869c9 Revert of Some Vulkan memory fixes and cleanup (patchset #2 id:20001 of https://codereview.chromium.org/2356343003/ )
Reason for revert:
fHeapIndex is not used in release, need to hide behind SK_DEBUG. Failing on Perf-Android-Clang-NVIDIA_Shield-GPU-TegraX1-arm64-Release-GN_Android_Vulkan.

Original issue's description:
> Some Vulkan memory fixes and cleanup
>
> * Switch back to not setting transfer_dst on all buffers
> * Add some missing unit tests
> * Add tracking of heap usage for debugging purposes
> * Fall back to non-device-local memory if device-local allocation fails
>
> BUG=skia:5031
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2356343003
>
> Committed: https://skia.googlesource.com/skia/+/c5850e9fdb62cc4ae5ed2b6af51aea92cac07455

TBR=egdaniel@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:5031

Review-Url: https://codereview.chromium.org/2358123004
2016-09-22 13:45:24 -07:00
msarett
5414be0693 G instead of R, thanks Gold
NOTRY=true
TBR=mtklein@google.com
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2362863002

Review-Url: https://codereview.chromium.org/2362863002
2016-09-22 13:23:56 -07:00
caryclark
1c10607244 don't close a contour with a line if nothing's there
R=kjlubick@google.com
BUG=skia:5789
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2360083006

Review-Url: https://codereview.chromium.org/2360083006
2016-09-22 12:52:21 -07:00
jvanverth
c5850e9fdb Some Vulkan memory fixes and cleanup
* Switch back to not setting transfer_dst on all buffers
* Add some missing unit tests
* Add tracking of heap usage for debugging purposes
* Fall back to non-device-local memory if device-local allocation fails

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

Review-Url: https://codereview.chromium.org/2356343003
2016-09-22 12:47:35 -07:00
hcm
3d89a7c0d2 Update Chrome section to include Skia roll/sheriff/bug info
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2351593003
NOTRY=true
DOCS_PREVIEW= https://skia.org/?cl=2351593003

Review-Url: https://codereview.chromium.org/2351593003
2016-09-22 12:47:14 -07:00
robertphillips
8c170971f1 Make AALinearizingConvexPathRenderer able to handle stroke and fill
This is intended to catch stroke-and-fill convex paths with potentially small stroke widths (e.g., .1).

It does have the disconcerting side effect of changing bevel-joined stroke-and-filled degenerate-single-line-rects into plain rects (w/o triangular end-caps).

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

Committed: https://skia.googlesource.com/skia/+/522bcd99fa65a8abd130880f59b500cf367d0845
Review-Url: https://codereview.chromium.org/2301353004
2016-09-22 12:42:30 -07:00
bsalomon
e2e87f3484 Change implementation of flush-count based GrGpuResource purging
Change default to approx 30seconds (given some API usage assumptions)
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2361093002

Review-Url: https://codereview.chromium.org/2361093002
2016-09-22 12:42:11 -07:00
csmartdalton
5745d795a1 skpbench fixes for linux
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2354273004

Review-Url: https://codereview.chromium.org/2354273004
2016-09-22 12:37:22 -07:00
msarett
cf7b877d62 Add BGRA as input format to SkColorSpaceXform
This is immediately useful for webp and I think it's a fair guess
that BGRA src formats are not uncommon.

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

Review-Url: https://codereview.chromium.org/2353363008
2016-09-22 12:37:04 -07:00
bungeman
5f544345d6 Remove assert that current color is never used.
The COLR table format allows for use of the 'current color'.
Currently the code asserts if this is used, but will use a nearby
luminance grey to this color instead if the assert is ignored.
Remove the assert now that this path is known to be used.

BUG=skia:5788

Review-Url: https://codereview.chromium.org/2359923004
2016-09-22 12:32:07 -07:00
brianosman
d454609f62 Support for color-spaces with multi-stop (texture) gradients
Texture is F16 linear, unless that's not supported. In that
case, we pack down to sRGB.

Added more test patches to the gamut GM with many stops,
to test this case. Now they render correctly.

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

Review-Url: https://codereview.chromium.org/2343253002
2016-09-22 12:31:59 -07:00
mtklein
ecbc526418 GN: build skiaserve
I trimmed the libmicrohttpd sources and defines down to the minimum needed to build and run.  This builds and runs on Linux and Android for me.

Request.h was missing an include for SkTypes.h, which supplies the default for SK_GPU_SUPPORTED if not otherwise defined.

To build on Android, exit() -> _exit().

build.py was unused.

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

NOTREECHECKS=true

Review-Url: https://codereview.chromium.org/2367513002
2016-09-22 11:51:24 -07:00
caryclark
bac104605e Reland of ix for conic fuzz (patchset #1 id:1 of https://codereview.chromium.org/2361473004/ )
Reason for revert:
Landed suppression in Chrome's LayoutTests/TestExpectations

Original issue's description:
> Revert of fix for conic fuzz (patchset #3 id:40001 of https://codereview.chromium.org/2350263003/ )
>
> Reason for revert:
> See if this fixes the layout tests.
>
> Original issue's description:
> > fix for conic fuzz
> >
> > A fuzzer generates a conic that hangs when drawn.
> > The quads that approximate the conics move up and down
> > in y, confusing the renderer.
> >
> > This fix ensures that the split conic maintains the
> > same y direction as the original conic.
> >
> > R=reed@google.com
> > BUG=647922
> > GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2350263003
> >
> > Committed: https://skia.googlesource.com/skia/+/ac78863acdef4b428aaf66985b80c76d1be0fdea
>
> TBR=reed@google.com
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=647922
>
> Committed: https://skia.googlesource.com/skia/+/08b345588414b861af8a55950e7dc21a1bd85a28

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

Review-Url: https://codereview.chromium.org/2359253002
2016-09-22 10:24:59 -07:00
caryclark
08b3455884 Revert of fix for conic fuzz (patchset #3 id:40001 of https://codereview.chromium.org/2350263003/ )
Reason for revert:
See if this fixes the layout tests.

Original issue's description:
> fix for conic fuzz
>
> A fuzzer generates a conic that hangs when drawn.
> The quads that approximate the conics move up and down
> in y, confusing the renderer.
>
> This fix ensures that the split conic maintains the
> same y direction as the original conic.
>
> R=reed@google.com
> BUG=647922
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2350263003
>
> Committed: https://skia.googlesource.com/skia/+/ac78863acdef4b428aaf66985b80c76d1be0fdea

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

Review-Url: https://codereview.chromium.org/2361473004
2016-09-22 07:42:39 -07:00
brianosman
2a75e5df30 Add output format properties to SkImageFilter::Context
For now, this is just the color space (of the original
requesting device). This is used when constructing
intermediate rendering surfaces, so that we ensure we
land in a surface that's similar/compatible to the
final consumer of the DAG's output.

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

Review-Url: https://codereview.chromium.org/2357273002
2016-09-22 07:15:37 -07:00
msarett
4be0e7cfe0 Make SkColorSpaceXform::New() take bare ptrs
There's no need to take sk_sp if we're not going to
ref the ptr.

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

Review-Url: https://codereview.chromium.org/2360863003
2016-09-22 07:02:24 -07:00
mtklein
90939aa22f Run commandbuffer config on CommandBuffer Perf bots.
Uh, so hey, I just noticed that while the CommandBuffer Test bot runs
with --config commandbuffer, the Perf bot just runs as a vanilla GPU bot.
Shouldn't we pass --config commandbuffer?

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

CQ_INCLUDE_TRYBOTS=master.client.skia:Perf-Mac-Clang-MacMini6.2-GPU-HD4000-x86_64-Debug-CommandBuffer-Trybot

Review-Url: https://codereview.chromium.org/2364483002
2016-09-22 06:50:24 -07:00
mtklein
415a14d039 Clean up dead code.
SkOSEnvironment was used to set --enable-gl-path-rendering, and is now unused.

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

Review-Url: https://codereview.chromium.org/2365483002
2016-09-22 06:01:18 -07:00
cblume
921bc678a7 Is char* or uintptr_t easier to read?
Using a char* instead of uintptr_t allows us to use fewer
reinterpret_casts which may make the code easier to read.

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

Review-Url: https://codereview.chromium.org/2356703002
2016-09-22 05:25:26 -07:00
benjaminwagner
02472ddc94 Add recipe support for Intel HD Graphics 530.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2358183002

Review-Url: https://codereview.chromium.org/2358183002
2016-09-22 05:25:12 -07:00
msarett
9340c2685c Do not quickReject until virtual drawPatch
TBR=reed@google.com
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2358873003

Review-Url: https://codereview.chromium.org/2358873003
2016-09-22 05:20:21 -07:00
caryclark
e7bb5b2266 fix next kevin fuzz
Fix one more fuzzer crash.

R=kjlubick@google.com
BUG=skia:5775
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2357373002

Review-Url: https://codereview.chromium.org/2357373002
2016-09-22 05:20:07 -07:00
caryclark
ac78863acd fix for conic fuzz
A fuzzer generates a conic that hangs when drawn.
The quads that approximate the conics move up and down
in y, confusing the renderer.

This fix ensures that the split conic maintains the
same y direction as the original conic.

R=reed@google.com
BUG=647922
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2350263003

Review-Url: https://codereview.chromium.org/2350263003
2016-09-22 05:15:15 -07:00
caryclark
d1d628120a speed up debug dm
SkPathMeasure can take minutes with pathological cases.
Limit the debug check to a reasonable number.

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

Review-Url: https://codereview.chromium.org/2356343004
2016-09-22 05:15:04 -07:00
csmartdalton
d7a9db6444 Add hardware monitoring to skpbench
Adds a Hardware class with hooks for entering and exiting
"benchmarking" mode (e.g. locking clocks, etc.) as well as periodic
polling of hardware to verify the environment is stable.

Adds a partial implementation for generic Android hardware, but
ultimately we will need to write specific classes tailored to each
unique platform we need to test.

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

Review-Url: https://codereview.chromium.org/2360473002
2016-09-22 05:10:03 -07:00
borenet
50537e46e4 Add Jobs to tasks.json
BUG=skia:5723
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2363443002

Review-Url: https://codereview.chromium.org/2363443002
2016-09-22 05:09:56 -07:00
mtklein
605d952893 GN: take over CommandBuffer bot
As you suspected, I see nothing preventing us from building our side of things unconditionally.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2358173002
NOTREECHECKS=true

Review-Url: https://codereview.chromium.org/2358173002
2016-09-21 14:01:32 -07:00
bsalomon
0e4a466a61 Use sk_careful_memcpy when writing optional conic weights for GrShape path data key.
TBR=robertphillips@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2359933002

NO_DEPENDENCY_CHECKS=true

Review-Url: https://codereview.chromium.org/2359933002
2016-09-21 11:23:46 -07:00
bsalomon
39ef7fb885 Add optional sw generated path coverage mask caching
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2335343008

All the bots except the painfully slow windows compiler have finished so,
NOTRY=true

Review-Url: https://codereview.chromium.org/2335343008
2016-09-21 11:16:05 -07:00
reed
669983856d allow clip calls w/o op param, remove unnecessary kReplace ops
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2357333002

Review-Url: https://codereview.chromium.org/2357333002
2016-09-21 11:15:07 -07:00
robertphillips
df55827ae6 Remove unused SkImage_Base and SkImage_Gpu onNewSurface methods
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2353403002

Review-Url: https://codereview.chromium.org/2353403002
2016-09-21 11:00:23 -07:00
bsalomon
2eda5b3a65 Conditionally insert gl_PointSize into shaders.
BUG=chromium:648816
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2358843002

Review-Url: https://codereview.chromium.org/2358843002
2016-09-21 10:53:24 -07:00
jvanverth
7d05f32a1d Always use transfer_dst for buffers.
This will allow Adreno to use non-coherent buffers.

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

Review-Url: https://codereview.chromium.org/2361473002
2016-09-21 10:20:23 -07:00
mtklein
38925aa37c Build tools on NoGPU bots.
I was just lazy disabling this before.  It turns out to not be difficult.

This gets us slightly better testing out of the NoGPU bot, as we now know
not only that Skia compiles, but also that DM and nanobench can link (and
thus that Skia's got enough compiled in it to be a coherent library).

skpbench requires GPU support.

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

Review-Url: https://codereview.chromium.org/2356283002
2016-09-21 10:11:25 -07:00