未分類

VRChat CPUパフォーマンステスト 2022/07

概要

VRChatでの以下の要素がCPU負荷に及ぼす影響を測定する。

注意事項

このベンチマークではGPU負荷の変動は対象外とする。
実際のFPSは環境、設定、状況に依存する。

測定環境

VRヘッドセット
VIVE Pro Eye

PC
M/B ASRock Steel Legend B550 (AGESA Combo V2 PI 1.2.0.6b)
CPU1 AMD Ryzen 9 5900X@定格 (AMD Ryzen チップセットドライバ 4.06.10.651)
CPU2 AMD Ryzen 7 5800X3D@定格 (AMD Ryzen チップセットドライバ 4.06.10.651)
GPU NVIDIA GeForce RTX 3060
RAM DDR4-2133 32GB

VRChat
ワールド:HomeBox[Box]
Graphics Quality:High
Multisample Antialiasing:x2
アバター:検証用アバター(スカート0/50/100/150/200/250/300/350/400/450/500個)

SteamVR
OpenXRランタイム:SteamVR
スーパーサンプリング:4%(片目404x448)
カスタムスケール:100%
モーションスムージング:オフ

ソフト・ドライバ
Microsoft Windows 10 Home(x64) Build 19044.1826
Microsoft Windows 11 Home(x64) Build 22000.832
VRChat EAC OFF: build 1207, w_2022.2.1p6-aff04cef72
VRChat EAC ON: (Open-Beta)build 1212, w_2022.2.2-ecf5bae373
SteamVR beta 1.23.6
fpsVR 1.23
NVIDIAドライバ 516.59

NVIDIA設定
アンチエイリアシング - モード:アプリケーションによるコントロール
低遅延モード:オン
テクスチャフィルタリング - ネガティブLODバイアス:許可
テクスチャフィルタリング - 異方性サンプル最適化:オン
テクスチャフィルタリング - クオリティ:パフォーマンス
テクスチャフィルタリング - トリリニア最適化:オン
バーチャルリアリティ レンダリング前フレーム数:1
バーチャルリアリティ - 可変レートスーパーサンプリング:オフ
電源管理モード:パフォーマンス最大化を優先

OS設定
仮想メモリ:自動
プロセッサのスケジュール:バックグラウンドサービス
ゲームモード:オフ
ハードウェアアクセラレーションによるGPUスケジューリング:オフ

測定方法

DynamicBone設定済みスカートを0-500個展開したオブジェクトをジェネリックアバターとしてアップロードし、軽量なワールドにてスカートを視界に入れた約5秒間のCPUフレームタイムをfpsVRでログ出力する。このとき確実にCPUボトルネックになるようにSteamVRスーパーサンプリング(内部解像度)は最小値の4%にする。この手順を調査要素ごとに実行する。

使用したスカート

シャペル (https://booth.pm/ja/items/1349366)
スケールは0.6倍
マテリアルはStandard
スカート数
0/50/100/150/200/250/300/350/400/450/500

外観

検証で使用したスカート500個
検証で使用した左右の動作

DynamicBoneコンポーネント

500個の時のSDKによる評価

PhysBonesへの変換はVRChat内の自動変換を使用

fpsVR

https://store.steampowered.com/app/908520/fpsVR/

Process Lasso

VRChat.exeを5900XのCPU0-CPU11に割当て、CCDを制限した。

https://bitsum.com/process-lasso/

結果

Easy Anti-Cheat

CPUフレームタイムは小さいほど高速
表内はfpsVRのログから算出した約5秒間のCPUフレームタイム平均値

EACを有効化すると、
PhysBonesでは平均5.08%の負荷増加があった。
DynamicBoneでは平均2.16%の負荷増加があった。

5800X3D

CPUフレームタイムは小さいほど高速
表内はfpsVRのログから算出した約5秒間のCPUフレームタイム平均値

5900Xから5800X3Dへ変更すると、
PhysBonesでは平均60.93%高速化した。
DynamicBoneでは平均80.42%高速化した。

CCD制限

CPUフレームタイムは小さいほど高速
表内はfpsVRのログから算出した約5秒間のCPUフレームタイム平均値


5900XをCCD制限すると、
PhysBonesでは平均24.19%高速化した。
DynamicBoneでは平均20.38%高速化した。

Windows 11

CPUフレームタイムは小さいほど高速
表内はfpsVRのログから算出した約5秒間のCPUフレームタイム平均値

Windows 10からWindows 11に変更すると、
PhysBonesでは平均6.38%の負荷増加があった。
DynamicBoneでは平均5.99%の負荷増加があった。

PhysBones

全ての測定結果を総合して、DynamicBonesからPhysBonesへ変更すると平均76.88%高速化した

結論

Easy Anti-CheatとWindows 11のCPU負荷への影響は大きくはない。5800X3Dへの換装、5900XのCCD制限、PhysBonesへの変換はCPU処理時間を大幅に高速化させる。

考察

Easy Anti-CheatやWindows 11がCPU負荷に与える影響は2-6%なものの、例えば本来70-90FPS出ていた低負荷な場面でのFPS減少幅が4FPS程度あると考えると無視はできないとも言える。
5900Xと5800X3Dについて、CPUと設定を問わずスカート数が一定値を超えると大幅にフレームタイムが増えるが、その後のフレームタイムの増加はスカート数に比例する。1桁msで処理できるスカート数を多い順番に並べると、5800X3D, 5900X(CCD制限), 5900Xとなる。これはキャッシュ量とCCD間処理のレイテンシ解消が主な要因と思われる。

対策と展望


テスト結果を踏まえるとRyzen CPUでパフォーマンスを向上させるには以下のような対策が考えられる。

  • Zen3 5950X, 5900Xの場合はCCD(最大8コア)制限をする、Zen2の場合はCCX(最大4コア)制限をする
  • 5800X3Dに変更する
  • ゲーム内のPhysBones自動変換を有効化する
  • Windows 11ではなくWindows 10を利用する

展望として、VRChatの大人数インスタンスで高いFPSを維持するには、今後登場するCPU(Intel/AMD)のクロック周波数とIPCで実現するシングルスレッド性能だけではなく、キャッシュ量も併せて重要になってくるだろう。

  • この記事を書いた人

tona

2018年に初めてプレイして以来VRのファンに。主にVRChatをプレイしています。VRの可能性に夢を見ずにはいられません。

-未分類
-, ,