Go to file
Mike Klein 29dbae9acf same 16->8 bit packing trick for SSE2/SSE4.1
It's funny how now that I'm on a machine that doesn't support AVX2,
it's suddenly important for me that pack() is optimized for SSE!

This is basically the same as this morning, without any weird AVX2
pack ordering issues.  This replaces something like

    movdqa     2300(%rip), %xmm0
    pshufb     %xmm0, %xmm3
    pshufb     %xmm0, %xmm2
    punpcklqdq %xmm3, %xmm2
    (This is SSE4.1; the SSE2 version is worse.)

with

    psrlw    $8, %xmm3
    psrlw    $8, %xmm2
    packuswb %xmm3, %xmm2
    (SSE2 and SSE4.1 both.)

It's always nice to not need to load a shuffle mask out of memory.

Change-Id: I56fb30b31fcedc0ee84a4a71c483a597c8dc1622
Reviewed-on: https://skia-review.googlesource.com/30583
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2017-08-03 16:59:37 +00:00
animations first cut at a checkbox 2009-10-21 19:41:10 +00:00
bench funnel all constant colors through append_constant_color() 2017-08-03 15:37:37 +00:00
bin add a Win/Clang build bot 2017-07-31 19:53:51 +00:00
debugger Add Make[backend] calls for creating GrContexts 2017-07-25 14:33:03 +00:00
dm Add missing newline to initial DM output 2017-08-03 16:53:38 +00:00
docs fix self references 2017-07-31 16:49:12 +00:00
example Add Make[backend] calls for creating GrContexts 2017-07-25 14:33:03 +00:00
experimental Add Make[backend] calls for creating GrContexts 2017-07-25 14:33:03 +00:00
fuzz use unique_ptr for codec factories 2017-07-25 15:35:23 +00:00
gm Fix sweep_tiling GM sizing 2017-08-02 14:23:36 +00:00
gn Tell clang/win to emulate MSVC 2015 2017-07-31 20:58:55 +00:00
include Add a private API for writing the clip to the stencil 2017-08-02 19:56:07 +00:00
infra Chromium lkgr is no longer updated. Use lkcr 2017-08-03 12:41:36 +00:00
platform_tools Enable ios on Raspberry Pi 2017-04-25 16:56:41 +00:00
resources Fix double delete in SkBmpCodec 2017-07-14 16:25:54 +00:00
samplecode clang on windows support 2017-07-31 18:39:23 +00:00
site Fix typo XPS to SVG 2017-08-02 20:53:36 +00:00
src same 16->8 bit packing trick for SSE2/SSE4.1 2017-08-03 16:59:37 +00:00
tests funnel all constant colors through append_constant_color() 2017-08-03 15:37:37 +00:00
third_party link libwebpmux in system-webp builds 2017-08-01 14:33:38 +00:00
tools Chromium lkgr is no longer updated. Use lkcr 2017-08-03 12:41:36 +00:00
.clang-format Mark flatennable macros as block beginning/ending in .clang-format 2017-01-09 15:31:36 +00:00
.gitignore clang on windows support 2017-07-31 18:39:23 +00:00
.gn Basic standalone GN configs. 2016-07-21 12:25:45 -07:00
AUTHORS Added support for building for tvOS 2017-03-14 22:55:04 +00:00
BUILD.gn 8-bit hacking 2017-08-03 01:54:58 +00:00
codereview.settings Make uploading to Gerrit the default for Skia 2016-11-09 19:07:56 +00:00
CONTRIBUTING Fix references to https://sites.google.com/site/skiadocs/. 2015-02-03 13:12:54 -02:00
CQ_COMMITTERS Moved committer list to chrome-infra-auth and deleted it from the repo 2015-09-02 13:37:54 -07:00
DEPS Roll skia/third_party/externals/angle2/ 6c58b0620..a0bcc50be (2 commits) 2017-08-03 00:23:26 +00:00
Doxyfile Make the housekeeper upload doxygen to a newer bucket 2016-10-04 13:23:57 -07:00
LICENSE BUG=skia:5602 2016-09-02 11:19:34 -07:00
PRESUBMIT.py Update CQ extra trybots after switch to Debian 2017-06-29 19:35:40 +00:00
public.bzl exclude SkJumper_stages_8bit.cpp from Google3 build 2017-08-03 04:56:37 +00:00
README Fix references to https://sites.google.com/site/skiadocs/. 2015-02-03 13:12:54 -02:00
README.chromium Update README.chromium. 2015-06-11 13:19:24 -07:00
whitespace.txt Revert "Revert "Make GrAtlasTextOp a non-legacy GrMeshDrawOp"" 2017-07-19 12:17:34 +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.