aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/WritePixelsTest.cpp43
1 files changed, 40 insertions, 3 deletions
diff --git a/tests/WritePixelsTest.cpp b/tests/WritePixelsTest.cpp
index f5cdddccd0..e26e134b2d 100644
--- a/tests/WritePixelsTest.cpp
+++ b/tests/WritePixelsTest.cpp
@@ -14,6 +14,7 @@
#if SK_SUPPORT_GPU
#include "GrContext.h"
+#include "GrGpu.h"
#endif
#include <initializer_list>
@@ -410,9 +411,45 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(WritePixels_Gpu, reporter, ctxInfo) {
const SkImageInfo ii = SkImageInfo::MakeN32Premul(DEV_W, DEV_H);
for (auto& origin : { kTopLeft_GrSurfaceOrigin, kBottomLeft_GrSurfaceOrigin }) {
- sk_sp<SkSurface> surface(SkSurface::MakeRenderTarget(ctxInfo.grContext(), SkBudgeted::kNo,
- ii, 0, origin, nullptr));
- test_write_pixels(reporter, surface.get());
+ for (int sampleCnt : {0, 4}) {
+ sk_sp<SkSurface> surface(SkSurface::MakeRenderTarget(ctxInfo.grContext(),
+ SkBudgeted::kNo, ii, sampleCnt,
+ origin, nullptr));
+ if (!surface && sampleCnt > 0) {
+ // Some platforms don't support MSAA
+ continue;
+ }
+ test_write_pixels(reporter, surface.get());
+ }
+ }
+}
+
+DEF_GPUTEST_FOR_RENDERING_CONTEXTS(WritePixelsNonTexture_Gpu, reporter, ctxInfo) {
+ GrContext* context = ctxInfo.grContext();
+
+ for (auto& origin : { kTopLeft_GrSurfaceOrigin, kBottomLeft_GrSurfaceOrigin }) {
+ for (int sampleCnt : {0, 4}) {
+ GrBackendTextureDesc desc;
+ desc.fConfig = kSkia8888_GrPixelConfig;
+ desc.fWidth = DEV_W;
+ desc.fHeight = DEV_H;
+ desc.fFlags = kRenderTarget_GrBackendTextureFlag;
+ desc.fSampleCnt = sampleCnt;
+ desc.fOrigin = origin;
+ desc.fTextureHandle = context->getGpu()->createTestingOnlyBackendTexture(
+ nullptr, DEV_W, DEV_H, kSkia8888_GrPixelConfig, true);
+ sk_sp<SkSurface> surface(SkSurface::MakeFromBackendTextureAsRenderTarget(context, desc,
+ nullptr));
+ if (!surface) {
+ context->getGpu()->deleteTestingOnlyBackendTexture(desc.fTextureHandle);
+ continue;
+ }
+
+ test_write_pixels(reporter, surface.get());
+
+ surface.reset();
+ context->getGpu()->deleteTestingOnlyBackendTexture(desc.fTextureHandle);
+ }
}
}
#endif