Commit Graph

26535 Commits

Author SHA1 Message Date
Mike Reed
8be952ad8c SkScalarMul is deprecated
BUG=skia:

Change-Id: I88ecfe9d4c72506f6b1a0e0dfadd2a5c171a6cb6
Reviewed-on: https://skia-review.googlesource.com/8353
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
2017-02-14 14:43:47 +00:00
Mike Klein
351549feba SkSplicer support for 2-point gradients.
Add some stages to SkSplicer:
   - seed_shader
   - matrix_2x3
   - clamp_x
   - clamp_y
   - linear_gradient_2stops

seed_shader needed new constants, 0.5f and {0,1,2,3,4,5,6,7}.

$ out/nanobench -m gradient_linear_clamp\$ --config f16 --ms 2000 -q
    Before: 612.17us
    After:  163.80us

Change-Id: I6e03383c95ea070250424e743080a7930efeca77
Reviewed-on: https://skia-review.googlesource.com/7348
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-02-14 14:13:17 +00:00
csmartdalton
936f81b958 Move the rt adjust uniform into GP EmitArgs
The GP will likely require this value when dealing with a geometry
shader. In the future we may wish to either switch to device-space
geometry shaders, or else put this value in an "sk_" builtin.

BUG=skia:

Change-Id: I8dff88fc219feef84d39fb7bbd08f3b5686f53d2
Reviewed-on: https://skia-review.googlesource.com/8362
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2017-02-13 23:21:35 +00:00
csmartdalton
ed4984bf53 Add animated text samples
BUG=skia:

Change-Id: I0b0a00a0d5c5790a1fc963458bc90c968830afd8
Reviewed-on: https://skia-review.googlesource.com/8361
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2017-02-13 22:33:08 +00:00
Stephen White
5926f2da75 GrTessellator (AA): fix "Canvas Arcs" coverage artifact.
When sanitizing contours, if the first and last vertices coincide,
continue with the previous vertex, not the next vertex, since we
may otherwise exit prematurely. Also, round the last vertex before
entering the loop, just in case it coincides with the first.

Add a test case to exercise the above, and another one which exercises
the intruding-vertex workaround.

BUG=691593

Change-Id: Ic28a9308a21164d185edef0ee6fbc29b40742149
Reviewed-on: https://skia-review.googlesource.com/8364
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Stephen White <senorblanco@chromium.org>
2017-02-13 21:18:10 +00:00
Mike Reed
1e06d3d7b9 add gm for clipRegion
BUG=skia:

Change-Id: Ie69db51b6fac193373fd57225370d0081295facb
Reviewed-on: https://skia-review.googlesource.com/8394
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2017-02-13 21:09:08 +00:00
Mike Klein
6fcea9d436 Enable sse2 backend for SkSplicer.
One more piece of https://skia-review.googlesource.com/c/8230/.

-mno-red-zone makes it safe for x86 stages to use the stack on Windows
(at the expense of an extra sub and add to the stack pointer on !Windows).

CQ_INCLUDE_TRYBOTS=skia.primary:Test-Win2k8-MSVC-GCE-CPU-AVX2-x86_64-Debug,Test-Win10-MSVC-Golo-GPU-GT610-x86_64-Release,Test-Mac-Clang-MacMini6.2-CPU-AVX-x86_64-Debug

Change-Id: I81f8220e790b201757a7e1e9752b2fe94520ccbb
Reviewed-on: https://skia-review.googlesource.com/8352
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Herb Derby <herb@google.com>
2017-02-13 21:08:10 +00:00
Herb Derby
07f665efb9 Revert "Always make SkImageShaders in heap."
This reverts commit ff590a1244.

Reason for revert: This breaks the android roll because they are using
a private call. Updating android tests to use new api.

Original change's description:
> Always make SkImageShaders in heap.
> 
> I made a couple of measurments, and it looks like any differences is
> well below the noise threshold.
> 
> Just for the record run1: .9991 of baseline and run2 .9988 of baseline.
> I was using top25 .skps as workload.
> 
> TBR=mtklein@google.com
> 
> Change-Id: If4fa06e5d5df72fb67dbb4bbb99c926f05765897
> Reviewed-on: https://skia-review.googlesource.com/8341
> Reviewed-by: Herb Derby <herb@google.com>
> Commit-Queue: Herb Derby <herb@google.com>
> 

