ハイライト
Apple が Game Porting Toolkit をリリースしました。これにより、開発者は Windows DirectX ゲームを変更せずに Mac 上で実行し、グラフィックス機能の互換性とパフォーマンスのベースラインを迅速に評価し、ネイティブ移植の決定を下すことができます。
主な内容
ゲーム移植の問題点
Windows ゲームを Mac に導入するには、ソース コードの再コンパイル、数千の HLSL シェーダーの変換、グラフィック サブシステムの再実装、オーディオ入力表示と HDR の処理など、最初のフレームが表示されるまでに多くの作業が必要になることがよくあります。
Game Porting Toolkit はこのプロセスを変更します。無修正の Windows ゲームを Mac 上で直接実行できる翻訳環境を提供します。
(00:59)
ツールキットは何を翻訳しますか?
Game Porting Toolkit は、ゲームの Intel x86 命令と Windows API 呼び出しを変換します。
- キーボード、マウス、ゲームパッド入力
- オーディオの再生
- ネットワークとファイルシステム
- グラフィックス API (DirectX 11/12)
GPU 駆動のパイプライン、SIMD 操作、テッセレーション、ジオメトリ シェーダーなど、最新のグラフィックス機能がすべてサポートされています。
(03:06)
実践的なデモンストレーション: 媒体
Bloober チームは、Game Porting Toolkit を使用してゲーム The Medium を評価しました。手順は次のとおりです。
- ツールキットをインストールする
- Windows 版のゲームを Mac にコピーします。 3.ターミナルからゲームを起動します
# 在终端中启动游戏
game-porting-toolkit /path/to/TheMedium.exe
ターミナルにはログとデバッグ情報が表示されます。Bloober の開発者は、透明効果、反射、ジオメトリ シェーダ、テッセレーション、グローバル イルミネーションがすべて Metal 3 に正しく変換され、ゲームが正常に動作していることを確認しました。
(03:37)
パフォーマンス評価のワークフロー
ツールキット ランタイムのパフォーマンスには変換オーバーヘッドが含まれるため、表示されるデータは上限ではなくベースラインです。ネイティブ移植後はパフォーマンスが大幅に向上します。
推奨される評価ワークフロー:
- Metal Performance HUD を有効にしてゲームをプレイする
- フレームレートが低下する場所を見つける
- 計測器を使用して金属システムのトレースをキャプチャする
- GPU タイムラインを分析して問題の根本原因を見つける
強化された HUD には、標準の情報に加えて、次の情報が表示されます。
- 命令セット翻訳の詳細
- Direct3D API バージョン
- レンダーエンコーダーの数
- フレームごとに使用されるジオメトリ シェーダとテッセレーション シェーダの数
- リソースのコピーおよびクリア操作
(05:53)
入力、オーディオ、ディスプレイ
入力: Apple プラットフォームのゲーム コントローラー フレームワークは、ハンドル、キーボード、マウス、ステアリング ホイール、ジョイスティックをサポートしています。アプリケーションごとの入力再マッピング、スクリーンショット、画面録画、15 秒間のハイライト再生をシステムレベルでサポートします。
オーディオ: クロスプラットフォームのオーディオミドルウェア (Wwise、Unity、FMOD) には、Apple プラットフォーム上のネイティブ Apple Silicon SDK があります。基礎となる API を直接使用する場合は、Spatial Mixer Audio Unit、PHASE、および AVAudioEngine を使用できます。
ディスプレイ: CAMetalLayer は拡張ダイナミック レンジ (EDR) をサポートしており、HDR およびトーン マッピング ロジックを移行できます。CAMetalDisplayLink API は、きめ細かい入力および表示遅延制御を提供します。
(09:42)
##詳細
Metal Shader Converter
Game Porting Toolkit には、HLSL GPU シェーダーを Metal に自動的に変換する Metal Shader Converter が含まれています。これにより、何千ものシェーダを手動で書き直す手間が省けます。
変換されたシェーダは、Metal ライブラリ ファイルを直接生成します。これは、実行時のコンパイル オーバーヘッドを回避するためにアプリケーションにパッケージ化できます。
(02:03)
インストゥルメントを使用してパフォーマンスを分析する
HUD がシーン内で異常なフレーム レートを表示する場合は、インストゥルメントを使用してメタル システム トレースをキャプチャします。
- Instruments を開き、Metal System Trace テンプレートを選択します
- ゲームプロセスにアタッチする
- パフォーマンスの問題のシナリオを再現する
- 記録を停止し、GPU タイムラインを分析する
一般的な調査結果: GPU タイムラインに大きなギャップがあり、使用率が低く、一部のフレームではスケジュールされた作業がまったくありません。これは通常、命令変換または API 変換のオーバーヘッドが原因で発生します。これらの問題はネイティブ ポート後に解消されます。
(06:13)
重要ポイント
-
やるべきこと: Game Porting Toolkit を使用して、Mac 上での Windows ゲームの実現可能性を迅速に評価します。
-
価値がある理由: ネイティブ ポートを数か月待つ代わりに、ゲームが Mac 上でどのように表示されるかを数時間で確認できます。
-
開始方法:developer.apple.com からツールキットをダウンロードし、ドキュメントに従って設定し、Windows ゲーム実行可能ファイルを直接実行します。
-
やるべきこと: Metal Performance HUD とインストゥルメントを使用して、評価フェーズ中にパフォーマンスのベースラインを確立します。
-
実行する価値がある理由: ツールキットの実行時のパフォーマンス データには、変換オーバーヘッドが含まれます。自然移植後は大幅な改善が見られます。どこにボトルネックがあるのかを事前に知ることができます。
-
開始方法: HUD を有効にしてゲームをプレイし、フレーム ドロップ ポイントを見つけて、楽器を使用してメタル システム トレースをキャプチャします。
-
内容: MetalFX アップスケーリングを使用して、ネイティブ バージョンのフレーム レートを向上させます。
-
価値がある理由: Windows バージョンのツールキットを実行している場合、MetalFX は使用できませんが、ネイティブ移植後は有効になり、フレーム レートが大幅に向上します。
-
開始方法: 評価が完了したら、移行段階に入り、レンダリング パイプラインに MetalFX を統合します。
-
内容: コントローラーの振動と触覚フィードバックを Mac バージョンのゲームに追加します。
-
実行する価値がある理由: ゲーム コントローラー フレームワークはこれらの機能をネイティブにサポートしており、Windows ゲームの XInput ロジックを直接マッピングできます。
-
開始方法: XInput/GameInput 呼び出しをゲーム コントローラー フレームワークに置き換えます。
関連セッション
- ゲームを Mac に持ち込む、パート 2: シェーダーをコンパイルする — Metal Shader Converter を使用して HLSL シェーダーを Metal に変換する
- ゲームを Mac に持ち込む、パート 3: Metal でレンダリング — Metal での高性能レンダリング
- Metal を使用して GPU レンダラーを最適化 — Metal の最新機能を使用して GPU レンダラーを最適化します。
コメント
GitHub Issues · utterances