ドキュメント

Unity Engine

Unity Engine

埋め込み Linux の任意の機能の有効化

Enable optional features to improve your application performance.
読み終わるまでの所要時間 13 分最終更新 1ヶ月前

以下の任意の機能を有効にして、アプリケーションのパフォーマンスを向上させることができます。

ロード画面

埋め込み Linux プレイヤーを起動すると、別のロード画面が表示されます (通常、リファレンスシステムでは 200 ミリ秒以内)。この画面には、Player 設定 ウィンドウで設定された 2D 画像が表示されます。最初のシーンコンテンツもそのまま使用できますが、ロード画面の背後でロードされます。

GLES3 のシェーダーキャッシュの永続性

埋め込み Linux は、起動タイミングを速くするために、Unity Player がインストールされているデバイスでのバイナリシェーダーキャッシュをサポートしています。キャッシュは、シェーダーのロード後、ランタイムに作成されます。このキャッシュは一時フォルダー
[TEMP]/[COMPANY_NAME]/[PROJECT_NAME]/UnityShaderCache/
に書き込まれるため、システムの再起動時に消去できます。
システムの再起動時にシェーダーキャッシュを使用するには、以下の手順でキャッシュをプレイヤーデータにコピーします。
  1. Unity Player をターゲットシステムに展開します。
  2. アプリケーションを実行し、すべてのシェーダーがタッチされていることを確認します。
  3. すべてのファイルを
    [TEMP]/[COMPANY_NAME]/[PROJECT_NAME]/UnityShaderCache/
    から
    [PATH_TO_PLAYER]/Data/UnityShaderCache/
    にコピーします。
注:
  • プレイヤーが更新されるたびにキャッシュを更新する必要があります。
  • キャッシュはデバイス固有であるため、ハードウェアとソフトウェアの設定がまったく同じデバイス間でのみ共有する必要があります。

Vulkan のパイプラインキャッシュの永続性

埋め込み Linux は、起動タイミングを速くするために、Unity Player がインストールされているデバイスでのバイナリ Vulkan パイプラインキャッシュをサポートしています。バイナリ Vulkan パイプラインキャッシュは、Vulkan パイプラインの使用時、ランタイムに作成されます。このキャッシュは一時的な
[TEMP]/[COMPANY_NAME]/[PROJECT_NAME]/vulkan_pso_cache.bin
ファイルに書き込まれるため、システムの再起動時に消去できます。
システムの再起動時にパイプラインキャッシュを使用するには、以下の手順でキャッシュをプレイヤーデータにコピーします。
  1. Unity Player をターゲットシステムに展開します。
  2. アプリケーションを実行し、すべてのパイプラインが使用されていることを確認します。
  3. [TEMP]/[COMPANY_NAME]/[PROJECT_NAME]/vulkan_pso_cache.bin
    ファイルを
    [PATH_TO_PLAYER]/Data
    にコピーします。
注:
  • プレイヤーが更新されるたびにキャッシュを更新する必要があります。
  • キャッシュはデバイス固有であるため、ハードウェアとソフトウェアの設定がまったく同じデバイス間でのみ共有する必要があります。

起動時間ロギング

起動時間ロギングは、アプリケーションの起動にかかる時間の長さです。これは、システムの安全性と規制要件の重要な指標としてよく使用されます。
埋め込み Linux の起動時間ロギングには、アプリケーションが起動されてからの継続時間または合計時間 (ミリ秒単位) が含まれます。起動時間ロギングには 2 つのタイプがあります。
  • **Real:**実ウォール時間またはクロック時間のことで、時間の計算に使用されるストップウォッチによく似ています。
  • **User:**アプリケーションまたはそのスレッドの 1 つが CPU コアで費やした時間です。アプリケーションの起動時に複数のスレッドがビジー状態になる場合は、リアルタイムよりも大きくなる可能性があります。
C# から起動タイミングログを追加するには、以下を使用します。
HmiPlatform.LogStartupTiming("log tag");
結果は、以下の
Player.log
行に表示されます。
[TIMING::STARTUP] log tag: Real: xxx ms | User: yyy ms
ログタグ と、プレイヤーの開始時刻からの ウォール時間 (xxx) および CPU 時間 (yyy) がミリ秒単位で表示されます。
#if UNITY_EMBEDDED_LINUX_API ... #endif
を使用してコードを保護できます。
**注:**Time コマンドと同じ用語を使用して、ウォール時間とCPU 時間を参照します。詳細については、Linux のメインマニュアルを参照してください。

出力例:

