Commit Graph

24112 Commits

Author SHA1 Message Date
csmartdalton
bde96c6263 Move clip mask generation into GrReducedClip
This is a temporary solution to facilitate window rectangles and make
clip mask generation more accessible for testing. The eventual goal is
to simplify clips and merge GrReducedClip into GrClipStackClip.

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

Review-Url: https://codereview.chromium.org/2263343002
2016-08-31 12:54:46 -07:00
halcanary
3d01c62e19 SkPDF: Fix Type3 ToUnicode table.
This seems to fix text extraction on Adobe Reader

  - Registry/Ordering is now set to Skia/SkiaOrdering.
  - Type3 fonts now get a FontDescriptor (force symbolic font).
  - CMapName is now Skia-Identity-SkiaOrdering
  - CMap behaves correctly for single-byte fonts.

Also:
  - SkTestTypeface returns tounicode map for testing.
  - Unit test updated

All PDFs render the same

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

Review-Url: https://codereview.chromium.org/2292303004
2016-08-31 12:52:35 -07:00
bungeman
41a8f323f7 Update FreeType dependency from 2.6.1 to 2.6.5.
- 6a19a7d332c5446542196e5aeda0ede109ef097b
+ 4d3f7ca8cedbddad40b9e93a82926618e3fb4265

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

Review-Url: https://codereview.chromium.org/2302493002
2016-08-31 12:48:18 -07:00
mtklein
04fff6373e Fix up presubmit for SAN GCC->Clang fix.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2302553002

Review-Url: https://codereview.chromium.org/2302553002
2016-08-31 12:43:14 -07:00
mtklein
da8f6546da Add and use a clang_linux asset.
This gives us a consistent Clang toolchain on Linux bots,
most importantly for *SAN bots.  It's ~300MB unpacked.

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

Review-Url: https://codereview.chromium.org/2294353002
2016-08-31 12:35:21 -07:00
csmartdalton
29df76096f Define clear regions in terms of GrFixedClip
Updates clear APIs to take GrFixedClip instead of a rectangle. This
will allow us to use window rectangles with clears. Removes stencil
knobs from GrFixedClip.

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

Review-Url: https://codereview.chromium.org/2262473003
2016-08-31 11:55:52 -07:00
bsalomon
dc43898bbb Don't purge resources for trivial GrContext flushes
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2298003003

Review-Url: https://codereview.chromium.org/2298003003
2016-08-31 11:53:49 -07:00
vjiaoblack
bcdc405ea0 added point light attenuations to raster
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2298603004

Review-Url: https://codereview.chromium.org/2298603004
2016-08-31 11:48:29 -07:00
vjiaoblack
bb106060fa Optimizations and more documentation of SkShadowShader
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2285133002

Review-Url: https://codereview.chromium.org/2285133002
2016-08-31 11:15:21 -07:00
egdaniel
580fa596c9 In VulkanWindowContext add check to see if ganesh changed the layout of the image.
BUG=skia:

Review-Url: https://codereview.chromium.org/2299663002
2016-08-31 11:03:50 -07:00
senorblanco
f57372daf0 Screenspace AA tessellated GPU path rendering.
This is an approach to antialiased concave path rendering
on the GPU without using MSAA. It uses GrTessellator to
extract boundary contours from the given path, then
inflates by half a pixel in screen space each direction,
then renders the result with zero alpha on the outer
contour and one alpha on in the inner contour. This
requires two passes through the tessellation code: one
to extract the boundaries, then one to tessellate the
result.

This gives approximately a 3X improvement on the IE
chalkboard demo in non-MSAA mode, a 30-40% improvement
on MotionMark's "Fill Paths", and a ~3X improvement on
MotionMark's "canvas arcTo segments".

It works best for large, simple paths, so there's currently
a limit of 10 verbs in the onCanDrawPath() check. This
dovetails nicely with the distance field path renderer's
support for small, detailed (and cached) paths.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1152733009

NOTRY=true

Review-Url: https://codereview.chromium.org/1152733009
2016-08-31 10:36:19 -07:00
egdaniel
19ff1035d3 Always add a barrier when old layout was general in vulkan.
When we have a general layout, we need to always add a barrier even if
leaving the layout in general since we don't know what the use case for
general was with the old layout.

This doesn't seem to fix any of our synchronization issues which makes
sense since we don't really use a general layout much. The only place it
is used is for mipmap generation, but then we add explicit barriers in
that function itself and the first use of the image after mipmap generation
will change the layout to something other than general, usually SHADER_READ.

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

