Hello,
My setup; i.mx6q and a 1280x800 TFT LCD on one LVDS port, running Linux 3.10.17 & qt5.4.
Using software rendering the bus load is as expected: around 230Mb/sec for a 1280x800 display.
Using QT5.4 and software rendering (QT5.4 / fbdev), the bus load doesn't change much, but the arm cpu load rises due to SW-rendering.
Enabling vivante gpu support (QT5.4 / eglfs), the arm cpu load drops, but the bus load caused by the gpu is excessive.
Same applies to running the X11 server with vivante driver & QT5.4 (xcb). For mmdc bus load measurement results, see below, Qt5.4/eglfs is more or less the same.
I also did some tests with Qt5.3, the bus load stays the same. The test application isn't really doing much: it's a blank screen with a counter counting up, the bus load should be way below than the reported bus consumption.
Since the same behaviour shows on Qt/eglfs as well on Qt/X11 I don't suspect the qt qpa plugin is buggy.
-> What is causing the high bus load on the GPU3D unit?
-> Could this a configuration issue?
-> are the numbers the mmdc report accurate?
-> Are there newer/updated drivers for the vivante? where?
The ultimate goal is to run three Qt5 applications with acceleration on three different displays (2x 1280x800, 1x 1080x1920), as of now, this completely hangs the display subsystem.
Best regards,
Lo
-------------Test results for X11 vivante driver & QT5.4 (xcb):
# mmdc IPU1
i.MX6Q detected.
MMDC IPU1
MMDC new Profiling results:
***********************
Measure time: 1000ms
Total cycles count: 528057872
Busy cycles count: 521387144
Read accesses count: 3703224
Write accesses count: 0
Read bytes count: 237006336
Write bytes count: 0
Avg. Read burst size: 64
Avg. Write burst size: 0
Read: 226.03 MB/s / Write: 0.00 MB/s Total: 226.03 MB/s
Utilization: 2%
Bus Load: 98%
Bytes Access: 64
# mmdc IPU2
i.MX6Q detected.
MMDC IPU2
MMDC new Profiling results:
***********************
Measure time: 1000ms
Total cycles count: 528061448
Busy cycles count: 521377647
Read accesses count: 0
Write accesses count: 0
Read bytes count: 0
Write bytes count: 0
Avg. Read burst size: 0
Avg. Write burst size: 0
Read: 0.00 MB/s / Write: 0.00 MB/s Total: 0.00 MB/s
Utilization: 0%
Bus Load: 0%
Bytes Access: 0
# mmdc GPU3D
i.MX6Q detected.
MMDC GPU3D
MMDC new Profiling results:
***********************
Measure time: 1000ms
Total cycles count: 528063264
Busy cycles count: 521379193
Read accesses count: 15638321
Write accesses count: 28525663
Read bytes count: 719771472
Write bytes count: 1264129448
Avg. Read burst size: 46
Avg. Write burst size: 44
Read: 686.43 MB/s / Write: 1205.57 MB/s Total: 1892.00 MB/s
Utilization: 23%
Bus Load: 98%
Bytes Access: 44
# mmdc
i.MX6Q detected.
MMDC SUM
MMDC new Profiling results:
***********************
Measure time: 1001ms
Total cycles count: 528065800
Busy cycles count: 521318372
Read accesses count: 19621180
Write accesses count: 28598965
Read bytes count: 967430824
Write bytes count: 1265224528
Avg. Read burst size: 49
Avg. Write burst size: 44
Read: 921.69 MB/s / Write: 1205.41 MB/s Total: 2127.10 MB/s
Utilization: 26%
Bus Load: 98%
Bytes Access: 46
-------------Test results for software rendering w/ QT5.4 (fbdev):
# mmdc IPU1
i.MX6Q detected.
MMDC IPU1
MMDC new Profiling results:
***********************
Measure time: 1000ms
Total cycles count: 528092648
Busy cycles count: 93294623
Read accesses count: 3703480
Write accesses count: 0
Read bytes count: 237022720
Write bytes count: 0
Avg. Read burst size: 64
Avg. Write burst size: 0
Read: 226.04 MB/s / Write: 0.00 MB/s Total: 226.04 MB/s
Utilization: 15%
Bus Load: 17%
Bytes Access: 64
# mmdc GPU3D
i.MX6Q detected.
MMDC GPU3D
MMDC new Profiling results:
***********************
Measure time: 1000ms
Total cycles count: 528060952
Busy cycles count: 93162424
Read accesses count: 0
Write accesses count: 0
Read bytes count: 0
Write bytes count: 0
Avg. Read burst size: 0
Avg. Write burst size: 0
Read: 0.00 MB/s / Write: 0.00 MB/s Total: 0.00 MB/s
Utilization: 0%
Bus Load: 0%
Bytes Access: 0
# mmdc
i.MX6Q detected.
MMDC SUM
MMDC new Profiling results:
***********************
Measure time: 1000ms
Total cycles count: 528067488
Busy cycles count: 93230604
Read accesses count: 3769392
Write accesses count: 9059
Read bytes count: 238287920
Write bytes count: 259264
Avg. Read burst size: 63
Avg. Write burst size: 28
Read: 227.25 MB/s / Write: 0.25 MB/s Total: 227.50 MB/s
Utilization: 15%
Bus Load: 17%
Bytes Access: 63
# mmdc IPU2
i.MX6Q detected.
MMDC IPU2
MMDC new Profiling results:
***********************
Measure time: 1000ms
Total cycles count: 528059608
Busy cycles count: 93173494
Read accesses count: 0
Write accesses count: 0
Read bytes count: 0
Write bytes count: 0
Avg. Read burst size: 0
Avg. Write burst size: 0
Read: 0.00 MB/s / Write: 0.00 MB/s Total: 0.00 MB/s
Utilization: 0%
Bus Load: 0%
Bytes Access: 0
The GPU in itself provides significant bus load, because of memory read / write operations.
Alas, we do not have estimations about GPU bus load because of memory traffic.
Have a great day,
Yuri
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------