| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
empty (patchset #1 id:1 of https://codereview.chromium.org/1284693002/ )
Reason for revert:
Breaking DEPS roll on Assert in SkTextBlobBuilder::TightRunBounds.
Original issue's description:
> [TextBlob] Fall back to TightRunBounds when the font bounds are empty
>
> Empty font bounds are likely an indication of a font bug. As a best
> effort, we can use TightRunBounds in this easily detectable case.
>
> BUG=507022
> R=reed@google.com,bungeman@google.com
>
> Committed: https://skia.googlesource.com/skia/+/d6b99cc6b84b3ec864221cbe9945d203bd9eb072
TBR=bungeman@google.com,reed@google.com,fmalita@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=507022
Review URL: https://codereview.chromium.org/1283853002
|
|
|
|
|
|
|
|
|
|
| |
Empty font bounds are likely an indication of a font bug. As a best
effort, we can use TightRunBounds in this easily detectable case.
BUG=507022
R=reed@google.com,bungeman@google.com
Review URL: https://codereview.chromium.org/1284693002
|
|
|
|
|
|
|
| |
BUG=skia:
TBR=
Review URL: https://codereview.chromium.org/1281123002
|
|
|
|
|
|
| |
BUG=skia:4117
Review URL: https://codereview.chromium.org/1273203002
|
|
|
|
|
|
| |
BUG=skia:
Review URL: https://codereview.chromium.org/1272713005
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Pretty vanilla translation. I cleaned up who calls whom a little.
Used to be utils -> opts -> utils, now it's just utils -> opts.
I may follow up with a pass over the NEON code for readability
and to clean up dead code.
This turns on NEON A8->R11EAC conversion for ARMv8.
Unit tests which now hit the NEON code still pass.
I can't find any related bench.
BUG=skia:4117
Review URL: https://codereview.chromium.org/1273103002
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Procedure:
$ platform_tools/android/toolchains/ndk-r10c-mips-darwin_v14/bin/mipsel-linux-android-gcc -dM -E - < /dev/null | sort > vanilla.mips
$ platform_tools/android/toolchains/ndk-r10c-mips-darwin_v14/bin/mipsel-linux-android-gcc -mdsp -dM -E - < /dev/null | sort > dsp.mips
$ platform_tools/android/toolchains/ndk-r10c-mips-darwin_v14/bin/mipsel-linux-android-gcc -mdspr2 -dM -E - < /dev/null | sort > dspr2.mips
$ diff vanilla.mips dsp.mips
239a240,241
> #define __mips_dsp 1
> #define __mips_dsp_rev 1
$ diff vanilla.mips dspr2.mips
239a240,242
> #define __mips_dsp 1
> #define __mips_dsp_rev 2
> #define __mips_dspr2 1
So, defined(__mips_dsp) -> SK_MIPS_HAS_DSP, defined(__mips_dspr2) -> SK_MIPS_HAS_DSPR2.
BUG=skia:
Review URL: https://codereview.chromium.org/1274873002
|
|
|
|
|
|
|
|
|
| |
TBR=reed@google.com
Verbal lgtm, does not change API.
Committed: https://skia.googlesource.com/skia/+/7403d87db8e43d4c2b5b25ac22a0ebc22bd09d69
Review URL: https://codereview.chromium.org/1265033002
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
SkTraceEventCommon.h
Traditionally, SkTraceEvent.h was manually kept in sync with base/trace_event/trace_event.h, with project-specific parts intermixed, and tended to drift out of sync a lot (mainly in Blink, less so in Skia).
The SkTraceEventCommon.h now has only the cross-project parts, and can be copy-pasted verbatim between projects (it's an identical copy of base/trace_event/trace_event_common.h), meaning SkTraceEvent.h shouldn't go out of sync as it has before.
BUG=skia:
[mtklein mucking around below here]
NOPRESUBMIT=true
CQ_EXCLUDE_TRYBOTS=client.skia.fyi:skia_presubmit-Trybot
Review URL: https://codereview.chromium.org/1270783002
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
https://codereview.chromium.org/1265033002/ )
Reason for revert:
revert to unblock DEPS roll
../../chrome/browser/chromeos/display/overscan_calibrator.cc:43:10: error: variable has incomplete type 'SkPath'
SkPath base_path;
Original issue's description:
> IWYU: 'core' target, files starting A-C.
>
> TBR=reed@google.com
> Verbal lgtm, does not change API.
>
> Committed: https://skia.googlesource.com/skia/+/7403d87db8e43d4c2b5b25ac22a0ebc22bd09d69
TBR=reed@google.com,mtklein@google.com,bungeman@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Review URL: https://codereview.chromium.org/1273613002
|
|
|
|
|
|
|
| |
TBR=reed@google.com
Verbal lgtm, does not change API.
Review URL: https://codereview.chromium.org/1265033002
|
|
|
|
|
|
|
|
|
|
|
|
| |
Nothing too fancy.
Direction enums become enum classes so they don't get all confused. An
alternative is to create one single Direction enum that both blur and
morphology opts use.
BUG=skia:4117
Review URL: https://codereview.chromium.org/1267343004
|
|
|
|
|
|
| |
R=reed@google.com
Review URL: https://codereview.chromium.org/1240093004
|
|
|
|
|
|
|
|
|
| |
This organizes memset16, memset32, and rsqrt the same way as the other code. No functional change.
BUG=skia:4117
R=djsollen@google.com
Review URL: https://codereview.chromium.org/1264423002 .
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Paths are cached as tessellated triangle meshes in vertex buffers on the GPU. Stroked paths are not (yet) cached.
Paths containing no curved segments (linear paths) are reused at all scales. Paths containing curved segments are reused within a scale tolerance threshold.
In order to invalidate the cache when an SkPath is changed or deleted,
this required implementing genID change notification in SkPath. This is
modelled almost exactly on SkPixelRef::GenIDChangeListener.
However, It does not currently implement the check for unique genIDs,
so notifiers will fire when the first instance of an SkPathRef
using a given genID is destroyed.
Another caveat is that you cannot successfully add a change notifier
to an empty path, since it uses the "canonical" empty path which is
never modified or destroyed. For this reason, we prevent adding
listeners to it.
BUG=skia:4121,skia:4122, 497403
DOCS_PREVIEW= https://skia.org/?cl=1114353004
Committed: https://skia.googlesource.com/skia/+/468dfa72eb6694145487be17876804dfca3b7adb
Review URL: https://codereview.chromium.org/1114353004
|
|
|
|
|
|
|
|
|
|
|
|
| |
+268 -535 lines
I also rearranged the code a little bit to encapsulate itself better,
mostly replacing static helper functions with lambdas. This also
let me merge the SSE2 and SSE4.1 code paths.
BUG=skia:4117
Review URL: https://codereview.chromium.org/1264103004
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit 468dfa72eb6694145487be17876804dfca3b7adb.
This CL caused signficant GM diffs.
Revert "Fix resource cache test."
This reverts commit b001c41ed37d2018d38ce787b412ed741585d75d.
Revert "Fix SkData leaks at GrResourceKey::setCustomData() call sites."
This reverts commit c369348aa596d7be05c9ce0ca5d349e5d1903789.
These CLs depend on the first one.
BUG=skia:
TBR=bsalomon@google.com
Review URL: https://codereview.chromium.org/1260363007
|
|
|
|
|
|
|
|
|
|
|
|
| |
Does not try to cache calls to readPixels at the moment:
- not triggered by drawing
- not clear if we want to perform any pixel transformations (that readPixels allows) on the GPU or CPU
Can consider that another time.
BUG=513695
Review URL: https://codereview.chromium.org/1262923003
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
https://codereview.chromium.org/1264133003/ )
Reason for revert:
webkit_unit_tests :(
Original issue's description:
> SkCanvas::onDrawPicture() quick-reject
>
> R=reed@google.com,mtklein@google.com
>
> Committed: https://skia.googlesource.com/skia/+/48ed62b29d45e42b971aac8858da06781c93e6d7
TBR=reed@google.com,fmalita@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Review URL: https://codereview.chromium.org/1273433002
|
|
|
|
|
|
| |
R=reed@google.com,mtklein@google.com
Review URL: https://codereview.chromium.org/1264133003
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Paths are cached as tessellated triangle meshes in vertex buffers on the GPU. Stroked paths are not (yet) cached.
Paths containing no curved segments (linear paths) are reused at all scales. Paths containing curved segments are reused within a scale tolerance threshold.
In order to invalidate the cache when an SkPath is changed or deleted,
this required implementing genID change notification in SkPath. This is
modelled almost exactly on SkPixelRef::GenIDChangeListener.
However, It does not currently implement the check for unique genIDs,
so notifiers will fire when the first instance of an SkPathRef
using a given genID is destroyed.
Another caveat is that you cannot successfully add a change notifier
to an empty path, since it uses the "canonical" empty path which is
never modified or destroyed. For this reason, we prevent adding
listeners to it.
BUG=skia:4121,skia:4122, 497403
DOCS_PREVIEW= https://skia.org/?cl=1114353004
Review URL: https://codereview.chromium.org/1114353004
|
|
|
|
|
|
|
|
| |
TBR=
BUG=skia:
Review URL: https://codereview.chromium.org/1266443006
|
|
|
|
|
|
|
|
|
|
|
| |
The Chrome opts targets (sse2, ssse3, sse41, etc) don't have include/private on
their include path. This should unblock the roll.
TBR=reed@google.com
BUG=skia:4117
Review URL: https://codereview.chromium.org/1268853007
|
|
|
|
| |
Review URL: https://codereview.chromium.org/1261643004
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Renames Sk4pxXfermode.h to SkXfermode_opts.h,
and refactors it a tiny bit internally.
This moves xfermode optimization from being "compile-time everywhere but NEON"
to simply "runtime everywhere". I don't anticipate any effect on perf or
correctness.
BUG=skia:4117
Review URL: https://codereview.chromium.org/1264543006
|
|
|
|
|
|
| |
BUG=skia:
Review URL: https://codereview.chromium.org/1263463003
|
|
|
|
|
|
|
|
| |
BUG=skia:
Committed: https://skia.googlesource.com/skia/+/adcdca86ce425cf8c28bfad311cef028df756ee8
Review URL: https://codereview.chromium.org/1266003002
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
With this new arrangement, the benefits of inlining sk_memset16/32 have changed.
On x86, they're not significantly different, except for small N<=10 where the inlined code is significantly slower.
On ARMv7 with NEON, our custom code is still significantly faster for N>10 (up to 2x faster). For small N<=10 inlining is still significantly faster.
On ARMv7 without NEON, our custom code is still ridiculously faster (up to 10x) than inlining for N>10, though for small N<=10 inlining is still a little faster.
We were not using the NEON memset16 and memset32 procs on ARMv8. At first blush, that seems to be an oversight, but if so it's an extremely lucky one. The ARMv8 code generation for our memset16/32 procs is total garbage, leaving those methods ~8x slower than just inlining the memset, using the compiler's autovectorization.
So, no need to inline any more on x86, and still inline for N<=10 on ARMv7. Always inline for ARMv8.
BUG=skia:4117
Review URL: https://codereview.chromium.org/1270573002
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
#3 id:40001 of https://codereview.chromium.org/1266003002/)
Reason for revert:
breaking android
Original issue's description:
> Modifying TextBlobCacheTest to use SkRandomScalerContext
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/adcdca86ce425cf8c28bfad311cef028df756ee8
TBR=bungeman@google.com,bsalomon@google.com,joshualitt@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Review URL: https://codereview.chromium.org/1267623004
|
|
|
|
|
|
| |
BUG=skia:
Review URL: https://codereview.chromium.org/1266003002
|
|
|
|
|
|
| |
BUG=skia:
Review URL: https://codereview.chromium.org/1266143003
|
|
|
|
|
|
|
|
| |
I view this as a performance opportunity, not a feature or bug fix per-se.
BUG=skia:
Review URL: https://codereview.chromium.org/1266883002
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This enables the NEON sk_float_rsqrt() code for configurations that have NEON at run-time but not compile-time.
These devices will see about a 2x (1.26 -> 2.33) slowdown in sk_float_rsqrt(), but it should be more precise than our portable fallback.
(When inlined, the portable fallback and the NEON code are almost identical in speed. The only difference is precision. Going through a function pointer is causing all this slowdown. This is a good example of a place where Skia really benefits from compile-time NEON.)
BUG=skia:4117,skia:4114
No public API changes.
TBR=reed@google.com
Review URL: https://codereview.chromium.org/1264893002
|
|
|
|
|
|
| |
Now that Chrome no longer depends on it, remove dead code.
Review URL: https://codereview.chromium.org/1263013002
|
|
|
|
|
|
|
|
|
|
| |
This doesn't really do anything yet. It's just the CPU detection code, skeleton new .cpp files, and a few little .gyp tweaks.
BUG=skia:4117
Committed: https://skia.googlesource.com/skia/+/ce2c5055cee5d5d3c9fc84c1b3eeed4b4d84a827
Review URL: https://codereview.chromium.org/1255193002
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(patchset #2 id:20001 of https://codereview.chromium.org/1229673008/)
Reason for revert:
This doesn't draw correctly, e.g. our GM test named dashcubics.
Good: https://gold.skia.org/img/images/0f7e8e226379afbad8a700e0a80fd8f1.png
Bad:
https://gold.skia.org/img/images/56ce15fc67436065a3db4b8ee31f13ae.png
Original issue's description:
> Optimize RGB16 blitH functions with NEON for ARM platform.
>
> Here are some performance resultsi on Nexus 9:
> SkRGB16BlitterBlitH_neon:
> +--------+-----------+
> |height | C/NEON |
> +--------+-----------+
> |1 | 0.888531 |
> +--------+-----------+
> |8 | 1.231800 |
> +--------+-----------+
> |18 | 1.073327 |
> +--------+-----------+
> |32 | 1.136991 |
> +--------+-----------+
> |76 | 1.174638 |
> +--------+-----------+
> |85 | 1.188551 |
> +--------+-----------+
> |120 | 1.180261 |
> +--------+-----------+
> |128 | 1.183726 |
> +--------+-----------+
> |512 | 1.220806 |
> +--------+-----------+
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/6c72d5740231f47c664a8e765a8df05cd124c88c
TBR=djsollen@google.com,caryclark@google.com,reed@google.com,bero@linaro.com,yang.zhang@linaro.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Review URL: https://codereview.chromium.org/1268513003
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Here are some performance resultsi on Nexus 9:
SkRGB16BlitterBlitH_neon:
+--------+-----------+
|height | C/NEON |
+--------+-----------+
|1 | 0.888531 |
+--------+-----------+
|8 | 1.231800 |
+--------+-----------+
|18 | 1.073327 |
+--------+-----------+
|32 | 1.136991 |
+--------+-----------+
|76 | 1.174638 |
+--------+-----------+
|85 | 1.188551 |
+--------+-----------+
|120 | 1.180261 |
+--------+-----------+
|128 | 1.183726 |
+--------+-----------+
|512 | 1.220806 |
+--------+-----------+
BUG=skia:
Review URL: https://codereview.chromium.org/1229673008
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
On subpicture parsing failures we clean up all fPictureRefs entries
*and* delete the array itself. But the destructor also deletes the
array => double free.
Alternatively, we can set fPictureCount to the number of successfully
parsed pictures such that the destructor handles all the cleanup.
BUG=515228
R=reed@google.com,mtklein@google.com
Review URL: https://codereview.chromium.org/1264503011
|
|
|
|
|
|
|
|
|
|
|
| |
If this doesn't work, one at a time...
BUG=skia:4126
No public API changes.
TBR=reed@google.com
Review URL: https://codereview.chromium.org/1255373006
|
|
|
|
|
|
|
|
|
|
|
| |
There is more than one way to skin this SkPathPriv.h cat.
These constructors are large enough that they probably shouldn't have
been inlined like this anyway.
BUG=skia:4126
Review URL: https://codereview.chromium.org/1253963004
|
|
|
|
|
|
| |
BUG=skia:
Review URL: https://codereview.chromium.org/1265733002
|
|
|
|
|
|
|
|
|
|
|
| |
Additionally this CL:
forces the light colors to be opaque
forces the light direction to be normalized
adds a raster implementation
adds a gm
Review URL: https://codereview.chromium.org/1245883003
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
To make this work, we tag their pixelrefs as temporarily immutable, allowing
ourselves to restore the pixels to mutability only when the image drops away.
This should allow us to wobble back and forth between writing to the Surface
and reading from the Image without a COW, with the Surface seeing mutable
pixels and the Image seeing immutable pixels.
The big idea is, Image doesn't need forever-immutable pixels, it just needs
pixels that are immutable as long as it's alive.
BUG=skia:
patch from issue 804523002 at patchset 40001 (http://crrev.com/804523002#ps40001)
Review URL: https://codereview.chromium.org/1254383006
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
C.f. https://codereview.chromium.org/1261013003/
BUG=skia:4126
Will follow up with two more CLs if this works:
- one moving SkRecords.h
- one moving SkMiniRecorder.h
No public API changes.
TBR=reed@google.com
Committed: https://skia.googlesource.com/skia/+/117842223bd13325b6da26110d80e0590c1a742b
Review URL: https://codereview.chromium.org/1266593002
|
|
|
|
|
|
|
| |
TBR=reed@google.com
BUG=skia:
Review URL: https://codereview.chromium.org/1260473004
|
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit 117842223bd13325b6da26110d80e0590c1a742b.
No good:
https://uberchromegw.corp.google.com/i/client.skia/builders/Mac%20Builder/builds/3465/steps/compile/logs/stdio
BUG=skia:4126
Review URL: https://codereview.chromium.org/1262173002 .
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
C.f. https://codereview.chromium.org/1261013003/
BUG=skia:4126
Will follow up with two more CLs if this works:
- one moving SkRecords.h
- one moving SkMiniRecorder.h
No public API changes.
TBR=reed@google.com
Review URL: https://codereview.chromium.org/1266593002
|
|
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit d12e6ffa5cc1c1af47bf73c7c127d8d7f7443058.
Our Chrome roll canaries are failing with the dreaded
Ninja-says-there's-more-work-to-do message. I will break this up
smaller (if possible) and try again tomorrow.
BUG=skia:4126
Review URL: https://codereview.chromium.org/1258293004 .
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
$ git grep "../../src/" | grep include
now returns nothing.
BUG=skia:4126
No public API changes.
TBR=reed@google.com
Review URL: https://codereview.chromium.org/1261013003
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
include/views/SkOSWindow_Win.h includes it.
To move SkTHash.h to include/private, SkChecksum.h needs to go there too. To move SkChecksum.h to include/private, SkTLogic needs to go there too.
This adds a bunch of -Iinclude/private to tools.gyp I missed in the last CL.
No public API changes.
TBR=reed@google.com
BUG=skia:4126
Review URL: https://codereview.chromium.org/1260613006
|