aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/DeferredDisplayListTest.cpp
diff options
context:
space:
mode:
authorGravatar Greg Daniel <egdaniel@google.com>2018-06-07 15:07:50 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2018-06-07 19:35:01 +0000
commitcd2c3f9055452d413d6be7ea6dc63fd1922fe994 (patch)
treef5040726b08c094f547a85b957814e561b5ba550 /tests/DeferredDisplayListTest.cpp
parentc174cc675cbc190c43372d53fb89711663ac945f (diff)
Require mips to be allocated at texture creation time and disable late allocations.
If we get a non-mipped texture for a draw that wants to be use mip map filter, we will copy the texture into a new mipped texture. Clean up of unused code in the GPU backends for reallocating for mips will be done in a follow up CL. Bug: skia: Change-Id: Idab588c1abf4bbbf7eeceb3727d500e5df274188 Reviewed-on: https://skia-review.googlesource.com/132830 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Greg Daniel <egdaniel@google.com>
Diffstat (limited to 'tests/DeferredDisplayListTest.cpp')
-rw-r--r--tests/DeferredDisplayListTest.cpp41
1 files changed, 23 insertions, 18 deletions
diff --git a/tests/DeferredDisplayListTest.cpp b/tests/DeferredDisplayListTest.cpp
index 996e04fa79..697f00328f 100644
--- a/tests/DeferredDisplayListTest.cpp
+++ b/tests/DeferredDisplayListTest.cpp
@@ -846,26 +846,31 @@ DEF_GPUTEST_FOR_GL_RENDERING_CONTEXTS(DDLTextureFlagsTest, reporter, ctxInfo) {
SkDeferredDisplayListRecorder recorder(characterization);
for (GrGLenum target : { GR_GL_TEXTURE_EXTERNAL, GR_GL_TEXTURE_RECTANGLE, GR_GL_TEXTURE_2D } ) {
- GrBackendFormat format = GrBackendFormat::MakeGL(GR_GL_RGBA8, target);
-
- sk_sp<SkImage> image = recorder.makePromiseTexture(format, 32, 32, GrMipMapped::kYes,
- kTopLeft_GrSurfaceOrigin,
- kRGBA_8888_SkColorType,
- kPremul_SkAlphaType, nullptr,
- dummy_fulfill_proc,
- dummy_release_proc,
- dummy_done_proc,
- nullptr);
- REPORTER_ASSERT(reporter, image);
+ for (auto mipMapped : { GrMipMapped::kNo, GrMipMapped::kYes }) {
+ GrBackendFormat format = GrBackendFormat::MakeGL(GR_GL_RGBA8, target);
+
+ sk_sp<SkImage> image = recorder.makePromiseTexture(format, 32, 32, mipMapped,
+ kTopLeft_GrSurfaceOrigin,
+ kRGBA_8888_SkColorType,
+ kPremul_SkAlphaType, nullptr,
+ dummy_fulfill_proc,
+ dummy_release_proc,
+ dummy_done_proc,
+ nullptr);
+ if (GR_GL_TEXTURE_2D != target && mipMapped == GrMipMapped::kYes) {
+ REPORTER_ASSERT(reporter, !image);
+ continue;
+ }
+ REPORTER_ASSERT(reporter, image);
- GrTextureProxy* backingProxy = ((SkImage_Gpu*) image.get())->peekProxy();
+ GrTextureProxy* backingProxy = ((SkImage_Gpu*) image.get())->peekProxy();
- if (GR_GL_TEXTURE_2D == target) {
- REPORTER_ASSERT(reporter, !backingProxy->texPriv().doesNotSupportMipMaps());
- REPORTER_ASSERT(reporter, !backingProxy->texPriv().isClampOnly());
- } else {
- REPORTER_ASSERT(reporter, backingProxy->texPriv().doesNotSupportMipMaps());
- REPORTER_ASSERT(reporter, backingProxy->texPriv().isClampOnly());
+ REPORTER_ASSERT(reporter, backingProxy->mipMapped() == mipMapped);
+ if (GR_GL_TEXTURE_2D == target) {
+ REPORTER_ASSERT(reporter, !backingProxy->texPriv().isClampOnly());
+ } else {
+ REPORTER_ASSERT(reporter, backingProxy->texPriv().isClampOnly());
+ }
}
}
}