Now considering case which most accurately reflects this bug: where shell/unity8 is not going to draw on the external display, just do
qmlscene Shell.qml
The external display will be black. But interacting with the single shell is fine. (rotation animation double speed, unsure why).
Now bring back unity-system-compositor:
sudo start lightdm
stop unity8
export MIR_SOCKET=/run/mir_socket
QT_LOGGING_RULES='qtmir.*=true' MIR_SERVER_NAME=session-0 qmlscene Shell.qml
on plugging in the external display, QML is not getting input events any more. If I unplug, It does get input events, but something gets confused about the target window size - events in some portions of the screen are rejected.
I did get a rendering hang in this case though too, this being the culprit:
Thread 2 (Thread 0xaf897450 (LWP 9247)):
#0 0xffffffff in __libc_do_syscall () at ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S:46
#1 0xffffffff in __pthread_cond_wait (cond=0x1ab0c98, mutex=0x1ab0c80) at pthread_cond_wait.c:186
#2 0xffffffff in std::condition_variable::wait(std::unique_lock<std::mutex>&) () at /usr/lib/arm-linux-gnueabihf/libstdc++.so.6
#3 0xffffffff in MirWaitHandle::wait_for_all() (__p=..., __lock=..., this=0x1ab0c98) at /usr/include/c++/4.9/condition_variable:98
#4 0xffffffff in MirWaitHandle::wait_for_all() (this=0x1ab0c80) at /build/mir-GYyRoo/mir-0.15.1+15.04.20150903/src/client/mir_wait_handle.cpp:53
#5 0xffffffff in mir::client::BufferStream::request_and_wait_for_next_buffer() (this=0x1ab0b40) at /build/mir-GYyRoo/mir-0.15.1+15.04.20150903/src/client/buffer_stream.cpp:316
#6 0xffffffff in mir::client::android::EGLNativeSurfaceInterpreter::driver_returns_buffer(ANativeWindowBuffer*, int) (this=0x1aab0ac, fence_fd=<optimized out>) at /build/mir-GYyRoo/mir-0.15.1+15.04.20150903/src/platforms/android/client/egl_native_surface_interpreter.cpp:53
#7 0xffffffff in mir::graphics::android::MirNativeWindow::queueBuffer(ANativeWindowBuffer*, int) (this=<optimized out>, buffer=<optimized out>, fence=<optimized out>) at /build/mir-GYyRoo/mir-0.15.1+15.04.20150903/src/common/graphics/android/mir_native_window.cpp:212
#8 0xffffffff in ()
Now considering case which most accurately reflects this bug: where shell/unity8 is not going to draw on the external display, just do
qmlscene Shell.qml
The external display will be black. But interacting with the single shell is fine. (rotation animation double speed, unsure why).
Now bring back unity-system- compositor: /run/mir_ socket LOGGING_ RULES=' qtmir.* =true' MIR_SERVER_ NAME=session- 0 qmlscene Shell.qml
sudo start lightdm
stop unity8
export MIR_SOCKET=
QT_
on plugging in the external display, QML is not getting input events any more. If I unplug, It does get input events, but something gets confused about the target window size - events in some portions of the screen are rejected.
I did get a rendering hang in this case though too, this being the culprit:
Thread 2 (Thread 0xaf897450 (LWP 9247)): unix/sysv/ linux/arm/ libc-do- syscall. S:46 cond_wait. c:186 variable: :wait(std: :unique_ lock<std: :mutex> &) () at /usr/lib/ arm-linux- gnueabihf/ libstdc+ +.so.6 :wait_for_ all() (__p=..., __lock=..., this=0x1ab0c98) at /usr/include/ c++/4.9/ condition_ variable: 98 :wait_for_ all() (this=0x1ab0c80) at /build/ mir-GYyRoo/ mir-0.15. 1+15.04. 20150903/ src/client/ mir_wait_ handle. cpp:53 :BufferStream: :request_ and_wait_ for_next_ buffer( ) (this=0x1ab0b40) at /build/ mir-GYyRoo/ mir-0.15. 1+15.04. 20150903/ src/client/ buffer_ stream. cpp:316 :android: :EGLNativeSurfa ceInterpreter: :driver_ returns_ buffer( ANativeWindowBu ffer*, int) (this=0x1aab0ac, fence_fd=<optimized out>) at /build/ mir-GYyRoo/ mir-0.15. 1+15.04. 20150903/ src/platforms/ android/ client/ egl_native_ surface_ interpreter. cpp:53 :android: :MirNativeWindo w::queueBuffer( ANativeWindowBu ffer*, int) (this=<optimized out>, buffer=<optimized out>, fence=<optimized out>) at /build/ mir-GYyRoo/ mir-0.15. 1+15.04. 20150903/ src/common/ graphics/ android/ mir_native_ window. cpp:212
#0 0xffffffff in __libc_do_syscall () at ../sysdeps/
#1 0xffffffff in __pthread_cond_wait (cond=0x1ab0c98, mutex=0x1ab0c80) at pthread_
#2 0xffffffff in std::condition_
#3 0xffffffff in MirWaitHandle:
#4 0xffffffff in MirWaitHandle:
#5 0xffffffff in mir::client:
#6 0xffffffff in mir::client:
#7 0xffffffff in mir::graphics:
#8 0xffffffff in ()