LoginSignup
11
13

More than 5 years have passed since last update.

Macでcanvas利用時に

Last updated at Posted at 2013-02-27

フレームレートが定期的に一瞬落ちる現象が起きた。
外部モニタに接続するとなぜか起きない。
ガベコレっぽい雰囲気を感じて原因を探ったが、
コードを変更しても改善はなかった。

ふと、自分のMacBook Proにグラボが2ついて、
自動で切り替わる事を思い出す。

設定は
システム環境設定 > 省エネルギー > グラフィックスの自動切り替え
にある。

試しにチェックを外すと、、、
滑らかになった!!

外部モニタにつなぐとグラボを切り替えるらしい。
だから外部モニタだと問題が起きなかったんだ。。

さて、jsでmacのグラボの切り替えが直接できるはずもないので、
方法を考えた。

負荷がかかりそうだと判断したり、
OpenGLを使ったアプリを立ち上げると切り替わるらしいので、
まず最初に思いつくのは、WebGLっしょ。

window.onload = ->
  c = document.createElement 'canvas'
  break for key in ["experimental-webgl", "webgl"] when window.MAC_GPU_FIX = c.getContext key

上のコードを入れたら、一発でグラボが切り替わった。
なんの処理をしなくても、WebGLコンテキストを保持してれば良いみたい。

グラボの状態を簡単にチェックできたり、
設定できたりするアプリがあったので、
そちらを入れて動作をチェックした。

gfxCardStatus
http://codykrieger.com/gfxCardStatus

やれやれだぜ。

11
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
13