I've found it best to not update anything if you can help it, so use procedurally generated particle effects.
For example, to follow the mouse, I'd be passing in a smoothed curve the mouse has recently travelled down as uniforms. This doesn't work the same way, and won't give as exact results, but does look nice.
One of my blog posts, related: http://williamedwardscoder.tumblr.com/post/43800948133/effic...
More recently I've been doing effects using Perlin Noise at an extra dimension - time - and that works great for stuff like plasma effects that don't have to react with the environment. http://williamedwardscoder.tumblr.com/post/57181055984/perli...
Yep. This is how GPGPU programs were done some 10 years ago when there was no API to deal with GPU buffers in a more flexible way.
These days we've got Transform Feedback (aka. Stream Out in D3D) and Compute Shaders that are more flexible. And Cuda and OpenCL, of course.
One thing you should be aware of when doing this kind of texture-to-texture GPGPU is that the internal GPU pipeline in GLES2 (and thus, WebGL) may be less than full 32 bit floating point. Also the texture formats being used are not full floats. So watch out for numerical precision issues!
No.
>Does chrome for linux support WebGL yet?
Yes.
I can run this on Linux with Firefox and Chromium.
Check that you have OpenGL properly set up (e.g. correct gpu drivers).
In addition use the WebGL extension check to see that your OpenGL version (ie. GPU and drivers) can access textures from the vertex shader. It's a feature that was added a few years ago, there may still be hardware/software versions that doesn't allow this.