「このGPUなら何fps出ますか」という質問には、そのままでは答えられません。fpsはGPUの型番だけで決まる値ではなく、解像度・画質設定・アップスケーリングの有無・CPU側の上限・そのゲームのバージョンまで含めた条件の組み合わせに対して決まる値だからです。
条件を書かずに出された「◯◯で120fps」という数字は、自分の環境に当てはめられません。この記事では、fpsが何で決まるのかを分解したうえで、他の構成と比較できる形で自分の環境を測る手順までを扱います。
フレームレートの基本データ
Frame Rate- 単位
- fps(frames per second)
- 平均fps
- 計測区間の総フレーム数 ÷ 経過時間
- フレームタイム
- 1フレームの所要時間(ミリ秒)60fps相当なら約16.7ms、144fps相当なら約6.9ms
- 1% low
- フレームタイムが遅い側1%を集計した値体感のカクつきに直結するのはこちら
- 代表的な計測ツール
- PresentMon(Intel、オープンソース)GPUベンダー製オーバーレイでも計測できる
出典: Intel Corporation (GameTechDev) フレームレートの詳細ページ → 1フレームが表示されるまでに何が起きているか
1枚の映像が画面に出るまでには、大きく2つの工程があります。
- CPU側:ゲームの内部状態を更新し、何をどこに描くかという命令をGPUへ渡す
- GPU側:受け取った命令に従って、実際に画素を塗り、1枚の画像を完成させる
この2つは流れ作業なので、遅いほうが全体の速さを決めます。GPUを上位のものに替えてもfpsが変わらないことがあるのは、CPU側の工程が先に上限に達しているからです。逆にCPUだけ替えても変わらないなら、GPU側が上限になっています。
ここで重要なのは、解像度を上げたときに増えるのはGPU側の仕事だけだという点です。画素数が増えても、「何をどこに描くか」という命令の数はほとんど変わりません。この非対称性が、構成を考えるときの土台になります。
ボトルネックの基本データ
Bottleneck- GPU側で頭打ちの目安
- GPU使用率が高いまま張り付き、CPU使用率に余裕がある
- CPU側で頭打ちの目安
- GPU使用率が上がりきらず、特定のコアだけ高負荷になる
- 解像度との関係
- 解像度を上げるとGPU負荷だけが増える解像度を上げてfpsが変わらないならCPU側で頭打ちの可能性が高い
- VRAM不足の場合
- 使用率ではなく、急な落ち込みとテクスチャの表示遅れとして出る
出典: Intel Corporation (GameTechDev) ボトルネックの詳細ページ →
平均fpsだけを見ると判断を誤る
fpsの計測結果としてまず出てくるのは平均値ですが、平均値は短時間の落ち込みを均してしまいます。
平均が同じ100fpsの2つの構成があったとして、片方はほぼ一定の100fps、もう片方は普段130fpsで数秒おきに40fpsまで落ちる、ということが実際に起こります。プレイ中に不快に感じるのは平均値ではなく、この落ち込みの深さと頻度のほうです。
そこで一緒に見るのが 1% low です。これは計測区間のフレームを所要時間の遅い順に並べ、遅い側1%を集計した値で、「最も重かった瞬間がどのくらい重かったか」を表します。
- 平均fpsと1% lowが近い → 安定している
- 平均fpsは高いが1% lowが大きく離れている → 平均は良くても引っかかりを感じやすい
平均fpsだけが載っているデータを見たときは、安定性については何も言っていないデータだと扱ってください。
フレームタイムで見ると何が起きているか分かる
fpsは1秒あたりの枚数なので、1枚ごとのばらつきが見えません。1フレームにかかった時間(フレームタイム、ミリ秒)で記録すると、落ち込みが「何ミリ秒の引っかかりが何回起きたか」として直接読めます。原因を追うときは、fpsではなくフレームタイムを見るほうが早く進みます。
モニタ側の上限を先に確認する
見落とされがちですが、モニタのリフレッシュレートを超えて描いたフレームは表示されません。上限60Hzのモニタに200fps出す構成を組んでも、目に見える形で返ってくるものは限られます。
順番としては、先に「今使っているモニタが何Hzまで出せるか」を確認し、そこから目標fpsを決めるほうが、予算の使い方に無駄が出ません。モニタを買い替える前提なら、モニタとGPUのどちらに予算を割くかという比較になります。
リフレッシュレートと同期技術の基本データ
Refresh Rate / Variable Refresh Rate- 単位
- Hz(ヘルツ)
- 表示の上限
- リフレッシュレートを超えて描いたフレームは表示されない
- 可変リフレッシュレートの規格
- VESA Adaptive-Sync / AMD FreeSync / NVIDIA G-SYNC
- VESAの認証区分
- AdaptiveSync Display / MediaSync DisplayVESAが定めるディスプレイ認証プログラムの区分
ポイント先に確認する順番
モニタの最大リフレッシュレート → その解像度でその値を出せる端子がGPU側にあるか → ケーブルが必要な帯域に対応しているか。この3つが揃って初めて、モニタの仕様値どおりに動きます。
比較できる形で測る
自分の環境を測ること自体は難しくありませんが、他の構成と比較できる形で測るには、記録しておくべき条件があります。逆に言えば、この条件が書かれていない計測結果は比較に使えません。
計測ツールとしては、Intelが公開している PresentMon がオープンソースで、フレームタイムを含めた記録を取れます。GPUメーカー各社のオーバーレイ機能でも平均fpsは確認できます。
記録する条件
| 項目 | なぜ必要か |
|---|
| ゲーム名とバージョン | アップデートで性能特性が変わるため |
| GPUドライバのバージョン | 特定タイトルの最適化が入ることがあるため |
| 解像度と画質プリセット | fpsに最も大きく効くため |
| アップスケーリングの種類とモード | 内部解像度が変わり、条件がまったく別物になるため |
| フレーム生成の有無 | 表示上のfpsだけが増えるため、有無が違うと比較にならない |
| 計測した場所と経路 | シーンによって負荷が数倍違うため |
| 同時に動かしていたソフト | 録画・配信・ブラウザはCPU側を占有するため |
計測の手順
- 計測したいシーンを1つ決める(同じ経路を同じ速度で歩けるところがよい)
- 計測ツールを起動し、記録を開始する
- 決めた経路を60秒ほど動く
- 平均fpsと1% low、フレームタイムのグラフを保存する
- 設定を1項目だけ変え、同じ経路で繰り返す
一度に複数の設定を変えないことが最も重要です。2項目同時に動かすと、どちらが効いたのか分からなくなり、その計測は判断材料になりません。
注意計測結果の再現性について
同じ構成・同じ設定でも、計測ごとに数%の差は出ます。バックグラウンドの処理、GPUやCPUの温度による動作クロックの変動、メモリの状態が影響するためです。数%の差を根拠に結論を出さず、明確な差が出たときだけ判断に使ってください。
「何fps必要か」に一律の答えはない
必要なfpsは、遊ぶタイトルの種類とモニタの上限で決まります。素早い操作を競うタイトルと、映像を楽しむタイトルとでは、同じfpsでも意味が違います。
判断の順番としては次のようになります。
- 使っている(または買う予定の)モニタの解像度とリフレッシュレートを確定させる
- その解像度で、遊びたいタイトルをどの画質設定で動かしたいかを決める
- その条件を満たす構成を探す
この順番を逆にして、先にGPUを決めてから条件を考えると、モニタ側で頭打ちになって性能が使われないか、逆に解像度に対して足りないという結果になりがちです。
まとめ
- fpsはGPUの型番ではなく、条件の組み合わせに対して決まる
- 解像度を上げて増えるのはGPU側の負荷だけ。これが切り分けの手がかりになる
- 平均fpsと1% lowは必ずセットで見る。平均だけでは安定性が分からない
- 比較できる形で測るには、ゲームのバージョン・設定・アップスケーリング・計測場所まで記録する
- 目標fpsはモニタの上限から逆算する