I'm trying to add automagic profiling to my OpenCL wrapper library.
Each device has 2 command queues created with CL_QUEUE_PROFILING_ENABLE. I then enqueue a marker in to every devices' queue and then call flush to get them started. I then let the user enqueue a bunch of their stuff and run it and whathaveyou, after which the user calls DumpProfilingData() which then enqueues another marker on each queue then calls finish on each queue. At this point, everything in each queue should be finished and each event has CL_COMPLETE.
Indeed, I get CL_COMPLETE when I call clGetEventInfo on each event. When I call GetProfilingInfo with CL_PROFILING_COMMAND_START, I get the times (presumably correct) for each event on the three Radeon 7970s I have in the machine. However, when the loop gets to the 6272 processors, I get CL_PROFILING_INFO_NOT_AVAILABLE, despite having created the queue with profiling enabled and the event registering as CL_COMPLETE.
Is this a bug or am I missing something?