When we create physical zero copy buffers using USE_HOST_PTR, do we really need to perform map/unmap operations everytime we make changes to the buffer from the CPU side. Since, both GPU and CPU access the same memory, will not the changes propagate themselves automatically?
Assuming by CPU you meant host, then map/unmap is needed still because it is UB by the spec (implementation may cache the data). So automatic propagation is not guaranteed by spec and is implementation defined.
Also good reading on host pointer topic: https://community.khronos.org/t/clarify-cl-mem-use-host-ptr/2333