2014年5月30日金曜日

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

0. 目次

関連記事

追記(2015/4/21): 最初に OMTC の設定を無効化 を試すこと。

 

1. クラッシュする前に画面の一部が黒くなる

最近、頻繁に Firefox がクラッシュするようになった。一日に何度も落ちる。

特に気になる現象は、長時間使っていると画面の一部が黒くなり、その上をマウスでなぞると内容が表示される。

SnapCrab_No-1095

その後、少し経過すると、必ずクラッシュする。

about:crashes でクラッシュレポートを見ても良く分からない。(+_+)

そこで、以下のいくつかの方法を試したら、少し安定するようになった。

 

2. ハードウェアアクセラレーションを切る

最初に、ハードウェアアクセラレーションを切った。

When I scroll down in facebook my screen turns black. |  Mozilla サポート によると、

Some inexplicable display glitches can be caused by Firefox being incompatible in some way with your graphics card drivers. The standard workaround for that is to disable Firefox from using hardware acceleration of graphics.

  • オプション > 詳細 > 一般

において、「ハードウェアアクセラレーション機能を使用する」のチェックを外す。

SnapCrab_No-1139

MacType で滑らかなフォント表示にしたときは、ハードウェアアクセラレーションを有効にし、about:config で gfx.direct2d.disabled の値を true にしていた。

 

3. Flash Player のハードウェアアクセラレーションを切る

Flash Player のハードウェアアクセラレーションも無効にした。

Firefox 29 is full of problems. | Mozilla サポート によると、

- When the memory usage gets above ~1 GB (FYI, this is a guess), I start seeing problems with Firefox displaying web-page graphics and even, in one instance, shutting down text input on a web page (this was within Facebook). 

SnapCrab_No-1136%255B3%255DTry disabling Hardware Acceleration.

例えば、Flash Player Help で再生し、動画上で右クリック

  • 設定 > 左端のタブ > 「ハードウェアアクセラレーションを有効化

のチェックを外した。この設定は Flash Player で再生している動画上であれば変更することができる。

 

4. WebGL を無効

WebGL も無効にした。

無効にするためには、ロケーションバーに about:config を入力。検索フィールドから webgl.disabled. を抽出し、値をダブルクリックして true に変更。

