Commit Graph

27491 Commits

Author SHA1 Message Date
Brian Osman
ee805329bf Remove texture sampling from GrConfigConversionEffect
Elevates default precision for the entire fragment program
to maintain precision on some ES implementations.

Re-land fixed version of:
  https://skia-review.googlesource.com/10026/
  https://skia-review.googlesource.com/10056

BUG=skia:

Change-Id: Ibe43dba9c223e430b2f9f8ed5cb97ed7a049e6c2
Reviewed-on: https://skia-review.googlesource.com/10160
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2017-04-05 17:20:38 +00:00
Robert Phillips
aaee31f18c Rm readPixels from GrSurface & move read/writeSurfacePixels to GrContextPriv (take 2)
This is in service of: https://skia-review.googlesource.com/c/11125/ (Add parallel proxyID to StencilOps & RenderTargetOpList) where I want a better choke point for texture creation to improve discard handling.

This is a reland of: https://skia-review.googlesource.com/c/11200/ (Rm readPixels from GrSurface & move read/writeSurfacePixels to GrContextPriv)

Change-Id: Icd0a90d2beb483dc24ed87c3bace9c817019e148
Reviewed-on: https://skia-review.googlesource.com/11326
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2017-04-05 17:00:10 +00:00
Stephan Altmueller
babb101291 Move iOS app packaging to the cloud
This moves the signing and packaging of 
ios apps from the host that drives the device
to the cloud machine where the app is built.
This is in preparation of moving to Raspberry Pi 
hosts.


BUG=skia:5331

Change-Id: I4918272a6c734f5344351f0726b7721fde042234
Reviewed-on: https://skia-review.googlesource.com/9906
Commit-Queue: Stephan Altmueller <stephana@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
2017-04-05 16:29:13 +00:00
Matt Sarett
cb87423cff Add SkImage::makeColorSpace() to public API
Gives Chrome the flexibility to xform and cache
SkImages before they reach the
SkColorSpaceXformCanvas.

Bug: skia:
Change-Id: I1f188f385b953b5a958c15578ea66deffb4dc6c5
Reviewed-on: https://skia-review.googlesource.com/11290
Commit-Queue: Matt Sarett <msarett@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Reed <reed@google.com>
2017-04-05 16:17:15 +00:00
Brian Osman
944feea3d3 Avoid trans-coding images with gamma 2.2
Previously, these were decoded "AsIs". That feature went away (for
simplicity). Unfortunately, that means that images with gamma 2.2 were
being asked to decode to sRGB, incurring a costly (and destructive)
conversion.

Bug: skia:
Change-Id: I6c8cdfefc052c82a4de37c697c2f659dcdd38d4d
Reviewed-on: https://skia-review.googlesource.com/11352
Reviewed-by: Matt Sarett <msarett@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2017-04-05 16:01:33 +00:00
Matt Sarett
740092ed60 Delete SkPixelRefFactory
No one seems to be using this.

Bug: skia:
Change-Id: Iab0644dda2c62bd58159e0a1537138aa2e1ebcbc
Reviewed-on: https://skia-review.googlesource.com/11203
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Matt Sarett <msarett@google.com>
2017-04-05 16:01:12 +00:00
Mike Klein
fa6eb91504 finish up load4/store4 refactoring
I saved the easiest for last.  No generated code diff for store_f32.
This just moves the platform-specific code over to SkJumper_vectors.h

Also clarify types in the existing load4()/store4() functions.

SkJumper_stages.cpp looks good to start growing again!

Change-Id: I6a8599d090b4e17663703b0c0325dbe550a6cdd8
Reviewed-on: https://skia-review.googlesource.com/11348
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-04-05 15:05:31 +00:00
Brian Osman
33aa2c7b5c Allow FPs to elevate default precision for the entire fragment program
Currently, GrConfigConversionEffect is able to round-trip on many
mobile GPUs because it uses highp for all intermediate variables
(including the texture fetch result). Separating the texture sample
into a different processor breaks that.

This is a blunt instrument, not to be used lightly.

This reverts commit dffe9827b1.

