Version: 6000.3
语言: 中文
嵌入式 Linux 的自动检测插件
对嵌入式 Linux Unity 编辑器进行故障排除

为嵌入式 Linux 启用可选功能

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

加载屏幕

当您启动嵌入式 Linux 播放器时,会出现一个单独的加载屏幕(通常在我们的参考系统上在 200 毫秒内),其中包含在玩家设置设置,可让您为 Unity 构建的最终游戏设置各种特定于玩家的选项。更多信息
请参阅术语表
窗。最初的场景场景包含游戏的环境和菜单。将每个唯一的场景文件视为一个独特的关卡。在每个场景中,你放置你的环境、障碍物和装饰品,基本上是将你的游戏设计和构建成碎片。更多信息
请参阅术语表
内容仍然可用,只是它在加载屏幕后面加载。

GLES3 的着色器缓存持久性

嵌入式 Linux 支持二进制着色器在 GPU 上运行的程序。更多信息
请参阅术语表
缓存在安装了 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.binfile 到[PATH_TO_PLAYER]/Data.

注意:

  • 每次更新播放器时,都必须刷新缓存。
  • 由于缓存是特定于设备的,因此只能在具有完全相同硬件和软件配置的设备之间共享缓存。

启动时间日志记录

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

嵌入式 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.

注意:使用与 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

当您指定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 输入处理

要启用EVDEV SDL2输入驱动程序,使用-platform-embedded-linux-wayland-enable-evdev-input论点。

强制使用 Wayland

在同时提供 X11 和 Wayland 窗口系统的系统中,可以通过将环境变量设置为SDL_VIDEODRIVER=wayland.

命令行参数

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

注意:所有命令行参数都优先于 Unity 编辑器中配置的设置。

命令行参数 描述
-platform-hmi-force-srgb-blit Force SRGB blit设置以控制在渲染期间是否使用“Gamma 色彩空间 (sRGB)”而不是“线性色彩空间”。有关更多信息,请参阅 Player Settings > Rendering > Force SRGB blit
-platform-hmi-log-startup-times 记录播放器的启动计时数据。使用此参数是启动分析工具所必需的-platform-hmi-quit-after-frame N.
-platform-hmi-quit-after-frame N 记录播放器的启动时序数据N帧,并在渲染Nth框架。N表示要记录播放器启动时间的帧数。使用此参数来分析播放器的启动性能。

注意:此参数仅在以下情况下有效
-platform-hmi-log-startup-times已启用。
-platform-hmi-single-gl-context 禁用 OpenGL ES 的上下文共享。默认情况下,Unity 使用两个 OpenGL ES 上下文,一个用于启动,另一个用于渲染。这个参数迫使 Unity 改用单个上下文。使用此参数可检测和排查图形驱动程序问题。

注意:此参数禁用多显示器支持。
-platform-hmi-cpu-configuration <configuration> 指定播放器的 CPU 配置。此参数需要一个包含字母组合的字符串:H(高性能核心)、L(低性能核心)和/或 D(禁用核心)。该字符串定义每个 CPU 内核的性能模式。

例如
DHLL在 4 核 CPU 上禁用第一个内核,将第二个内核指定为高性能,并将第三个和第四个内核配置为低性能。更多信息,请参考播放器设置>配置>CPU配置
-platform-hmi-player-data-path 输入要保存.config和日志文件。有关更多信息,请参阅播放器设置>配置>播放器数据路径
-platform-hmi-force-vsync-count [C] 定义允许在每帧之间传递的垂直同步数。将其设置为0禁用vsync垂直同步 (VSync) 是一种显示设置,用于限制游戏的帧速率以匹配显示器的刷新率,以防止图像撕裂。
请参阅术语表
完全,或将其设置为-1以使用QualitySettings.
-platform-hmi-enable-signal-handlers 为嵌入式平台配置 Unity 引擎的信号处理程序设置。默认值为1它启用了 Unity 的信号处理程序。如果崩溃处理或核心转储创建无法正常工作,请将其设置为0.
-platform-embedded-linux-enable-gamepadinput 更改游戏控制器设置。请参阅玩家设置>配置>启用游戏控制器
-platform-embedded-linux-offscreen-video 将播放器配置为使用 SDL2 中的屏幕外渲染驱动程序。这对于模拟和设置渲染服务器很有帮助。所有渲染都发生在屏幕外,但仍保持 GPU 加速。

注意:使用此功能时,您可以通过调整来限制 CPU/GPU 的使用率
Application.targetFrameRate.
-platform-embedded-linux-wayland-enable-evdev-input 在 Wayland 中运行播放器时启用 EVDEV SDL2 输入驱动程序。有关更多信息,请参阅使用 Wayland 进行 EVDEV 输入处理

其他资源

嵌入式 Linux 的自动检测插件
对嵌入式 Linux Unity 编辑器进行故障排除