windowsのchromeでglslのコンパイルが遅すぎるのでANGLEを切る

最近shadertoyでシェーダーを書いてるんですが

かなり肥大化してきて、コンパイルに20秒ぐらいかかる & たまにブラウザがクラッシュするという問題が発生していました

windowschromeOpenGL ESがANGLE経由で動いているのでglslコードがhlslコードに変換されたのちにコンパイルされているから遅いんだろうなぁという何となくな予想はしていたんですが、特に解決策も調べずに諦めていました

今日会社でなんとなく呟いてみると同僚の方にGPUのドライバが対応していればchromeの起動オプションでANGLEを切れると教えてもらったので試してみました

そのオプションは --use-angle=gl です

設定した状態で起動してシェーダーをコンパイルしてみると爆速になっていました!うれしい

f:id:kaneta1011:20180705231931p:plain

ただ少し気になることがあって、ANGLEを切った後と切る前でシェーダーの挙動が異なっていました。ANGLEの状態が想定していた挙動でした。

原因は僕が clamp の第一引数と第三引数が入れ替わった状態で実装していだからだったんですが、なんで今までちゃんと動いてたんだろう...

ちなみにANGLE経由の方がシェーダーの実行速度は早かったです