title: Prevent loop unrolling in shader program when using ANGLE
body: <p>in my WEBGL shader I am using loop of unknown length (on compile).</p>
  <pre><code>    do {
          sample = texture(uTex, posXY).a;
          accumulated += aSample * uAMultiplier;
      } while (accumulated &lt; 0.8);
  </code></pre>
  <p>This works as expected on OpenGL browsers, but by default windows chrome/ff uses angle, that unrolls loops, which isn't possible in this case, causing compile errors.</p>
  <blockquote>
  <p>Error: Error compiling generate<br />
  Error: Cannot link program<br />
  Info log:<br />
  C:\fakepath(110,28-106): error X4014: cannot have gradient operations inside loops with divergent flow control</p>
  <p>C:\fakepath(59,12-96): warning X3570: gradient instruction used in a loop with varying iteration, forcing loop to unroll<br />
  C:\fakepath(118,1-82): error X3511: unable to unroll loop, loop does not appear to terminate in a timely manner (1024 iterations)</p>
  </blockquote>
  <p>Is there a solution to prevent unrolling or otherwise bypass having to loop?</p>