TBR=mtklein@chromium.org,mtklein@google.com,herb@google.com,reviews@skia.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Change-Id: Ibdaafc796702e250933b62e5f4abb5e2ce8d40c0
Reviewed-on: https://skia-review.googlesource.com/8393
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Herb Derby <herb@google.com>
2017-02-13 20:04:16 +00:00
Mike Klein
d2d6d726fa Fix stack alignment in Windows before_loop/after_loop.
This should land as a no-op, as nothing using the stack yet.
It will allow us to land the SSE2 code, which does spill in to_srgb.

CQ_INCLUDE_TRYBOTS=skia.primary:Test-Win2k8-MSVC-GCE-CPU-AVX2-x86_64-Debug,Test-Win10-MSVC-Golo-GPU-GT610-x86_64-Release

Change-Id: Ie8000d50a85d56ad6229736d79f3a947f06a808c
Reviewed-on: https://skia-review.googlesource.com/8389
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Herb Derby <herb@google.com>
2017-02-13 19:53:48 +00:00
Hal Canary
73eae98103 tools/git-sync-deps: less verbose when fetch is needed
Change-Id: I0ab76132b9e21544ed3dfb87bd7adc91c4c4e656
Reviewed-on: https://skia-review.googlesource.com/8387
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Hal Canary <halcanary@google.com>
2017-02-13 19:53:27 +00:00
csmartdalton
320ade43f5 Make SkAutoTMalloc movable
BUG=skia:

Change-Id: I683407659c252656445b92734484170587c2f75a
Reviewed-on: https://skia-review.googlesource.com/8360
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2017-02-13 19:46:35 +00:00
Joe Gregorio
0236cba8ba fiddle: Fix JSON output logic.
BUG=skia:

Change-Id: Ia17b8328f692881282be15afa5e7f661ddc83318
Reviewed-on: https://skia-review.googlesource.com/8388
Reviewed-by: Cary Clark <caryclark@google.com>
Commit-Queue: Joe Gregorio <jcgregorio@google.com>
2017-02-13 19:46:09 +00:00
Hal Canary
c8f918004a SkPDF: skip shader lookup for SkShader::kColor_GradientType
Also: SkPDFShader::State isi now zero-initilized.

No change in PDF tests.

BUG=chromium:690875
Change-Id: Ibc56cc9435362733adf50cbb51b11c9413572e7f
Reviewed-on: https://skia-review.googlesource.com/8355
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Hal Canary <halcanary@google.com>
2017-02-13 18:59:17 +00:00
Herb Derby
5cdc9dda33 Move GrTessellator from SkChunckAlloc to SkArenaAlloc.
TBR=ethannicholas@google.com

Change-Id: I2efcbe540a2bdc42b8c2f0a675a42fe9e9ed717d
Reviewed-on: https://skia-review.googlesource.com/8383
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2017-02-13 18:58:26 +00:00
Hal Canary
385468f6e2 SkPDF: better tolerance path conversion to quadratics
BUG=chromium:691386
Change-Id: I2cb9be7dd606b2ba61ff609f9fd81a55655901f6
Reviewed-on: https://skia-review.googlesource.com/8381
Commit-Queue: Hal Canary <halcanary@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
Reviewed-by: Cary Clark <caryclark@google.com>
2017-02-13 18:24:11 +00:00
Tenghui Zhu
ea479576ec A simple gradient test
Change-Id: Ic3e53f7eab747f63641e0eb6a1c73ad0833acef6
Reviewed-on: https://skia-review.googlesource.com/8158
Reviewed-by: Matt Sarett <msarett@google.com>
Commit-Queue: Tenghui Zhu <ztenghui@google.com>
2017-02-13 18:23:09 +00:00
Brian Salomon
a12c15376c Add preserves premul and modulate optimization to compose fragment processors.
Fixes out of range colors produced by matrix convolution and dither effects. Adds modulate optimization to matrix convolution.

Change-Id: I8424250a52e864f4b5feaf4474293695c26039d8
Reviewed-on: https://skia-review.googlesource.com/8351
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2017-02-13 18:14:12 +00:00
Joe Gregorio
1fd1823b47 Add plumbing for text only fiddles.
BUG=skia:

Change-Id: If3967f868c482bbded7185a0ed7c6559cd2858c5
Reviewed-on: https://skia-review.googlesource.com/8334
Reviewed-by: Cary Clark <caryclark@google.com>
Commit-Queue: Joe Gregorio <jcgregorio@google.com>
2017-02-13 17:43:13 +00:00
Herb Derby
ff590a1244 Always make SkImageShaders in heap.
I made a couple of measurments, and it looks like any differences is
well below the noise threshold.

