aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/TransferPixelsTest.cpp
diff options
context:
space:
mode:
authorGravatar Jim Van Verth <jvanverth@google.com>2017-06-21 15:50:46 +0000
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-06-21 15:50:51 +0000
commitce57552e11776c8f93798c3a2244fa378604b4af (patch)
treece812560eec646ab8335f25d57dfec1df7db5c4e /tests/TransferPixelsTest.cpp
parentf7037d003c936f59e4d02244821e223c2e7af8e8 (diff)
Revert "Clean up onTransferPixels"
This reverts commit f7037d003c936f59e4d02244821e223c2e7af8e8. Reason for revert: Issues on test bots. Original change's description: > Clean up onTransferPixels > > Bug: skia:5126 > Change-Id: I323c50e7854744302007b4ae7bd25e5742c14cbc > Reviewed-on: https://skia-review.googlesource.com/19055 > Commit-Queue: Jim Van Verth <jvanverth@google.com> > Reviewed-by: Greg Daniel <egdaniel@google.com> TBR=egdaniel@google.com,jvanverth@google.com,bsalomon@google.com,brianosman@google.com Change-Id: I923fda4d5cd8c2896fb347f9b2695b7f83d9137b No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia:5126 Reviewed-on: https://skia-review.googlesource.com/20444 Reviewed-by: Jim Van Verth <jvanverth@google.com> Commit-Queue: Jim Van Verth <jvanverth@google.com>
Diffstat (limited to 'tests/TransferPixelsTest.cpp')
-rwxr-xr-xtests/TransferPixelsTest.cpp173
1 files changed, 0 insertions, 173 deletions
diff --git a/tests/TransferPixelsTest.cpp b/tests/TransferPixelsTest.cpp
deleted file mode 100755
index 2e75decb47..0000000000
--- a/tests/TransferPixelsTest.cpp
+++ /dev/null
@@ -1,173 +0,0 @@
-/*
- * Copyright 2017 Google Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-// This is a GPU-backend specific test. It relies on static intializers to work
-
-#include "SkTypes.h"
-
-#if SK_SUPPORT_GPU && SK_ALLOW_STATIC_GLOBAL_INITIALIZERS
-
-#include "GrContextFactory.h"
-#include "GrContextPriv.h"
-#include "GrGpu.h"
-#include "GrResourceProvider.h"
-#include "GrSurfaceProxy.h"
-#include "GrTexture.h"
-#include "GrTest.h"
-#include "SkGr.h"
-#include "SkSurface.h"
-#include "Test.h"
-
-using sk_gpu_test::GrContextFactory;
-
-void fill_transfer_data(int left, int top, int width, int height, int bufferWidth,
- GrColor* data) {
-
- // build red-green gradient
- for (int j = top; j < top + height; ++j) {
- for (int i = left; i < left + width; ++i) {
- unsigned int red = (unsigned int)(256.f*((i - left) / (float)width));
- unsigned int green = (unsigned int)(256.f*((j - top) / (float)height));
- data[i + j*bufferWidth] = GrColorPackRGBA(red - (red>>8),
- green - (green>>8), 0xff, 0xff);
- }
- }
-}
-
-bool does_full_buffer_contain_correct_values(GrColor* srcBuffer,
- GrColor* dstBuffer,
- int width,
- int height,
- int bufferWidth,
- int bufferHeight,
- GrSurfaceOrigin origin) {
- GrColor* srcPtr = srcBuffer;
- bool bottomUp = SkToBool(kBottomLeft_GrSurfaceOrigin == origin);
- GrColor* dstPtr = bottomUp ? dstBuffer + bufferWidth*(bufferHeight-1) : dstBuffer;
- int dstIncrement = bottomUp ? -bufferWidth : +bufferWidth;
-
- for (int j = 0; j < height; ++j) {
- for (int i = 0; i < width; ++i) {
- if (srcPtr[i] != dstPtr[i]) {
- return false;
- }
- }
- srcPtr += bufferWidth;
- dstPtr += dstIncrement;
- }
- return true;
-}
-
-void basic_transfer_test(skiatest::Reporter* reporter, GrContext* context, GrPixelConfig config,
- GrSurfaceOrigin origin, bool renderTarget) {
- // set up the data
- const int kTextureWidth = 16;
- const int kTextureHeight = 16;
- const int kBufferWidth = 20;
- const int kBufferHeight = 16;
- size_t rowBytes = kBufferWidth * sizeof(GrColor);
- SkAutoTMalloc<GrColor> srcBuffer(kBufferWidth*kBufferHeight);
- SkAutoTMalloc<GrColor> dstBuffer(kBufferWidth*kBufferHeight);
-
- fill_transfer_data(0, 0, kTextureWidth, kTextureHeight, kBufferWidth, srcBuffer.get());
-
- // create and fill transfer buffer
- size_t size = GrBytesPerPixel(config)*kBufferWidth*kBufferWidth;
- uint32_t bufferFlags = GrResourceProvider::kNoPendingIO_Flag;
- GrBuffer* buffer = context->resourceProvider()->createBuffer(size,
- kXferCpuToGpu_GrBufferType,
- kDynamic_GrAccessPattern,
- bufferFlags);
- void* data = buffer->map();
- memcpy(data, srcBuffer.get(), size);
- buffer->unmap();
-
- // create texture
- GrSurfaceDesc desc;
- desc.fConfig = config;
- desc.fFlags = renderTarget ? kRenderTarget_GrSurfaceFlag : kNone_GrSurfaceFlags;
- desc.fOrigin = origin;
- desc.fWidth = kTextureWidth;
- desc.fHeight = kTextureHeight;
- desc.fSampleCnt = 0;
- sk_sp<GrTexture> tex = context->resourceProvider()->createTexture(desc, SkBudgeted::kNo);
-
- //////////////////////////
- // transfer full data
-
- bool result;
- result = context->getGpu()->transferPixels(tex.get(), 0, 0, kTextureWidth, kTextureHeight,
- config, buffer, 0, rowBytes);
- REPORTER_ASSERT(reporter, result);
-
- result = context->getGpu()->readPixels(tex.get(), 0, 0, kTextureWidth, kTextureHeight, config,
- dstBuffer.get(), rowBytes);
- REPORTER_ASSERT(reporter, result);
- REPORTER_ASSERT(reporter, does_full_buffer_contain_correct_values(srcBuffer,
- dstBuffer,
- kTextureWidth,
- kTextureHeight,
- kBufferWidth,
- kBufferHeight,
- origin));
- //////////////////////////
- // transfer partial data
-
- const int kLeft = 2;
- const int kTop = 10;
- const int kWidth = 10;
- const int kHeight = 2;
-
- // change color of subrectangle
- fill_transfer_data(kLeft, kTop, kWidth, kHeight, kBufferWidth, srcBuffer.get());
- data = buffer->map();
- memcpy(data, srcBuffer.get(), size);
- buffer->unmap();
-
- size_t offset = sizeof(GrColor)*(kTop*kBufferWidth + kLeft);
- result = context->getGpu()->transferPixels(tex.get(), kLeft, kTop, kWidth, kHeight, config,
- buffer, offset, rowBytes);
- REPORTER_ASSERT(reporter, result);
-
- memset(dstBuffer, 0, kWidth*kHeight*sizeof(GrColor));
-
- result = context->getGpu()->readPixels(tex.get(), 0, 0, kTextureWidth, kTextureHeight, config,
- dstBuffer.get(), rowBytes);
- REPORTER_ASSERT(reporter, result);
-
- REPORTER_ASSERT(reporter, does_full_buffer_contain_correct_values(srcBuffer,
- dstBuffer,
- kTextureWidth,
- kTextureHeight,
- kBufferWidth,
- kBufferHeight,
- origin));
-}
-
-DEF_GPUTEST_FOR_RENDERING_CONTEXTS(TransferPixelsTest, reporter, ctxInfo) {
- // RGBA
- basic_transfer_test(reporter, ctxInfo.grContext(), kRGBA_8888_GrPixelConfig,
- kTopLeft_GrSurfaceOrigin, false);
- basic_transfer_test(reporter, ctxInfo.grContext(), kRGBA_8888_GrPixelConfig,
- kTopLeft_GrSurfaceOrigin, true);
- basic_transfer_test(reporter, ctxInfo.grContext(), kRGBA_8888_GrPixelConfig,
- kBottomLeft_GrSurfaceOrigin, false);
- basic_transfer_test(reporter, ctxInfo.grContext(), kRGBA_8888_GrPixelConfig,
- kBottomLeft_GrSurfaceOrigin, true);
-
- // BGRA
- basic_transfer_test(reporter, ctxInfo.grContext(), kBGRA_8888_GrPixelConfig,
- kTopLeft_GrSurfaceOrigin, false);
- basic_transfer_test(reporter, ctxInfo.grContext(), kBGRA_8888_GrPixelConfig,
- kTopLeft_GrSurfaceOrigin, true);
- basic_transfer_test(reporter, ctxInfo.grContext(), kBGRA_8888_GrPixelConfig,
- kBottomLeft_GrSurfaceOrigin, false);
- basic_transfer_test(reporter, ctxInfo.grContext(), kBGRA_8888_GrPixelConfig,
- kBottomLeft_GrSurfaceOrigin, true);
-}
-
-#endif