From 44b61204d9f5681b9474db017577d56f42a32d66 Mon Sep 17 00:00:00 2001 From: Brian Osman Date: Thu, 1 Mar 2018 10:49:26 -0500 Subject: Add 1010102 support to Ganesh Adds gl1010102, gles1010102, vk1010102, and mtl1010102 configs to DM. This uses the same saveLayer approach as CPU, switching to 8888 so that we have enough alpha precision. Change-Id: I9f5b63747ec01031c8db97dadfc42f77e4863ccb Reviewed-on: https://skia-review.googlesource.com/110500 Reviewed-by: Brian Salomon Commit-Queue: Brian Osman --- tests/SurfaceTest.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'tests/SurfaceTest.cpp') diff --git a/tests/SurfaceTest.cpp b/tests/SurfaceTest.cpp index ab91061094..35b72a972e 100644 --- a/tests/SurfaceTest.cpp +++ b/tests/SurfaceTest.cpp @@ -932,6 +932,7 @@ static void test_surface_creation_and_snapshot_with_color_space( skiatest::Reporter* reporter, const char* prefix, bool f16Support, + bool supports1010102, std::function(const SkImageInfo&)> surfaceMaker) { auto srgbColorSpace = SkColorSpace::MakeSRGB(); @@ -960,6 +961,7 @@ static void test_surface_creation_and_snapshot_with_color_space( { kRGBA_F16_SkColorType, oddColorSpace, false, "F16-odd" }, { kRGB_565_SkColorType, srgbColorSpace, false, "565-srgb" }, { kAlpha_8_SkColorType, srgbColorSpace, false, "A8-srgb" }, + { kRGBA_1010102_SkColorType, nullptr, true, "1010102-nullptr" }, }; for (auto& testConfig : testConfigs) { @@ -970,7 +972,8 @@ static void test_surface_creation_and_snapshot_with_color_space( // For some GPU contexts (eg ANGLE), we don't have f16 support, so we should fail to create // any surface of that type: bool shouldWork = testConfig.fShouldWork && - (f16Support || kRGBA_F16_SkColorType != testConfig.fColorType); + (f16Support || kRGBA_F16_SkColorType != testConfig.fColorType) && + (supports1010102 || kRGBA_1010102_SkColorType != testConfig.fColorType); auto surface(surfaceMaker(info)); REPORTER_ASSERT(reporter, SkToBool(surface) == shouldWork, fullTestName.c_str()); @@ -990,7 +993,8 @@ DEF_TEST(SurfaceCreationWithColorSpace, reporter) { return SkSurface::MakeRaster(info); }; - test_surface_creation_and_snapshot_with_color_space(reporter, "raster", true, surfaceMaker); + test_surface_creation_and_snapshot_with_color_space(reporter, "raster", true, true, + surfaceMaker); } #if SK_SUPPORT_GPU @@ -998,11 +1002,13 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(SurfaceCreationWithColorSpace_Gpu, reporter, GrContext* context = ctxInfo.grContext(); bool f16Support = context->caps()->isConfigRenderable(kRGBA_half_GrPixelConfig); + bool supports1010102 = context->caps()->isConfigRenderable(kRGBA_1010102_GrPixelConfig); auto surfaceMaker = [context](const SkImageInfo& info) { return SkSurface::MakeRenderTarget(context, SkBudgeted::kNo, info); }; - test_surface_creation_and_snapshot_with_color_space(reporter, "gpu", f16Support, surfaceMaker); + test_surface_creation_and_snapshot_with_color_space(reporter, "gpu", f16Support, + supports1010102, surfaceMaker); std::vector backendTextures; auto wrappedSurfaceMaker = [ context, &backendTextures ](const SkImageInfo& info) { @@ -1028,7 +1034,7 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(SurfaceCreationWithColorSpace_Gpu, reporter, }; test_surface_creation_and_snapshot_with_color_space(reporter, "wrapped", f16Support, - wrappedSurfaceMaker); + supports1010102, wrappedSurfaceMaker); context->flush(); -- cgit v1.2.3