Commit Graph

16641 Commits

Author SHA1 Message Date
Mike Reed
f2ae2b2dbc move perlinenoise2 into effects
Bug: skia:
Change-Id: I5c178bdc5901d15c6924b3fb1f29119ab3cc701d
Reviewed-on: https://skia-review.googlesource.com/18131
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
2017-05-30 20:15:37 +00:00
Mike Klein
25e90055a0 simplify sse41::srcover_srgb_srgb
Most importantly, remove the undefined behavior implied by "delta".

Change-Id: I8f9740804ec74dd40b049eafd4f0d51b36ce3237
Reviewed-on: https://skia-review.googlesource.com/18140
Reviewed-by: Herb Derby <herb@google.com>
2017-05-30 19:49:32 +00:00
Herb Derby
f81c56f3c0 Add arm tail code.
CQ_INCLUDE_TRYBOTS=skia.primary:Test-Android-Clang-Nexus10-CPU-Exynos5250-arm-Release-Android

Change-Id: Ia0e9f32d0324e66c9d4812dbb156a2b858d49a13
Reviewed-on: https://skia-review.googlesource.com/18127
Commit-Queue: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
2017-05-30 19:39:44 +00:00
Mike Klein
836e6c1f7d remove sse2::srcover_srgb_srgb
Change-Id: Icc570d8a8f1df1dea202e1d234433491122b9b67
Reviewed-on: https://skia-review.googlesource.com/18135
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-05-30 19:16:46 +00:00
Florin Malita
b391f12e78 Don't pull private headers in SkOverdrawColorFilter.h
Change-Id: I16254709ffaf6c85110964568ec9422a1ffbb970
Reviewed-on: https://skia-review.googlesource.com/18129
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2017-05-30 17:46:14 +00:00
Chris Dalton
114a3c0b2b Fix glDrawRangeElements
Adds explicit min/max index value fields to GrMesh. This eliminates the
previous assumption that the index values were within the range
[0..vertexCount-1]. In the pattern case we still maintain this
assumption.

Updates GrMesh to hide its fields and handle its new complexity using a
"helper" interface instead.

Adds a unit test for GrMesh.

Bug: skia:
Change-Id: Ia23de72d510f8827cee56072b727fb70a6e46b8d
Reviewed-on: https://skia-review.googlesource.com/17964
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2017-05-30 16:02:36 +00:00
Mike Klein
b474e2d826 bug fix in convert_with_pipeline()
What do you supppose happens if we put an SkColorSpaceTransferFn on the
stack, pass its address to SkRasterPipeline, then pop it off the stack?

BUG=skia:6671

Change-Id: I17c777d9dc55a67cca6196a01c076a6be8283d3d
Reviewed-on: https://skia-review.googlesource.com/18078
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-05-30 14:13:53 +00:00
Robert Phillips
bb581ce30f Convert DstTexture to DstProxy (take 2)
The last GrTexture-based TextureSampler::reset call must be removed before the TextureSamplers can become purely GrTextureProxy-backed

Reland of: https://skia-review.googlesource.com/c/16908/ (Convert DstTexture to DstProxy)

Split out of: https://skia-review.googlesource.com/c/10484/ (Omnibus: Push instantiation of GrTextures later (post TextureSampler))

Change-Id: I3a497b6a950fad899f23882c0a9552894ef640f8
Reviewed-on: https://skia-review.googlesource.com/17205
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2017-05-29 19:26:26 +00:00
Robert Phillips
9bee2e5894 Revise system for checking for uninstantiated proxies
The new pattern is:
  we will "instantiate" pipelines at flush time
  at flush time we will only access the backing GrSurface by peeking

  If instantiation fails we should never try to access the GrSurfaces


Change-Id: I87f7ff41bd0e84d9ca3dbdd61d3361d3d4ceefd6
Reviewed-on: https://skia-review.googlesource.com/17932
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2017-05-29 17:04:51 +00:00
Florin Malita
f7beee7cdd Hide ctors of SkShader, SkImage & SkColorSpace
To prevent external clients from subclassing.

Change-Id: I60a3833bf64019aea2f537850ca2a1ae38bb8767
Reviewed-on: https://skia-review.googlesource.com/18038
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-05-26 22:34:00 +00:00
Mike Klein
5addedd59d no sprite blitters support gamut conversion
This fixes the None/Low bitmap filtering in gamut GM.

BUG=skia:6679

