お知らせ

整理のため全部の記事を非公開にしましたが重要そう(情報の価値が高そう)なやつから改訂が終わり次第公開に戻していきます
重要じゃないやつは多分一生そのままですが

NVIDIAグラフィックボードなのに Mirror's Edge などの古いゲームの PhysX が使われないのを直す

公開

GeForce RTX 40シリーズなど新しめのグラボを使っていると、単純にドライバーとゲームをインストールするだけではグラボの PhysX が使えないことがあります。


大惨事☆


Mirror's Edge でガラスを割るとFPSが10台までガタ落ち! PhysX ビジュアル インジケーターでもCPU演算でPhysXが動いている事がわかります


調べてみたところ、この場合グラボのPhysXを使うにはいくつかの手順が必要です…


  1. 使っているグラフィックボードがRTX 40シリーズ以前のGeForceであることを確認する(大前提。RTX 50シリーズでは32ビットPhysXが使えない)
  2. レガシードライバを入れる(ゲームによっては不要だと思う)
  3. ゲームについている PhysX DLLを消す(ココ重要
  4. NVIDIAコントロールパネルからPhysXプロセッサをグラボ優先にする(オプション)


使ってるグラフィックボードの確認

デバイスマネージャーとかで見られます。


RTX 5000番台は諦めるか、PhysX演算用にRTX 40シリーズ以前のカードを追加でパソコンに装備させましょう☆


GPU-Z での表示。この時点ではPhysXにチェックがついていない

PhysX レガシードライバのインストール

PhysX SDK 2.7.0 以前(および2.7.2)のバージョンで制作されたゲームでPhysXを利用するにはレガシードライバの導入が必要になるそうです。


レガシードライバはグラフィックボード自体のドライバにはついてこないので、自分で別途インストールしないといけません。
2007年末ごろまでに出たゲームが対象らしいです。なので今回のMirror's Edgeではたぶん関係がないかも? 私は一応インストールしました


インストールするとGPU-ZでPhysXにチェックが付きます。

ゲームに同梱されているPhysX DLLを消す(ココ重要

ゲームには古い PhysXCore.dll , PhysXDevice.dll , PhysXLoader.dll が同梱されてることがあるので、これを消すなりリネームなり、退避させるなりします。
(PCGWの参考文献: Mirror's Edge - PCGamingWiki PCGW

Mirror's Edgeでは、

mirrors edge\Binaries\PhysXCore.dll
mirrors edge\Binaries\PhysXDevice.dll
mirrors edge\Binaries\PhysXLocal\PhysXLoader.dll

が対象。



PhysXExtensions.dll というファイルもあるけどこれは必要。


これが今回の問題が発生した原因でした! 古いDLLでは新しいGeForceに対応できていなかったのです。
ゲーム側に付いているDLLを消すことでシステム側(Windows側)にインストールされたPhysX DLLを使うようになります。
システム側に入ってる新しいPhysX DLLでなら新しいグラボにも対応できてます。

サクサク

ガラスを割ってもFPSが落ちなくなりました。やったね!!

PhysX プロセッサを手動で設定する(オプション)

ここまでやっても動かないなら、PhysXプロセッサが適切に設定されていないのかもしれません。
NVIDIA コントロールパネルを開いて
「Surround、PhysX の設定」→「PhysX 設定」→「プロセッサ(O):」を
「自動選択 (推奨)」から使ってるグラフィックボードに設定して「適用(A)」を押します。


普通は「自動選択 (推奨)」で問題なく動作するはずです。


それでも動かないなら実はPhysXがそもそもインストールされていないのかも…(普通はグラフィックボードのドライバインストール時に一緒に入ります)
その場合はこれをインストールしましょう。



今回はここまで。

0 件のコメント:

コメントを投稿