Commit Graph

20147 Commits

Author SHA1 Message Date
mtklein
02046c50b2 fix a couple flaky nonnull attribute ubsan warnings
Errors this should fix:
  https://uberchromegw.corp.google.com/i/client.skia/builders/Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Debug-ASAN/builds/3779/steps/dm/logs/stdio
  https://uberchromegw.corp.google.com/i/client.skia/builders/Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Debug-ASAN/builds/3779/steps/nanobench/logs/stdio

CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Debug-ASAN-Trybot

TBR=reed@google.com
No API changes.

BUG=skia:

Review URL: https://codereview.chromium.org/1504313005
2015-12-09 10:02:14 -08:00
joshualitt
f9e658b1d6 Fix bug with GrAtlasTextContext color regen
BUG=skia:

Review URL: https://codereview.chromium.org/1513723002
2015-12-09 09:26:44 -08:00
mtklein
bc4e003d39 DM: tally notes at the end rather than showing them as they finish.
This should make the (veto) and (skipped: ) both less verbose and easier to grok.

Looks like this'll bring the log files down from ~50M to ~1.5M.

BUG=skia:

Review URL: https://codereview.chromium.org/1516563002
2015-12-09 08:37:35 -08:00
robertphillips
96afa5295d Boost GrGLConicEffect's variables to all high precision
BUG=555779

Committed: https://skia.googlesource.com/skia/+/624c59a1c7af38eb83e803f345a6f3e225475a08

Review URL: https://codereview.chromium.org/1513483002
2015-12-09 07:54:24 -08:00
mtklein
7918b99506 try stifling integer overflow error
first time we've done this, let's see if it works!

BUG=skia:4667

Looks ok now.  Red ASAN bot is different errors.

Review URL: https://codereview.chromium.org/1507063007
2015-12-09 07:24:10 -08:00
fmalita
3e2f5624b4 Cap filtering to kMedium_SkFilterQuality when downsampling
R=reed@google.com

Review URL: https://codereview.chromium.org/1510673002
2015-12-09 07:18:16 -08:00
robertphillips
07073642eb Revert of Boost GrGLConicEffect's variables to all high precision (patchset #1 id:1 of https://codereview.chromium.org/1513483002/ )
Reason for revert:
Broke build

Original issue's description:
> Boost GrGLConicEffect's variables to all high precision
>
> BUG=555779
>
> Committed: https://skia.googlesource.com/skia/+/624c59a1c7af38eb83e803f345a6f3e225475a08

TBR=egdaniel@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=555779

