diff options
author | Timothy Liang <timliang@google.com> | 2018-07-19 09:58:00 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2018-07-19 19:26:15 +0000 |
commit | a8046af0b0501e53726c01fa5ec2ec6590c79a82 (patch) | |
tree | 600e9ff937e325da8b1ee56f0b3da819ae234433 | |
parent | 97ae0c89025dfd791047f5701e57d58da37c125c (diff) |
implemented onWritePixels and related tests for metal gpu backend
Bug: skia:
Change-Id: Iab8bc8611a9de8afcf0eaeb58a8ef46fdc38d4f1
Reviewed-on: https://skia-review.googlesource.com/140571
Commit-Queue: Timothy Liang <timliang@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
-rw-r--r-- | gn/tests.gni | 2 | ||||
-rw-r--r-- | src/gpu/mtl/GrMtlGpu.h | 4 | ||||
-rw-r--r-- | src/gpu/mtl/GrMtlGpu.mm | 19 | ||||
-rw-r--r-- | tests/GrUploadPixelsTests.cpp (renamed from tests/VkUploadPixelsTests.cpp) | 7 |
4 files changed, 22 insertions, 10 deletions
diff --git a/gn/tests.gni b/gn/tests.gni index 6b08b8258a..b78cc57666 100644 --- a/gn/tests.gni +++ b/gn/tests.gni @@ -105,6 +105,7 @@ tests_sources = [ "$_tests/GrTestingBackendTextureUploadTest.cpp", "$_tests/GrTextureMipMapInvalidationTest.cpp", "$_tests/GrTRecorderTest.cpp", + "$_tests/GrUploadPixelsTests.cpp", "$_tests/HashTest.cpp", "$_tests/HighContrastFilterTest.cpp", "$_tests/HSVRoundTripTest.cpp", @@ -277,7 +278,6 @@ tests_sources = [ "$_tests/VerticesTest.cpp", "$_tests/VkBackendSurfaceTest.cpp", "$_tests/VkMakeCopyPipelineTest.cpp", - "$_tests/VkUploadPixelsTests.cpp", "$_tests/VkWrapTests.cpp", "$_tests/VptrTest.cpp", "$_tests/WindowRectanglesTest.cpp", diff --git a/src/gpu/mtl/GrMtlGpu.h b/src/gpu/mtl/GrMtlGpu.h index 1c25dedbac..054f1e6842 100644 --- a/src/gpu/mtl/GrMtlGpu.h +++ b/src/gpu/mtl/GrMtlGpu.h @@ -113,9 +113,7 @@ private: void* buffer, size_t rowBytes) override; bool onWritePixels(GrSurface*, int left, int top, int width, int height, GrColorType, - const GrMipLevel[], int) override { - return false; - } + const GrMipLevel[], int mipLevelCount) override; bool onTransferPixels(GrTexture*, int left, int top, int width, int height, diff --git a/src/gpu/mtl/GrMtlGpu.mm b/src/gpu/mtl/GrMtlGpu.mm index 892e4bc5a1..e4c7c64e5f 100644 --- a/src/gpu/mtl/GrMtlGpu.mm +++ b/src/gpu/mtl/GrMtlGpu.mm @@ -527,6 +527,25 @@ void GrMtlGpu::testingOnly_flushGpuAndSync() { } #endif // GR_TEST_UTILS +bool GrMtlGpu::onWritePixels(GrSurface* surface, int left, int top, int width, int height, + GrColorType srcColorType, const GrMipLevel texels[], + int mipLevelCount) { + GrMtlTexture* mtlTexture = static_cast<GrMtlTexture*>(surface->asTexture()); + if (!mtlTexture) { + return false; + } + if (!mipLevelCount) { + return false; + } +#ifdef SK_DEBUG + for (int i = 0; i < mipLevelCount; i++) { + SkASSERT(texels[i].fPixels); + } +#endif + return this->uploadToTexture(mtlTexture, left, top, width, height, srcColorType, texels, + mipLevelCount); +} + bool GrMtlGpu::onReadPixels(GrSurface* surface, int left, int top, int width, int height, GrColorType dstColorType, void* buffer, size_t rowBytes) { SkASSERT(surface); diff --git a/tests/VkUploadPixelsTests.cpp b/tests/GrUploadPixelsTests.cpp index b13de41571..88a6bc14b6 100644 --- a/tests/VkUploadPixelsTests.cpp +++ b/tests/GrUploadPixelsTests.cpp @@ -9,8 +9,6 @@ #include "SkTypes.h" -#if defined(SK_VULKAN) - #include "GrContextFactory.h" #include "GrContextPriv.h" #include "GrSurfaceProxy.h" @@ -19,7 +17,6 @@ #include "SkGr.h" #include "Test.h" #include "TestUtils.h" -#include "vk/GrVkGpu.h" using sk_gpu_test::GrContextFactory; @@ -94,7 +91,7 @@ void basic_texture_test(skiatest::Reporter* reporter, GrContext* context, SkColo } } -DEF_GPUTEST_FOR_VULKAN_CONTEXT(VkUploadPixelsTests, reporter, ctxInfo) { +DEF_GPUTEST_FOR_RENDERING_CONTEXTS(GrUploadPixelsTests, reporter, ctxInfo) { // RGBA basic_texture_test(reporter, ctxInfo.grContext(), kRGBA_8888_SkColorType, false); basic_texture_test(reporter, ctxInfo.grContext(), kRGBA_8888_SkColorType, true); @@ -103,5 +100,3 @@ DEF_GPUTEST_FOR_VULKAN_CONTEXT(VkUploadPixelsTests, reporter, ctxInfo) { basic_texture_test(reporter, ctxInfo.grContext(), kBGRA_8888_SkColorType, false); basic_texture_test(reporter, ctxInfo.grContext(), kBGRA_8888_SkColorType, true); } - -#endif |