한국어English日本語简体中文繁體中文DeutschไทยTiếng ViệtРусскийPortuguês (Brasil)EspañolBahasa Indonesia

ゲームラグ白書 › L2 クライアントのOS・端末

省電力モード・サーマルスロットリング Power saving, thermal throttling

原因ID co-power · 主担当 外部・外部 · 副担当 ゲーム開発チーム・クライアント開発

図と実験のあるメインページでこのカードを開く →

ノートPCのバッテリーモード、スマホの省電力モード、端末の発熱によって、CPU・GPUの速度が落ちます。発熱の場合は、最初は問題なく、しばらくしてから重くなるのが特徴です。

なぜ バッテリー・省電力モードか、端末が熱くなっている → すると CPU・GPUのクロックを、端末によって30〜50%下げる → 画面では 省電力モードは起動直後から、発熱は数分〜20分ほどプレイした後から、FPSが下がってカクつく

症状
カクつき, 入力遅延
要因
ストール
誰に起きるか
自分だけ
いつ
長時間稼働するほど, 常に
担当
主担当 外部・外部 · 副担当 ゲーム開発チーム・クライアント開発
ゲーム開発チームの対応
グラフィックオプションの自動調整、フレームレート上限による発熱管理、OSが通知する発熱段階(iOSのthermalState、Androidの発熱状態API)を見て先にオプションを下げる、GPUを2つ搭載したノートPCでディスクリートGPUを使うよう実行ファイルで指定(NvOptimusEnablement・AmdPowerXpressRequestHighPerformanceのエクスポート)。
外部の対応
ユーザーに、省電力モードを解除すること、ノートPCは電源につなぐことを案内。「いいノートPCなのにFPSが低い」という報告なら、ゲームがどちらのGPUで動いているかを確認し、Windowsのグラフィックの設定でゲームを高パフォーマンスのGPUに指定するよう案内。
グラフでは
徐々に上昇 · FPS、CPU・GPUのクロック
確認箇所
PresentMonのCPUFrequency・GPUFrequency・CPUTemperature・GPUTemperatureをフレームタイムとあわせて20〜30分記録し、タスクマネージャーのプロセスタブのGPUエンジン列で、ゲームがどちらのGPUで動いているかを確認。モバイルは、Androidの発熱API(getThermalHeadroom、発熱状態)とiOSのthermalStateをFPSとあわせて記録
該当する場合
温度が上がってクロックが下がった時点からFPSが落ちるか、バッテリー・省電力モードのときだけクロックが低い。または、ゲームが内蔵GPUで動いている
該当しない場合
クロック・温度が変わらないのにFPSが落ちるなら「バックグラウンドプロセスによるCPU占有」か「クライアントのメモリリーク」
確認手段
ユーザー側の環境で確認
もっと詳しく
GPUを2つ搭載したノートPCは、電力を節約するためにゲームを遅い内蔵GPUで動かすことがあります。「いいノートPCなのにFPSが低い」という報告なら、まずゲームがどちらのGPUで動いているかを確認します。

出典

  1. Thermal API Android (Google)
    端末は高い性能を限られた時間しか維持できず、その後は発熱でスロットリングされる。発熱状態を見て、先に負荷を下げることを推奨
  2. thermalState Apple
    iOSが通知する現在の発熱段階。段階が上がったら、アプリはリソースの使用を減らす必要がある
  3. Selecting the Best Graphics Device to Run a 3D Intensive Application AMD
    GPUを2つ搭載したノートPCで内蔵GPUで動くと、60FPSのゲームが30FPSになることもある。AmdPowerXpressRequestHighPerformanceのエクスポートでディスクリートGPUを選択
  4. PresentMon Capture Application (README-CaptureApplication.md) Intel
    CPUFrequency・GPUFrequency(クロック)、CPUTemperature・GPUTemperature(温度)をフレームごとに記録
  5. GPUs in the task manager Microsoft
    タスクマネージャーには、プロセスごとのGPU使用率と、その値がどのGPU・エンジンのものかを示す列がある

あわせて読みたい原因

同じ層:L2 クライアントのOS・端末

同じ症状(カクつき)を起こすほかの層の原因

図と実験のあるメインページでこのカードを見る