Have someone tried to use Brook+ and CAL in the same program?
I found that calInit() is not referece counted. and calOpenDevice() can not reopen a same device twice. If I call calInit() before using Brook+ will cause the Brook+'s CAL runtime failed to initialized.
Moreover, if device with ID 0 is opened somewhere, the Brook+ will not work too. This is a big problem. Although CAL provide context management for multi-thread access to the same device. Two CAL-based GPGPU modules still cannot use the same device, if they don't know the existence of each other, and communicate for the device handle..
Finally, I don't know where to calShutdown() CAL...