Bug: skia:
Change-Id: I940af3256c47e6672a008d516db9e55669672ca3
Reviewed-on: https://skia-review.googlesource.com/11345
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2017-04-05 14:00:50 +00:00
Eric Boren
bf17eecf46 Change PRESUBMIT.py to use [Get|Update]DescriptionLines
This should fix the "git cl upload" failures on the recipe roller.

Change-Id: I1c433a5a6dc7f52034bef8b2178b3041b8f4661e
Reviewed-on: https://skia-review.googlesource.com/11020
Reviewed-by: Ravi Mistry <rmistry@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
2017-04-05 12:49:32 +00:00
Robert Phillips
171cc5fc87 Revert "Rm readPixels from GrSurface & move read/writeSurfacePixels to GrContextPriv"
This reverts commit fb0bd98a43.

Reason for revert: ANGLE failures

Original change's description:
> Rm readPixels from GrSurface & move read/writeSurfacePixels to GrContextPriv
> 
> This is in service of: https://skia-review.googlesource.com/c/11125/ (Add parallel proxyID to StencilOps & RenderTargetOpList) where I want a better choke point for texture creation to improve discard handling.
> 
> Change-Id: If57a7de47edc0853dae7bc61337d9acdc03d63b0
> Reviewed-on: https://skia-review.googlesource.com/11200
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Robert Phillips <robertphillips@google.com>
> 

TBR=bsalomon@google.com,robertphillips@google.com,reviews@skia.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Change-Id: I7241070dc1f9df47181061e07adab141f9857974
Reviewed-on: https://skia-review.googlesource.com/11324
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2017-04-05 12:46:02 +00:00
Mike Reed
1cfcf2b167 remove SK_SUPPORT_LEGACY_PAINT_TEXTDECORATION
Bug: skia:
Change-Id: I8187fdc554de5f052b953ce1a41e4fa8af6e5b16
Reviewed-on: https://skia-review.googlesource.com/11323
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2017-04-05 12:24:36 +00:00
Robert Phillips
fb0bd98a43 Rm readPixels from GrSurface & move read/writeSurfacePixels to GrContextPriv
This is in service of: https://skia-review.googlesource.com/c/11125/ (Add parallel proxyID to StencilOps & RenderTargetOpList) where I want a better choke point for texture creation to improve discard handling.

Change-Id: If57a7de47edc0853dae7bc61337d9acdc03d63b0
Reviewed-on: https://skia-review.googlesource.com/11200
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2017-04-05 11:55:35 +00:00
Kevin Lubick
be5387b930 Remove Tab3 from pool
This device is rather old and was continuously failing anyway.

Bug: skia:
NOTRY=true
Change-Id: Ifd0bed7ded76c805993973f835c1d11f35802d00
Reviewed-on: https://skia-review.googlesource.com/11341
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
2017-04-05 11:51:04 +00:00
Kevin Lubick
261ea19c4d Add recipe to build for Asus Flip Chromebook
This build includes the GPU-specific code (EGL, GLES)

The armhf_sysroot should be generic enough to support
other ARM targets, like the Raspberry Pi.

I split out the EGL dependencies into their own CIPD package
(chromebook_c100p_lib) to facilitate the modularity of the approach.

When we add another ARM chromebook, maybe one that has different libraries,
we should be able to re-use armhf_sysroot and then a newly created CIPD asset for
that specific GPU (if needed).

Maybe this also can be used to build for the chromecasts (thus the TODO)

Bug: skia:
NOTRY=true

