Change-Id: Ibcc6ee83cde537caaab824658721bbda300abc18
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/208273
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Inline uploading wasn't set up.
Bug: skia:8243
Change-Id: I3f8ab0287d760d009127adec147d5522cc5b9a22
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/208225
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Made up a threshold between linear and slope searching.
For a count of 100 here are the before and after timings.
The first two lines are being changed. The latter 2 are
the native look-ups for mac.
Before
15/15 MB 115 2.33µs 2.34µs 2.34µs 2.34µs 0% ▆▁▄█▇▇▂▄█▆ nonrendering cmap_findcache_charToGlyph
15/15 MB 66 3.47µs 3.48µs 3.49µs 3.55µs 1% █▁▁▁▂▁▁▁▁▄ nonrendering cmap_addcache_charToGlyph
15/15 MB 1 1.1µs 1.13µs 1.21µs 1.98µs 22% █▂▁▁▁▁▁▁▁▂ nonrendering cmap_face_charToGlyph
15/15 MB 190 1.09µs 1.1µs 1.19µs 1.64µs 17% ▁▁▁▆█▁▁▁▁▁ nonrendering cmap_font_charToGlyph
After
15/15 MB 447 448ns 449ns 448ns 449ns 0% ▂▅█▅▁▆█▂▁▆ nonrendering cmap_findcache_charToGlyph
15/15 MB 95 2.79µs 3.03µs 3µs 3.06µs 3% ▇▇▇▇▇███▄▁ nonrendering cmap_addcache_charToGlyph
15/15 MB 1 1.15µs 1.16µs 1.25µs 1.99µs 21% █▂▁▁▁▁▁▁▁▁ nonrendering cmap_face_charToGlyph
15/15 MB 186 1.09µs 1.1µs 1.12µs 1.27µs 5% █▁▁▁▂▁▁▁▁▁ nonrendering cmap_font_charToGlyph
Bug: skia:
Change-Id: If7da4eef3cce248393815071f342607f0c8140bb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/208044
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Reed <reed@google.com>
This is a reland of c48879ed40
BUG=952629
Original change's description:
> Convert the CPU mask case to use prepareForDrawing
>
> Change-Id: I3a36084544e12730f4815dbf5b6c78a1cd719f1b
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/207761
> Reviewed-by: Ben Wagner <bungeman@google.com>
> Commit-Queue: Herb Derby <herb@google.com>
Change-Id: I382901e2a4cc186b206450cd4ae8058c6c0e2149
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/208042
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Herb Derby <herb@google.com>
In CrashHandler...
- make CrashHandler a non-noop... don't know why it's disabled
- fix bitrot since we last built it
- update to demangle symbols on Linux too, not just Mac
- catch SIGTRAP, which will catch SK_ABORT / SkASSERT,
unless otherwise hooked (e.g. by a debugger)
In fm...
- use CrashHandler
- convert exit_with_failure to SK_ABORT so they'll also dump a trace
- flush stdout after printing what's running
Change-Id: Ib20d0e4f442d73c28e193396dc6e85935fc58544
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/208151
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Bug: 130458015
Test: Id2d70e95d2d879d2ff5e2cb985d3542731108909
SkHeifCodec needs to reset some of its state between decoding calls. Do
so in onRewind. This mimics SkJpegCodec, on which SkHeifCodec is
modelled.
Change-Id: I380a8ed88c98eaedc6f6ff1ff115bb2dea68bd56
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/208180
Auto-Submit: Leon Scroggins <scroggo@google.com>
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Leon Scroggins <scroggo@google.com>
vmull_u8() does u8 * u8 -> u16, 8 at a time. This keeps the loop as
tight as possible in NEON, basically {load,mull,addhn,store,loop}.
Drop N to 4 pixels at at time to make this easier. Depending on how
performance charts go, I may circle back to bring this back up to 8.
Bug: chromium:952502
Change-Id: I17ba6b60c0cc6c6da71b05a4af269d87d76672b5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/208140
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
With certain degenerate params (decal mode and a very small radius), we
could produce an SkShader that's an instance of SkEmptyShader, which
then failed to create an FP.
Bug: skia:8660 skia:8860 skia:8982
Change-Id: I47142572cd0c75d15c6ee1e66e3140786431371f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/208221
Reviewed-by: Herb Derby <herb@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
can_truncate_to_fixed_for_decal() is correct to check that we can step
fx by dx count-1 times without overflowing, but as written we actually
step count times, and sometimes the final fx does overflow. Fuzzers
equipped with UBSAN have noticed.
There's no real bug here, as we ignore that final fx, but we can step
carefully to avoid this with very little impact on code complexity or
performance.
Bug: chromium:951264
Cq-Include-Trybots: luci.chromium.try:linux-blink-rel
Change-Id: I5446dbdffdc5fa873c843c26654894bd79202971
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/207921
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Auto-Submit: Mike Klein <mtklein@google.com>
I'm getting tired of trying to figure out where
clients screw up and forget to clear these buffers,
and I'd like a safer safety net for our own screw ups.
Bug: chromium:934161, many more
Change-Id: I6ada4c821da6dd173e54c6402c17d6946ff05fdf
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/207857
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Change-Id: I70f4e01a2c55e85ee5e17a29f7f05a4a4aff2ae2
Bug: skia:8569 skia:8976
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/204264
Commit-Queue: Ben Wagner aka dogben <benjaminwagner@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Changed the python script to operate on all shaders in the directory,
handling SPIR-V appropriately, and collating data across backends.
Made the output CSV, so that it imports into spreadsheets directly
(and handles missing columns cleanly).
Removed all the JSON digest logic - this was overkill at the moment,
and it made it tricky once we were combining information from GL and
Vulkan. Also, the hit count data was probably misleading - it didn't
count hits at the program cache level, just the persistent cache.
Change-Id: If354cde943c96f84e7bcc20a137afefca3b59358
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/207960
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
This is preparing the ground for having proxies be atomically reffed
Change-Id: Ice48c41120d4ec10a758f696a69028b6363e8a7e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/207762
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
cfc73cc1af..065f8dc35f
git log cfc73cc1af5e..065f8dc35f9d --date=short --no-merges --format='%ad %ae %s'
2019-04-12 timvp@google.com Vulkan: Set appropriate GL conformant bit for returned configs
2019-04-12 courtneygo@google.com Always enable NPOT for Vulkan backend
2019-04-12 benjaminwagner@google.com Fix 'not all control paths return a value' and add to extra_warnings
2019-04-12 jmadill@chromium.org Update test result output from ANGLE dEQP gtests.
2019-04-12 jmadill@chromium.org Move ANGLE CQ to linux-angle-rel and mac-angle-rel.
2019-04-12 jmadill@chromium.org Ensure deleteTexture preserves correct texture cache.
2019-04-12 jmadill@chromium.org Vulkan: Add design docs on line segment raster.
2019-04-12 jmadill@chromium.org Vulkan: Write design doc explaining SPIR-V generation.
2019-04-12 ynovikov@chromium.org Suppress flaky dEQP 3.1 test
2019-04-12 tobine@google.com Incorrectly placed extension directive is an error
2019-04-12 thakis@chromium.org Remove explicit -Wextra-semi, -Winconsistent-missing-override flags.
2019-04-12 angle-autoroll@skia-public.iam.gserviceaccount.com Roll ./third_party/spirv-tools/src 82ebbbba15c2..98b3f26c2f1f (2 commits)
Created with:
gclient setdep -r third_party/externals/angle2@065f8dc35f9d
The AutoRoll server is located here: https://autoroll.skia.org/r/angle-skia-autoroll
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md
If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.
CQ_INCLUDE_TRYBOTS=skia.primary:Build-Debian9-Clang-x86_64-Release-ANGLE;skia.primary:Perf-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Debug-All-ANGLE
TBR=herb@google.com
Change-Id: I9f342d4622526f695ab6348017b961296fc3b1d4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/208101
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
6506f553b3..b2d31144d9
Created with:
gclient setdep -r ../src@b2d31144d9
The AutoRoll server is located here: https://autoroll.skia.org/r/chromium-skia-autoroll
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md
If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.
CQ_INCLUDE_TRYBOTS=skia.primary:Perf-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All-CommandBuffer;skia.primary:Test-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Debug-All-CommandBuffer
TBR=herb@google.com
Change-Id: I83b8c3fa751a98e3b48941610d9692621cae9d70
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/208100
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
This reverts commit c48879ed40.
Reason for revert: Regresses on fuzzer because it doesn't handle glyphs wider than 32K correctly
Original change's description:
> Convert the CPU mask case to use prepareForDrawing
>
> Change-Id: I3a36084544e12730f4815dbf5b6c78a1cd719f1b
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/207761
> Reviewed-by: Ben Wagner <bungeman@google.com>
> Commit-Queue: Herb Derby <herb@google.com>
TBR=bungeman@google.com,herb@google.com
Change-Id: I046f24fd541dd121b8fa65ff5811c3055a28215d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/208041
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Herb Derby <herb@google.com>
This is a reland of 8be917af43
Original change's description:
> Convert the CPU path case to use prepareForDrawing
>
> Change-Id: I5babfc7f1fa9784d81896d5c036e3b50c2af8ca0
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/207760
> Reviewed-by: Ben Wagner <bungeman@google.com>
> Commit-Queue: Herb Derby <herb@google.com>
Change-Id: I307792b443d4738ee2ccb545cc40256bc94cacee
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/207887
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Herb Derby <herb@google.com>
Try: out/release/nanobench --match _charToGlyph
Pseudo plan to use this:
- attach to whatever typeface backends need it (probably just freetype)
- have a purge/limiting scheme (e.g. only cache N entries)
- if we care, make the search fancier (e.g. binary, slope, etc.)
Bug: 951647
Change-Id: Ib1042ca5891d2742499faf1314579c402121a855
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/207703
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Reed <reed@google.com>
This reverts commit 8be917af43.
Reason for revert: Causes layout tests to draw problem
Original change's description:
> Convert the CPU path case to use prepareForDrawing
>
> Change-Id: I5babfc7f1fa9784d81896d5c036e3b50c2af8ca0
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/207760
> Reviewed-by: Ben Wagner <bungeman@google.com>
> Commit-Queue: Herb Derby <herb@google.com>
TBR=bungeman@google.com,herb@google.com
Change-Id: I8ec1e8fed49571cc70b0acac750cbbf302f551fe
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/207886
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Herb Derby <herb@google.com>
This was originally in place to prevent gross programmer error when
writing the rectangle draw ops. Given how sensitive the quadType()
functions are to numerical precision issues, it created many false
positives. The quadType() is only used for minor optimizations that
don't really impact what is drawn, so there is no real risk when the
type determined via matrix differs from the type calculated from the
coordinates.
Bug: chromium:935563, chromium:935503
Change-Id: I4c9798758971dc853289975335506ade141441df
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/207882
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
This helps avoid flattening of YUV/A images when drawn with a strict src
rect constraint. SkiaRenderer almost always provides a strict constraint
for their YUV videos.
This adds a GM that replicates the issue in skbug:8959, and adds a GM to
the wacky_yuv set that checks domain clamping across all of the different
formats.
Bug: 8959
Change-Id: I53f531a94f3b63f81d8c3cbe22d868e3356aeabd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/207020
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Change-Id: I3e9acc3f8e2690169b3c76f9aec1ac22f6dfc93a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/205620
Commit-Queue: Ben Wagner aka dogben <benjaminwagner@google.com>
Auto-Submit: Ben Wagner aka dogben <benjaminwagner@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
This is a 1:1 transliteration, with the skvx code more explicit about
what's going on, the old Sk4px code more abstracted and specificially
designed to work with unorm8 types. It's not as terse, but I think I've
got it equally or more clear?
I haven't changed anything here, but I think it should be pretty clear
how to generalize this up to say, 8 pixels at a time?
Writing this CL has got me pretty strongly considering adding explicit
bit-pun constructors to the skvx::Vec types, given how often I'm finding
them to be useful, particularly between uint32 and 4x uint8.
Change-Id: Ie62340e571258fc82176ae3d6605b1f96695f90e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/207722
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Auto-Submit: Mike Klein <mtklein@google.com>
When in GL backend, adds a "Shaders" section to the debug menu.
"Load" scrapes all of the vertex and fragment shaders being used,
then displays them. They can be edited, and "Save" pushes the
results.
Note: It is trivial to trigger an assert by saving a shader that
doesn't compile. I'd like to make the program builder more robust
in a follow-up CL, to fall back to the "real" SkSL, not draw, or
something along those lines.
Change-Id: I841fe2ee76a3c2eae58b64ef587fcbe25b95cc7e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/206905
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Bug: chromium:946338
Change-Id: I7d78e84ddde32436990f5da5bcd0c6230bb8eaf1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/207871
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Bug: chromium:948499
Change-Id: I19efe6bb73b0926a79d3ae629a22efa8ea500b18
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/207864
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Avoids double-compiling SkTextUtils (with different settings),
which is already in the dependent 'skia' target.
Change-Id: I3f803e7ebcc0787b8b47a85d2a5a52fd8e0778db
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/207866
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
This avoids boilerplate at every call-site (and more are being added
soon) to set up the reader/writer objects.
Change-Id: Idc632932b5a9be8d3164d249abab7dccbb905ca3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/207704
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
This reverts commit ae6c5c08be.
Reason for revert: Android still is.
Original change's description:
> clean up SK_SUPPORT_LEGACY_A8_MASKBLITTER
>
> cannot find anyone defining it
>
> Change-Id: Ia93555b4d8fa1c07dd932dc39fe8854518f1455e
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/207720
> Reviewed-by: Mike Klein <mtklein@google.com>
> Commit-Queue: Mike Klein <mtklein@google.com>
TBR=mtklein@google.com
Change-Id: Ib9dbcb394f522fe2bd1e5be7a814952cc5d62b88
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/207848
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
This caused a warning (and therefore error) when building Metal into
Chromium.
Change-Id: I3a40247a438e85977f0afa2cf712151dba8d9290
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/207710
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
This reverts commit 41d087c262.
Reason for revert: very speculative revert to see if this fixes android roll
Original change's description:
> limit mask drawing to clip bounds
>
> Change-Id: Iab74531614654f241e12d1cd1af14725888580c8
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/207143
> Reviewed-by: Mike Reed <reed@google.com>
> Auto-Submit: Lee Salzman <lsalzman@mozilla.com>
> Commit-Queue: Mike Klein <mtklein@google.com>
TBR=mtklein@chromium.org,mtklein@google.com,reed@google.com,lsalzman@mozilla.com
Change-Id: Ib848a276cc4bfdf346949acef3e81fd9f8b082a2
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/207860
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>