Review-Url: https://codereview.chromium.org/2298483002
2016-08-31 10:13:08 -07:00
senorblanco
682580fb20 Revert of Screenspace AA tessellated path rendering. (patchset #37 id:730001 of https://codereview.chromium.org/1152733009/ )
Reason for revert:
Causing asserts in GLPrograms test on Mac.

Original issue's description:
> Screenspace AA tessellated GPU path rendering.
>
> This is an approach to antialiased concave path rendering
> on the GPU without using MSAA. It uses GrTessellator to
> extract boundary contours from the given path, then
> inflates by half a pixel in screen space each direction,
> then renders the result with zero alpha on the outer
> contour and one alpha on in the inner contour. This
> requires two passes through the tessellation code: one
> to extract the boundaries, then one to tessellate the
> result.
>
> This gives approximately a 3X improvement on the IE
> chalkboard demo in non-MSAA mode, a 30-40% improvement
> on MotionMark's "Fill Paths", and a ~3X improvement on
> MotionMark's "canvas arcTo segments".
>
> It works best for large, simple paths, so there's currently
> a limit of 10 verbs in the onCanDrawPath() check. This
> dovetails nicely with the distance field path renderer's
> support for small, detailed (and cached) paths.
>
> BUG=skia:
> GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1152733009
>
> Committed: https://skia.googlesource.com/skia/+/9992bdef8ae97b3e5b109d278ccfab84c66bcbf0

TBR=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/2299683002
2016-08-31 09:31:37 -07:00
mtklein
982e7c502f switch CQ over to GN_Android compile bots
These are going to replace the old compile bots.

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

Review-Url: https://codereview.chromium.org/2294303002
2016-08-31 08:42:06 -07:00
senorblanco
9992bdef8a Screenspace AA tessellated GPU path rendering.
This is an approach to antialiased concave path rendering
on the GPU without using MSAA. It uses GrTessellator to
extract boundary contours from the given path, then
inflates by half a pixel in screen space each direction,
then renders the result with zero alpha on the outer
contour and one alpha on in the inner contour. This
requires two passes through the tessellation code: one
to extract the boundaries, then one to tessellate the
result.

This gives approximately a 3X improvement on the IE
chalkboard demo in non-MSAA mode, a 30-40% improvement
on MotionMark's "Fill Paths", and a ~3X improvement on
MotionMark's "canvas arcTo segments".

It works best for large, simple paths, so there's currently
a limit of 10 verbs in the onCanDrawPath() check. This
dovetails nicely with the distance field path renderer's
support for small, detailed (and cached) paths.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1152733009

Review-Url: https://codereview.chromium.org/1152733009
2016-08-31 08:41:57 -07:00
egdaniel
4bcd62e331 Add some copy support for vulkan msaa
This allows us to do copies from:
    msaa->msaa with same sample count
    msaa->no-msaa with a resolve

Still missing support for no-msaa to msaa which will require a copyAsDraw
which is currently stalled and fixing possible driver bugs.

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

Review-Url: https://codereview.chromium.org/2294533002
2016-08-31 07:37:31 -07:00
mtklein
272b311298 GN: forgot Clang+ccache fix on Android. And sort.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2298203002

No trybots for these yet...
NOTRY=true
TBR=jcgregorio@google.com

Review-Url: https://codereview.chromium.org/2298203002
2016-08-31 05:03:31 -07:00
mtklein
cd01b03df8 GN: add sources_when_disabled to optional
Also make sources_when_disabled and public_defines optional arguments.
These are the two mechanisms code uses to turn itself off...
probably at most one is ever used per optional.

Update fiddle to not crash when there's no PDF backend.

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

Review-Url: https://codereview.chromium.org/2292343003
2016-08-31 04:58:19 -07:00
msarett
3ee255f259 Whitespace change
TBR=djsollen@google.com
NOTRY=true
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2297833003

Review-Url: https://codereview.chromium.org/2297833003
2016-08-30 13:51:10 -07:00
bsalomon
bd4569c232 Remove SkBitmap::getTexture()
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2289313002

Review-Url: https://codereview.chromium.org/2289313002
2016-08-30 12:52:49 -07:00
cblume
33e0cb5e7f Store mipmap levels in deferred texture image
This is a follow-up to https://codereview.chromium.org/2115023002/ and
https://codereview.chromium.org/2034933003/ which were reverted due to
an access violation and a memory leak, respectively.

When creating the deferred texture image, detect if using medium / high
quality. If so, generate and store mipmaps in the deferred texture
image.

When creating a texture from that be sure to read it back out.

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

Review-Url: https://codereview.chromium.org/2242883004
2016-08-30 12:09:23 -07:00
vjiaoblack
fdf2986b19 made raster shadows variance shadows
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2297693002

Review-Url: https://codereview.chromium.org/2297693002
2016-08-30 12:03:37 -07:00
halcanary
8e3f54d519 Revert of SkPDF: hand SfntlyWrapper::SubsetFont() ttcIndex, not fontName. (patchset #3 id:40001 of https://codereview.chromium.org/2258233002/ )
Reason for revert:
forgot to roll sfntly in android!

Original issue's description:
> SkPDF: hand SfntlyWrapper::SubsetFont() ttcIndex, not fontName.
>
> Also, minor code refactoring.
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2258233002
>
> Committed: https://skia.googlesource.com/skia/+/fce190647285423bf36c44bca09db78a6af30f9f

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

Review-Url: https://codereview.chromium.org/2296683004
2016-08-30 11:58:52 -07:00
halcanary
4f0a23a8d5 SkTextBlob: Begin implementing Extended TextBlob API
BUG=skia:5434
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2084533004

Review-Url: https://codereview.chromium.org/2084533004
2016-08-30 11:58:33 -07:00
rmistry
fd7f867a05 Increase run_benchmarks timeout because the two Chromium page sets can take a while
BUG=skia:5700
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2298453002
# Trybots do not exercise this code.
NOTRY=true
TBR=borenet

Review-Url: https://codereview.chromium.org/2298453002
2016-08-30 11:50:23 -07:00
mtklein
b6064ef5b8 clean up use of register storage class
This fixes this warning-as-error, so we don't have to stifle it any more:
    error: 'register' storage class specifier is deprecated and incompatible with C++1z [-Werror,-Wdeprecated-register]

Tested by building for mipsel via GN.

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

Review-Url: https://codereview.chromium.org/2289293002
2016-08-30 11:49:24 -07:00
halcanary
1bab6ae133 SkPDF: SK_SFNTLY_SUBSETTER is gone
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2296823002

Review-Url: https://codereview.chromium.org/2296823002
2016-08-30 11:07:02 -07:00
mtklein
e6ec16356e Detect TSAN instead of relying on #ifdef THREAD_SANITIZER.
And reindent.

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

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

Review-Url: https://codereview.chromium.org/2293063002
2016-08-30 10:45:17 -07:00
halcanary
fce1906472 SkPDF: hand SfntlyWrapper::SubsetFont() ttcIndex, not fontName.
Also, minor code refactoring.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2258233002

Review-Url: https://codereview.chromium.org/2258233002
2016-08-30 10:43:48 -07:00
mtklein
9e0d9ddc0e GN: add sksl
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2296803002

Review-Url: https://codereview.chromium.org/2296803002
2016-08-30 10:37:19 -07:00
bsalomon
752f6ea78e Remove unneeded variables from ResourceCache test
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2295883002

Review-Url: https://codereview.chromium.org/2295883002
2016-08-30 10:27:20 -07:00
bsalomon
9a44565e99 Remove custom data from GrGpuResource
Chrome is no longer relying on this feature to track mailboxes for textures.

BUG=skia:4134

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

Review-Url: https://codereview.chromium.org/2291203002
2016-08-30 09:42:30 -07:00
ethannicholas
fc6cb73664 changed kCurveConnectionThreshold in GrAAConvexTessellator
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2297563003
TBR=bsalomon@google.com

Review-Url: https://codereview.chromium.org/2297563003
2016-08-30 07:26:58 -07:00
vjiaoblack
babc697ae8 raster shadows
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2248493002

Review-Url: https://codereview.chromium.org/2248493002
2016-08-30 07:13:04 -07:00
brianosman
7a99a0a301 Improve the gamma GM significantly
- Switch to portable typeface, to avoid per-platform diffs in the labels
- Stretch out the image slightly, to avoid overlap with larger font
- Fix several tests that were no longer matching ground-truth. We treat
  SkColor as sRGB, so 0x7F is incorrect, for example. Several of the
  XferMode tests had similar math errors now. Computed new values, and
  verified that they work as expected.
- Removed a couple tests that were mixing color and alpha in funny ways

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

Review-Url: https://codereview.chromium.org/2288053003
2016-08-30 07:08:07 -07:00
brianosman
0e22eb8e6e Some tests around surface creation and snapshotting with color space
Verify the rules that we're converging on for surfaces:
- For 8888, we only support sRGB-like gamma, or no color space at all.
- For F16, we require a color space, with linear gamma.
- For all other formats, we do not support color spaces.

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

Review-Url: https://codereview.chromium.org/2270823002
2016-08-30 07:07:59 -07:00
mtklein
6f5df6acb7 Disable sktexttopdf when building for mipsel.
The Clang in the latest NDK crashes when we try to build it for MIPS.

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

Review-Url: https://codereview.chromium.org/2286303004
2016-08-29 16:01:10 -07:00
mtklein
a45be61d6b GN: fontmgr_android
Should be enough to run parser tests on Linux.

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

Review-Url: https://codereview.chromium.org/2291863002
2016-08-29 15:22:10 -07:00
msarett
68440f8ce9 Skip spinlock overhead on Android
Using the spinlock is only necessary when we multiple threads
might use a GrContext.  Android uses the GrContext from a
single thread, so these locks are not needed.

This is a temporary fix until we can refactor to avoid
creating GrContexts in a global memory pool.

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

Review-Url: https://codereview.chromium.org/2293633003
2016-08-29 14:52:24 -07:00
msarett
9b09cd8372 Add Gray support to SkPNGImageEncoder
BUG=skia:5616
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2290843002

Review-Url: https://codereview.chromium.org/2290843002
2016-08-29 14:47:49 -07:00
mtklein
e4d6a1be48 remove dead code
TBR=

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

Review-Url: https://codereview.chromium.org/2286253003
2016-08-29 14:27:15 -07:00
jvanverth
a3992bfb83 Fix stroked rrects with batching.
Was using stroked shader for fills and vice versa.

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2288923002
TBR=bsalomon@google.com

Review-Url: https://codereview.chromium.org/2288923002
2016-08-29 13:50:07 -07:00
egdaniel
f5f97dd7ab Remove unneeded pipeline barrier in vulkan
We don't need to syncronize the mapped memory writes to the buffer since
all CPU writes are already syncronized when we submit a command buffer. And we are using coherent memory for buffers so we don't need to call vkFlushMappedMemory

BUG=skia:

Review-Url: https://codereview.chromium.org/2289973002
2016-08-29 13:42:55 -07:00
jcgregorio
1703bd18ac benchmarks: Avoid brackets and commas in test names.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2295483002

Review-Url: https://codereview.chromium.org/2295483002
2016-08-29 13:33:04 -07:00
mtklein
3cc2218056 GN: ft and fc as optionals
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2292613002

Review-Url: https://codereview.chromium.org/2292613002
2016-08-29 13:26:15 -07:00
mtklein
82023d590c add gn_android_flavor
This ought to support compiles for now.

Am I picking up my CIPD ndk packages right?

The main thing to note is that I'm passing the target_arch directly through
as target_cpu.  This means these bots will have a slightly different naming
convention than we've been using, but it'll agree with what you must type
yourself when using GN to build for Android:

  - Arm7 -> arm
  - Arm64 -> arm64
  - Mips -> mipsel
  - Mips64 -> mips64el
  - x86 -> x86 (unchanged)
  - x86_64 -> x64

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

Review-Url: https://codereview.chromium.org/2292663002
2016-08-29 13:14:55 -07:00
bsalomon
db27fc5ed7 Skip batch iteration in GrDrawTarget::forwardCombine when the max look ahead is 0
TBR=robertphillips@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2288373002

Review-Url: https://codereview.chromium.org/2288373002
2016-08-29 12:43:28 -07:00
mtklein
adbd480102 Add docs for GN/Android
While I'm at it, add a few more examples of other types of builds you can do.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2289883002
NOTRY=true
DOCS_PREVIEW= https://skia.org/user/quick/gn?cl=2289883002

Review-Url: https://codereview.chromium.org/2289883002
2016-08-29 10:27:16 -07:00
mtklein
7957872f39 GN: release -> -O3, to match GYP
-O3 does trigger some important compiler optimizations that -Os does not,
like autovectorization.

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

Review-Url: https://codereview.chromium.org/2288813002
2016-08-29 10:23:15 -07:00
vjiaoblack
a8eabc4a2a Moved ambient lights out of SkLight's light array
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2287553002

Committed: https://skia.googlesource.com/skia/+/8f98f0aa2d3f7571a890b916c7c4b5ee831e9686
Review-Url: https://codereview.chromium.org/2287553002
2016-08-29 10:22:09 -07:00