Index: experimental/skpdiff/diff_pixels.cl |
diff --git a/experimental/skpdiff/diff_pixels.cl b/experimental/skpdiff/diff_pixels.cl |
new file mode 100644 |
index 0000000000000000000000000000000000000000..c1ecb523561c7e052f55007057efe969de972d8a |
--- /dev/null |
+++ b/experimental/skpdiff/diff_pixels.cl |
@@ -0,0 +1,26 @@ |
+/* |
+ * Copyright 2013 Google Inc. |
+ * |
+ * Use of this source code is governed by a BSD-style license that can be |
+ * found in the LICENSE file. |
+ */ |
+ |
+#pragma OPENCL_EXTENSION cl_khr_global_int32_base_atomics |
+ |
+const sampler_t gInSampler = CLK_NORMALIZED_COORDS_FALSE | |
+ CLK_ADDRESS_CLAMP_TO_EDGE | |
+ CLK_FILTER_NEAREST; |
+ |
+__kernel void diff(read_only image2d_t baseline, read_only image2d_t test, __global int* result) { |
+ int2 coord = (int2)(get_global_id(0), get_global_id(1)); |
+ uint4 baselinePixel = read_imageui(baseline, gInSampler, coord); |
+ uint4 testPixel = read_imageui(test, gInSampler, coord); |
+ int4 pixelCompare = baselinePixel == testPixel; |
+ if (baselinePixel.x != testPixel.x || |
+ baselinePixel.y != testPixel.y || |
+ baselinePixel.z != testPixel.z || |
+ baselinePixel.w != testPixel.w) { |
+ |
+ atom_inc(result); |
+ } |
+} |