Heliodor 2019/04/11 19:55

Windows10でDirectX9

すごく今更なんですが、2016年8月にあったWin10の大型アップデート Anniversary Update によってd3d9.dllに何らかの変更があり、そのせいでDirectX9.0を使っている一部のアプリが劇重になるという事件があったらしいですね。

私はアンテナ感度が大変低いので、恥ずかしながら全く知りませんでした。(Win10使ってるのに……)
が、私と同じように感度の低い方がいるかもしれませんので、あえて記事にします。

幸いヴィータ大脱出などではこの問題は出なかったのですが、これのやっかいなところは、修正しようにもなんせ DirectX9.0 の本家本元が変更されてしまったので、それを利用している側ではどうにもならないことです。
調べてみたところ、商業ゲームメーカーは古いバージョンのd3d9.dllを配布するという手段に出たみたいです。


オーバーフロー
Windows 10 Anniversary Update (Ver.1607)に伴う、一部ソフトの動作不具合に関して
https://www.0verflow.com/days_dx9.html

イリュージョン
Windows 10 Anniversary Update後の動作について
http://www.illusion.jp/support/windows10.html

ただ、怪しい海外サイトなどからDLLをダウンロードするときは十分気を付けてください。
DLL自体は誰でも簡単に作ることができるので、偽物のDLLをつかまされたら目も当てられません。
本物のd3d9.dllだと思ってゲーム側がDirectX9の初期化関数を呼び出した瞬間、すべてのファイルが削除されるなんてこともありうるわけで。


本家の方は具体的にどんな変更があったのかはわかりませんが、下手したらd3d9.dllは単なるエミュレータになっていて、単にDirectX12を呼び出しているだけになった可能性もあるわけです。
……と思って手元のd3d9.dllを Dependency Walker で調べてみたんですが、d3d12.dll をさらに呼び出している、という部分はなさそうでした。
さすがにそんな面倒なことはしないか……しかしなんでそんなに重くなったんでしょうね?


WindowsXPではDirectX9までしか動かない。
(そしてWindowsXPはサポート終了)
Windows7以降ならDirectX11が標準でインストールされている。
Windows10ではDirectX9が激重になる可能性がある

つまり、この事実から導き出される回答は……。
(ル○ーシュっぽいポーズを取りながら)

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

記事のタグから探す

月別アーカイブ

限定特典から探す

記事を検索