Just for the record run1: .9991 of baseline and run2 .9988 of baseline.
I was using top25 .skps as workload.

TBR=mtklein@google.com

Change-Id: If4fa06e5d5df72fb67dbb4bbb99c926f05765897
Reviewed-on: https://skia-review.googlesource.com/8341
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2017-02-13 17:37:17 +00:00
Matt Sarett
fbd6cfbf84 Blacklist arithmetic jpeg on WIC
NOTRY=true

BUG=skia:

Change-Id: I2c455f596b516108e2a74a69f29f4f7d2c1e6e4f
Reviewed-on: https://skia-review.googlesource.com/8382
Reviewed-by: Matt Sarett <msarett@google.com>
Commit-Queue: Matt Sarett <msarett@google.com>
2017-02-13 17:06:15 +00:00
Kevin Lubick
e4fd9d0463 Clean up hack of run api
Also fix such that the Nexus Players get kicked three times
not one and a half times.

BUG=skia:6045

Change-Id: Ie9142f809a979a46b17a8ad9a205279d6fcb9bd5
Reviewed-on: https://skia-review.googlesource.com/8266
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
2017-02-13 16:20:06 +00:00
Mike Reed
267be7fbc3 Revert "Revert "IWYU""
This reverts commit 3c727d2386.

BUG=skia:

Change-Id: I72e9b40fec96d044e0ac12906669a52529e77882
Reviewed-on: https://skia-review.googlesource.com/8356
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2017-02-13 15:59:35 +00:00
Hal Canary
03a7f5fe2d Make header files idempotent; script to check
Change-Id: I960ded854e6bc7cdee029a7393cac2a686c41754
Reviewed-on: https://skia-review.googlesource.com/8308
Commit-Queue: Hal Canary <halcanary@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
2017-02-13 15:52:59 +00:00
Matt Sarett
9119de64aa Update libjpeg-turbo to 1.5.1, enable arithmetic decoding
BUG=skia:4710

Change-Id: Idac44f7bdf140f1288bc1538f28ab1a4e1ccaae6
Reviewed-on: https://skia-review.googlesource.com/8274
Reviewed-by: Leon Scroggins <scroggo@google.com>
Commit-Queue: Matt Sarett <msarett@google.com>
2017-02-13 15:36:42 +00:00
Brian Salomon
cb30bb2cb7 Remove GrFragmentProcessor::computeInvariantOutput
Change-Id: If475730103052c6097eb91be06808fb723b70bf8
Reviewed-on: https://skia-review.googlesource.com/8330
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2017-02-13 15:32:00 +00:00
Brian Salomon
d1a8bdfbb9 Initialize test textures for ProcessorOptimizationValidationTest.
Ensure the data in the RGBA texture is premul.

Reenable the "modulation" optimization flag on GrAlphaThresholdFragmentProcessor.

Change-Id: I49ef215cee83ea74526c589bcee4bc215bc28ba4
Reviewed-on: https://skia-review.googlesource.com/8323
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2017-02-13 15:21:34 +00:00
Brian Osman
f687709011 Pixel zoomer in viewer
Made it a separate ImGui window (rather than part of the debug window).
Bring it up with 'z'. Draggable/resizable. Variable zoom scale. Enjoy.

BUG=skia:

Change-Id: I949ab398126c892c8d353aaebcc8403765f42841
Reviewed-on: https://skia-review.googlesource.com/8357
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2017-02-13 15:10:22 +00:00
Ethan Nicholas
3865711259 Replaced all calls to fragmentPosition() with sk_FragCoord
Change-Id: I2ed4558aea74b3ae7ee11dfe4736cdbcb16ae49e
Reviewed-on: https://skia-review.googlesource.com/8278
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
2017-02-13 14:49:09 +00:00
Robert Phillips
b34727f1a3 Remove unused/barely-supported compressed GrPixelConfigs
Change-Id: Ie7b813c8b0523ae53cf9f2328645ddf4c5af49a8
Reviewed-on: https://skia-review.googlesource.com/8326
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2017-02-13 13:51:24 +00:00
Mike Reed
b43a3e0160 Only use DeviceCM->fNext if the layer doesn't affect the clip
Before this, fNext always pointed at the next (prev) saveLayer in the stack.
Typically each layer is isolated, as it is defined to "consume" the current clip.
Android has an option to not affect/consume the clip, hence the support for looping
through this link-list in updateMC().

