I hope that I’m not asking something that is obvious, forgive me if I do and please add a pointer to some documentation that is clear about this if it is.
When allocating a buffer using clCreateBuffer it only takes the context, but not the device(s) where the memory should be allocated. The only real place where the buffer is one-to-one associated with a specific device is with the read/write commands, via the queue.
When is the buffer actually allocated, and where does it exist? (is it allocated on both devices if I have two, or only allocated once the read/write is called)
If it is allocated on both devices, is it automatically synchronized between devices, and if not, how do I synchronize it. Which raises another interesting question, what happens if I have two queues for a single device and I use the same buffer with both?
Hope that I’m not running in too many circles …