Unity を検索

Vulkan レンダラーのプレビューがリリースされました

2016年9月29日 カテゴリ: テクノロジー | 5 分 で読めます
取り上げているトピック
シェア

Is this article helpful for you?

Thank you for your feedback!

Google I/O でお知らせした通り、本日、Unity で実用間近の Vulkan レンダラーの最初の開発者プレビューをリリースします。 Vulkan は新世代のグラフィックスと計算処理 API で、最近のPC やモバイルプラットフォームに使用されている多くの GPU に対し、効率が高いクロスプラットフォームのアクセスを提供します。最近 Google がリリースした Android の Nougat 版は、Vulkan API を公式にサポートしています。Unity も、ユーザーがグラフィックスパフォーマンスを次のレベルに押し上げることができるよう尽力し続けています。

cslexlkxgaujvs7
Vulkan レンダラーを使って Linux 上で実行した Unity Labs のシーン

利点

OpenGL ES 3.x などの従来のモバイルレンダリング API と比較すると、Vulkan の主な利点はスピードです。Vulkan は、複数の CPU コアを利用し、アプリケーションが並列のマルチスレッドに複数のコマンドリストを作成できるように設計されています。これにより、アプリケーションがデバイス上のすべての CPU コアを利用し、パフォーマンスを向上させることが可能になります。Vulkan プレビューリリースでは、 Player settings の “Enable Graphics Jobs” チェックボックスをチェックすることによってこれを有効にします。ただし、レンダラーがシングルスレッドで実行されているときでさえ、かなり大きなパフォーマンスの向上が見られます。Unity 社内用のベンチマークの 1 つでは、シングルスレッドで実行されているときでさえ、OpenGL ES 3.1 レンダラーに比べ、Android 上のフレームタイムで最大 35% の向上が見られました。

まず初めに

ベータ版のページから実験版ビルドを取得してください。ビルドは、Unity 5.5 beta 4 リリースです。ベータ版を試す前に、忘れずにプロジェクトのバックアップを取っておいてください。

Vulkan サポートを有効にするには “Player Settings…” を開き、“Other Settings” ペインの “Auto Graphics API” チェックボックスを無効にします。すると、グラフィックス API のリストが選択肢として表示されます。Vulkan がリストにない場合は、下の方の + をクリックして追加します。次に、Vulkan をリストの一番上位になるようにドラッグします。こうしておけば、Vulkan が可能な場合はいつでも使用されます。設定はこれで終わりです。存在するすべてのシェーダーは Vulkan SPIR-V に変換され (#pragma only_renderers などを通じて、特別に無効にされない限り)、「何もしなくても 勝手に動く」はずです。

Player settings

また、"Graphics Jobs" チェックボックスも試すことができます。これを使うと、特にマルチコア CPU で、パフォーマンスを向上させることができます。

注意 ― Android をターゲットにするとき、“Multithreaded Rendering” と “Graphics Jobs (Experimental)” 設定を絶対に同時には有効にしないように気を付けてください。その 2 つは互いに排他的なので、最終リリース版では、Graphics Jobs を有効にすると、警告なしに Multithreaded Rendering は無視されるようになります。

あとは、ビルドして実行するだけです。すべてがうまくいったら、以下のようなものがプレイヤーログの startup に表示されます。

サポートするデバイス

Vulkan をサポートするこのプレビュービルドは、以下のターゲットで使用できます。

  • Windows スタンドアロン (エディターでは Vulkan はまだ、サポートされていません)
  • Android
  • Linux スタンドアロン

Windows では、主に Nvidia と AMD の GPU をテストしました。GPU ドライバーをアップデートするのを忘れないようにしてください。Vulkan は新しい技術で、ドライバーは常に更新されています。クラッシュする不具合の報告をする前に、まず、ドライバーをアップデートして問題解決できないかを確認してください。

Android では、以下のデバイスでテストしました。

  • Samsung Galaxy S7 (ARM Mali GPU 搭載の欧州バージョン)。ビルドが 2016 年 8 月以降の最新のファームウェアであることを確認してください。それより前のファームウェアは古いドライバーを使っており、作動しません。
  • Nvidia Shield Tablet (両バージョン)、Shield Console
  • Google Nexus 6P、5X (これらのデバイスでは、他に比べて問題が多く発生する可能性があります)

以下のデバイスは、現在使用できるファームウェアでは作動しないことが確認されています。

  • Samsung Galaxy S7 (Qualcomm GPU 搭載の US バージョン)。ドライバーがアップデートされる次のファームウェアでは、問題が修正されると予想されます。更新 ― Samsung は 2016 年 10 月の次回のシステムアップデートで Qualcomm ベースの Galaxy S7 用に、修正した Vulkan ドライバーをリリースすると発表しました。

Linux では、Nvidia GPU だけをテストしました。libvulkan1 のインストール (Distro から、または、LunarG Vulkan SDK 経由かいずれかで ) と、最近のドライバー (367.x 以降のもの) が必要です。ただし、スプラッシュ画面からゲームに遷移するときに、ランダムにハングが見られました。ですから、この実験版リリースを使用するときに、可能な場合は Unity のスプラッシュ画面を無効にすることをお勧めします。

既知の問題

このリリースは実験的な開発者用プレビューなので、まだ解決していない問題があります。皆様からのフィードバックをお待ちしています。また、不具合や問題が見つかった場合はお知らせください。

  • 現時点では、Vulkan の Graphics Jobs は特に、まだ実験的です。クラッシュが発生した場合は、Graphics Jobs を無効にし、それが原因になっていないかを確かめてください
  • GrabPass は Graphics Jobs には対応していません
  • Nvidia GPU では、MSAA を有効にした複数カメラをレンダリングすると、画面が崩れることがあります
  • 現在 Android では、Graphics Jobs の設定は、2 つの同時実行スレッドで作動するようにしか設定できません。そのため、代わりにマルチスレッドレンダラー (既存のクライアント/ワーカースレッドレンダラー) を使用する方が、多くの場合は良いパフォーマンスを得られます。
  • コンピュートシェーダーはまだ、テストを十分に行っていません。効果は状況によって異なります。

どうぞ、新しいレンダラーをお試しいただき、その効果をお楽しみください。良い点、悪い点、好きな点、足りない (不満な) 点など、フォーラムに感想をお寄せください。不具合を見つけた場合は、バグレポートシステムを通して報告をお願いします (報告の際には、実験的な Vulkan ビルドに関しての報告であることを記載してください)。特に、Vulkan レンダラーが Android で GL ES 3.x より遅くなるケース、Windows で DX11 か DX9 よりも顕著に遅くなるケースに注目しています。

2016年9月29日 カテゴリ: テクノロジー | 5 分 で読めます

Is this article helpful for you?

Thank you for your feedback!

取り上げているトピック