title: Prevent loop unwinding in fragment shader
body: <p>I'm writing a fragment shader for WebGL(GLSL ES 1.0) using the latest version of Chrome(and Firefox), and I wrote an iterative algorithm.</p>
  
  <p>So first of all, I found out the hard way that the length of the loop is quite restricted (doc says it must be guessable at compile-time, which means it must be a constant or very close).</p>
  
  <p>In addition, I must write a (<code>for</code>, since it's the only one which <em>must</em> be implemented according to the standard) loop that's potentially long but that breaks almost every time before the end.</p>
  
  <p>Now, I've noticed that if I set a higher maximum number the compilation and linking of the shader takes alot more time. So, unless I'm wrong, the compiler does loop unwinding.</p>
  
  <p>I'm not sure if anything can be done, but I've tried a few things and the compiler seems also to inline functions, even when called in loops.</p>
  
  <p>I don't feel like it's normal for a shader to take a whole minute to compile for just about a hundred iterations of a loop. Or am I doing the wrong thing? Is a hundred iterations in a fragment shader way too much for a GPU? Because it seems to run just fine after it has compiled.</p>