Change-Id: Ic6e0efa6a23b537aea69b4beb24f3c8b8c6ca347
Reviewed-on: https://skia-review.googlesource.com/17923
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Brian Osman <brianosman@google.com>
2017-05-26 21:00:34 +00:00
Yuqian Li
1c8408847c Explicitly check edge count >= 2 in non-debug build
We also preserve the check in debug mode that the
count should never be 1 when the path is convex.

Bug: skia:6684
Change-Id: I4d4c9ad9f9d704e94bbe51f10a96f8b3066afaa1
Reviewed-on: https://skia-review.googlesource.com/17983
Commit-Queue: Yuqian Li <liyuqian@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2017-05-26 19:14:51 +00:00
Matteo Franchin
a132c3869f Faster and more accurate blit_row_s32a_opaque for ARM
Change ARM implementation of alpha blending to work on 8 pixels at a
time (using NEON). Also improve the accuracy of alpha blending by using
a formula based on SkMulDiv255Round rather than SkPMSrcOver.

Note that a number of variations of this code were considered. Here are
some notes:

- A 16 pixels at a time version was considered. This performs well for
  the case of extreme alpha (all-opaque or all-transparent pixels), but
  performs worst than the 8 pixels version when there are frequent
  transitions of alpha. Also gcc 6.2.1 seems to have troubles with
  register pressure when using this version.

- If the branch to detect the fully-opaque or fully-transparent cases
  is removed, then the performance increases significantly for images
  which are all partially transparent (especially on ARM Cortex A72),
  but can significantly decrease for images that are almost fully
  opaque or fully transparent.

This implementation is a compromise to the effects described above.
This patch produces a ~10% improvement on the nanobench's sub-scores
repeatTile_BGRA_8888_A, constXTile_MM_filter_trans, constXTile_CC_trans,
constXTile_RR_filter_trans when running on ARM Cortex A72. Improvements
of greater magnitude (20% to 30%) are observed when running on ARM
Cortex A53.

CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD
Change-Id: I1f0c9f549057613bbffd26e6651f3beeb0019af9
Bug: skia:
Reviewed-on: https://skia-review.googlesource.com/16520
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-05-26 19:02:11 +00:00
Brian Osman
0b403f8b6b Fix two more drawVertices "bugs"
1) Prior to SkVertices, drawing with local coords but no shader triggered
   wireframe mode (as if no local coords were supplied, and assuming no
   colors). I find the wireframe thing to be strange, but restore that
   behavior to match CPU backend.

2) More importantly: If we *do* fall into the wireframe mode, make sure to
   not *also* draw in non-wireframe. Yesterday's bugfix to paint
   conversion caused those kinds of draws to draw wireframe, then draw in
   fill mode on top.

Bug: skia:
Change-Id: Ie579b54480b4488a09c207fecbbe3badbddc5d68
Reviewed-on: https://skia-review.googlesource.com/18032
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Brian Osman <brianosman@google.com>
2017-05-26 18:36:20 +00:00
Florin Malita
eb9f278e8c Delete onChooseBlitProcs() and related code
All dead code now.

Change-Id: I3d88103fef90d9e2ceee8b13db143ac9704689f5
Reviewed-on: https://skia-review.googlesource.com/18034
Reviewed-by: Herb Derby <herb@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2017-05-26 18:31:18 +00:00
Mike Reed
e28bbcf0f6 avoid rebuilding pipeline w/ only tricolors
patch_primitive: 2.0 --> 1.4

Bug: skia:
Change-Id: Ia43c31873b9438332c94958232f6367240ba9a62
Reviewed-on: https://skia-review.googlesource.com/18030
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Reed <reed@google.com>
2017-05-26 18:29:47 +00:00
Robert Phillips
10240e385f Initialize rects in SkValidatingReadBuffer readRect & readIRect on failure
BUG: 726199

Change-Id: I2afeebbd2240e1c2f3b7d7298cb11572eef18acd
Reviewed-on: https://skia-review.googlesource.com/17984
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2017-05-26 18:24:43 +00:00
Brian Osman
ae0c50c624 Only support SkVertices in GrDrawVerticesOp and GrRenderTargetContext
Allow overriding the primitive type at draw time, so everyone can
funnel through the same code path. Simplifies the color array type
logic, and saves one memcpy (of indices) in the drawWireframe case.

Bug: skia:
Change-Id: I46653d34169842b9b5304cff48d804b2a9ace529
Reviewed-on: https://skia-review.googlesource.com/17783
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2017-05-26 18:24:42 +00:00
Florin Malita
95c993cd7b Unexport private SkShader classes
Alternative to https://skia-review.googlesource.com/c/18025/: these
subclasses are private, we shouldn't need to SK_API-tag them.