Change-Id: Icc131025932dc8d41da5be39f3c5cad0aa95d848
Reviewed-on: https://skia-review.googlesource.com/11064
Commit-Queue: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
2017-04-05 11:39:04 +00:00
Mike Reed
8653e97389 remove legacy canvas helpers
Bug: skia:
Change-Id: I79e08adb49556be506e6198d9fadda684bcb08f2
Reviewed-on: https://skia-review.googlesource.com/11321
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2017-04-05 10:24:44 +00:00
Mike Reed
1201896f5f remove g3 flag
Bug: skia:
Change-Id: Ibe44bb816118e6bc61530c4b8d4ba83f24f72f0f
NOTRY=True
Reviewed-on: https://skia-review.googlesource.com/11322
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2017-04-05 10:19:54 +00:00
Brian Salomon
0721fe96ae Revert incorrect change to GrCoverageSetOp test factory
Change-Id: I7d2c9f4e5c2cded2eb06b9a18b73700726103f15
Reviewed-on: https://skia-review.googlesource.com/11292
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2017-04-04 23:36:07 +00:00
Eric Karl
72e551e637 Support Canvas Clip on Blit Framebuffer
The previous fix to blit framebuffer didn't take cases where
the canvas had a clip applied into account. Fix and update
the unit test to add this case.

Bug: 658277
Change-Id: If3a9d2c8ddf955164cf529c9d6036618f957e426
Reviewed-on: https://skia-review.googlesource.com/11300
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2017-04-04 22:51:53 +00:00
Matt Sarett
fc0e96e35f Revert "Finish up mip opts: 2x3 and 3x2"
This reverts commit 88ec28e3d7.

Reason for revert: <INSERT REASONING HERE>

Original change's description:
> Finish up mip opts: 2x3 and 3x2
> 
> mipmap_build_2048x2047 (2x3):
> sRGB Float Impl (old): 82.9ms (reference)
> 8888                 : 12.3ms (reference)
> sRGB Before          : 61.9ms
> sRGB After           : 53.1ms
> 
> mipmap_build_2047x2048 (3x2):
> sRGB Float Impl (old): 65.9ms (reference)
> 8888 Before          : 10.3ms
> 8888 After           : 8.81ms
> sRGB Before          : 47.8ms
> sRGB After           : 43.5ms
> 
> BUG=skia:
> 
> Change-Id: I53ef01e8b8344f018aa940d6c80cf2cf048bf7fa
> Reviewed-on: https://skia-review.googlesource.com/10028
> Reviewed-by: Brian Osman <brianosman@google.com>
> Commit-Queue: Matt Sarett <msarett@google.com>
> 

TBR=mtklein@google.com,msarett@google.com,brianosman@google.com,reviews@skia.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Change-Id: I3153b75f7f9473057e44ee47ab37421919edaeed
Reviewed-on: https://skia-review.googlesource.com/11289
Reviewed-by: Matt Sarett <msarett@google.com>
Commit-Queue: Matt Sarett <msarett@google.com>
2017-04-04 20:54:05 +00:00
Mike Klein
35ffbe65ae Revert "Update clang linux to release_40"
This reverts commit a08104abf2.

Reason for revert: MSAN's failing immediately, and ASAN is catching a new leak:

==20306==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 4112 byte(s) in 257 object(s) allocated from:
    #0 0x138828b  (/b/s/w/irNps76D/out/Release/dm+0x138828b)
    #1 0x2c07b76  (/b/s/w/irNps76D/out/Release/dm+0x2c07b76)



Original change's description:
> Update clang linux to release_40
> 
> Bug: skia:
> Change-Id: Ibe2406592024a4eb20b278ad189d3abddec129d9
> Reviewed-on: https://skia-review.googlesource.com/11285
> Reviewed-by: Mike Klein <mtklein@chromium.org>
> Commit-Queue: Mike Klein <mtklein@chromium.org>
> 

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

Change-Id: I178c129cf19ed38f0a91ea3eea583643daadc2c7
Reviewed-on: https://skia-review.googlesource.com/11288
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-04-04 20:35:06 +00:00
Brian Salomon
a076d8711d Use sk_sp with GrXferProcessor and use a static factory to handle the nullptr==srcover case.
Bug: skia:
Change-Id: I9c07069fc2aae24fc2884c18939e3a649afc27e7
Reviewed-on: https://skia-review.googlesource.com/11282
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2017-04-04 20:07:34 +00:00
Kevin Lubick
a08104abf2 Update clang linux to release_40
Bug: skia:
Change-Id: Ibe2406592024a4eb20b278ad189d3abddec129d9
Reviewed-on: https://skia-review.googlesource.com/11285
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-04-04 20:03:04 +00:00
Brian Salomon
e14bd80db0 Move GrPipelineBuilder into GrRenderTargetContext::addLegacyDrawOp
This makes the legacy code use GrProcessorSet::Analysis in the same manner as the non-GrLegacyMeshDrawOps which enables changes to how analysis works.

