diff options
author | Mike Klein <mtklein@chromium.org> | 2018-04-16 12:56:24 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2018-04-16 23:42:00 +0000 |
commit | f946b41643e049f3b81f40316373ad22e1518818 (patch) | |
tree | dcdf90635953d443c8c5c0585f179c85f2cb457e /src/shaders | |
parent | 1d4af54a7b61badf2a7e6c3730b2ef01b9cd1fa2 (diff) |
low-hanging bilerp_clamp_8888 wins
- support sampling bgra too
- lowp impl
Bug: skia:7810
Change-Id: I21db805483f612024802f2b508c140c42a029c54
Reviewed-on: https://skia-review.googlesource.com/121582
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Diffstat (limited to 'src/shaders')
-rw-r--r-- | src/shaders/SkImageShader.cpp | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/src/shaders/SkImageShader.cpp b/src/shaders/SkImageShader.cpp index 1838e9e498..8ef647f5c9 100644 --- a/src/shaders/SkImageShader.cpp +++ b/src/shaders/SkImageShader.cpp @@ -416,13 +416,19 @@ bool SkImageShader::onAppendStages(const StageRec& rec) const { return true; }; - if (quality == kLow_SkFilterQuality && - info.colorType() == kRGBA_8888_SkColorType && - fTileModeX == SkShader::kClamp_TileMode && - fTileModeY == SkShader::kClamp_TileMode && - !is_srgb) { + // We've got a fast path for 8888 bilinear clamp/clamp non-color-managed sampling. + auto ct = info.colorType(); + if (true + && (ct == kRGBA_8888_SkColorType || ct == kBGRA_8888_SkColorType) + && quality == kLow_SkFilterQuality + && fTileModeX == SkShader::kClamp_TileMode + && fTileModeY == SkShader::kClamp_TileMode + && !is_srgb) { p->append(SkRasterPipeline::bilerp_clamp_8888, gather); + if (ct == kBGRA_8888_SkColorType) { + p->append(SkRasterPipeline::swap_rb); + } return append_misc(); } |