Change-Id: I94fc38e76ee4468132e41ab16f21ae6ad61fe1f2
Reviewed-on: https://skia-review.googlesource.com/18029
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2017-05-26 18:19:39 +00:00
Mike Reed
98b7a6a955 rasterpipeline:
+ only dither if the paint asks for it
- don't special case if the shader is a gradient

guard: SK_SUPPORT_LEGACY_RASTERPIPELINE

Bug: skia:
Change-Id: I7f0c101049e5cb32a80306dcfff3bc21bcf318be
Reviewed-on: https://skia-review.googlesource.com/17931
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Reviewed-by: Florin Malita <fmalita@chromium.org>
2017-05-26 18:19:37 +00:00
Derek Sollenberger
5480a18d87 Add method to GrContext to purge unlocked resources.
Beyond setting the total cache limits this method enables clients to
request to purge a specific number of bytes, as well as specify their
preference to purge scratch resources over resources of other types.

Change-Id: I9259d5544d34251575d77eebe599388f213ff3ce
Reviewed-on: https://skia-review.googlesource.com/17987
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Derek Sollenberger <djsollen@google.com>
2017-05-26 18:14:33 +00:00
Mike Klein
c99be2577e add SK_API to SkShaderBase
Ought to fix Chrome roll:

    warning C4275: non dll-interface class 'SkShaderBase' used as base for
    dll-interface class 'SkEmptyShader'

etc.  May fix Android too?

Change-Id: Ic8ff988b9000c484aa54959e49a1ff17e5635340
Reviewed-on: https://skia-review.googlesource.com/18025
Reviewed-by: Florin Malita <fmalita@chromium.org>
2017-05-26 11:59:26 +00:00
Mike Klein
fb65a9f400 Revert "Update clearOp for split-OpList world (take 2)"
This reverts commit 3fdd0bf2d9.

Reason for revert: Chrome roll dryrun?

Original change's description:
> Update clearOp for split-OpList world (take 2)
> 
> It would reduce a lot of noise if the GrRenderTargetOpList kept a pointer to the GrCaps but, for now, I'm trying to shrink the GrRTOpList, not expand it.
> 
> Reland of: https://skia-review.googlesource.com/c/17323/ (Update clearOp for split-OpList world)
> 
> Change-Id: I97f3fb81e6258d430e7f7cf1ea8bd51a392f9f47
> Reviewed-on: https://skia-review.googlesource.com/17830
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Robert Phillips <robertphillips@google.com>
> 

TBR=bsalomon@google.com,robertphillips@google.com
No-Presubmit: true
No-Tree-Checks: true
No-Try: true

Change-Id: Ib70285bb484a1ed8babaa519c74bfdf619313806
Reviewed-on: https://skia-review.googlesource.com/18024
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2017-05-26 01:38:31 +00:00
Mike Klein
c020f17127 Revert "Remove (now-dead) SK_LEGACY_SWEEP_GRADIENT code"
This reverts commit 04d22c0483.

Reason for revert: Android roll?
junit.framework.AssertionFailedError: res/drawable/vector_icon_gradient_1.xml: totalDiffPixelCount is 123


Original change's description:
> Remove (now-dead) SK_LEGACY_SWEEP_GRADIENT code
> 
> Behold the first raster pipeline-only gradient!
> 
> Change-Id: Ib6f53224e4ff9506aafdae1d2303102fc5235dfc
> Reviewed-on: https://skia-review.googlesource.com/17982
> Commit-Queue: Mike Klein <mtklein@chromium.org>
> Reviewed-by: Mike Klein <mtklein@chromium.org>
> 

TBR=mtklein@chromium.org,mtklein@google.com,herb@google.com,fmalita@chromium.org,reed@google.com
No-Presubmit: true
No-Tree-Checks: true
No-Try: true

Change-Id: I328585f5412068f4eff1d0a2a6083cb4c1a3c078
Reviewed-on: https://skia-review.googlesource.com/18022
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2017-05-26 01:33:07 +00:00
Stan Iliev
d8872be505 Revert "Relocate shaders to own dir"
This reverts commit fabe0b26d0.

Reason for revert: Last android roll failed with "external/skia/src/effects/SkGaussianEdgeShader.h:11:10: fatal error: 'SkShaderBase.h' file not found"