Change-Id: I8171e285ac8930beb3ac33cd3c4ee88f217b9e40
Reviewed-on: https://skia-review.googlesource.com/11205
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2017-04-04 19:46:18 +00:00
Mike Klein
9e4d51126f remove -mdspr2
I set -mdspr2 unconditionally on 32-bit MIPS builds only to not have to
deal with setting it conditionally on the source files specifically
requiring those instructions.

Since then, I've deleted all the source files specifically requiring
-mdspr2 (and -mdsp).  No one understood them and they were only
accelerating really uninteresting cases, like 565 blits.

So, we haven't needed -mdspr2 anywhere for a while, and removing it
will unblock running these builds on the CI20 dev boards, which
support neither -mdsp nor -mdsp2.

BUG=skia:1437

CQ_INCLUDE_TRYBOTS=skia.primary:Build-Ubuntu-Clang-mipsel-Debug-Android,Build-Ubuntu-Clang-mipsel-Release-Android

Change-Id: Idda56fd8bb37ba064b78b4cddd8878b37dfe9502
Reviewed-on: https://skia-review.googlesource.com/11284
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
2017-04-04 19:33:43 +00:00
Mike Reed
793dccf6b2 remove canvas-helpers flag for android
Bug: skia:
Change-Id: Ib468815ddd71fcd19ef27f93384bd8e1634121f4
Reviewed-on: https://skia-review.googlesource.com/11241
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2017-04-04 19:03:15 +00:00
Mike Klein
95f53be005 jumper, split store_f16 into to_half, store4
Pretty much the same deal as the last CL going the other direction:
split store_f16 into to_half() and store4().  Platforms that had fused
strategies here get a little less optimal, but the code's easier to
follow, maintain, and reuse.

Also adds widen_cast() to encapsulate the fairly common pattern of
expanding one of our logical vector types (e.g. 8-byte U16) up to the
width of the physical vector type (e.g. 16-byte __m128i).  This
operation is deeply understood by Clang, and often is a no-op.

I could make bit_cast() do this, but it seems clearer to have two names.

Change-Id: I7ba5bb4746acfcaa6d486379f67e07baee3820b2
Reviewed-on: https://skia-review.googlesource.com/11204
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-04-04 17:29:38 +00:00
Eric Karl
744808823f Respect kRectsMustMatchForMSAASrc_BlitFramebufferFlag in dst setup
Crurently, when preparing a texture for blitFramebuffer, we ignore the
kRectsMustMatchForMSAASrc_BlitFramebufferFlag, and may attempt to
copy from one src rect to a different dst rect.

This change updates initDescForDstCopy and setupDstTexture to allocate
larger textures if necessary and accomodate this flags requirements.

Bug: 658277
Change-Id: If4489ac3192dcf6f9996494c63821279721d0a12
Reviewed-on: https://skia-review.googlesource.com/11141
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2017-04-04 17:26:38 +00:00
Eric Boren
8b3f9e64ff Bundle recipes for use on RPi
This saves ~1:30 of overhead when the isolate cache is warm.

Bug: skia:5813
Change-Id: I5053d66e865ca6500b82567f83be8042568e22cf
Reviewed-on: https://skia-review.googlesource.com/11063
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
2017-04-04 16:01:47 +00:00
Brian Salomon
ab015efc48 Move the ability to access textures, buffers, and image storages out from GrProcessor.
GrXferProcessor can no longer use this functionality so it is moved to a new intermediate class inherited by GrFragmentProcessor and GrPrimitiveProcessor.

Change-Id: I4f30c89bdceb2d77b602bf0646107e0780881c26
Reviewed-on: https://skia-review.googlesource.com/11202
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2017-04-04 15:27:44 +00:00
Matt Sarett
19aff5dd5c 565 codec color xform support: fix colortable / incomplete image behavior
This fixes a bug that was exposed when I added color space
support for 565 decodes.

