团结 QNX 应用使用基于SDL2的EGL以及OpenGLES3进行渲染,在运行前需要指定EGL驱动文件和GLES驱动文件的所在路径。
指定驱动有三种方式:
- platform-qnx-graphics-conf <文件路径>
指定graphics.conf
的路径,团结引擎根据文件内容识别驱动。SDL_VIDEO_EGL_DRIVER
和SDL_VIDEO_GL_DRIVER
环境变量中。graphics.conf
的路径,或指定两个驱动文件的文件路径。若选择通过识别graphics.conf
中的内容来指定驱动,团结引擎将会在以egl-dlls
开头的行中识别EGL驱动,在以glesv2-dlls
开头的行中识别GLES驱动。
运行QNX应用时,可以通过传入参数来改变程序的运行状态和方式,所有的命令行参数都优先于构建应用前在Editor中填写的设置,以及boot.config中的设置。
参数 | 描述 |
---|---|
-logfile <文件路径> | 将日志输出到指定文件中。 |
-screen-width 720 | 设置窗口宽度。 |
-screen-height 320 | 设置窗口高度。 |
-window-x <N> | 设置应用窗口起始位置x坐标为N。(若不设置,默认居中) |
-window-y <N> | 设置应用窗口起始位置y坐标为N。(若不设置,默认居中) |
-monitor <N> | 设置展示在哪个窗口。 |
-zorder <N> | 设置层级为N。 |
-platform-hmi-log-startup-times | 输出启动时间,并持续输出应用的帧率。 |
-platform-hmi-quit-after-frame <N> | 渲染N帧后使应用自动退出,N默认为1。 |
-platform-qnx-graphics-conf <文件路径> | 指定 graphics.conf文件所在路径。 |
-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的上下文共享。启用该参数后,QNX 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-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。其他未在本页面列出的命令行参数可参考命令行参数,不再重复说明。
在运行应用时,可传入参数-platform-hmi-log-startup-times
,或者在Player Settings>Other Settings>Configuration中勾选Log startup Timings
,允许应用输出启动时间的长度。
QNX设备中的启动时间记录包括从应用程序启动开始的持续时间和总时间。有两种类型的启动时间日志记录:
[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
[TIMING::FRAME] 60 fps
[TIMING::FRAME] 58 fps
[TIMING::FRAME] 59 fps
若同时传入参数-platform-hmi-log-startup-times
和platform-hmi-quit-after-frame
,还会输出每帧的渲染时间,直到应用退出。
[TIMING::STARTUP] Frame 1 rendered: Real: 2209 ms | User: 1687 ms
[TIMING::STARTUP] Frame 2 rendered: Real: 2210 ms | User: 1692 ms