Vulkan Rendererを使う

環境構築

Vulkan Rendererというのを使うとCTDが減って安定するらしいです。

環境

以下の環境でVulkan Rendererが動くようにしました。

Mod名バージョン
Buffout 41.24.5
xSE PluginPreloader F40.2.5.1
Baka ScrapHeap – Script Memory Limit Expander1.3
High FPS Physics Fix0.8.4-5
ENB0.468
Reshade4.9.1
Vulkan Renderer2.0.1
DLL (Native mod) loader0.2

それぞれのModが正規のインストール手順で正常に動作することを確認してあることが大前提です。

ENBとVulkan Rendererの共存についてはMiscellaneous Modding Guidesを参考にさせていただきました。

GPUはNvidia GeForce GTX 1080です。

ENBのインストール

ENB Manを使っていつもどおりにインストールします。

ひとつだけかえるところがあって、ENBのバイナリ以外をインストールします。

バイナリは後述するVulkan Rendererに含まれるので、ここでは入れません。

Vulkan Rendererを用意する

Miscellaneous Modding Guidesの手順に従い、どこでもいいのでVulkan Rendererというフォルダを作ります。このVulkan Rendererフォルダの中に必要なファイルを入れていきます。

まず、Vulkan Rendererのマニュアルインストール版をダウンロードして展開し、中身をすべてVulkan Rendererフォルダの中に入れます。

VulkanRT-1.2.198.1-Installer.exeという実行ファイルがあるので実行します。よくわかりませんが、WindowsのシステムフォルダにランタイムDLLをコピーして登録するみたいです。

入れたファイルの中にあるd3d11.dllの名前をd3d11_loader.dllに変更します。

DLL (Native mod) loaderをダウンロードして展開し、中身をVulkan Rendererフォルダの中に入れます。d3d11.dllだけです。

Vulkan Rendererフォルダの中にNativeModsというフォルダを作ります。NativeModsフォルダの中にENBというフォルダを作ります。

ENBをダウンロードして展開し、中身のd3d11.dllとd3dcompiler_46e.dllをVulkan Rendererフォルダの中に入れます。さらにVulkan Renderer\NativeMods\ENBフォルダの中にも同じように入れます。

Vulkan Renderer\NativeMods\ENB\d3d11.dllの名前をENB.dllに変更します。

Vulkan RendererをFallout 4にコピーする

Vulkan Rendererフォルダの中身をすべてFallout 4フォルダにコピーします。Fallout4.exeがあるフォルダのことです。Dataフォルダの中ではありません。

VoltexだとModとして導入できるようです。私はMO2なのでENB Manで管理することにしました。

Reshadeをインストールする

Reshadeのセットアップツールを起動してFallout 4を選択、Vulkanモードを選んで使いたいモジュールを入れます。

ReshadeはVulkan globallyというモードで動かします。

Reshadeの最新版はVulkan Rendererとうまく共存できないようです。ですので少し古いバージョンである4.9.1を使いました。

xSE PluginPreloader F4を設定する

xSE PluginPreloader.xmlを開き、以下の部分を変更します。

<ImportAddressHook>
	<!--
	<LibraryName>MSVCR110.dll</LibraryName>
	<FunctionName>_initterm_e</FunctionName>
	-->
	<LibraryName>vulkan-1.dll</LibraryName>
	<FunctionName>_initterm_e</FunctionName>
</ImportAddressHook>

MSVCR110.dllをvulkan-1.dllに変えるということです。

ENBを設定する

ENBとVulkan Rendererを共存させるために、以下の設定が必要です。

[PROXY]
EnableProxyLibrary=true
InitProxyFunctions=true
ProxyLibrary=d3d11_loader

また、Miscellaneous Modding Guidesによると以下の設定が推奨されています。

[GLOBAL]
ApplyStabilityPatch=false
UsePatchSpeedhackWithoutGraphics=false

[MEMORY]
ForceVideoMemorySize=false
VideoMemorySizeMb=4096

Vulkan Rendererを設定する

ここまででひと通りのModが動作するようになりました。

動きはするのですが、いくつか問題も確認できました。

  • Vulkan Renderer側でFPSが常に上限60固定でVsyncがオンのためローディング画面をHigh FPS Physics Fixによる350FPSの高速ロードにできない。
  • Vulkan Renderer側のVsyncをオフにしてHigh FPS Physics Fixに任せてもティアリングが発生する。
  • 特定のエリアでFPSが極端に低下する。
  • HUDが邪魔。

VsyncをオフにしてFPS上限をあげてみる

デフォルトだと60FPSに制限されていてVsyncが有効のようです。Vulkan RendererのDescriptionを参考に、dxvk.confを以下のように設定してみました。

[Fallout4.exe]
DXVK_FRAME_RATE = 0
dxgi.maxFrameRate = 120
dxvk.hud = fps,gpuload,scale=1
dxvk.useRawSsbo = True
d3d11.maxTessFactor = 16
d3d11.samplerAnisotropy = 16
d3d11.invariantPosition = False
d3d11.relaxedBarriers = True
d3d11.apitraceMode = True
dxgi.maxFrameLatency = 2
dxgi.syncInterval = 0
dxgi.tearFree = False

これだと常に120になるので、High FPS Physics Fix側でゲーム中は60、ロード中は350にしてあります。

Vulkan Renderer側の上限を120にしていますが、上限を上げれば上げるだけロード中のGPU使用率も上昇して嫌だったので、程々にしてみました。

アップスケーリングをHigh FPS Physics Fixにやらせると、GPU使用率が常に100%になりティアリングが起こるようです。Vulkan RendererについてくるMagpieにやらせたところ改善しました。

意味があるか不明ですが、モニタがAMD FreeSyncに対応しているので、NVIDIA G-SYNCを使ってみることにしました。GeForce GTX 1080にはAMD FreeSync互換モードがあるようです。NVIDIAコントロールパネルでG-SYNCの設定を行い、「ウィンドウ表示と全画面モードを有効化」にてG-SYNCを有効にしておきます。

HUDに表示される項目を絞り込む

デフォルトは全部入りなので、減らしてみました。scaleで大きさも指定できます。

[Fallout4.exe]
dxvk.hud = fps,gpuload,scale=1

特定のエリアの負荷を下げる

コルベガ組立工場は入り口からゲームの進行に影響が出るほど重いです。試しに光源をすべて取り除いてみたところ、ゲームに支障がない程度まで改善できました。

それからどうなったのか

安定したという感じはありませんでした。落ちるときは落ちます。

全体的にGPUの使用率が上昇します。そしてFPSが低下します。おそらく仕事が増えて処理しきれなくなっているのだと思います。GeForce GTX 1080は数世代前のグラフィックカードですが、効果が低いということのようです。

屋内であれば光源を取り除くといったその場しのぎができますが、屋外だとそれも面倒です。

なにかの拍子にFPSが低下したまま戻らなくなります。Fallout 4を再起動するとなおります。どうやらセルの読み込みのタイミングで発生するようです。

結局のところ使うのを止めました。

タイトルとURLをコピーしました