99 .cellsize = 8 *
sizeof(float) +
sizeof(
int), .overhead = 0,
100 .sizex = 1 << 6, .sizey = 1 << 6 };
105 "[opencl_bilateral] can not identify resource limits for device %d in bilateral grid\n", devid);
112 "[opencl_bilateral] device %d does not offer sufficient resources to run bilateral grid\n",
123 b->blocksizex = locopt.
sizex;
124 b->blocksizey = locopt.
sizey;
127 b->dev_grid_tmp = NULL;
155 int wd = b->size_x, ht = b->size_y * b->size_z;
162 if(err != CL_SUCCESS)
169 fprintf(stderr,
"[bilateral] created grid [%d %d %d]"
170 " with sigma (%f %f) (%f %f)\n", b->size_x, b->size_y, b->size_z,
179 size_t sizes[] = {
ROUNDUP(b->width, b->blocksizex),
ROUNDUP(b->height, b->blocksizey), 1 };
180 size_t local[] = { b->blocksizex, b->blocksizey, 1 };
193 b->blocksizex * b->blocksizey * 8 *
sizeof(
float), NULL);
201 size_t sizes[3] = { 0, 0, 1 };
204 b->size_x * b->size_y * b->size_z *
sizeof(
float));
205 if(err != CL_SUCCESS)
return err;
209 int stride1, stride2, stride3;
210 stride1 = b->size_x * b->size_y;
222 if(err != CL_SUCCESS)
return err;
224 stride1 = b->size_x * b->size_y;
238 if(err != CL_SUCCESS)
return err;
242 stride3 = b->size_x * b->size_y;
246 (
void *)&b->dev_grid_tmp);
266 size_t origin[] = { 0, 0, 0 };
267 size_t region[] = { b->width, b->height, 1 };
269 if(err != CL_SUCCESS)
goto error;