团结 EmbeddedLinux 应用使用SDL2处理输入以及与窗口交互,并使用EGL、OpenGLES3(或Vulkan)进行渲染,运行时需要SDL动态加载EGL驱动文件和GLES驱动文件(或Vulkan驱动文件)。
本文档假设用户使用 weston 作为 Wayland compositor ,您也可稍作修改用于其他 Wayland compositor。
您需要将weston的安装位置(默认是/run/user/1000/
)配置到环境变量XDG_RUNTIME_DIR
。weston 将从环境变量XDG_RUNTIME_DIR
中配置的目录里获取到 wayland socket。
默认情况下,团结会创建与物理显示器尺寸相同的表面。如果您想要使用物理显示器以外的表面,可以将环境变量UNITY_IVI_EXPORT_DISPLAYS
配置为<宽>x<高>@<刷新率>,<宽>x<高>@<刷新率>……
。
例如希望在第一个display上使用1024x768的表面,在第二个display上使用1920x1080的表面:
export UNITY_IVI_EXPORT_DISPLAYS=1024x768@60,1920x1080@60
默认刷新率是60,因此可以省略@60
:
export UNITY_IVI_EXPORT_DISPLAYS=1024x768,1920x1080
运行EmbeddedLinux应用时,可以通过传入参数来改变程序的运行状态和方式,所有的命令行参数都优先于构建应用前在Editor中填写的设置,以及boot.config中的设置。
参数 | 描述 |
---|---|
-logfile <文件路径> | 将日志输出到指定文件中。 |
-window-x <N> | 设置应用窗口起始位置x坐标为N。 |
-window-y <N> | 设置应用窗口起始位置y坐标为N。 |
-screen-fullscreen 0 | 设置以窗口模式启动应用。 |
-platform-hmi-log-startup-times | 输出启动时间,并持续输出应用的帧率。 |
-platform-hmi-quit-after-frame <N> | 渲染N帧后使应用自动退出,N默认为1。 |
-platform-hmi-player-data-path <目录> | 指定应用程序的数据文件的存放目录,默认为~/.config 。 |
-platform-hmi-force-vsync-count <N> | 设置垂直同步数量为N,覆盖 PlayerSettings>Quality>VSync Count 中的设置。 |
-platform-hmi-force-srgb-blit <N> | 在选择Linear作为颜色空间时,启用此参数后将强制开启srgb blit。如果图形驱动不支持Linear颜色空间,开启后会将颜色空间转为Gamma。 |
-platform-hmi-single-gl-context | 禁用GLES的上下文共享。若使用GLES或GL作为图形API,传入该参数后Player将无法多屏渲染。 |
-platform-hmi-cpu-configuration <configuration> | 将CPU标记为高性能核、低性能核或禁用核,用于设置亲和性。其中<configuration> 应为H (high performance core)、L (low performance core)、D (disable core)三个字母的组合。例如传入-platform-hmi-cpu-configuration DHL 代表禁用第一个核,并将第二个核和第三个核分别标记为高性能和低性能。该参数将覆盖 PlayerSettings>Configuration>CPU Configuration 中的设置。 |
-platform-embedded-linux-enable-gamepadinput | 设置应用是否支持游戏控制器,开启后会增加应用的启动时间。 |
-platform-embedded-linux-offscreen-video | 启用后使用 SDL2 离屏渲染。所有的渲染都将离屏进行,但仍由GPU加速。 |
-platform-embedded-linux-wayland-enable-evdev-input | 启用 EVDEV SDL2 输入。 |
platform-hmi-unitymain-priority | 设置主线程的线程优先级。 |
platform-hmi-gfxdeviceworker-priority | 设置渲染线程的线程优先级。 |
platform-hmi-jobworker-priority | 设置工作线程的线程优先级。 |
platform-hmi-background-jobworker-priority | 设置后台工作线程的线程优先级。 |
platform-hmi-unitymain-affinity | 设置主线程的CPU亲和性,默认情况下允许主线程在所有大核上运行。 |
platform-hmi-gfxdeviceworker-affinity | 设置渲染线程的CPU亲和性,默认情况下允许渲染线程在所有大核上运行。 |
platform-hmi-jobworker-affinity | 设置工作线程的CPU亲和性,默认情况下允许工作线程在所有大核上运行。 |
Notes:关于设置线程优先级和亲和性的参数的详细说明可参考Android thread configuration。其他未在本页面列出的命令行参数可参考命令行参数。