ports for mac, ios, android, linux, windows
R=djsollen@google.com
Review URL: https://codereview.chromium.org/19787006
git-svn-id: http://skia.googlecode.com/svn/trunk@10239 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/experimental/skpdiff/SkDifferentPixelsMetric_opencl.cpp b/experimental/skpdiff/SkDifferentPixelsMetric_opencl.cpp
index 61fb638..f2a02c1 100644
--- a/experimental/skpdiff/SkDifferentPixelsMetric_opencl.cpp
+++ b/experimental/skpdiff/SkDifferentPixelsMetric_opencl.cpp
@@ -22,7 +22,6 @@
" int2 coord = (int2)(get_global_id(0), get_global_id(1)); \n"
" uint4 baselinePixel = read_imageui(baseline, gInSampler, coord); \n"
" uint4 testPixel = read_imageui(test, gInSampler, coord); \n"
- " int4 pixelCompare = baselinePixel == testPixel; \n"
" if (baselinePixel.x != testPixel.x || \n"
" baselinePixel.y != testPixel.y || \n"
" baselinePixel.z != testPixel.z || \n"
@@ -120,9 +119,12 @@
diff->result *= (double)diff->numDiffPixels;
diff->result = (1.0 - diff->result);
- diff->poi = SkNEW_ARRAY(SkIPoint, diff->numDiffPixels);
- clEnqueueReadBuffer(fCommandQueue, diff->poiBuffer, CL_TRUE, 0,
+ // Reading a buffer of size zero can cause issues on some (Mac) OpenCL platforms.
+ if (diff->numDiffPixels > 0) {
+ diff->poi = SkNEW_ARRAY(SkIPoint, diff->numDiffPixels);
+ clEnqueueReadBuffer(fCommandQueue, diff->poiBuffer, CL_TRUE, 0,
sizeof(SkIPoint) * diff->numDiffPixels, diff->poi, 0, NULL, NULL);
+ }
// Release all the buffers created
clReleaseMemObject(diff->poiBuffer);