2014年10月23日木曜日

Firefox の画面が黒くなる - ディスプレイ アダプターを削除、ハードウェアアクセラレーション・OMTCの無効化

0. 目次

関連記事

 

1. 画面が一部ずつ黒くなっていく

また、Firefox の画面が黒くなる現象が生じるようになった。Firefox のバージョンは 33.0。

Firefox 33.0 にアップデートしたとき、about:config で設定した値 をリセットした。(※ Windows で見やすくて綺麗なフォント表示。MeiryoKe に変更し、MacType で滑らかにする。 > Firefox の設定 のみ再設定。)

以前、Firefox の画面が黒くなった後必ずクラッシュするので、ハードウェアアクセラレーションを切り、WebGL を無効にし、アドオンを変更した。

上記と同じ設定をしたが、Firefox が安定しない。また、H.264 / MP3 形式のサポートを無効にしてもダメ。

 

2. デバイスマネージャでディスプレイアダプターのデバイスを削除してみる

これに対して、「Firefox33」で画面が真っ黒になる不具合 : 2chデジタル速報 によると、

256: 名無しさん@お腹いっぱい。 2014/10/15(水) 17:45:59.53 ID:mAJBVKW90.net

Windows上でFirefox 33.0が起動しない、起動しても真っ黒な場合は、
Intelのグラフィックチップを使用していて、
バグのある古いドライバをしている可能性が高いです。
Intelのグラフィックドライバを更新してみてください。

そこで、デバイスマネージャより、ディスプレイのデバイスを削除することにした。過去、Windows のサウンドで音量を変更するとフリーズする場合、デバイスを一度削除したら問題がなくなったことがある。

  • スタートメニューより、コンピュータを右クリック > プロパティを選択 > デバイス マネージャを起動。

SnapCrab_No-1563

ディスプレイ アダプターより、ドライバーを一度削除。このとき、「このデバイスのドライバーソフトウェアを削除する」にチェックを入れた。

SnapCrab_No-1561

その後、

  • デバイスマネージャのルートのアイコンを右クリック > ハードウェア変更のスキャン

して、ドライバの再インストールし、PC を再起動。

次にグラフィックドライバが最新であるか確かめる。

例えば、NVIDIA を使っている場合、「更新プログラムを確認」する。このとき、グラフィックス ドライバーが古い場合、必ず最新のバージョンをインストールすること。

SnapCrab_No-1564

 

3. ハードウェアアクセラレーションを無効にする

もし、上記の設定でダメなら、Firefox のハードウェアアクセラレーションと、Flash Player のハードウェアアクセラレーションを無効にする。… と書いている矢先に Firefox が落ちたので、アクセラレーションは切った。(+_+)

 

a. グラフィックボードに関連するプラグインを無効化

また、アドオンマネージャより、グラフィックボードに関連するプラグインを無効にした。

SnapCrab_No-1561

追記(2014/10/30): グラフィックボードに関連するプラグインを有効化した。

 

4. OMTC の設定を無効化

それでも効果がない場合、MozillaZine.jp フォーラム • トピック - Firefox 33.0 にアップデートするとウィンドウが真っ暗になりました(via Firefox33 の画面が真っ黒になってしまった時の対処法 知らなきゃ絶対損するPCマル秘ワザ) を参考にして、user.js を設定する。

[Windows 7 の場合]
C:\Users\ユーザー名\AppData\Roaming\Mozilla\Firefox\Profiles\
配下にフォルダ名に「default」が含まれたプロファイルフォルダがあるので、そこに
user.js ファイルを下記内容で記載して firefox を起動しました。
(自分の環境では user.js が無かったので新規作成)
user_pref("layers.offmainthreadcomposition.enabled", false);
user_pref("layers.async-video.enabled", false);

今回は、上記の設定を about:config で

  • layers.offmainthreadcomposition.enabled: false
  • layers.async-video.enabled: false

と設定して様子を見ることにした。

これでダメなら、安定したドライバを探すしかないかなぁ。。

グラフィックチップ(GPU)のドライバ、更新してますか? – WebStudio によると、

ちなみに、グラフィックチップのドライバというのは、ゲームや動画プレーヤー等の、特定のアプリのバグにドライバ側で対応を入れたりすることが多々あります。このため、最新版のドライバが誰にとっても最良の選択肢とは限らないという悩ましい話があります。

パフォーマンス改善には重要なアップデートですので、基本的にはグラフィックドライバを毎回アップデートし、自分に都合の悪い、ハズレバージョンだった場合にのみ、ドライバを古いバージョンに戻す、というやり方をとることをお勧めします。

追記(2014/10/26): Windows版Firefox 33でクラッシュやハングが多くなったと感じたら(追記あり) - Mozilla Flux によると、

Windows版Firefox 33では、OMTC(Off Main Thread Compositing)と呼ばれる機能が有効化されている(Bug 1074045)。これは、描画の前段階としてWebページ内の各要素から成る複数のレイヤーを一つにまとめる処理を、メインスレッドから独立したcompositorスレッドで行うというものだ(参照1参照2参照3)。

OMTCが有効化されることで、Firefox本体の応答性が高まり、キビキビとした動作となることが期待される一方、これまでとは処理プロセスが変わるため、クラッシュやハングの原因となる可能性がある。…

筆者の予想とは少し違って、Firefox 33のリリース後、一部の環境で起動時にコンテンツ領域が真っ黒になるバグ(Bug 1083071)が発生していたが、この問題に対処したFirefox 33.0.1がリリースされた

そのため、以下のように値を戻した。

  • layers.offmainthreadcomposition.enabled: true
  • layers.async-video.enabled: true

また、アドオンマネージャより、グラフィックボードに関連するプラグインを有効に戻した。

追記(2014/10/24):MacType でフォントの表示を滑らかにしている場合、about:config で gfx の設定 を行う。gfx.content.azure.backends, gfx.canvas.azure.backends から direct2d, skia を削除すると良い。

追記(2014/11/24): Firefox 33 を安定させるための設定

 

5. Flash Player を綺麗に再インストール

追記(2014/10/23): アドオンマネージャで Flash Player のバージョンを確認したら、2 つのバージョンが表示された。

SnapCrab_No-1560

ロケーションバーに about:plugins を入力して Shockwave Flash のライブラリファイルが置かれている場所を調べ、Unlocker で以下のフォルダを強制的に削除。

  • C:\Windows\SysWOW64\Macromed\Flash

再び、Adobe Flash Playerのインストール を行なった。現在の最新バージョンは 15.0.0.189 。

ところで、アドオンマネージャ からプラグインのチェックと更新 — Mozilla を行なっても、15.0.0.152 は最新だと表示されたのはなぜかな?

SnapCrab_No-1563

 

6. メモリに余裕がない場合

 

7. ついでに SSL 3.0 を無効にしておく

上記とは全く関係ないが、about:config を設定したついでに、SSL 3.0 を無効にしておく。

【レビュー】「Firefox」の“SSL 3.0”対応を無効化できる拡張機能「SSL Version Control」 - 窓の杜

「Firefox」の場合、11月25日(米国時間)にリリースが予定されている「Firefox 34」から“SSL 3.0”が初期状態で無効化される(“Nightly”ビルドではすでに無効化済み)。それまではユーザー自身の手で“SSL 3.0”を無効化する必要がある。“about:config”の“security.tls.version.min”を“0”から“1”へ変更すれば、“SSL 3.0”を無効化できる。