When using 'clCreateImage' there is a big problem.
Often the host data we put in textures does not match a texture-map size.
Because texture/image are multiples of 4 x 4 (RGBA x Float), by example, and the host_data is smaller... we have to copy our host-buffer into a temporary buffer that has the exact same size than the image !
If the buffer is big, then we need an expensive copy operation on the host side, just to use the image/texture !!!!
In my case, I work on a out-of-core system and we do a lot of copy from/to host... and so we waste a lot of time (Mainly because we stay real-time).