[TIMING::STARTUP] Initial probing done: Real: 19 ms | User: 11 ms[TIMING::STARTUP] SDL Initialized: Real: 64 ms | User: 54 ms[TIMING::STARTUP] Scripting runtime loaded: Real: 97 ms | User: 86 ms[TIMING::STARTUP] Plugins loaded: Real: 97 ms | User: 87 ms[TIMING::STARTUP] Engine initialized (nogfx): Real: 104 ms | User: 94 ms[TIMING::STARTUP] Player Prefs loaded: Real: 104 ms | User: 94 ms[TIMING::STARTUP] Screen initialized: Real: 139 ms | User: 112 ms[TIMING::STARTUP] Engine initialized (gfx): Real: 187 ms | User: 161 ms[TIMING::STARTUP] Gfx initialized: Real: 190 ms | User: 163 ms[TIMING::STARTUP] Input initialized: Real: 190 ms | User: 163 ms[TIMING::STARTUP] SPLASH - Begin: Real: 190 ms | User: 164 ms[TIMING::STARTUP] SPLASH - Primary scene assets loaded (async): Real: 2197 ms | User: 1670 ms[TIMING::STARTUP] SPLASH - All engine initial states established: Real: 2197 ms | User: 1670 ms
スクリプト API を使用したカスタムイベントからの出力
[TIMING::STARTUP] HELLO!!: Real: 2198 ms | User: 1671 ms
boot.config
出力で
platform-hmi-quit-after-frame
を指定すると、フレーム番号
X
まで以下がログに記録されます。ここで、
X
はブート設定値として指定する番号です。
[TIMING::STARTUP] Frame 1 rendered: Real: 2209 ms | User: 1687 ms
[TIMING::STARTUP] Frame 2 rendered: Real: 2210 ms | User: 1692 ms

Wayland での EVDEV 入力処理

Wayland での実行中に
EVDEV SDL2
入力ドライバーを有効にするには、
-platform-embedded-linux-wayland-enable-evdev-input
引数を指定してプレイヤーを開始します。また、
 platform-embedded-linux-wayland-enable-evdev-input=1
として
Data/boot.config
にある設定ファイルに追加することもできます。

Wayland 使用の強制

X11 と Wayland の両方のウィンドウシステムが使用可能なシステムでは、環境変数を
SDL_VIDEODRIVER=wayland
に設定することで、Unity Player に Wayland の使用を強制できます。

コマンドライン引数

コマンドラインから埋め込み Linux の Unity Player を起動し、引数を渡すことで、プレイヤーの実行方法を変更することができます。
**注:**すべてのコマンドライン引数は、Unity エディターと
boot.config
の設定よりも優先されます。

CLI 引数

説明

-log-startup-times-and-quit
(非推奨) 最初のフレームのレンダリング後にプレイヤーを終了します。
-platform-hmi-force-srgb-blit
強制された
srgb-blit
の設定を変更します。詳細については、Player Settings > Rendering > Color Space を参照してください。
-platform-hmi-quit-after-frame
ロギングを有効にします。Player Settings > Configuration > Logging を参照してください。
-platform-hmi-log-startup-times
ロギングを有効にします。Player Settings > Configuration > Logging を参照してください。
-platform-hmi-single-gl-context
GLES のコンテキスト共有を無効にします。**注:**この引数はマルチディスプレイサポートを無効にします。
-platform-hmi-cpu-configuration <configuration>
プレイヤーの CPU 設定を指定します。この引数は、文字列が文字 H (高パフォーマンスコア)、文字 L (低パフォーマンスコア)、文字 D (無効コア) のいずれかまたはすべての組み合わせであると想定しています。例えば、4 コア以上の CPU で、1 つ目のコアの使用を無効にし、2 つ目のコアを高パフォーマンス、3 つ目と 4 つ目を低パフォーマンスとタグ付けする場合は
DHLL
となります。Player Settings > Configuration > CPU configuration を参照してください。
-platform-hmi-player-data-path
.config
ファイルとログファイルを保存するシステム上のディレクトリパスを入力します。Player Settings > Configuration > Player Data path を参照してください。
-platform-hmi-force-vsync-count [C]
各フレーム間で渡すことができる垂直同期の数です。ここで、0 を設定すると vsync が完全に無効になり、-1 を設定すると
QualitySettings
の値が使用されます。
-platform-embedded-linux-enable-gamepadinput
ゲームコントローラーの設定を変更します。Player Settings > Configuration > Enable Game Controllers を参照してください。
-platform-embedded-linux-offscreen-video
SDL2 のオフスクリーンレンダリングドライバーを使用するようにプレイヤーを設定します。これはシミュレーションとレンダリングサーバーの作成に役立ちます。すべてのレンダリングはオフスクリーンですが、GPU アクセラレーションは行われます。**注:**この機能を使用する場合、
Application.targetFrameRate
を設定することで CPU/GPU の使用量を制限できます。
-platform-embedded-linux-wayland-enable-evdev-input
Wayland での実行中に EVDEV SDL2 入力ドライバーを有効にします。詳細については、Wayland での EVDEV 入力処理 を参照してください。

追加リソース