aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Robert Phillips <robertphillips@google.com>2017-10-20 17:26:51 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-10-20 22:03:35 +0000
commitb350f1c075a35915f30a69300d263aeb1a9ed4f0 (patch)
tree77de8187e924f4e45350c0eba2bbaefeec2ad269
parent2b2936e75c79c61ff04082f5ae7a9738c439caac (diff)
Be considerate of GPUs lacking npot support when testing GrSimpleTextureEffect
Change-Id: I3b03c621d78971e1ed62b61d0466a6ac8132be79 Reviewed-on: https://skia-review.googlesource.com/62465 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
-rw-r--r--src/gpu/effects/GrSimpleTextureEffect.cpp7
-rw-r--r--src/gpu/effects/GrSimpleTextureEffect.fp7
2 files changed, 14 insertions, 0 deletions
diff --git a/src/gpu/effects/GrSimpleTextureEffect.cpp b/src/gpu/effects/GrSimpleTextureEffect.cpp
index c0dec230f7..d1438df4e9 100644
--- a/src/gpu/effects/GrSimpleTextureEffect.cpp
+++ b/src/gpu/effects/GrSimpleTextureEffect.cpp
@@ -70,6 +70,13 @@ std::unique_ptr<GrFragmentProcessor> GrSimpleTextureEffect::TestCreate(
: GrProcessorUnitTest::kAlphaTextureIdx;
GrSamplerState::WrapMode wrapModes[2];
GrTest::TestWrapModes(testData->fRandom, wrapModes);
+ if (!testData->caps()->npotTextureTileSupport()) {
+ // Performing repeat sampling on npot textures will cause asserts on HW
+ // that lacks support.
+ wrapModes[0] = GrSamplerState::WrapMode::kClamp;
+ wrapModes[1] = GrSamplerState::WrapMode::kClamp;
+ }
+
GrSamplerState params(wrapModes, testData->fRandom->nextBool()
? GrSamplerState::Filter::kBilerp
: GrSamplerState::Filter::kNearest);
diff --git a/src/gpu/effects/GrSimpleTextureEffect.fp b/src/gpu/effects/GrSimpleTextureEffect.fp
index b5bc49fb97..18ce3a9387 100644
--- a/src/gpu/effects/GrSimpleTextureEffect.fp
+++ b/src/gpu/effects/GrSimpleTextureEffect.fp
@@ -60,6 +60,13 @@ void main() {
: GrProcessorUnitTest::kAlphaTextureIdx;
GrSamplerState::WrapMode wrapModes[2];
GrTest::TestWrapModes(testData->fRandom, wrapModes);
+ if (!testData->caps()->npotTextureTileSupport()) {
+ // Performing repeat sampling on npot textures will cause asserts on HW
+ // that lacks support.
+ wrapModes[0] = GrSamplerState::WrapMode::kClamp;
+ wrapModes[1] = GrSamplerState::WrapMode::kClamp;
+ }
+
GrSamplerState params(wrapModes, testData->fRandom->nextBool()
? GrSamplerState::Filter::kBilerp
: GrSamplerState::Filter::kNearest);