windowsのchromeでglslのコンパイルが遅すぎるのでANGLEを切る
最近shadertoyでシェーダーを書いてるんですが
かなり肥大化してきて、コンパイルに20秒ぐらいかかる & たまにブラウザがクラッシュするという問題が発生していました
windowsのchromeはOpenGL ESがANGLE経由で動いているのでglslコードがhlslコードに変換されたのちにコンパイルされているから遅いんだろうなぁという何となくな予想はしていたんですが、特に解決策も調べずに諦めていました
今日会社でなんとなく呟いてみると同僚の方にGPUのドライバが対応していればchromeの起動オプションでANGLEを切れると教えてもらったので試してみました
そのオプションは --use-angle=gl
です
設定した状態で起動してシェーダーをコンパイルしてみると爆速になっていました!うれしい
ただ少し気になることがあって、ANGLEを切った後と切る前でシェーダーの挙動が異なっていました。ANGLEの状態が想定していた挙動でした。
原因は僕が clamp
の第一引数と第三引数が入れ替わった状態で実装していだからだったんですが、なんで今までちゃんと動いてたんだろう...
ちなみにANGLE経由の方がシェーダーの実行速度は早かったです