Commit Graph

23939 Commits

Author SHA1 Message Date
halcanary
59be20c8d5 SkPDF: revert changes to CMapName/Registry/Ordering in 3d01c62
BUG=skia:5606
TBR=bungeman@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2305803002

Review-Url: https://codereview.chromium.org/2305803002
2016-09-01 14:10:00 -07:00
mtklein
d0634eeb56 Force SkPath::getConvexity() cache for thread safety.
I happened to stumble on this in a run of TSAN:
    https://luci-milo.appspot.com/swarming/task/30fffe9497dc6310/steps/dm/0/stdout

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

Review-Url: https://codereview.chromium.org/2300003003
2016-09-01 13:49:13 -07:00
rmistry
07f0446e9a Fix PostUploadHook for Gerrit issues
A gerrit change must contain the "Change-Id" at the end. This CL strips
out the changeId from the description and adds it back in at the end.

BUG=skia:5676
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2299303002
NOTRY=true

Review-Url: https://codereview.chromium.org/2299303002
2016-09-01 13:36:31 -07:00
mtklein
3ed1897437 Try removing Ganesh suppression.
Seems ok: https://build.chromium.org/p/client.skia/builders/Test-Ubuntu-Clang-Golo-GPU-GT610-x86_64-Release-TSAN-Trybot/builds/2

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

Review-Url: https://codereview.chromium.org/2301163002
2016-09-01 13:25:25 -07:00
mtklein
ae509db481 GN: expunge all environment variables that have no effect on GN
This should have no practical effect.  I just want to make sure no
environment variables beyond $PATH have any effect on GN builds.

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

Review-Url: https://codereview.chromium.org/2300173002
2016-09-01 13:19:21 -07:00
borenet
de3184fd84 Add infra/bots/tasks.json
This is an initial version which adds a trio of buildbot-less bots. I
expect these to be totally broken while I work out the issues.

In the future, we'll have a script to generate tasks.json.

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

Review-Url: https://codereview.chromium.org/2302983002
2016-09-01 12:32:23 -07:00
mtklein
e01295c22a Lift SkString TSAN suppression, to see what yells.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2295843005

Review-Url: https://codereview.chromium.org/2295843005
2016-09-01 12:04:22 -07:00
mtklein
dbfd7ab108 Replace a lot of 'static const' with 'constexpr' or 'const'.
'static const' means, there must be at most one of these, and initialize it at
compile time if possible or runtime if necessary.  This leads to unexpected
code execution, and TSAN* will complain about races on the guard variables.

Generally 'constexpr' or 'const' are better choices.  Neither can cause races:
they're either intialized at compile time (constexpr) or intialized each time
independently (const).

This CL prefers constexpr where possible, and uses const where not.  It even
prefers constexpr over const where they don't make a difference... I want to have
lots of examples of constexpr for people to see and mimic.

The scoped-to-class static has nothing to do with any of this, and is not changed.

* Not yet on the bots, which use an older TSAN.

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

Review-Url: https://codereview.chromium.org/2300623005
2016-09-01 11:24:54 -07:00
robertphillips
0b629ec732 Disable MSAAPathRender for Android Framework builds
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2298613005

Review-Url: https://codereview.chromium.org/2298613005
2016-09-01 10:13:04 -07:00
rmistry
db0283bec9 Enable Gerrit support in Skia's PostUploadHook
BUG=skia:5676
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2299203002
NOTRY=true

Review-Url: https://codereview.chromium.org/2299203002
2016-09-01 09:54:01 -07:00
rmistry
b9a9e8788f Use methods from depot_tool's Changelist object instead of Rietveld RPC
This will make support for both Gerrit and Rietveld easier.

BUG=skia:5676
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2307593002
NOTRY=true

Review-Url: https://codereview.chromium.org/2307593002
2016-09-01 09:52:32 -07:00
mtklein
bb35a6aa2d GN: add extra_ldflags
This is mostly just handy for hacking around while building out other GN features.

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

Review-Url: https://codereview.chromium.org/2300963003
2016-09-01 09:15:44 -07:00
bungeman
4bb029cd9f SkFontMgr_FontConfigInterface create typeface from FontParameters.
This implements
SkFontMgr_FontConfigInterface::onCreateFromStream(SkStreamAsset*, const FontParameters&)
and makes the changes needed to support it. This will allow Chromium to
create variation fonts from data.

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

Review-Url: https://codereview.chromium.org/2296843002
2016-09-01 08:52:29 -07:00
sylvestre.ledru
d0cd2ecf31 Remove some useless declarations
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2270613003

Review-Url: https://codereview.chromium.org/2270613003
2016-09-01 08:47:45 -07:00
mtklein
2b44853c53 preserve GN_Android in compile -> test mapper
doesn't seem anything tests this?

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

Review-Url: https://codereview.chromium.org/2306603002
2016-09-01 08:47:25 -07:00
senorblanco
7370e0d7bd Enable the screenspace AA tessellating path renderer.
This will enable the new path renderer in Skia. It is still disabled
in Chrome, to protect layout test results.