Before this CL, we would sometimes fill incomplete images with
R and B swapped.

This fixes that issue.  Part of the fix is the decision to do 565
xforms when building the color table (then just swizzle to 565),
rather than do them per pixel after swizzling.

Bug: skia:
Change-Id: I09e1ec75aba09a4e288015ea746465d0c3f7d59f
Reviewed-on: https://skia-review.googlesource.com/11137
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Matt Sarett <msarett@google.com>
2017-04-04 15:22:04 +00:00
Mike Klein
114e6b33d6 jumper, factor out load4() and from_half()
load_f16 gets slightly worse codegen for ARMv7, SSE2, SSE4.1, and AVX
from splitting it apart compared to the previous fused versions.  But
the stage code becomes much simpler.

I'm happy to make those trades until someone complains.

load4() will be useful on its own to implement a couple other stages.

Everything draws the same.  I intend to follow up with more of the
same sort of refactoring, but this was tricky enough a change I want
to do them in small steps.

Change-Id: Ib4aa86a58d000f2d7916937cd4f22dc2bd135a49
Reviewed-on: https://skia-review.googlesource.com/11186
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-04-04 13:57:54 +00:00
Matt Sarett
88ec28e3d7 Finish up mip opts: 2x3 and 3x2
mipmap_build_2048x2047 (2x3):
sRGB Float Impl (old): 82.9ms (reference)
8888                 : 12.3ms (reference)
sRGB Before          : 61.9ms
sRGB After           : 53.1ms

mipmap_build_2047x2048 (3x2):
sRGB Float Impl (old): 65.9ms (reference)
8888 Before          : 10.3ms
8888 After           : 8.81ms
sRGB Before          : 47.8ms
sRGB After           : 43.5ms

BUG=skia:

Change-Id: I53ef01e8b8344f018aa940d6c80cf2cf048bf7fa
Reviewed-on: https://skia-review.googlesource.com/10028
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Matt Sarett <msarett@google.com>
2017-04-04 13:52:33 +00:00
Brian Osman
5869ea99e4 Fully remove coord transform precision code
Coord transforms are always computed and interpolated at high precision.

Bug: skia:
Change-Id: I5f7eadc2080df8ad5cbb080835c0dba09c59e63e
Reviewed-on: https://skia-review.googlesource.com/11180
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2017-04-04 13:19:18 +00:00
Mike Reed
8540acc197 remove flag to see if its used in g3
Bug: skia:
Change-Id: Iba1d27e50644b334cb64cfe3667e32352860c909
NOTRY=True
Reviewed-on: https://skia-review.googlesource.com/11144
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2017-04-03 23:31:03 +00:00
Brian Salomon
18dfa98076 Store the dst texture used by an XP in GrPipeline rather than in the XP.
This will allow the XP to be created before the dst texture.

Change-Id: I3e5bdfa8e5d47e58a3560792ce5cf3899d30a024
Reviewed-on: https://skia-review.googlesource.com/11011
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2017-04-03 21:35:47 +00:00
Mike Klein
b9c4a6fc7d Refactor and recomment SkJumper_stages.cpp.
SkJumper_stages.cpp is starting to get unweildy.
This spins some logical parts out into their own headers.

I will follow up by moving more of the very specific
f16/f32 load/store logic into SkJumper_vectors.h too.

Change-Id: I2a3a055e9d1b65f56983d05649270772a4c69f31
Reviewed-on: https://skia-review.googlesource.com/11133
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-04-03 19:51:42 +00:00
Ben Wagner
dbcb607f3c [cleanup] rename var in perf script to match sktest script
NOTRY=true

