Index: tools/skpdiff/SkCLImageDiffer.cpp |
diff --git a/tools/skpdiff/SkCLImageDiffer.cpp b/tools/skpdiff/SkCLImageDiffer.cpp |
deleted file mode 100644 |
index f181682db5bb9e4e50880dee296ca2acb7c764ac..0000000000000000000000000000000000000000 |
--- a/tools/skpdiff/SkCLImageDiffer.cpp |
+++ /dev/null |
@@ -1,122 +0,0 @@ |
-/* |
- * Copyright 2013 Google Inc. |
- * |
- * Use of this source code is governed by a BSD-style license that can be |
- * found in the LICENSE file. |
- */ |
- |
-#include <cstring> |
- |
-#include "SkBitmap.h" |
-#include "SkStream.h" |
- |
-#include "SkCLImageDiffer.h" |
-#include "skpdiff_util.h" |
- |
-SkCLImageDiffer::SkCLImageDiffer() { |
- fIsGood = false; |
-} |
- |
-bool SkCLImageDiffer::init(cl_device_id device, cl_context context) { |
- fContext = context; |
- fDevice = device; |
- |
- cl_int queueErr; |
- fCommandQueue = clCreateCommandQueue(fContext, fDevice, 0, &queueErr); |
- if (CL_SUCCESS != queueErr) { |
- SkDebugf("Command queue creation failed: %s\n", cl_error_to_string(queueErr)); |
- fIsGood = false; |
- return false; |
- } |
- |
- fIsGood = this->onInit(); |
- return fIsGood; |
-} |
- |
-bool SkCLImageDiffer::loadKernelFile(const char file[], const char name[], cl_kernel* kernel) { |
- // Open the kernel source file |
- SkFILEStream sourceStream(file); |
- if (!sourceStream.isValid()) { |
- SkDebugf("Failed to open kernel source file"); |
- return false; |
- } |
- |
- return loadKernelStream(&sourceStream, name, kernel); |
-} |
- |
-bool SkCLImageDiffer::loadKernelStream(SkStream* stream, const char name[], cl_kernel* kernel) { |
- // Read the kernel source into memory |
- SkString sourceString; |
- sourceString.resize(stream->getLength()); |
- size_t bytesRead = stream->read(sourceString.writable_str(), sourceString.size()); |
- if (bytesRead != sourceString.size()) { |
- SkDebugf("Failed to read kernel source file"); |
- return false; |
- } |
- |
- return loadKernelSource(sourceString.c_str(), name, kernel); |
-} |
- |
-bool SkCLImageDiffer::loadKernelSource(const char source[], const char name[], cl_kernel* kernel) { |
- // Build the kernel source |
- size_t sourceLen = strlen(source); |
- cl_program program = clCreateProgramWithSource(fContext, 1, &source, &sourceLen, nullptr); |
- cl_int programErr = clBuildProgram(program, 1, &fDevice, "", nullptr, nullptr); |
- if (CL_SUCCESS != programErr) { |
- SkDebugf("Program creation failed: %s\n", cl_error_to_string(programErr)); |
- |
- // Attempt to get information about why the build failed |
- char buildLog[4096]; |
- clGetProgramBuildInfo(program, fDevice, CL_PROGRAM_BUILD_LOG, sizeof(buildLog), |
- buildLog, nullptr); |
- SkDebugf("Build log: %s\n", buildLog); |
- |
- return false; |
- } |
- |
- cl_int kernelErr; |
- *kernel = clCreateKernel(program, name, &kernelErr); |
- if (CL_SUCCESS != kernelErr) { |
- SkDebugf("Kernel creation failed: %s\n", cl_error_to_string(kernelErr)); |
- return false; |
- } |
- |
- return true; |
-} |
- |
-bool SkCLImageDiffer::makeImage2D(SkBitmap* bitmap, cl_mem* image) const { |
- cl_int imageErr; |
- cl_image_format bitmapFormat; |
- switch (bitmap->colorType()) { |
- case kAlpha_8_SkColorType: |
- bitmapFormat.image_channel_order = CL_A; |
- bitmapFormat.image_channel_data_type = CL_UNSIGNED_INT8; |
- break; |
- case kRGB_565_SkColorType: |
- bitmapFormat.image_channel_order = CL_RGB; |
- bitmapFormat.image_channel_data_type = CL_UNORM_SHORT_565; |
- break; |
- case kN32_SkColorType: |
- bitmapFormat.image_channel_order = CL_RGBA; |
- bitmapFormat.image_channel_data_type = CL_UNSIGNED_INT8; |
- break; |
- default: |
- SkDebugf("Image format is unsupported\n"); |
- return false; |
- } |
- |
- // Upload the bitmap data to OpenCL |
- bitmap->lockPixels(); |
- *image = clCreateImage2D(fContext, CL_MEM_READ_ONLY | CL_MEM_COPY_HOST_PTR, |
- &bitmapFormat, bitmap->width(), bitmap->height(), |
- bitmap->rowBytes(), bitmap->getPixels(), |
- &imageErr); |
- bitmap->unlockPixels(); |
- |
- if (CL_SUCCESS != imageErr) { |
- SkDebugf("Input image creation failed: %s\n", cl_error_to_string(imageErr)); |
- return false; |
- } |
- |
- return true; |
-} |