Original change's description:
> Relocate shaders to own dir
> 
> Consolidate all shader impls under src/shaders/.
> 
> Change-Id: I450e37541214704c1ad9e379d9d753b7cc62fac3
> Reviewed-on: https://skia-review.googlesource.com/17927
> Commit-Queue: Florin Malita <fmalita@chromium.org>
> Reviewed-by: Herb Derby <herb@google.com>
> 

TBR=mtklein@google.com,herb@google.com,fmalita@chromium.org,reed@google.com
No-Presubmit: true
No-Tree-Checks: true
No-Try: true

Change-Id: Idbb2b75053969df1dad9d8ce0217cd39189b9ddb
Reviewed-on: https://skia-review.googlesource.com/18020
Reviewed-by: Stan Iliev <stani@google.com>
Commit-Queue: Stan Iliev <stani@google.com>
2017-05-25 22:30:19 +00:00
Hal Canary
5b474d3623 SkPDF: assert premultiplied bitmaps are valid in debug.
Change-Id: I5feeee9a02199c6f4aa91c67e19844e022175d23
Reviewed-on: https://skia-review.googlesource.com/17993
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
2017-05-25 22:18:19 +00:00
Mike Klein
b2ef4d6d15 force SkRasterPipeline when using complex blends
Looks like we're faster than legacy pretty much across the board.

out/nanobench -m Hue Saturation Luminosity Color\$ Color_aa\$ --config 8888 -q --ms 2000

    Xfermode_Luminosity      80128.68 -> 27189.83
    Xfermode_Luminosity_aa   18001.46 -> 14449.67
    Xfermode_Color          183520.09 -> 27448.49
    Xfermode_Color_aa        34257.75 -> 14694.85
    Xfermode_Saturation      80323.96 -> 36449.01
    Xfermode_Saturation_aa   19605.81 -> 18576.62
    Xfermode_Hue            125866.82 -> 36611.03
    Xfermode_Hue_aa          25318.00 -> 18489.33

Change-Id: I842b8f53fb356bf1a5e81502be88e4b34d4ad0dc
Reviewed-on: https://skia-review.googlesource.com/17992
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-05-25 21:15:19 +00:00
Florin Malita
9b868f7b40 Remove unused PM4f blitters
Change-Id: I19106b70ba19bffb04ae0517225fce2169ab5f33
Reviewed-on: https://skia-review.googlesource.com/17990
Commit-Queue: Florin Malita <fmalita@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Reed <reed@google.com>
2017-05-25 21:11:19 +00:00
Herb Derby
e7ba8b05d2 Add tail handling for SSE* to SkJumper.
Change-Id: Icb9d385333082de2f99b7a25cfd7251717e3f663
Reviewed-on: https://skia-review.googlesource.com/17580
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Herb Derby <herb@google.com>
2017-05-25 20:42:08 +00:00
Florin Malita
fabe0b26d0 Relocate shaders to own dir
Consolidate all shader impls under src/shaders/.

Change-Id: I450e37541214704c1ad9e379d9d753b7cc62fac3
Reviewed-on: https://skia-review.googlesource.com/17927
Commit-Queue: Florin Malita <fmalita@chromium.org>
Reviewed-by: Herb Derby <herb@google.com>
2017-05-25 20:05:08 +00:00
Brian Salomon
1c21431324 Revert "Clear atlas textures at creation in Chrome"
This reverts commit 8785df15fe.

Reason for revert: Chrome bug
Bug: chromium:726226

Original change's description:
> Clear atlas textures at creation in Chrome
> 
> Bug: chromium:656320
> Change-Id: Ia65274aa733f199be188579821e745920493aefc
> Reviewed-on: https://skia-review.googlesource.com/17824
> Reviewed-by: Robert Phillips <robertphillips@google.com>
> Commit-Queue: Brian Salomon <bsalomon@google.com>
> 

TBR=bsalomon@google.com,robertphillips@google.com
# Not skipping CQ checks because original CL landed > 1 day ago.
Bug: chromium:656320

Change-Id: Ibc4dd7f184866b58481f2dc7e7e88da9169e7adc
Reviewed-on: https://skia-review.googlesource.com/17988
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2017-05-25 20:03:07 +00:00
Brian Osman
33fa454b16 Fix two bugs with drawVertices on GPU
1) In SkGpuDevice.cpp, the SkVertices refactor had a copy-paste error
   when moving the paint initialization code into the helper function.
   This caused draws with texs (but no colors, and no shader) to fail
   to draw. Previously (and with this change) that draws solid filled
   triangles. This is still different from CPU (which draws outlines).
   This is an odd edge case, but it's also the easiest way to create
   the second bug...

