This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM3359: SGX Qt eglfs模式程序卡顿

Part Number: AM3359
Other Parts Discussed in Thread: SYSCONFIG

大家好,遇到一个问题,请教下,移植SGX驱动后,使用Qt eglfs模式启动app,程序能正常运行但是切换界面之类的ui操作总是很卡,相比于linuxfb模式慢很多,请问下这是什么原因啊,使用了gpu不是应该更快才对嘛。

使用的是:Graphics_SDK_4_09_00_01,Qt5.6.1

sgx加载看日志没有问题,打印了一下sgx的clock,看着也是正确的

[20267.741293] PVR: PVRCore_Init
[20267.754500] PVR: PVRSRVDriverProbe(pDevice=bf0ed218)
[20267.759763] /home/huangxin/qt58/Graphics_SDK_4_05_00_03_new/GFX_Linux_KM/services4/system/ti335x/sysconfig.c SysInitialise 327
[20267.771879] /home/huangxin/qt58/Graphics_SDK_4_05_00_03_new/GFX_Linux_KM/services4/system/ti335x/sysconfig.c SysLocateDevices 208
[20267.784215] /home/huangxin/qt58/Graphics_SDK_4_05_00_03_new/GFX_Linux_KM/services4/system/ti335x/sysconfig.c EnableSystemClocksWrap 192
[20267.797066] /home/huangxin/qt58/Graphics_SDK_4_05_00_03_new/GFX_Linux_KM/services4/system/ti335x/sysutils_linux_wqueue_compat.c EnableSystemClocks 269
[20267.811367] PVR: EnableSystemClocks: Enabling System Clocks
[20267.817286] PVR: GPTIMER11 clock is 24MHz
[20267.821533] PVR: OSUnMapPhysToLin: unmapping 4 bytes from fa04a054
[20267.828026] PVR: OSUnMapPhysToLin: unmapping 4 bytes from fa04a038
[20267.872169] 111 EnableSGXClocks: CPU Clock is 0Mhz
[20267.877176] ###### EnableSGXClocks res = 0
[20267.881461] 222 EnableSGXClocks: SGX Functional Clock is 200Mhz
[20267.887995] PVR: PVRCore_Init: major device 247

使用strace跟踪了下程序执行情况,发现相对于linuxfb,eglfs模式多了很多如下信息(mmap2以及大量的ioctl):

5349 15:01:43.621937 mmap2(NULL, 1441792, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x51e00000 <0.000249>
5349 15:01:43.631173 mmap2(NULL, 1441792, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x51ff9000 <0.000103>
5349 15:01:43.640943 munmap(0x51e00000, 1441792) = 0 <0.000447>
5349 15:01:43.672383 mmap2(NULL, 1441792, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x51e00000 <0.000293>
5349 15:01:43.776001 munmap(0x51ff9000, 1441792) = 0 <0.000433>
5349 15:01:43.776860 munmap(0x51e00000, 1441792) = 0 <0.000399>
5349 15:01:43.803809 clock_gettime(CLOCK_MONOTONIC, {14708, 570145672}) = 0 <0.000064>
5349 15:01:43.804370 clock_gettime(CLOCK_MONOTONIC, {14708, 570467713}) = 0 <0.000034>
5349 15:01:43.871860 mmap2(NULL, 3149824, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x51e00000 <0.000265>
5349 15:01:43.873360 ioctl(5, 0xc01c6761, 0xbec26c5c) = 0 <0.000156>
5349 15:01:43.873908 ioctl(5, 0xc01c6746, 0xbec26b3c) = 0 <0.000083>
5349 15:01:43.874665 ioctl(5, 0xc01c6761, 0xbec26c5c) = 0 <0.000106>

请问下这是什么原因,以及eglfs比linuxfb慢,这个正常嘛?