Change-Id: Ib3c03092045289eb0828f951b1213ecab893d0d9
Reviewed-on: https://skia-review.googlesource.com/10969
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Ben Wagner <benjaminwagner@google.com>
2017-04-03 19:35:42 +00:00
Mike Reed
6b3155c4be Revert[4] "clean up (partially) colortable api""""
Fixes:
- create temp api for android to pass nullptr
- don't release and access sk_sp<SkData> at the same time in parameters

This reverts commit b14131c185.

Bug: skia:
Change-Id: Ic0e4f62520ba9f35455499ed30d306ad19d998a8
Reviewed-on: https://skia-review.googlesource.com/11129
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Matt Sarett <msarett@google.com>
2017-04-03 19:29:38 +00:00
Greg Daniel
2db3232c88 Fix Vulkan memory leak in MSAA
BUG=skia:

Change-Id: Ia32bd6654fb3f5371d8109e04464e1932d4bab52
Reviewed-on: https://skia-review.googlesource.com/11120
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2017-04-03 19:01:38 +00:00
Matt Sarett
d531ca038f Use SkTransferFunctionBehavior in SkImageGenerator
This fixes SkColorSpaceXformCanvas gms that expect
non-linear premuls from the codec.

BUG=skia:

Change-Id: I5dc236d0cd760c23605a26e9c33ddb18955f9231
Reviewed-on: https://skia-review.googlesource.com/10164
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Matt Sarett <msarett@google.com>
2017-04-03 18:32:42 +00:00
Brian Osman
8576014d8a Convert all coord transforms to high precision
Testing this to see what the performance/quality tradeoff is. This is
known to fix some gradient bugs on Mali, but we want to observe perf and
see if it slows thigs down.

Bug: skia:5654
Change-Id: I988410478e89576b8e81786f49e627915e224d42
Reviewed-on: https://skia-review.googlesource.com/11128
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2017-04-03 18:15:46 +00:00
Matt Sarett
5b1dba8451 Support parametric transfer functions in SkImage_Raster::onMakeColorSpace()
BUG=skia:6456
Change-Id: Ib94bba9db669562a9b2b64fff56ebe40a2bc0096
Reviewed-on: https://skia-review.googlesource.com/11122
Commit-Queue: Matt Sarett <msarett@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
2017-04-03 16:21:31 +00:00
Mike Reed
887cdf1128 move vertex-mode enum into SkVertices
BUG=skia:6366

Change-Id: I3c0bf96cce6d32c9b8d12d16a772aaa6f18981aa
Reviewed-on: https://skia-review.googlesource.com/11062
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Mike Reed <reed@google.com>
2017-04-03 15:50:16 +00:00
Yuqian Li
b55dd55312 Add SkThreadedBMPDevice for Threaded Raster Backend
BUG=skia:

Change-Id: I882b6563c735796f3a4dcd19f6c79e7efd8306ae
Reviewed-on: https://skia-review.googlesource.com/10505
Commit-Queue: Yuqian Li <liyuqian@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
2017-04-03 15:42:15 +00:00
Ethan Nicholas
9442194381 skslc now uses a more recent version of Flex
Bug: 6447
Change-Id: Ie1cb674752442a8992dd247abb2bcace8497c1f4
Reviewed-on: https://skia-review.googlesource.com/11014
Reviewed-by: Ben Wagner <benjaminwagner@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
2017-04-03 15:40:35 +00:00
Matt Sarett
e684483408 Avoid extra bitmap copies in SkColorSpaceXformCanvas
Before:
ColorCanvasDrawBitmap_sRGB_to_sRGB     5.09us
ColorCanvasDrawBitmap_AdobeRGB_to_sRGB 50.7us

After:
ColorCanvasDrawBitmap_sRGB_to_sRGB     2.43us
ColorCanvasDrawBitmap_AdobeRGB_to_sRGB 37.1us

BUG=skia:6456
Change-Id: Ie382936c36fd347b59485882cf8f27f315a5d35f

Change-Id: Ie382936c36fd347b59485882cf8f27f315a5d35f
Reviewed-on: https://skia-review.googlesource.com/11040
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Matt Sarett <msarett@google.com>
2017-04-03 15:35:55 +00:00
Brian Salomon
d3ccb0a37f Move pipeline handling out of GrMeshDrawOp.
The monolithic GrPipeline is moved to a subclass GrLegacyDrawMeshOp.

The pipeline used to record a GrMesh draw in a GrMeshDrawOp must now be passed rather than implicitly using the op's pipeline.

Change-Id: I50d77e4dcc8d91a523fa7566ce43a9a291174706
Reviewed-on: https://skia-review.googlesource.com/11002
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2017-04-03 15:13:48 +00:00
Brian Osman
dffe9827b1 Revert "Revert "Revert "Allow FPs to elevate default precision for the entire fragment program"""
This reverts commit ec53c636b7.

