可选功能

您可以启用以下可选功能以提高应用程序的性能。

加载画面

当您启动嵌入式 Linux 播放器时,会显示一个单独的加载画面(通常在我们的参考系统上为 200 毫秒内),其中包含在 播放器设置 窗口中配置的 2D 图像。初始场景内容仍然可用,只是它在加载画面后面加载。

GLES3 的着色器缓存持久性

嵌入式 Linux 支持在安装 Unity 播放器的设备上进行二进制着色器缓存,以提高启动时间。缓存是在您加载着色器后在运行时创建的。由于此缓存被写入临时文件夹:[TEMP]/[COMPANY_NAME]/[PROJECT_NAME]/UnityShaderCache/,因此在您重新启动系统时可能会被清除。

要在系统重新启动时使用着色器缓存,请按照以下步骤将缓存复制到播放器数据中

  1. 将 Unity 播放器部署到目标系统。
  2. 运行应用程序并确保所有着色器都被触及。
  3. [TEMP]/[COMPANY_NAME]/[PROJECT_NAME]/UnityShaderCache/ 中的所有文件复制到 [PATH_TO_PLAYER]/Data/UnityShaderCache/

Notes:

  • You must refresh the cache every time the player is updated.
  • As the cache is device specific, you must only share it between devices with the exact same hardware and software configuration.

Vulkan 的管道缓存持久性

嵌入式 Linux 支持在安装 Unity 播放器的设备上进行二进制 Vulkan 管道缓存,以提高启动时间。二进制 Vulkan 管道缓存是在您使用 Vulkan 管道时在运行时创建的。由于此缓存被写入临时文件:[TEMP]/[COMPANY_NAME]/[PROJECT_NAME]/vulkan_pso_cache.bin,因此在您重新启动系统时可能会被清除。

要在系统重新启动时使用管道缓存,请按照以下步骤将缓存复制到播放器数据中

  1. 将 Unity 播放器部署到目标系统。
  2. 运行应用程序并确保所有管道正在使用。
  3. [TEMP]/[COMPANY_NAME]/[PROJECT_NAME]/vulkan_pso_cache.bin 文件复制到 [PATH_TO_PLAYER]/Data

Notes:

  • You must refresh the cache every time the player is updated.
  • As the cache is device specific, you must only share it between devices with the exact same hardware and software configuration.

启动时间日志记录

启动时间日志记录是指应用程序启动所需的时间。它通常用作系统安全和监管要求的关键指标。

嵌入式 Linux 中的启动时间日志记录包括自应用程序启动以来的持续时间或总时间(以毫秒为单位)。启动时间日志记录有两种类型

  • 真实: 这是实际的墙时间或时钟时间,类似于用于计算时间的秒表。
  • 用户: 这是应用程序或其线程之一在 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 来保护代码。

Additional notes:

Use the same terminology as the Time command to refer to wall vs. CPU time. For more information, refer to the main Linux manual.

示例输出

[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 参数启动播放器。您还可以将其添加到位于 Data/boot.config 中的配置文件中,作为 platform-embedded-linux-wayland-enable-evdev-input=1

强制使用 Wayland

在同时提供 X11 和 Wayland 窗口系统的系统中,您可以通过将环境变量设置为 SDL_VIDEODRIVER=wayland 来强制 Unity 播放器使用 Wayland。

命令行参数

您可以从命令行启动 Unity 嵌入式 Linux 播放器,并传递参数来更改播放器的执行方式。

重要事项: 所有命令行参数优先于 Unity 编辑器和 boot.config 设置。

命令详细信息
-log-startup-times-and-quit

[已弃用] 渲染第一帧后退出播放器。

-platform-hmi-force-srgb-blit更改强制 srgb-blit 设置。请参考 播放器设置 > 渲染 > 颜色空间

-platform-hmi-quit-after-frame

启用日志记录。有关更多信息,请参考 播放器设置 > 配置 > 日志记录.

-platform-hmi-log-startup-times

启用日志记录。有关更多信息,请参考 播放器设置 > 配置 > 日志记录.
-platform-hmi-single-gl-context

禁用 GLES 的上下文共享。

重要事项: 该参数会禁用多显示器支持。

-platform-hmi-cpu-configuration <configuration>允许您为播放器指定 CPU 配置。需要一个字符串,其中包含字母 H(高性能核心)、L(低性能核心)和/或 D(禁用核心)的组合。例如,对于 4 个或更多个内核的 CPU,DHLL 表示禁用第一个内核的使用,将第二个内核标记为高性能,并将第三个和第四个内核标记为低性能。请参考 播放器设置 > 配置 > CPU 配置
-platform-hmi-player-data-path

输入您要在系统上保存 .config 和日志文件的目录路径。请参考 播放器设置 > 配置 > 播放器数据路径

-platform-hmi-force-vsync-count [C]在每一帧之间允许通过的垂直同步次数。其中,设置为 0 表示完全禁用垂直同步,-1 表示使用 QualitySettings 中设置的值。
-platform-embedded-linux-enable-gamepadinput更改游戏控制器设置。请参考 播放器设置 > 配置 >启用游戏控制器
-platform-embedded-linux-offscreen-video配置播放器以使用 SDL2 的离屏渲染驱动程序。这对于模拟和创建渲染服务器非常有用。所有渲染都是离屏的,但仍然会使用 GPU 加速。注意: 使用此功能时,您可能需要通过设置 Application.targetFrameRate 来限制 CPU/GPU 使用率。
-platform-embedded-linux-wayland-enable-evdev-input在 Wayland 中运行时启用 EVDEV SDL2 输入驱动程序。请参考 可选功能 > 使用 Wayland 的 EVDEV 输入处理

其他资源: