91 .cellsize = 8 *
sizeof(float) +
sizeof(
int), .overhead = 0,
92 .sizex = 1 << 6, .sizey = 1 << 6 };
97 "[opencl_bilateral] can not identify resource limits for device %d in bilateral grid\n", devid);
104 "[opencl_bilateral] device %d does not offer sufficient resources to run bilateral grid\n",
115 b->blocksizex = locopt.
sizex;
116 b->blocksizey = locopt.
sizey;
119 b->dev_grid_tmp = NULL;
147 int wd = b->size_x, ht = b->size_y * b->size_z;
154 if(err != CL_SUCCESS)
161 fprintf(stderr,
"[bilateral] created grid [%d %d %d]"
162 " with sigma (%f %f) (%f %f)\n", b->size_x, b->size_y, b->size_z,
171 size_t sizes[] = {
ROUNDUP(b->width, b->blocksizex),
ROUNDUP(b->height, b->blocksizey), 1 };
172 size_t local[] = { b->blocksizex, b->blocksizey, 1 };
185 b->blocksizex * b->blocksizey * 8 *
sizeof(
float), NULL);
193 size_t sizes[3] = { 0, 0, 1 };
196 b->size_x * b->size_y * b->size_z *
sizeof(
float));
197 if(err != CL_SUCCESS)
return err;
201 int stride1, stride2, stride3;
202 stride1 = b->size_x * b->size_y;
214 if(err != CL_SUCCESS)
return err;
216 stride1 = b->size_x * b->size_y;
230 if(err != CL_SUCCESS)
return err;
234 stride3 = b->size_x * b->size_y;
238 (
void *)&b->dev_grid_tmp);
258 size_t origin[] = { 0, 0, 0 };
259 size_t region[] = { b->width, b->height, 1 };
261 if(err != CL_SUCCESS)
goto error;