The version of the C++ wrapper in the 2.7 SDK is slightly ahead of the Khronos ratification, which is a benefit AMD being the maintainers of the header. There is a version with Khronos for review at the moment, which will be slightly updated from the 2.7 version and better documented, and we hope that will be public soon.
1.2 support is fully enabled in the C API. The C++ wrapper is designed to be a very thin, essentially overhead-free, wrapper around that. You *may* see some minor changes when we update to the official khronos version with 1.2 features but they should be minor. I would certainly recommend you switch to the C++ wrapper - the benefit of RAII state management alone is enormous.
As for a specification that is simply a little out of date. We do need to update it to match the features in the header it's just that features had to be implemented and tested before a specification could be written, and everyone both in AMD and Khronos is pretty busy at the moment.
Thank you for your answer.
Giving a look to AMD APP samples, it seems that most of them are still developed in plain C (i.e. clCreateBuffer instead of cl::Buffer). Do you plan to switch to C++ API for feature samples?
Well we wouldn't switch the whole set because the C API is the underlying specification and it's important for samples to show how that is used. It may be that we increase the number of C++ samples as time goes on.
Do I take it correctly that AMD is maintaining the C++ wrapper headers?
I would also like to stand in line for a more thorough documentation of the C++ headers. To be precise, the reason I cannot advise anyone to start learning OpenCL alone using the C++ wrapper is because:
- There are far less tutorials available on the internet that are using the C++ API instead of the standard C.
- The documentation only points out the differences, compared to the underlying C API, so practically one's gotta know the C API inside and out.
I know it's a real pain, since the C specs are let alone 377 pages, but something similar for the C++ headers would be nice too, to have everything one's gotta know in one place. If everyone is very busy, this most certanly will not happen, but I would definately make it a long term goal.
And I'm also waiting for an updated header: http://www.khronos.org/message_boards/viewtopic.php?f=28&t=5114&sid=eb00f7f2e001695f382d5121bd62004d
I happened to ask this roughly a week ago on Khronos forum, but noone answered.
With input form other Khronos members, yes. Laurent Morichetti and Ben Gaster of AMD wrote it originally (as noted in the header) and I've been making the 1.2 updates.
More thorough documentation has been under discussion. We've realised the need for that. At the very least I, with some very useful input from a collaborator, have been working on adding doxygen comments to the header so that it's a bit better documented as a standalone file. Expect updates soon, it's just in a bit of a backlog since our TODO lists piled up.