If a buffer is created with CL_MEM_ALLOC_HOST_PTR, does that buffer have to be manually deallocated, or is that automatically done inside of clReleaseMemObject when its counter reaches zero? Similarly, if I use the C++ API wrapper, would a buffer object going out of scope automatically deallocate the host allocated memory? I appreciate the help clarifying this for me.