title: I need help understanding data alignment in OpenCL's buffers
body: <p>Given the following structure</p>
  
  <pre><code>typedef struct
  {
     float3 position;
     float8 position1;
  } MyStruct;
  </code></pre>
  
  <p>I'm creating a buffer to pass it as a pointer to the kernel the buffer will have the previous buffer format.</p>
  
  <p>I understand that I've to add 4 bytes in the buffer after writing the three floats to get the next power of two (16 bytes) but I don't understand why I've to add another 16 bytes extra before writing the bytes of position1. Otherwise I get wrong values in position1.</p>
  
  <p>Can someone explain me why?</p>