2) In GrDrawVerticesOp.cpp, we always claimed to have SkColor colors.
   That's only true if the SkVertices has colors, otherwise we use the
   paint's color, which is GrColor. Normally, this doesn't matter,
   because we'll use uniform color which is always GrColor. But if you
   induce batching (and the meshes have different colors), we expand
   the per-mesh color to a per-vertex color. Then, the geo proc code
   thinks that those per-vertex colors are SkColors, and swaps the red
   and blue channels, leading to incorrect results.

Bug: skia:
Change-Id: I3401e030d4ffea8666efd02e20a5fdedcfbd8485
Reviewed-on: https://skia-review.googlesource.com/17986
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2017-05-25 19:47:07 +00:00
Stephen White
6eca90fea6 GrTessellator: fix for three edges becoming collinear after splitting.
In rare cases, a single edge can become collinear with two adjacent
neighbour edges after it's split. The solution is to continue to merge
until no collinear edges are found.

BUG=722000

Change-Id: Ia5dd212b7acfb40ed1d6c74ebfa9e4a4746fe40a
Reviewed-on: https://skia-review.googlesource.com/17963
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Stephen White <senorblanco@chromium.org>
2017-05-25 19:33:17 +00:00
Mike Klein
506262665c add srcover_rgba_8888
Change-Id: Iabdc79183ccd2f9cc513d4bdc530fb078b1627ab
Reviewed-on: https://skia-review.googlesource.com/17930
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-05-25 19:33:07 +00:00
Florin Malita
04d22c0483 Remove (now-dead) SK_LEGACY_SWEEP_GRADIENT code
Behold the first raster pipeline-only gradient!

Change-Id: Ib6f53224e4ff9506aafdae1d2303102fc5235dfc
Reviewed-on: https://skia-review.googlesource.com/17982
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
2017-05-25 18:33:17 +00:00
Brian Osman
ac1e4964e7 Workaround Mali static analysis bug
Comment describes it: Unless we do something to confuse their optimizer,
they will (incorrectly) deduce that uniform opaque color (modulated only
by a texture fetch) is always going to remain opaque. Then they skip
inserting their shader based blending code, turning SrcOver into Src.

Doing a max against zero is enough to squelch the optimization.

Bug: skia:
Change-Id: I74676cebb0b0c8d121da868dd8a88050e0cfcc0d
Reviewed-on: https://skia-review.googlesource.com/17924
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2017-05-25 16:15:07 +00:00
Robert Phillips
3fdd0bf2d9 Update clearOp for split-OpList world (take 2)
It would reduce a lot of noise if the GrRenderTargetOpList kept a pointer to the GrCaps but, for now, I'm trying to shrink the GrRTOpList, not expand it.

Reland of: https://skia-review.googlesource.com/c/17323/ (Update clearOp for split-OpList world)

Change-Id: I97f3fb81e6258d430e7f7cf1ea8bd51a392f9f47
Reviewed-on: https://skia-review.googlesource.com/17830
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2017-05-25 15:20:27 +00:00
Greg Daniel
cd2f512578 Initialize blit framebuffer in GL even if not doing msaa
Bug: skia:
Change-Id: I6b7290485e0c3123c62a50ec156738862e9ad18c
Reviewed-on: https://skia-review.googlesource.com/17926
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2017-05-25 15:12:17 +00:00
Florin Malita
4aed13889b Reland of SkShaderBase
Introduce a private base class (SkShaderBase), to hide
implementation details from the public interface (SkShader).

Change-Id: Ib1d76cde880bd51868b97408710f8bb38128e536
Reviewed-on: https://skia-review.googlesource.com/17925
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2017-05-25 14:59:07 +00:00
Mike Klein
555ea8e994 bail out of ChooseBitmapXferProc with a color space
This fixes the paint-color parts of the gamut GM,
and a handful of other similar problems.

We'll still memset in the blitter, just after we get in the right gamut.

BUG=skia:6679

Change-Id: I2b16259ad689c63ae304fb600802acf9125b8c25
Reviewed-on: https://skia-review.googlesource.com/17922
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-05-25 14:14:17 +00:00
Robert Phillips
3b3307f2b1 Disable MSAA for Intel GPUs and re-enable GrSurfaceRenderability test
This CL replaces: https://skia-review.googlesource.com/c/17710/ (Re-enable GrSurfaceRenderability test)