Reason for revert: Mali GMs look bad.

Original change's description:
> Revert "Revert "Allow FPs to elevate default precision for the entire fragment program""
> 
> This reverts commit 903c3f7040.
> 
> Reason for revert: Vulkan issue fixed in compiler.
> 
> Original change's description:
> > Revert "Allow FPs to elevate default precision for the entire fragment program"
> > 
> > This reverts commit 92d7ccafdf.
> > 
> > Reason for revert: Vulkan errors.
> > 
> > Original change's description:
> > > Allow FPs to elevate default precision for the entire fragment program
> > > 
> > > Currently, GrConfigConversionEffect is able to round-trip on many mobile
> > > GPUs because it uses highp for all intermediate variables (including the
> > > texture fetch result). Separating the texture sample into a different
> > > processor breaks that.
> > > 
> > > This is a blunt instrument, not to be used lightly.
> > > 
> > > Bug: skia:
> > > Change-Id: I2ab365e3da79628069e2eb727c43c2bf45bfd789
> > > Reviewed-on: https://skia-review.googlesource.com/10162
> > > Reviewed-by: Brian Salomon <bsalomon@google.com>
> > > Commit-Queue: Brian Osman <brianosman@google.com>
> > > 
> > 
> > TBR=bsalomon@google.com,robertphillips@google.com,brianosman@google.com,ethannicholas@google.com,reviews@skia.org
> > NOPRESUBMIT=true
> > NOTREECHECKS=true
> > NOTRY=true
> > 
> > Change-Id: Iee5bb409f86a9cabecc76bd1273a5b3cef6af179
> > Reviewed-on: https://skia-review.googlesource.com/10967
> > Reviewed-by: Brian Osman <brianosman@google.com>
> > Commit-Queue: Brian Osman <brianosman@google.com>
> > 
> 
> TBR=bsalomon@google.com,robertphillips@google.com,reviews@skia.org,brianosman@google.com,ethannicholas@google.com
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> 
> Change-Id: I733a0ecc40b58d8727f0259b5498c8e6610cedce
> Reviewed-on: https://skia-review.googlesource.com/11010
> Reviewed-by: Brian Osman <brianosman@google.com>
> Commit-Queue: Brian Osman <brianosman@google.com>
> 

TBR=bsalomon@google.com,robertphillips@google.com,reviews@skia.org,brianosman@google.com,ethannicholas@google.com
# Not skipping CQ checks because original CL landed > 1 day ago.

Change-Id: Ic3274a0a8b776e811354c3441391ffdc80678292
Reviewed-on: https://skia-review.googlesource.com/11061
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2017-04-03 14:34:21 +00:00
Brian Osman
84c009f692 Remove kAsIs_CachedFormat
This was confusing and unnecessary. Added an explicit sBGR format to
handle one case. Now the CF always fully describes the color type and
transfer function (or it's legacy).

Bug: skia:
Change-Id: I8f792e8aa18cd2391aa541a9368e345d92bba828
Reviewed-on: https://skia-review.googlesource.com/11013
Reviewed-by: Matt Sarett <msarett@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2017-04-03 14:02:19 +00:00
Mike Klein
b7bf09ccac jumper, drop Android NDK dependency
We don't _really_ need the Android NDK.  We just need <arm_neon.h>
(which comes from Clang, not the NDK) and a smattering of <stdint.h>
([u]intN_t), <string.h> (memcpy) and <stddef.h> (size_t).

The idea here is solely to make it easier to run build_stages.py.
If this becomes a pain to maintain, I'm happy to go back to the NDK.

Change-Id: Ic6bb287646b6160ac42ac6e4d5290a66a7e92425
Reviewed-on: https://skia-review.googlesource.com/10980
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-04-03 13:54:42 +00:00