Review URL: https://codereview.chromium.org/1514553002
2015-12-09 07:09:22 -08:00
borenet
9d66696f6b Revert of Make NVPR a GL context option instead of a GL context (patchset #9 id:160001 of https://codereview.chromium.org/1448883002/ )
Reason for revert:
"Could not create surface" on Linux GTX660 bots

Original issue's description:
> Make NVPR a GL context option instead of a GL context
>
> Make NVPR a GL context option instead of a GL context.
> This may enable NVPR to be run with command buffer
> interface.
>
> No functionality change in DM or nanobench. NVPR can
> only be run with normal GL APIs.
>
> BUG=skia:2992
>
> Committed: https://skia.googlesource.com/skia/+/eeebdb538d476c1bfc8b63a946094ca1b505ecd1
>
> Committed: https://skia.googlesource.com/skia/+/64492c43c3faee7ab0f69b1c84e0267616f85e52

TBR=mtklein@google.com,bsalomon@google.com,jvanverth@google.com,scroggo@google.com,kkinnunen@nvidia.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:2992

Review URL: https://codereview.chromium.org/1513703002
2015-12-09 07:03:51 -08:00
joshualitt
f528e0dc71 A small text cleanup
BUG=skia:

Review URL: https://codereview.chromium.org/1508853005
2015-12-09 06:42:52 -08:00
robertphillips
624c59a1c7 Boost GrGLConicEffect's variables to all high precision
BUG=555779

Review URL: https://codereview.chromium.org/1513483002
2015-12-09 06:28:06 -08:00
bsalomon
9f0337ed4b Attempt to land cache purge again [and regen bot logs if still failing]
TBR=

Review URL: https://codereview.chromium.org/1510103002
2015-12-09 06:27:59 -08:00
halcanary
a2e056773d Revert of default SkPixelSerializer (patchset #2 id:20001 of https://codereview.chromium.org/1507123002/ )
Reason for revert:
I was overconfident.

Original issue's description:
> default SkPixelSerializer
>
> Add SkImageEncoder::EncodeData(const SkPixmap&, ...) function.
>
> Add SkImageEncoder::CreatePixelSerializer() to return a
> PixelSerializer that calls into SkImageEncoder::EncodeData.
>
> SkImage::encode() make use of SkImageEncoder::CreatePixelSerializer.
>
> Committed: https://skia.googlesource.com/skia/+/b0bd1516bff3f5afcbfd615e805867531657811b
>
> Committed: https://skia.googlesource.com/skia/+/808ce2886d732b1055f89c8fb0f1b11b47fcb0ce

TBR=reed@google.com,scroggo@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/1511183002
2015-12-09 03:56:02 -08:00
kkinnunen
ef6a1ca531 Use correct config variable in command buffer gl context
Use correct config variable in command buffer gl context.
Before, the fConfig was errorneously used to initialize the
local variable. eglChooseConfig would update the local variable
and the fConfig member variable would never be updated.

Also add error checks to all initialization function calls.

BUG=skia:

Review URL: https://codereview.chromium.org/1505233002
2015-12-08 23:52:40 -08:00
halcanary
808ce2886d default SkPixelSerializer
Add SkImageEncoder::EncodeData(const SkPixmap&, ...) function.

Add SkImageEncoder::CreatePixelSerializer() to return a
PixelSerializer that calls into SkImageEncoder::EncodeData.

SkImage::encode() make use of SkImageEncoder::CreatePixelSerializer.

Committed: https://skia.googlesource.com/skia/+/b0bd1516bff3f5afcbfd615e805867531657811b

Review URL: https://codereview.chromium.org/1507123002
2015-12-08 19:02:36 -08:00
fmalita
e77f2daec9 [SkDebugger] Show more text blob details
* run count
 * glyph count (per run)
 * run paint (per run)

R=robertphillips@google.com

Review URL: https://codereview.chromium.org/1507033003
2015-12-08 18:59:18 -08:00
joshualitt
8985aea7b0 Remove spew in GrDefaultPathRenderer
TBR=bsalomon@google.com
BUG=skia:

Review URL: https://codereview.chromium.org/1509913003
2015-12-08 18:58:48 -08:00
scroggo
db30be2f94 Make SkCodec support peek() and read()
- Update SkCodec's dox to point out that some of the data must be
  read twice in order to decode
- Add an accessor that reports how much is needed for reading twice
- Make SkCodec default to use peek()
  If an input stream supports peek()ing, peek() instead of reading.
  This way the stream need not implement rewind()
- Make SkCodec use read() + rewind() as a backup
  So that streams without peek() implemented can still function
  properly (assuming they can rewind).
- read everything we may need to determine the format once
  In SkCodec::NewFromStream, peek()/read() 14 bytes, which is enough
  to read all of the types we support. Pass the buffer to each subtype,
  which will have enough info to determine whether it is the right
  type. This simplifies the code and results in less reading and
  rewinding.
  - NOTE: SkWbmpCodec needs the following number of bytes for the header
    + 1 (type)
    + 1 (reserved)
    + 3 (width - bytes needed to support up to 0xFFFF)
    + 3 (height - bytes needed to support up to 0xFFFF)
    = 8
- in SkWebpCodec, support using read + rewind as a backup if peek does
  not work.

A change in Android will add peek() to JavaInputStreamAdapter.

BUG=skia:3257

Review URL: https://codereview.chromium.org/1472123002
2015-12-08 18:54:13 -08:00
jvanverth
0671b967eb Move texture drawing utility method to SkGpuDevice
BUG=skia:4542

Review URL: https://codereview.chromium.org/1506203002
2015-12-08 18:53:44 -08:00
herb
55462e5f50 Add RTTI to all sanitizers.
BUG=skia:

Review URL: https://codereview.chromium.org/1510843003
2015-12-08 18:49:04 -08:00
scroggo
f01610effc Remove staging for SkImageDecoder::Peeker
Will no longer be needed once ag/817367 lands - Android will be
inheriting directly from SkPngChunkReader, so no need for the
intermediate.

BUG=skia:4574

Review URL: https://codereview.chromium.org/1470913004
2015-12-08 18:48:38 -08:00
mtklein
bb5b77db51 Disable sanitizers with a blacklist.
We think this might be more flexible.  It allows, e.g, function-level blacklisting,
and here an easy one-stop-shop blacklist for all of third_party/externals.

BUG=skia:

CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Debug-ASAN-Trybot
NOTREECHECKS=true

Review URL: https://codereview.chromium.org/1509733003
2015-12-08 14:26:17 -08:00
mtklein
cc881dafcb Add sk_careful_memcpy to catch undefined behavior in memcpy.
It's undefined behavior to pass null as src or dst to memcpy, even if len is 0.
This currently triggers -fsanitize=attribute-nonnull warnings, but also can
lead to very unexpected code generation with GCC.

sk_careful_memcpy() checks len first before calling memcpy(),
which prevents that weird undefined situation.

This allows me to mark all sanitizers as no-recover, i.e. make-the-bots-red fatal.

CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Debug-ASAN-Trybot

BUG=skia:4641
NOTREECHECKS=true

Review URL: https://codereview.chromium.org/1510683002
2015-12-08 11:55:17 -08:00
reed
290f00cd75 Revert of default SkPixelSerializer (patchset #1 id:1 of https://codereview.chromium.org/1507123002/ )
Reason for revert:
Breaking DEPS roll (linker error)

Original issue's description:
> default SkPixelSerializer
>
> Add SkImageEncoder::EncodeData(const SkPixmap&, ...) function.
>
> Add SkImageEncoder::CreatePixelSerializer() to return a
> PixelSerializer that calls into SkImageEncoder::EncodeData.
>
> SkImage::encode() make use of SkImageEncoder::CreatePixelSerializer.
>
> Committed: https://skia.googlesource.com/skia/+/b0bd1516bff3f5afcbfd615e805867531657811b

TBR=scroggo@google.com,halcanary@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/1505203003
2015-12-08 10:59:13 -08:00
bsalomon
1cf6f9b6b5 Stop wrapping images backed by generators as bitmaps in SkGpuDevice (except when tiling)
Review URL: https://codereview.chromium.org/1510903002
2015-12-08 10:53:44 -08:00
mtklein
1f6a1bd969 spin off remaining integer overflow fixes
- Carmack rsqrt uses an int where it wants a uint32_t.
  - turn off all santizers (including signed-integer-overflow) in third_party/externals/sftntly.

CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Debug-ASAN-Trybot

BUG=skia:4635

Review URL: https://codereview.chromium.org/1511643002
2015-12-08 10:53:01 -08:00
cdalton
cdd4682f45 Improve nvpr glyph batching
Batches together path range draws whose view matrices differ by a
simple translation by pre-translating the individual path transforms
during the copy.

BUG=skia:

Review URL: https://codereview.chromium.org/1507203002
2015-12-08 10:48:31 -08:00
joshualitt
d9d30f7b57 Allow LCD text to batch across colorchanges. This will always use
color vertices, even when we can't batch across color changes

BUG=skia:

Review URL: https://codereview.chromium.org/1502253003
2015-12-08 10:47:56 -08:00
halcanary
b0bd1516bf default SkPixelSerializer
Add SkImageEncoder::EncodeData(const SkPixmap&, ...) function.

Add SkImageEncoder::CreatePixelSerializer() to return a
PixelSerializer that calls into SkImageEncoder::EncodeData.

SkImage::encode() make use of SkImageEncoder::CreatePixelSerializer.

Review URL: https://codereview.chromium.org/1507123002
2015-12-08 10:29:58 -08:00
cdalton
8ff8d24c83 Remove drawPathsFromRange from GrDrawContext
Replaces drawPathsFromRange with a more general drawPathBatch method.
While this still isn't perfect, it's a step in the right direction that
removes the need for path range draws to fit in a public API.

BUG=skia:

Review URL: https://codereview.chromium.org/1506823004
2015-12-08 10:20:32 -08:00
mtklein
77665b8a07 simplify the way we disable sanitizers for yasm
seems to work fine

CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Debug-ASAN-Trybot

BUG=skia:

Review URL: https://codereview.chromium.org/1505013003
2015-12-08 10:04:42 -08:00
joshualitt
815d571b6c Enable gpudft on GalaxyS3
BUG=skia:

Review URL: https://codereview.chromium.org/1509193002
2015-12-08 09:14:01 -08:00
robertphillips
f08ce6cd53 Loosen check for zero vectors in GrPathUtils::convert_noninflect_cubic_to_quads
In the repro case the conic in question has a replicated control point at the end. These points end up being slightly different by the time they get to convert_noninflect_cubic_to_quads so the initial checks for a zero vector don't fire. The following checks, in the constrainWithinTangents path, do fire however leading to a premature termination of conversion to quads.

BUG=skia:4611

Review URL: https://codereview.chromium.org/1504983003
2015-12-08 05:19:12 -08:00
caryclark
57eecc154e Zero length lines may have caps, but do not need joins.
Check to see if the point is preceeded or followed
by a line with a computable tangent before adding the join.

R=reed@google.com
BUG=566075

Review URL: https://codereview.chromium.org/1504043002
2015-12-08 04:29:45 -08:00
kkinnunen
64492c43c3 Make NVPR a GL context option instead of a GL context
Make NVPR a GL context option instead of a GL context.
This may enable NVPR to be run with command buffer
interface.

No functionality change in DM or nanobench. NVPR can
only be run with normal GL APIs.

BUG=skia:2992

Committed: https://skia.googlesource.com/skia/+/eeebdb538d476c1bfc8b63a946094ca1b505ecd1

Review URL: https://codereview.chromium.org/1448883002
2015-12-08 01:24:40 -08:00
kkinnunen
c6e7a13489 Use correct fill type and bounds for NVPR paths that are stroked with Skia
When using NVPR, sometimes paths must be stroked by Skia and then drawn
with fill using NVPR. In these cases, use the fill type and bounds of
the stroked path, not the original path.

Fixes degeneratesegments for nvprmsaa backends.

BUG=skia:4608

Review URL: https://codereview.chromium.org/1504753003
2015-12-07 23:39:01 -08:00
halcanary
dfd6c6e3bb SkPNGImageEncoder encodes all SkColorTypes
Review URL: https://codereview.chromium.org/1506663002
2015-12-07 14:07:32 -08:00
bsalomon
987deab2b5 Remove SK_IGNORE_GL_TEXTURE_TARGET from skia_for_chromium_defines.gypi
This has been added to Chrome's SkUserConfig.h

Review URL: https://codereview.chromium.org/1503173003
2015-12-07 14:05:31 -08:00
mtklein
97466ab03e fix funky formatting in SkNVRefCnt
BUG=skia:
TBR=reed@google.com
No API change.

Review URL: https://codereview.chromium.org/1505023002
2015-12-07 13:37:00 -08:00
mtklein
b5f7d778a1 When was SkPDiff last used?
BUG=skia:1451,skia:1463,skia:1798,skia:1859,skia:2710,skia:2711,skia:2712,skia:2713

Review URL: https://codereview.chromium.org/1502173003
2015-12-07 13:27:32 -08:00
joshualitt
b3adc2690a Make GrAtlasTextBlob non-virtual
BUG=skia:

Review URL: https://codereview.chromium.org/1503213003
2015-12-07 13:26:31 -08:00
senorblanco
c41e7e14f4 Minor code cleanups in SkCanvas.
Since the SK_SAVE_LAYER_BOUNDS_ARE_FILTERED path is long gone from
SkCanvas, remove or localize some temporary variables.

Cleanup only; no user-visible changes.

BUG=skia:

Review URL: https://codereview.chromium.org/1508823002
2015-12-07 12:51:30 -08:00
halcanary
6b28017781 SkPixelSerializer: support indexed pixels
By taking a SkPixmap, SkPixelSerializer::encode() can now handle colortables.

Review URL: https://codereview.chromium.org/1501303002
2015-12-07 12:42:24 -08:00
mtklein
a6f3047971 add signed-integer-overflow to yasm exceptions
BUG=skia:4635

CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Debug-ASAN-Trybot

Review URL: https://codereview.chromium.org/1509613002
2015-12-07 12:33:13 -08:00
joshualitt
18b072dbcb A small cleanup of GrAtlasTextContext
BUG=skia:

Review URL: https://codereview.chromium.org/1502323002
2015-12-07 12:26:12 -08:00
caryclark
a3375e4251 fix coincident fuzzer
This fuzzer has very large Y values that cause the
points to sort incorrectly by t. Exit out as soon
as this is detected.

TBR=reed@google.com
BUG=561121

Review URL: https://codereview.chromium.org/1507803002
2015-12-07 12:18:02 -08:00
herb
d4c24f6749 Simplify D1G so that it can inline DrawOneGlyph, and fix a bug in codegen
that only happens on ARM64 using GCC 4.9.

Review URL: https://codereview.chromium.org/1507633004
2015-12-07 12:12:29 -08:00
halcanary
ba923d38a5 SkImageShaderFactoryToName SkAlphaThresholdFilterFactoryToName
https://gold.skia.org/diff?test=image-shader&left=8807a80c69a5d565821432fe6a7b74ec&top=80222191bf0768b0fc62c8e05b58fb5f

https://gold.skia.org/diff?test=imagealphathreshold&left=fc3fbbfbd1b1e7ec1c33c00c6c22b9a8&top=493096aac6f44b91cd6522c6049d5a56

BUG=skia:4613

Review URL: https://codereview.chromium.org/1499443002
2015-12-07 12:02:33 -08:00
scroggo
d61c384342 Allow SkStream::peek() to partially succeed
If the stream can peek less than requested, peek that amount. Return
the number of bytes peeked.

This simplifies crrev.com/1472123002. For a stream that is smaller than
14 bytes, it can successfully peek, meaning the client will not need to
fall back to read() + rewind(), which may fail if the stream can peek
but not rewind.

This CL revives code from patch set 3 of crrev.com/1044953002, where I
initially introduced peek() (including tests).

Add a test for SkFrontBufferedStream that verifies that peeking does
not make rewind() fail (i.e. by reading past the internal buffer).

BUG=skia:3257

Review URL: https://codereview.chromium.org/1490923005
2015-12-07 11:37:13 -08:00
joshualitt
3660d53451 Start objectifying GrAtlasTextBlob
BUG=skia:

Review URL: https://codereview.chromium.org/1503193002
2015-12-07 11:32:50 -08:00
thakis
573ce20f42 clang/win: Let SK_TRACEHR not produce -Wunused-value warnings in release builds.
Fixes warnings like:
..\..\third_party\skia\include\utils\win\SkHRESULT.h(51,23) :  note: expanded from macro 'HRNM'
                      ^~~~~~~~~~~~~~~~~~~~~~~~~
..\..\third_party\skia\include\utils\win\SkHRESULT.h(26,20) :  note: expanded from macro 'HR_GENERAL'
        SK_TRACEHR(_hr, _msg);\
                   ^~~
..\..\third_party\skia\include\utils\win\SkHRESULT.h(20,31) :  note: expanded from macro 'SK_TRACEHR'
                              ^~~

BUG=chromium:505318
TBR=reed
This is a trivial implementation change.

Review URL: https://codereview.chromium.org/1503463004
2015-12-07 10:41:36 -08:00