Note: this will cause minor pixel diffs in a number of GMs' GPU results,
including drawregionmodes, dstreadshuffle, smallarc, path-reverse,
bug339297, parsedpaths, zero_control_stroke, strokedlines, smallpaths,
circular_arcs_stroke_round, concavepaths, circular_arcs_stroke_square,
clipcubic, arcto, persp_shaders_aa, complexclip3_complex,
circular_arcs_stroke_and_fill_butt, complexclip_aa,
complexclip_aa_layer, complexclip_aa_invert, complexclip3_simple,
complexclip_aa_layer_invert, shadertext, shadertext2,
convex-lineonly-paths-stroke-and-fill, poly2poly, glyph_pos_h_b,
glyph_pos_h_f, glyph_pos_n_f, and glyph_pos_n_s.

Note: it also "fixes" crbug_640176, or more accurately, hides the
failure, since the default path renderer likely still has the bug.

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

Review-Url: https://codereview.chromium.org/2303743002
2016-09-01 08:22:58 -07:00
sylvestre.ledru
f0cbfb33c6 Remove a duplicate declaration
Merge branch 'master' of github.com:google/skia

Remove a useless declaration

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

Review-Url: https://codereview.chromium.org/2288603002
2016-09-01 08:17:02 -07:00
mtklein
b987afa7cc Remove empty {lsan,ubsan}.supp files.
We never used ubsan.supp,
and LSAN suppressions are now built into the test binaries.

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

CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Debug-ASAN-Trybot

Review-Url: https://codereview.chromium.org/2302803003
2016-09-01 08:08:03 -07:00
ethannicholas
0730be7c30 minor SkSL changes to avoid compiler errors in Chromium
* fixed a couple of spots where using { } instead of an explicit constructor call resulted in errors
* Type::Field had a deleted copy constructor and therefore was not working inside std::vector; had to remove const from fields and change fType from a reference to a pointer

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

Review-Url: https://codereview.chromium.org/2300023002
2016-09-01 07:59:02 -07:00
hcm
787e5a396f Add contributor to Skia AUTHORS file
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2303753002

Review-Url: https://codereview.chromium.org/2303753002
2016-09-01 07:55:43 -07:00
bsalomon
d3030acc2c Fix ASAN int overflow error in GLProgramsTest
TBR=senorblanco@chromium.org
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2289143006

Review-Url: https://codereview.chromium.org/2289143006
2016-09-01 07:20:29 -07:00
mtklein
0590fa549d Build LSAN suppressions into the test binaries.
This way you don't need to set LSAN_SUPPRESSIONS in your environment...
sort of foolproof this way.

I _think_ the strdup() business from skia:2916 is actually rooted in
libfontconfig, so one suppression should cover both old ones.

I'll leave the file empty until I clean up mention of it in bot recipes.

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

CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Debug-ASAN-Trybot

Review-Url: https://codereview.chromium.org/2295153003
2016-09-01 07:06:54 -07:00
benjaminwagner
f04f99ef0d Blame this for GTX960 diffs.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2300983002
NOTREECHECKS=true
NOTRY=true
TBR=csmartdalton@google.com

Review-Url: https://codereview.chromium.org/2300983002
2016-09-01 05:38:54 -07:00
robertphillips
13a7eee250 Flush some non-substantive Ganesh changes
Split out of: https://codereview.chromium.org/2215323003/ (Start using RenderTargetProxy (omnibus))

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

Review-Url: https://codereview.chromium.org/2299523004
2016-08-31 15:06:24 -07:00
robertphillips
1da3ecd078 Add read/write-Pixels to GrDrawContext
Although not absolutely required this does remove another case where the drawContext's backing store is accessed.

Broken out of: https://codereview.chromium.org/2215323003/ (Start using RenderTargetProxy (omnibus))

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

Review-Url: https://codereview.chromium.org/2298253002
2016-08-31 14:54:15 -07:00
caryclark
30b9fdd6a1 pathops coincident work
This is working towards fixing all bugs around simplifying the tiger.

This installment simplifies the point-t intersection list as it is built rather than doing the analysis once the intersections are complete. This avoids getting the list in an inconsistent state and makes coincident checks faster and more stable.

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

TBR=reed@google.com
BUG=skia:5131

Review-Url: https://codereview.chromium.org/2237223002
2016-08-31 14:36:30 -07:00
robertphillips
8abb370aca Have GrSurfaceProxys and GrGpuResources draw from the same pool of unique ids
The idea here is that, for wrapped Proxy objects, we want the uniqueID to reflect that of the wrapped object. For this to work the IDs for the non-wrapped versions can't conflict with GrGpuResource's pool of IDs.

Split off of: https://codereview.chromium.org/2215323003/ (Start using RenderTargetProxy (omnibus))

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

Review-Url: https://codereview.chromium.org/2301523003
2016-08-31 14:04:06 -07:00
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