We ship our applications with a number of binaries for different GPUs. The binaries are produced by compiling source OpenCL files with clBuildProgram ("-fno-bin-source -fno-bin-llvmir -fno-bin-amdil -fbin-exe") in a context created with the CL_CONTEXT_OFFLINE_DEVICES_AMD flag.
When compilation is done on a machine without AMD GPU or with HD 7970 installed, the resulting program does not produce correct results when running on a machine with R9 290.
However, if the compilation takes place on the machine with R9 290 installed, then the program is working correctly.
Both machines are running Catalyst 14.12.
We looked at the binaries generated for Hawaii on machines with different GPUs and found that they are very different, while binaries for other GPUs are quite similar in size. We also tried to to build OpenCL with "-fbin-amdil" and "-fbin-llvmir". For the AMD IL options, the resulting binaries were significantly different in size when building on machines with different GPUs. In both situations binary produced on the machine with HD 7970 was not working correctly on the machine with R9 290.
Is offline compilation still working correctly in Catalyst 14.12?