aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/shaders
diff options
context:
space:
mode:
authorGravatar Mike Klein <mtklein@chromium.org>2018-04-16 12:56:24 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2018-04-16 23:42:00 +0000
commitf946b41643e049f3b81f40316373ad22e1518818 (patch)
treedcdf90635953d443c8c5c0585f179c85f2cb457e /src/shaders
parent1d4af54a7b61badf2a7e6c3730b2ef01b9cd1fa2 (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.cpp16
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();
}