IE9で強制的にGPUレンダリングを有効にする方法

前回、IE9でGPUによるレンダリングができないと書きましたが、 レジストリを操作することで、強引にGPUで描画させることができると分かりました。 また、レジストリを弄るので、基本自己責任(at your own risk)になります。

自分が現在使用しているグラフィックボードはオンボードで、 AMD 690G(RS690)、RADEON X1250となり、 D3D_FEATURE_LEVEL_9_2(DirectX 9.0b SM2.0)で、WDDM1.0対応のものとなります。

マザーボードはAM2世代で3年前に買ったものですが、BIOSアップデートにより、 最新世代のCPUであるPhenom II、Athlon II(4コアTDP95Wまで)を載せることができます。 2コアなので性能的には満足していますが、そろそろ買い替え時です。あと1年は戦ってもらいましょう。

参考にしたサイトは以下。

Force Enable GPU Hardware Acceleration Graphics Rendering on Old GPU in IE9
http://www.mydigitallife.info/2011/02/28/force-enable-gpu-hardware-acceleration-graphics-rendering-on-old-gpu-in-ie9/

AtomのようなGMA950(GMA 945は間違い!)であったり、RADEON X1150でも使えるようになるかも、とBlogでは書かれてます。

  1. スタートメニューから「デバイスマネージャー」と入力する。
  2. ディスプレイ アダプターから、アクティブになっているグラフィックカードをダブルクリックする。
  3. プロパティが開いたら、「詳細」タブを選択する。
  4. プルダウンメニューから、「ハードウェア ID」を選択する。
  5. いくつかのリストが出てくるので、似たようなのを調べる。(右クリックをするとクリップボードにコピーができます)
    ATI Radeon X1200 Seriesのプロパティ
    ちなみに、RADEON X1250の場合は以下の文字列となります。
    PCI\VEN_1002&DEV_791E&SUBSYS_D0011458&REV_00
    レジストリに必要なのは、
    VEN … 1002
    DEV … 791E
    と分かります。
  6. スタートメニューから「regedit」と入力する。
  7. 「HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\GPU」へ移動。
  8. 32bitOSの場合、
    • DeviceId … DEVの値を入れる。(RADEON X1250の場合、791E)
    • VendorID … VENの値を入れる。(RADEON X1250の場合、1002)
    • SoftwareFallback … 1から0に変更する。(レンダリングの項目が選択できるようになります)
  9. 64bitOSの場合、
    • Wow64-DeviceId … DEVの値を入れる。(RADEON X1250の場合、791E)
    • Wow64-VendorID … VENの値を入れる。(RADEON X1250の場合、1002)
    • Wow64-SoftwareFallback … 1から0に変更する。(レンダリングの項目が選択できるようになります)

    両方入れないとチェックボックスが外れることがある?
  10. レジストリを保存したら、Internet Explorer 9を再起動します。

インターネット オプション
無事、チェックボックスが選択できるようになりました。

GPUレンダリングが効いているか、Microsoftのサイトでベンチマークを行ってみます。

Internet Explorer 9 Test Drive
http://ie.microsoft.com/testdrive/

ここでは、Speed Readingを使いました。

ソフトウェアレンダリングの場合↓

GPUレンダリングの場合↓

実際に見ても、高速に描画されているように見えます。

ん?滲んでいる・・・?

試しに、自作ベンチマークを走らせてみます。

ソフトウェアレンダリングの場合↓

GPUレンダリングの場合↓

ただDIVレイヤをinnerHTMLで順次追加する単純なものですが、効果があまり出ていない感じです。 Speed ReadingのHTMLソースを見てみると、canvasを使用していることがわかりますので、 単純に「描画」だけ速くなったということがわかります。 まあ6年前に作ったものなので、単純にベンチが古いかもしれませんね。

Internet Explorer 9 ベータ版 & Flash Player 10.1 64bit Preview インストールしてみた
http://blog.livedoor.jp/mksaver70/archives/51746774.html

(11.12.29)

RADEON X1250(AMD 690G)環境下でクラシック表示にして、文字列を選択状態にすると画面表示が乱れます。これはGPUの仕様です。動作が保証されているGPUであれば、この問題は再現されません。どうやらクラシック表示とAero表示で表示の挙動が違うようです。画面表示が乱れた場合、選択状態を解除してウィンドウサイズを変更してあげると治るようですが、選択状態をしていない時でもページによっては乱れることがあります。Aero表示にした状態で使用した方が無難です。