Upgrade your graphics drivers to use hardware acceleration and WebGL | Firefox Help によると、

  • In the Filter box, type webgl.disabled.
  • Doubleclick on the webgl.disabled item to switch it to true.
  • WebGL - Wikipedia とは、

    WebGL[1]ウェブジーエル)は、ウェブブラウザ3次元コンピュータグラフィックスを表示させるための標準仕様。OpenGL 2.0もしくはOpenGL ES 2.0をサポートするプラットフォーム上で、特別なブラウザのプラグインなしで、ハードウェアでアクセラレートされた三次元グラフィックスを表示可能にする。

    この機能を無効にすると、例えば Google マップ上で 3D 表示ができなくなる。元に戻す場合、は以下を参照。

     

    5. gfx の設定から direct2d を削除

    MacType でフォントの表示を滑らかにしている場合、about:config で direct2d の値を削除すると動作が軽快になる。

    gfx.content.azure.backends

    about:crashes でクラッシュレポートを見ると、gfx.content 関連で落ちていることがしばしば。そこで、about:config において、以下の値を設定した。

    • gfx.content.azure.backends

    の値より direct2d を削除し、cairo のみ残した。

    Font gone funny after Windows update | Mozilla サポート によると、

    If your gfx.content.azure.backends preference looks like:

    direct2d,cairo

    Try deleting direct2d so you just have

    cairo

    Firefox is unbearably slow after updating to version 27 | Forum d'assistance Firefox | Assistance de Mozilla

    To know if you face the same issue:

    • Type "about:support" in the address bar and press Enter.
    • In the "graphics" section check the line with the entry "AzureContentBackend".
    • If the value is "cairo" you may well face the same issue than I did.

    In that case I have found a workaround:

    • Type "about:config" in the address bar and press Enter.
    • Search for "gfx.content.azure.backends".
    • The value should be "direct2d,cairo". Edit it to be simply "direct2d" (ie. remove "cairo"), then restart Firefox.

    また、gfx.content.azure.enabled の値を false に変更。

    スクロールすると Firefox の文字がにじむ - @半径とことこ60分 によると、

    やっとこちらのサイトをみつけました。
    Firefox文字乱れ・崩れ - smilebanana

    1. firefox のアドレスバーに「about:config」と入れる
    2. gfx.content.azure.enabled を検索して false に変更

    とすればいいとのことで、変更してみると、確かににじみは消えました。

    元記事の もじら組フォーラム [One Topic All View / Re: firefoxの文字表示に関して] によりますと、Firefoxの新しい2DグラフィックコンポーネントであるAzureを使うか使わないかとのことで、ATIのグラフィックボードでこの症状が出てるらしいです。

     

    gfx.canvas.azure.backends

    追記(2014/10/24): gfx.canvas.azure.backends からも、direct2d を削除し、skia, cairo を残した。

    gfx.canvas.azure.backends によると、

    > I believe it does. You can try to override that and use Skia (which I
    > believe is what Chrome/ium uses) by setting the pref
    > gfx.canvas.azure.backends to "skia,cairo" in about:config. Apparently there
    > are some rendering issues though on Linux that they never worked out.
    >
    > Would be curious how this works on Windows with the Direct2D backend; I may
    > try that tonight.

    Cool trick! Reduced firefox's rendering time on my laptop from > 100s to 0.4 s.

    ついでに、skia も削除したら、レスポンスが良くなった。

     

    6. キャッシュ、クッキーをクリア

    キャッシュ、クッキーを削除した。

    特定のサイトで頻々にクラッシュするようであれば、そのサイトのクッキーだけを削除する。

    When I scroll down in facebook my screen turns black. | Mozilla サポート によると、

    … Occasionally Firefox will get a little mixed up with cached files and cookies. This can be a problem on dynamic sites that use a lot of elements. According, when you have a problem with one particular site, a good "first thing to try" is clearing your Firefox cache and deleting your saved cookies for the site.

    ここでは全てのキャッシュとクッキーを削除する。

    追記(2014/11/15): ⇒ 特定のサイトだけクッキーを残したい場合、CookieKeeper を利用する。

     

    キャッシュのクリア
    • オプション > 詳細 > ネットワーク > キャッシュされた Web ページ

    において「今すぐ消去」ボタンを押す。

    SnapCrab_No-1137

     

    クッキーの削除
    • オプション > プライバシー > 履歴

    において「 Cookie を個別に削除」をクリック。 Cookie ダイアログにおいて、「すべての Cookie を削除」ボタンを押す。

    必ず特定のサイトでクラッシュする場合、特定のクッキーだけを削除してみて、様子を見る。

    SnapCrab_No-1138

    Firefox キャッシュを RAM ディスクへ移動しているので、SoftPerfect RAM Disk で RAM ディスクを作成しなおした。

     

    7. 変更、無効にしたアドオン

    自分の環境では、以下のアドオンを変更・無効にした方がクラッシュしにくくなったような気がする。

    a. Adblock Edge

     

    b. Lazarus Form Recovery

    SnapCrab_No-1143 Lazarus: Form Recovery は無効にした。

     

    8. グラフィックドライバの更新

    念のため、グラフィックドライバを最新にしておく。

    グラフィックドライバを更新する方法 | Firefox ヘルプ によると、

    Firefox や一部のプラグインは、ウェブコンテンツの表示を高速化するためにグラフィックカードを使用します。グラフィックカードは WebGL のような高度なウェブ機能にも使用されます。これらの機能の問題を解決するためやこれらの利点を得るために、グラフィックカードのドライバを更新する必要があるかもしれません。

    一般的なグラフィックドライバをグラフィックカードのメーカーのウェブサイトからインストールすることができます。これらは通常最新の状態が保たれ、さまざまなシステムで動作するよう設計されています:

    どのグラフィックカードが搭載されているか分からない場合は、Firefox の about:support (トラブルシューティング情報のページ) で確認してください。

    SnapCrab_No-1135グラフィックカードに NVIDIA を利用している。ちょうど先日更新されたばかりだったので、インストールした。

    WHQL版「GeForce 337.88 Driver」登場。ゲームの読み出し時間を短縮する「Shader Cache」導入が目玉 - 4Gamer.net によると、

    337.88ドライバだが,注目したいのは,「Shader Cache」(シェーダキャッシュ)という新機能がNVIDIAコントロールパネルに実装されたことだ。… これは,PCのストレージ上にシェーダ専用キャッシュを用意し,ゲームの実行時にコンパイルされたシェーダプログラムを保存しておけるようにするというものだ。
    従来,コンパイルされたシェーダプログラムは,ゲームを終了すると破棄されるようになっていたため,ゲームをプレイするたびに再度コンパイルする必要があったが,それが不要になるため,ゲームの読み出し時間と,CPU負荷の低減を図れるとNVIDIAは主張している。

    32bit版Windows 8.1・8・7・Vista用GeForce 337.88 Driver(277MB)
    64bit版Windows 8.1・8・7・Vista用GeForce 337.88 Driver(333MB)
    Windows XP用GeForce 337.88 Driver(244MB)
    ノートPC向けの32bit版Windows 8.1・8・7・Vista用GeForce 337.88 Driver(277MB)
    ノートPC向けの64bit版Windows 8.1・8・7・Vista用GeForce 337.88 Driver(333MB)

     

    9. Windows の透明感を無効

    追記(2014/10/16): これでもダメな場合、

    • デスクトップで右クリック > 個人設定 > ウィンドウの色

    において、「透明感を有効にする」のチェックを外してみる。

    SnapCrab_No-1558

    cf. Widows 7 でパフォーマンス オプションを調整して動作を軽くする

    4コメント:

    いちにい さんのコメント...

    記事を参考にさせてもらいありがとうございました。
    しかし全て試したのですが画面が黒くなる?と言う症状が治りませんでした。
    諦め半分で、Flash以外のプラグインを全て無効化し、AdbLock以外のアドオンを全て無効化したら症状が無くなったのですがネットサーフィンする上でアドオンなしプラグインなしじゃ不便でしかたないです。でもアドオン、プラグイン無効化で確実に私の環境では治りました。RSSに追加させてもらったのでこれからもブログの更新楽しみにしてます。頑張ってください(^^♪

    jutememo さんのコメント...

    今、自分もまた色々設定をして試しています。
    追記(2014/10/28)でまとめた設定で、何とか安定してきたような気がする今日この頃です。^^; ⇒ http://bit.ly/1rTsBlY

    hmmaaM さんのコメント...

    長時間使っていたり、特にグーグルマップを開くと突然画面が部分的に黒くなり、その上をマウスでなぞると内容が表示される。これらの症状が「ハードウェアアクセラレーション機能を使用する」のチェックを外し丸一日たちますが今のところ安定して使えています。ほんと助かりました。、ありがとうございます。

    jutememo さんのコメント...

    もし、不安定になったら、こちらも参考までにどうぞ。

    Firefox 33 を安定させるための設定 http://bit.ly/1vwiA25