XBOX One X および XBOX Series X 開発キットでのタイトル メモリの構成
XBOX One X および XBOX Series X で実行されるタイトルは、それぞれ最大 8.9 GB および 13 GB のメモリにアクセスできます。最新のゲームのニーズは大きく異なる場合があるため、この値はタイトル開発者が構成できます。ゲームによっては、XBOX コンソール ファミリ全体で一貫したメモリ プロファイルを望む場合もあれば、より高解像度のテクスチャを読み込んだり、XBOX One X/Xbox Series X 固有の最適化を行ったりするために、より多くのメモリが必要な場合もあります。XBOX One X および XBOX Series X 上でのタイトル メモリ構成として、2 つの状態から選択できます。
コンソール モードの構成の詳細については、Microsoft Game Development Kit コンソール モード を参照してください。
MicrosoftGame.config でのタイトル メモリの構成
MicrosoftGame.config には、タイトル メモリ モードを管理する 3 つの要素があります。XboxOneXTitleMemory 要素は、XBOX One X で実行される XBOX One タイトルのタイトル メモリ モードを管理します。XboxLockhartTitleMemory 要素と XboxAnacondaTitleMemory 要素は、XBOX Series X 開発キットで “LockhartProfiling” または “AnacondaProfiling” モードで実行される XBOX Series X|S タイトルのタイトル メモリ モードを管理します。これらの要素で許可される値は、“Standard” と “Advanced” です。 XBOX One X の場合、Standard は 7.9 GB を提供し、Advanced はタイトルに 8.9 GB を提供します。Standard が選択されたときの 1 GB の差はシステムには戻されず、タイトルの I/O パフォーマンスを向上させるために XBOX ゲーム キャッシュに適用されます。 XBOX Series S の場合、Standard は 7.7 GB のメモリを提供します。その大部分 (7904 MiB) は、ピーク アクセス速度が 224 GB/s の「GPU 最適帯域幅」メモリで、残り (94 MiB) は標準 (56 GB/s) です。Advanced はさらに 574 MiB を提供し、そのうち 128 MiB が「GPU 最適帯域幅」となります。Standard メモリ モードが選択された場合、特定の状況 (フォアグラウンドでシステムの Web ブラウザーで URL を起動する場合など) でタイトルをサスペンドおよびクイック再開する必要性をなくすために、その差はシステムに戻されます。 XBOX Series X の場合、Standard は GPU に対して利用可能なピーク帯域幅 560 GB/秒 (GPU 最適帯域幅) で動作する 10 GB のメモリを提供します。Advanced では、GPU に対してピーク帯域幅 336 GB/秒 (標準帯域幅) が可能な追加の 3 GB へのアクセスがタイトルに提供されます。XBOX One X と同様に、Standard メモリ モードが選択された場合、その差はシステムには戻されません。XBOX ゲーム キャッシュなどのシステム機能に適用され、タイトルがアクティブな時にそのタイトルのサポートを強化します。開発中の追加メモリの構成とアクセス
ProfilingMode が有効な場合、ゲーム エンジンのツールから最適化されていないゲーム アセットまで、開発中に使用できる追加メモリがタイトルに提供されます。 この追加メモリは、タイトルと PIX などのツール間で共有されます。ProfilingMode が有効な場合に利用できるメモリの合計量は、開発キットのハードウェア、および XBOX One X 開発キットおよび XBOX Series X 開発キットの場合はコンソール モードに依存します。 追加メモリは、次の 2 つの方法でタイトルに公開されます。- ExtraTitleMemory 構成設定を使用して、すべての標準メモリ割り当てルーチンを介してタイトルに直接利用可能となる追加メモリの量を指定できます。
- ExtraTitleMemory 設定を介して割り当てられなかったメモリは、XMemVirtualAlloc または XMemCreateWin32Heap を呼び出すときに XMEM_TOOL フラグを指定することでアクセスできます。ツールで XMEM_TOOL ヒープを使用する方法の詳細については、後述の「XMEM_TOOL ヒープ上でのメモリの割り当て」セクションを参照してください。
開発中の追加メモリの使用に関する追加情報
- タイトルで追加メモリを使用すると、PIX のようなツールで利用できるメモリの量が減少します。PIX には少なくとも 512 MB のメモリを残すことをお勧めします。
- ツールは通常、プラットフォームのメモリ予約を使用して実行されます。ツールがタイトル メモリの使用を必要とする場合もあります。これらの割り当ては XMEM_TOOL プールが枯渇するまで XMEM_TOOL フラグを使用して行われ、その後、既定のメモリ プールから割り当てを試みます。このスピルオーバーを防ぐために、ToolingMemoryOverflow フラグを false に設定できます。ToolingMemoryOverflow 設定を使用して、PIX やその他のツールがそうすべきでないと指定していても、依然としてタイトル メモリを使用する場合があることに注意してください。これらのケースは、GDK の将来のリリースで修正される予定です。
- コンソール モードを変更しても、プロファイル モードの設定は変更されません。追加メモリは引き続きタイトルおよび PIX とツールで利用できます。追加メモリをオフにするには、プロファイル モードをオフにしてください。コンソール モードの詳細については、コンソール モードを使用してゲームをテストする を参照してください。
プロファイル モードをオンにする
追加のタイトル メモリにアクセスするには、DevHome の [Performance] タブ、XBOX Manager の設定タブ、XBOX Device Portal (XBOX 上の Windows Device Portal) の [Settings] ページ、または xbConfig コマンド ライン ツールでプロファイル モードをオンにします。 DevHome では、[Performance] タブの PIX 設定を使用してプロファイル モードをオンにします。ツールが (必要に応じて) タイトル メモリに流入するようにする場合は、[Allow PIX and other tools to overflow and use your game’s memory] を選択します。
追加のタイトル メモリの構成
プロファイル モードをオンにしたら、タイトルに直接利用可能となる追加メモリの量と、XMEM_TOOL ヒープ上で利用可能となる量を構成できます。既定では、タイトルには追加メモリは提供されません。この既定設定は、DevHome の [Performance] タブ、XBOX Manager の設定タブ、XBOX Device Portal (XBOX 上の Windows Device Portal) の設定ページ、または xbConfig コマンド ライン ツールで変更できます。 DevHome では、[Performance] タブの PIX 設定の [Manage tool memory] ボタンを選択すると、タイトルに与える追加メモリの量を構成できるスライダー コントロールが表示されます。

