title: Zero copy buffer allocation on arm mali midgard gpus?
body: <p>I wish to have zero copy behaviour for opencl buffers on arm mali midgard gpus and arm cpus such that a vector's data pointer and a clBuffer points to the same location for their lifetime.</p>
  
  <p>Some of the things which I tried. I wrote a custom allocator (64 byte alignement) for a vector and then I tried to use cl_arm_import_memory function and pass the vector's pointer to the function. But the issue is when I query the device EXT properties, I just see the cl_arm_import_memory string and not the cl_arm_import_memory_host string.</p>
  
  <p>I have also tried to first allocate a gpu side buffer and then force a vector to point to the buffer's location. But according to the Mali guide , a gpu side buffer's location might change such that it might point to separate addresses during multiple mappings.</p>
  
  <p>So, my question is what is the best way to achieve zero copy behaviour between a std::vector and and OpenCL buffer.</p>