The current code always executes this loop, subtracting the current layer's clip from
the global clip, so typically the 2nd iteration will see an empty remaining clip and
draw nothing ... but we still pay for the subtract and the draw-overhead.

This change makes fNext point to the next layer ONLY if the current layer was marked
as non-consuming.

As a side-effect, this change also now detects the "last" restore by looking for
fMCRec == null, rather than fNext == nullptr. fMCRec was always null on the last
layer, so this change is safe, and could have landed independently.

BUG=skia:6214

Change-Id: I787574fa35c4869d3b884054aece925f457ad5bd
Reviewed-on: https://skia-review.googlesource.com/8348
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2017-02-12 18:16:45 +00:00
UpdateSKPs
89e62f8988 Update SKP version
Automatic commit by the RecreateSKPs bot.

TBR=update-skps@skia.org
NO_MERGE_BUILDS

Change-Id: Ib239f6716492dce40c0f246a8bc68d9b1eb9caca
Reviewed-on: https://skia-review.googlesource.com/8363
Reviewed-by: update-skps <update-skps@skia.org>
Commit-Queue: update-skps <update-skps@skia.org>
2017-02-12 07:40:16 +00:00
Mike Klein
e52577ff9f Refactor without turning on sse2/sse41.
This is another slice of https://skia-review.googlesource.com/c/8230/.

CQ_INCLUDE_TRYBOTS=skia.primary:Test-Win2k8-MSVC-GCE-CPU-AVX2-x86_64-Debug,Test-Win10-MSVC-Golo-GPU-GT610-x86_64-Release

Change-Id: I9a95b319c9695874c975d17d230f1569a8996f83
Reviewed-on: https://skia-review.googlesource.com/8350
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-02-11 18:17:07 +00:00
Mike Klein
d37979c66d Make Win before_loop/after_loop SSE compatible.
This is one little slice of https://skia-review.googlesource.com/c/8230/.

CQ_INCLUDE_TRYBOTS=skia.primary:Test-Win2k8-MSVC-GCE-CPU-AVX2-x86_64-Debug,Test-Win10-MSVC-Golo-GPU-GT610-x86_64-Release

Change-Id: I3a03246d28f34bf7692d4cb79425510c78a7f8c1
Reviewed-on: https://skia-review.googlesource.com/8349
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-02-11 16:46:08 +00:00
Mike Klein
f8866c5b3a Revert "Generate sse2/sse4.1 splices, use them."
This reverts commit 1fe55dc9fa.

Reason for revert: breaking Win GPU bots?

Original change's description:
> Generate sse2/sse4.1 splices, use them.
> 
> While we're at it, tidy up build_stages.py a bit.
> Redirecting stdout seems a lot easier than print >>f all over the place.
> 
> TODO: non-VEX-encoded before_loop() and after_loop()
> 
> CQ_INCLUDE_TRYBOTS=skia.primary:Test-Win2k8-MSVC-GCE-CPU-AVX2-x86_64-Debug
> 
> Change-Id: I3f38e55f081670dd598c6050435466d9f394e5be
> Reviewed-on: https://skia-review.googlesource.com/8230
> Commit-Queue: Mike Klein <mtklein@chromium.org>
> Reviewed-by: Herb Derby <herb@google.com>
> 

TBR=mtklein@chromium.org,herb@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
CQ_INCLUDE_TRYBOTS=skia.primary:Test-Win2k8-MSVC-GCE-CPU-AVX2-x86_64-Debug

Change-Id: Iba1905c54cb2dc42a880b9e6a8093835ffd530a2
Reviewed-on: https://skia-review.googlesource.com/8347
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
2017-02-11 14:02:05 +00:00
Robert Phillips
3c727d2386 Revert "IWYU"
This reverts commit 2aeae78a2c.

Reason for revert: It looks like this is breaking the android roll

out/target/product/angler/obj/SHARED_LIBRARIES/libandroid_runtime_intermediates/android_graphics_Canvas.o frameworks/base/core/jni/android_graphics_Canvas.cpp"
frameworks/base/core/jni/android_graphics_Canvas.cpp:178:15: error: incomplete type 'SkRegion' named in nested name specifier



Original change's description:
> IWYU
> 
> BUG=skia:
> 
> Change-Id: Ib6b4d52841dbe3fa69a86ddb6b97d6a5d0f004ee
> Reviewed-on: https://skia-review.googlesource.com/8231
> Reviewed-by: Florin Malita <fmalita@chromium.org>
> Commit-Queue: Mike Reed <reed@google.com>
> 