Change-Id: I5626e4fc3581cd2b17fe0f0ad3a9e9bc35b7aa4c
Reviewed-on: https://skia-review.googlesource.com/17764
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2017-05-25 13:40:16 +00:00
Mike Klein
c998f733e3 make sure to_srgb maps 1 to 1
CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Release-SK_CPU_LIMIT_SSE2,Test-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Release-SK_CPU_LIMIT_SSE41,Test-Android-Clang-Nexus10-CPU-Exynos5250-arm-Release-Android,Test-Android-Clang-PixelC-CPU-TegraX1-arm64-Release-Android,Test-Android-Clang-Ci20-CPU-IngenicJZ4780-mipsel-Release-Android

BUG=skia:6678,skia:6683

Change-Id: I217084fa0a11ad661a8751f0c3b1cade5cc52473
Reviewed-on: https://skia-review.googlesource.com/17902
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-05-25 13:25:47 +00:00
Mike Reed
6533159f2c add stage for gaussian alpha to rgba for shadows
speeds up GM:shadow_utils 20%

Bug: skia:
Change-Id: If52dd5e2c76ace82d06351af1419e0663a3a634f
Reviewed-on: https://skia-review.googlesource.com/17844
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
2017-05-24 21:43:35 +00:00
Florin Malita
d93e11ceb4 Revert "SkShaderBase"
This reverts commit 58a756435c.

Reason for revert: g3, Android borkage.

Original change's description:
> SkShaderBase
> 
> Introduce a private base class (SkShaderBase), to hide
> implementation details from the public interface (SkShader).
> 
> Change-Id: If3ec26ca6abc9da20e3f139c11fdc023bdd85176
> Reviewed-on: https://skia-review.googlesource.com/17241
> Commit-Queue: Florin Malita <fmalita@chromium.org>
> Reviewed-by: Mike Reed <reed@google.com>
> 

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

Change-Id: I32b012ee466dd006c074593f211f43ed602f1078
Reviewed-on: https://skia-review.googlesource.com/17845
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2017-05-24 21:15:57 +00:00
Florin Malita
58a756435c SkShaderBase
Introduce a private base class (SkShaderBase), to hide
implementation details from the public interface (SkShader).

Change-Id: If3ec26ca6abc9da20e3f139c11fdc023bdd85176
Reviewed-on: https://skia-review.googlesource.com/17241
Commit-Queue: Florin Malita <fmalita@chromium.org>
Reviewed-by: Mike Reed <reed@google.com>
2017-05-24 19:56:15 +00:00
Greg Daniel
aa13223f54 Allow for non opaque colors for src-over lcd fallback case in gpu
Since skia is currently requiring the dst to be opaque for lcd draws this
change is safe to make in terms of correctly. It will also be faster than
the current shader based blending.

Bug: chromium:725879
Change-Id: I0c14b80eb5ab819500afc55030df83d5ddbef94a
Reviewed-on: https://skia-review.googlesource.com/17840
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2017-05-24 19:52:05 +00:00
Hal Canary
6fee59b514 SkStream: DynamicMemoryWStream gets writeToAndReset
This is similar to copyToAndReset().

Also use this in SkPDF, for minor memory savings:
Single-threaded DM's peak RSS drops from 239MB
to 228MB.

Change-Id: I352a980e6dd54eb05d74cd057bd50e02312753b0
Reviewed-on: https://skia-review.googlesource.com/17714
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
2017-05-24 19:49:35 +00:00
Florin Malita
14a6430b7b SkSTArenaAlloc
Syntactic sugar, gets rid of some boilerplate.

Change-Id: Ibdb28b7a8f1d5e4a4e18c12d423b987d7194e340
Reviewed-on: https://skia-review.googlesource.com/17837
Commit-Queue: Florin Malita <fmalita@chromium.org>
Reviewed-by: Herb Derby <herb@google.com>
2017-05-24 19:20:45 +00:00
Mike Reed
176f19cce5 Use rasterpipeline for drawVertices
Bug: skia:
Change-Id: If6da119ee98f26981cef9373162ddb526db77be5
Reviewed-on: https://skia-review.googlesource.com/17422
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Reviewed-by: Mike Klein <mtklein@google.com>
2017-05-24 18:43:05 +00:00
Mike Klein
9fff11133d better extend: alloc once, no recursion
Change-Id: I6a8cee08248462e4e17196028758dd8d44093b28
Reviewed-on: https://skia-review.googlesource.com/17831
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-05-24 17:24:45 +00:00