title: How to use OpenGL SL for general computing
body: <p>I know OpenCL and CUDA. These are not support in mobile device. But most of them support OpenGL ES. So I want to learn using OpenGL ES shading language for general computing.  Like OpenCL or CUDA, in OpenGLSL.</p>
  
  <ul>
  <li>How many kinds of buffer can I use?  what are they?  </li>
  <li>How to manipulate  these buffers</li>
  </ul>
  
  <p>As I know， I can create vertex and fragment shader so far.     </p>
  
  <ul>
  <li>Which buffer can I manipulate when I use fragment shader</li>
  <li>Which buffer can I manipulate when I use vertex shader</li>
  <li><strong>Are there any synchronized function in GPU(I mean synchronization in GPU. like the thread synchronized in the block in OpenCL or CUDA)</strong></li>
  </ul>
  
  <p><strong>PS:</strong><br>
  I read a paper <a href="http://lbmedia.ece.ucsb.edu/resources/ref/vlsidat11.pdf" rel="nofollow">Using Mobile GPU for General-Purpose Computing</a>. Their experiments were performed on an Nvidia Tegra SoC with the following specifications:    </p>
  
  <ol>
  <li>1GHz dual-core ARM Cortex-A9 CPU, </li>
  <li>1GB of RAM</li>
  <li>an Nvidia ultra-low-power GeForce GPU running at 333MHz, and 512MB of Flash memory    </li>
  </ol>
  
  <p>It can get 3X speedup on FFT(128*128). I think these result is good. Do you guys think if it's worth to do it. So the main bottleneck is the memory access right? </p>
  
  <p><strong>As many guys said it's not worth to do general purpose computing on OpenGL ES. So it's not worth to expect the mobile supporting OpenCL either. Right? In my opinion, OpenGL ES is the fomentation of the OpenCL</strong></p>