diff options
author | Gatis Paeglis <gatis.paeglis@qt.io> | 2018-06-04 17:24:53 +0200 |
---|---|---|
committer | Jani Heikkinen <jani.heikkinen@qt.io> | 2018-06-11 12:19:37 +0000 |
commit | 67227aeffdf94be8d177309d27291d5b3247586c (patch) | |
tree | ebed95ed7af297ac60d965aced787651074d0fb8 /src/plugins/platforms/xcb/qxcbvulkaninstance.cpp | |
parent | 89f9a3db15940ea87d6ad89f93bfa5aa1d7564fb (diff) |
xcb: fix regression with remote X11 clients
There were several issues here:
We were attempting to use MIT-SHM functions over SSH connection,
which is not supported. X server should detect this and return with
an appropriate error message. It does actually return BadAccess for
non-fd code path, but Qt was stubbornly trying to repeat this action
and always falling back to malloc (during window resizing). For fd
code path we were hitting X server bug, which would result in window
freeze [1].
During the initialization we check if xcb_shm_attach_checked() fails,
and disable MIT-SHM if it does. We use this logic to detect if we
are running remotely, as there are no public APIs for it. This way
we can avoid X server bug and avoid needless calling of code path
which will _always_ fail on a remote X11 connection.
[1] https://lists.x.org/archives/xorg-devel/2018-June/057011.html
Task-number: QTBUG-68449
Task-number: QTBUG-68783
Change-Id: I7ab3dcf0f323fd53001b9f7b88c2cb10809af509
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
Diffstat (limited to 'src/plugins/platforms/xcb/qxcbvulkaninstance.cpp')
0 files changed, 0 insertions, 0 deletions