I feel like I might be missing something obvious, but it seems that clCreateImage3D is returning CL_INVALID_IMAGE whereas using clCreateImage with equivalent parameters is succeeding. I know clCreateImage3D is deprecated, but it should still work, and I can't use 1.2 functions because the code needs to run on hardware made by a certain vendor who still doesn't support 1.2.
I've attached a code sample that demonstrates the bug. It creates a 1x1x1 CL_R/CL_FLOAT 3D texture, first with clCreateImage and then with clCreateImage3D. I've been compiling it on 64-bit Ubuntu 12.04, but in theory it should be portable code.
I'm using AMD APP SDK 2.8.1.0 with the CPU device.