TBR=fmalita@chromium.org,reed@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Change-Id: If979c3dd9dc3fe08ac450ced113b3d1e9a86f02a
Reviewed-on: https://skia-review.googlesource.com/8346
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2017-02-11 01:25:19 +00:00
Robert Phillips
54be5c9286 Revert "More non-invertible shader local matrix guards"
This reverts commit 368af4605d.

Reason for revert: checking to see if this is breaking the Chrome DEPS roll
Original change's description:
> More non-invertible shader local matrix guards
> 
> Change-Id: Ida9a300420ff1d883e617cdaadb80e88c99ad226
> Reviewed-on: https://skia-review.googlesource.com/8333
> Reviewed-by: Mike Reed <reed@google.com>
> Commit-Queue: Florin Malita <fmalita@chromium.org>
> 

TBR=brianosman@google.com,fmalita@chromium.org,reed@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Change-Id: Id0a771342b9be27c85d91f511d814297b8c3e0b8
Reviewed-on: https://skia-review.googlesource.com/8345
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2017-02-11 01:19:47 +00:00
Matt Sarett
3e50027f22 Delete legacy named color space API
BUG=skia:

Change-Id: I3a41b5affdfad830cea969a1e4932794d27f4f7a
Reviewed-on: https://skia-review.googlesource.com/8331
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Matt Sarett <msarett@google.com>
2017-02-10 22:53:06 +00:00
csmartdalton
75864b09e1 Add GrGLSLShaderBuilder::declareGlobal
BUG=skia:

Change-Id: I75eeb7cbd1bf157c463e5e80b4560a953b7883e8
Reviewed-on: https://skia-review.googlesource.com/8245
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2017-02-10 22:51:45 +00:00
csmartdalton
29d871554b Enable threaded SkTaskGroup in Viewer
BUG=skia:

Change-Id: I7f467c094fb0bcb983bd86d07cb9bd7be34666b3
Reviewed-on: https://skia-review.googlesource.com/8332
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
2017-02-10 22:45:08 +00:00
Herb Derby
34e91ca5cc Remove unused field, and use official size.
TBR=reed@google.com

Change-Id: I15fd225651142eefb0eb94a4f1dde55b13abe0aa
Reviewed-on: https://skia-review.googlesource.com/8343
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2017-02-10 22:29:49 +00:00
Brian Salomon
246a3c269d Re-enable ProcessorOptimizationValidationTest on iOS.
Change-Id: I05aae2e86cd7a219ab98e882bb6041263b4aca71
Reviewed-on: https://skia-review.googlesource.com/8318
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2017-02-10 21:58:47 +00:00
Ben Wagner
33064926c7 Update codesearch docs.
BUG=skia:

NOTRY=true
DOCS_PREVIEW= https://skia.org/?cl=8321

Change-Id: Ia8c87fbb3b2380c18d27bffbbd060a0d77194f7d
Reviewed-on: https://skia-review.googlesource.com/8321
Reviewed-by: Joe Gregorio <jcgregorio@google.com>
Commit-Queue: Ben Wagner <benjaminwagner@google.com>
2017-02-10 21:47:45 +00:00
Jim Van Verth
8600b1b3d6 Revert "Use SDF path miplevels based on the original path's size."
This reverts commit 6e83b13c22.

Reason for revert: Fractional path sizes are causing asserts on the bots.

Original change's description:
> Use SDF path miplevels based on the original path's size.
> 
> Should produce sharper results than arbitrary fixed sizes.
> Adds a new test to pathfill GM.
> 
> BUG=chromium:682918
> 
> Change-Id: I5a394098665d01e995a244fde278236f1471e6c9
> Reviewed-on: https://skia-review.googlesource.com/8328
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Jim Van Verth <jvanverth@google.com>
> 

TBR=jvanverth@google.com,bsalomon@google.com,reviews@skia.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:682918

Change-Id: I4a52df808ef3f769d0e6f75785148d46936a6747
Reviewed-on: https://skia-review.googlesource.com/8342
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
2017-02-10 21:45:59 +00:00
Jim Van Verth
6e83b13c22 Use SDF path miplevels based on the original path's size.
Should produce sharper results than arbitrary fixed sizes.
Adds a new test to pathfill GM.

BUG=chromium:682918

