Home | History | Annotate | Download | only in skpdiff

Lines Matching full:diff

20     "__kernel void diff(read_only image2d_t baseline, read_only image2d_t test, \n"
53 QueuedDiff* diff = fQueuedDiffs.push();
56 diff->finished = false;
57 diff->result = -1.0;
58 diff->numDiffPixels = 0;
59 diff->poi = NULL;
65 diff->finished = true;
70 if (!this->makeImage2D(baseline, &diff->baseline) || !this->makeImage2D(test, &diff->test)) {
71 diff->finished = true;
77 diff->result = 1.0 / ((double)baseline->width() * baseline->height());
82 diff->resultsBuffer = clCreateBuffer(fContext, CL_MEM_READ_WRITE | CL_MEM_COPY_HOST_PTR,
85 diff->poiBuffer = clCreateBuffer(fContext, CL_MEM_WRITE_ONLY,
90 cl_int setArgErr = clSetKernelArg(fKernel, 0, sizeof(cl_mem), &diff->baseline);
91 setArgErr |= clSetKernelArg(fKernel, 1, sizeof(cl_mem), &diff->test);
92 setArgErr |= clSetKernelArg(fKernel, 2, sizeof(cl_mem), &diff->resultsBuffer);
93 setArgErr |= clSetKernelArg(fKernel, 3, sizeof(cl_mem), &diff->poiBuffer);
100 // Queue this diff on the CL device
114 diff->finished = true;
117 clEnqueueReadBuffer(fCommandQueue, diff->resultsBuffer, CL_TRUE, 0,
118 sizeof(int), &diff->numDiffPixels, 0, NULL, NULL);
119 diff->result *= (double)diff->numDiffPixels;
120 diff->result = (1.0 - diff->result);
123 if (diff->numDiffPixels > 0) {
124 diff->poi = SkNEW_ARRAY(SkIPoint, diff->numDiffPixels);
125 clEnqueueReadBuffer(fCommandQueue, diff->poiBuffer, CL_TRUE, 0,
126 sizeof(SkIPoint) * diff->numDiffPixels, diff->poi, 0, NULL, NULL);
130 clReleaseMemObject(diff->poiBuffer);
131 clReleaseMemObject(diff->resultsBuffer);
132 clReleaseMemObject(diff->baseline);
133 clReleaseMemObject(diff->test);
141 QueuedDiff* diff = &fQueuedDiffs[id];
142 if (NULL != diff->poi) {
143 SkDELETE_ARRAY(diff->poi);
144 diff->poi = NULL;
165 if (!this->loadKernelSource(kDifferentPixelsKernelSource, "diff", &fKernel)) {