Go to file
Mike Klein e0fe62adaa use fourth arg in store128
store128() has been lowered into SkVM Ops strangely (two interlocking
64-bit stores) only because of SkVM's limit of three arguments per Op.
With four arguments we can lower store128() in a straightforward way.

Perhaps surprisingly, I've left the implementations of store128 fairly
naive, with narrower stores than having all this data together in one
place allows.  I do want to follow up here, but not so much because the
speed of store128 is important, rather more so because getting the tools
in place for idiomatic store128 implementations will lead us down a path
with great knock-on effects for more interesting features.

We'll need four adjacent temporary registers to use the ARM-idiomatic
st2.4s/st4.4s approaches for store64/store128, and the idiomatic x86
implementations need multiple temporary registers too.  Once we're able
to manage multiple adjacent registers as a unit, we'll be able to
stretch the idea to things like load64/load128 returning 2 or 4
registers worth of data from a single Op.  And the ultimate goal is in
Half-is-fp16 mode, where we'll be able to fill one register with 16-bit
float/int/mask data and spread any 32-bit data across a register pair.

Change-Id: Ieb20d8b7d00e9d806cb27fd30ebfd50ae9317da7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/355936
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2021-01-20 00:12:06 +00:00
animations
bazel bazel baby steps 2020-09-14 15:18:32 +00:00
bench Extract some GrPathTessellatoOp logic into virtual helper classes 2021-01-19 20:23:56 +00:00
bin pull arm64 binary on arm64 Mac/Linux 2021-01-15 19:00:46 +00:00
build/fuchsia [fuchsia] Fix fidlc command. 2020-06-10 03:29:24 +00:00
build_overrides Port to ANGLE's GN files 2020-09-11 15:22:34 +00:00
client_utils/android Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
demos.skia.org [canvaskit] Remove Sk from nearly all function/type names. 2020-10-07 21:01:32 +00:00
dm Simplify common case for recttorect 2021-01-15 18:37:46 +00:00
docker [canvaskit,pathkit] Update to emsdk 2.0 2020-08-20 14:55:50 +00:00
docs/examples Simplify common case for recttorect 2021-01-15 18:37:46 +00:00
example Reland "Remove use of legacy display globals." 2020-10-05 19:13:58 +00:00
experimental roll gn to latest 2021-01-15 15:34:00 +00:00
fuzz [fuzzing] Add first pass SkParagraph fuzzing. 2020-12-30 19:24:17 +00:00
gm Reland "Test all YUVA image factories with different encoded origins." 2021-01-19 21:11:05 +00:00
gn Reland "Support indexing by loop variables in SkVMGenerator" 2021-01-19 22:33:46 +00:00
include Add GrSL enums for uint3 and uint4. 2021-01-19 23:30:26 +00:00
infra Fix decoding gifs with too-big-bounds 2021-01-19 18:46:55 +00:00
modules Include placeholder widths in minIntrinsicWidth 2021-01-19 22:47:56 +00:00
platform_tools Add SkSpan support to the Skia LLDB visualizer. 2020-12-22 18:10:12 +00:00
resources Enforce ES2 limits on indexing expressions (in runtime effects) 2021-01-15 22:49:27 +00:00
samplecode Simplify common case for recttorect 2021-01-15 18:37:46 +00:00
site Enforce ES2 limits on indexing expressions (in runtime effects) 2021-01-15 22:49:27 +00:00
specs Fix CanvasKit generated documentation to work with emscripten 1.39.16. 2020-05-27 12:23:32 +00:00
src use fourth arg in store128 2021-01-20 00:12:06 +00:00
tests Reland "Support indexing by loop variables in SkVMGenerator" 2021-01-19 22:33:46 +00:00
third_party roll gn to latest 2021-01-15 15:34:00 +00:00
tools Reland "Test all YUVA image factories with different encoded origins." 2021-01-19 21:11:05 +00:00
.bazelignore bazel baby steps 2020-09-14 15:18:32 +00:00
.clang-format Disable BinPackParameters in .clang-format 2020-03-27 14:32:40 +00:00
.clang-tidy Disable ClangTidy namespace comments for short blocks. 2020-08-24 14:01:22 +00:00
.gitignore bazel baby steps 2020-09-14 15:18:32 +00:00
.gn Pre-emptive fix for upcoming ANGLE change. 2021-01-08 17:23:52 +00:00
AUTHORS Fix issues with latest GN 2020-11-07 13:55:45 +00:00
BUILD.bazel bazel baby steps 2020-09-14 15:18:32 +00:00
BUILD.gn roll gn to latest 2021-01-15 15:34:00 +00:00
codereview.settings
CONTRIBUTING
CQ_COMMITTERS
DEPS Fix decoding gifs with too-big-bounds 2021-01-19 18:46:55 +00:00
go.mod Update go.skia.org/infra in go.mod/go.sum 2020-12-21 20:31:07 +00:00
go.sum Update go.skia.org/infra in go.mod/go.sum 2020-12-21 20:31:07 +00:00
LICENSE
OWNERS
PRESUBMIT.py Add presubmit check for git conflict markers 2020-12-16 17:51:16 +00:00
public.bzl [canvaskit] Remove custom_embedded_factory from G3 build 2020-12-23 12:59:36 +00:00
README
README.chromium
RELEASE_NOTES.txt Deprecate (and ignore) SkAndroidCodec::ExifOrientation 2021-01-15 23:08:46 +00:00
whitespace.txt Whitespace change to re-trigger Mac/iOS tests 2020-02-23 20:55:01 +00:00
WORKSPACE.bazel bazel baby steps 2020-09-14 15:18:32 +00:00

Skia is a complete 2D graphic library for drawing Text, Geometries, and Images.

See full details, and build instructions, at https://skia.org.