Change-Id: I5a394098665d01e995a244fde278236f1471e6c9
Reviewed-on: https://skia-review.googlesource.com/8328
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2017-02-10 21:26:33 +00:00
Florin Malita
368af4605d More non-invertible shader local matrix guards
Change-Id: Ida9a300420ff1d883e617cdaadb80e88c99ad226
Reviewed-on: https://skia-review.googlesource.com/8333
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2017-02-10 21:15:16 +00:00
Mike Klein
1fe55dc9fa Generate sse2/sse4.1 splices, use them.
While we're at it, tidy up build_stages.py a bit.
Redirecting stdout seems a lot easier than print >>f all over the place.

TODO: non-VEX-encoded before_loop() and after_loop()

CQ_INCLUDE_TRYBOTS=skia.primary:Test-Win2k8-MSVC-GCE-CPU-AVX2-x86_64-Debug

Change-Id: I3f38e55f081670dd598c6050435466d9f394e5be
Reviewed-on: https://skia-review.googlesource.com/8230
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Herb Derby <herb@google.com>
2017-02-10 20:43:16 +00:00
Ben Wagner
a67615f370 'gasp' to control symmetric rendering on Windows.
Currently Skia tries hard to use symmetric rendering with DirectWrite
as often as possible. However, particularly on Windows 7 with CJK fonts,
thin horizontal strokes can be rendered without sufficient contrast
because the font was relying on the 6x1 oversampling for what is
effecitvely drop-out control. This change will only allow symmetric
rendering if the font allows it in the 'gasp' table.

BUG=chromium:645055

Change-Id: I45a9d5e4a0b49bb969c44fb20dc92528dfe9c48d
Reviewed-on: https://skia-review.googlesource.com/8268
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Ben Wagner <bungeman@google.com>
2017-02-10 20:13:29 +00:00
Brian Salomon
eec6f7be54 Use new fragment processor optimization queries.
This doesn't yet delete the old virtuals.

It still uses the color and component flags model for the pipeline input and blended output but I'm planning to change those as well.

Change-Id: I64e2ec0fe9ed9fae3aabf1ca8c9bc0582fc7565a
Reviewed-on: https://skia-review.googlesource.com/7760
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2017-02-10 20:02:32 +00:00
Mike Reed
2aeae78a2c IWYU
BUG=skia:

Change-Id: Ib6b4d52841dbe3fa69a86ddb6b97d6a5d0f004ee
Reviewed-on: https://skia-review.googlesource.com/8231
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Mike Reed <reed@google.com>
2017-02-10 19:43:03 +00:00
Brian Osman
79086b94ed Integrate the ImGui library with viewer
Code and docs are at: https://github.com/ocornut/imgui

ImGui is an open source immediate mode GUI library that's
lightweight and fairly simply to integrate. Widget functions
return their state, and the library emits vertex and index
data to render everything. It's got a huge set of built-in
widgets and really robust layout control.

For the initial integration, I had to fix up event handling
in the viewer's app framework (to get mouse wheel and more
keys, etc...).

The new viewer 'Debug' window is toggled with the space bar.
For this change, I've added one feature to that window: the
slide picker. It's got a list of all slides, with filtering
support, and the ability to click to switch slides.

I also included the ImGui 'Demo' window (toggled with 'g').
This is nicely laid out, and includes examples of pretty
much everything the library can do. It also serves as good
documentation - find something that looks like what you want,
and then go look at the corresponding code (all of it is in
imgui_demo.cpp).

I have other CLs with other features (like directly editing
the primaries of the working color space), but I wanted to
land this chunk first, then start adding more features.

Other than adding new debugging features, there are few
more outstanding work items:

1) Raster doesn't render the GUI correctly, due to non-
invertible pos -> UV matrices. Florin is working on that.
2) Touch inputs aren't being routed yet, so the GUI isn't
usable on Android yet. Might also be tough to work with,
given the size.
3) ImGui has clipboard integration (that's why it wants
the C, X, and V keys), but we need to wire it up to the
OS' clipboard functions.
4) Draw commands can carry a void* payload to support
drawing images (using whatever mechanism the engine has).
I'd like to set that up (probably using SkImage*), which
makes it really easy to add visualization of off-screen
images in GMs, etc...

BUG=skia:

Change-Id: Iac2a63e37228d33141cb55b7e4d60bf11b7e9ae1
Reviewed-on: https://skia-review.googlesource.com/7702
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2017-02-10 19:17:03 +00:00