Details
-
Bug
-
Resolution: Out of scope
-
P2: Important
-
None
-
5.12.1, 5.12.2
-
None
-
Qualcomm Adreno
Description
To reproduce this issue I used application from this article https://blog.qt.io/blog/2016/09/19/qt-graphics-with-multiple-displays-on-embedded-linux/ - quickmwtest (https://github.com/alpqr/quickmwtest) with some modifications:
- I added SIGINT signal handler in order to free all resources properly on the application side after closing from console.
- I changed this code:
…
for (int i = 0; i < screens.count(); ++i) {
QQuickView *v = addView(screens[i], i);
…
in order to reproduce different scenarios
The main problem was observed using this scenario:
- If I run application as it is, without changing number of loop iterations - after closing of application all displays up and nothing strange observed.
- If I change number of loop iteration in order to create QQuickView's not for all sceens - after closing of application all displays went off (no errors in the output of application), more looks like they went to sleep mode. However, re-running of application leading to enabling of displays.
One point that QC devs mentioned - maybe problem related to freeing DRM resources after closing of application. The only difference I saw in freeing sequence (between 1 and 2) was numbers of drmModeSetCrtc calls (that I thought leading to QKmsOutput::restoreMode(QKmsDevice *device) calls) for corresponding screens of that views.
I uploaded run logs + sample binaries + original source code.