title: OpenCL: How to create initialized device-side buffer
body: <p>I'm currently creating a kernel that smooths out a 3D volume from a source buffer onto a destination buffer using calls such as:</p>
  
  <pre><code>    d_aVolumeInput  = clCreateBuffer(g_dGpuContext, CL_MEM_READ_ONLY | CL_MEM_COPY_HOST_PTR,    _nVoxelsScanArea, _aVolumeInput,    &amp;g_nErrNum);    CHECK_OCL();
      d_aVolumeSmooth = clCreateBuffer(g_dGpuContext, CL_MEM_WRITE_ONLY| CL_MEM_COPY_HOST_PTR,    _nVoxelsScanArea, _aVolumeInput,    &amp;g_nErrNum);    CHECK_OCL();
  </code></pre>
  
  <p>Unfortunately, it is much more efficient for my kernel to assume an initialized destination array 'd_aVolumeSmooth' and so far the only way I've found to make it work it to also send my _aVolumeInput' to both arrays, causing several extra megabytes of data to be sent each frame...</p>
  
  <p>Is there a way for me to allocate a device-side memory of the right size and have it zero-initialized?</p>