<html>
<head>
<base href="https://bugs.freedesktop.org/">
</head>
<body>
<p>
<div>
<b><a class="bz_bug_link
bz_status_NEW "
title="NEW - Latest Feral games Rise of Tomb Rider and F1 2017 which use Vulcan API not work under Xwayland but work under Xorg."
href="https://bugs.freedesktop.org/show_bug.cgi?id=107230#c2">Comment # 2</a>
on <a class="bz_bug_link
bz_status_NEW "
title="NEW - Latest Feral games Rise of Tomb Rider and F1 2017 which use Vulcan API not work under Xwayland but work under Xorg."
href="https://bugs.freedesktop.org/show_bug.cgi?id=107230">bug 107230</a>
from <span class="vcard"><a class="email" href="mailto:mikhail.v.gavrilov@gmail.com" title="mikhail.v.gavrilov@gmail.com">mikhail.v.gavrilov@gmail.com</a>
</span></b>
<pre>(In reply to Michel Dänzer from <a href="show_bug.cgi?id=107230#c1">comment #1</a>)
<span class="quote">> What does "does not work" mean exactly? What are the symptoms?</span >
It means both games stuck at initial splash screen when I launched it under
Wayland session.
Demonstration: <a href="https://youtu.be/BPDYm_ifq8g">https://youtu.be/BPDYm_ifq8g</a>
My short investigation:
strace show follow log:
01:33:13.405474 select(44, [43], NULL, NULL, {tv_sec=0, tv_usec=0}) = 0
(Timeout)
01:33:13.405594 futex(0x7fdafc000e40,
FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, {tv_sec=1531773193,
tv_nsec=414365053}, 0xffffffff) = -1 ETIMEDOUT (Connection timed out)
01:33:13.414637 select(12, [11], NULL, NULL, {tv_sec=0, tv_usec=0}) = 0
(Timeout)
01:33:13.414952 fcntl(52, F_GETFL) = 0x8800 (flags
O_RDONLY|O_NONBLOCK|O_LARGEFILE)
01:33:13.415161 readv(52,
[{iov_base="\t\1M[\0\0\0\0HL\6\0\0\0\0\0\3\0\3\0\210\0\0\0\t\1M[\0\0\0\0"...,
iov_len=768}], 1) = 72
01:33:13.415368 fcntl(52, F_GETFL) = 0x8800 (flags
O_RDONLY|O_NONBLOCK|O_LARGEFILE)
01:33:13.415451 readv(52, [{iov_base=0x7ffeda649f50, iov_len=768}], 1) = -1
EAGAIN (Resource temporarily unavailable)
01:33:13.415532 select(44, [43], NULL, NULL, {tv_sec=0, tv_usec=0}) = 0
(Timeout)
01:33:13.415636 futex(0x7fdafc000e40,
FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, {tv_sec=1531773193,
tv_nsec=424591064}, 0xffffffff) = -1 ETIMEDOUT (Connection timed out)
01:33:13.424950 select(12, [11], NULL, NULL, {tv_sec=0, tv_usec=0}) = 0
(Timeout)
01:33:13.425241 fcntl(52, F_GETFL) = 0x8800 (flags
O_RDONLY|O_NONBLOCK|O_LARGEFILE)
01:33:13.425469 readv(52,
[{iov_base="\t\1M[\0\0\0\0\303[\6\0\0\0\0\0\3\0\3\0\207\0\0\0\t\1M[\0\0\0\0"...,
iov_len=768}], 1) = 72
01:33:13.425644 fcntl(52, F_GETFL) = 0x8800 (flags
O_RDONLY|O_NONBLOCK|O_LARGEFILE)
01:33:13.425724 readv(52, [{iov_base=0x7ffeda649f50, iov_len=768}], 1) = -1
EAGAIN (Resource temporarily unavailable)
01:33:13.425806 select(44, [43], NULL, NULL, {tv_sec=0, tv_usec=0}) = 0
(Timeout)
01:33:13.425894 futex(0x7fdafc000e40,
FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, {tv_sec=1531773193,
tv_nsec=434900045}, 0xffffffff) = -1 ETIMEDOUT (Connection timed out)
01:33:13.435054 select(12, [11], NULL, NULL, {tv_sec=0, tv_usec=0}) = 0
(Timeout)
01:33:13.435184 fcntl(52, F_GETFL) = 0x8800 (flags
O_RDONLY|O_NONBLOCK|O_LARGEFILE)
01:33:13.435308 readv(52,
[{iov_base="\t\1M[\0\0\0\0007\232\6\0\0\0\0\0\3\0\0\0}\0\0\0\t\1M[\0\0\0\0"...,
iov_len=768}], 1) = 72
01:33:13.435466 fcntl(52, F_GETFL) = 0x8800 (flags
O_RDONLY|O_NONBLOCK|O_LARGEFILE)
01:33:13.435579 readv(52, [{iov_base=0x7ffeda649f50, iov_len=768}], 1) = -1
EAGAIN (Resource temporarily unavailable)
01:33:13.435691 select(44, [43], NULL, NULL, {tv_sec=0, tv_usec=0}) = 0
(Timeout)
01:33:13.435784 futex(0x7fdafc000e40,
FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, {tv_sec=1531773193,
tv_nsec=445029973}, 0xffffffff) = 0
01:33:13.443004 futex(0x7fdafc000e40,
FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, {tv_sec=1531773193,
tv_nsec=445029973}, 0xffffffff) = -1 ETIMEDOUT (Connection timed out)
01:33:13.445267 select(12, [11], NULL, NULL, {tv_sec=0, tv_usec=0}) = 0
(Timeout)
01:33:13.445492 fcntl(52, F_GETFL) = 0x8800 (flags
O_RDONLY|O_NONBLOCK|O_LARGEFILE)
01:33:13.445690 readv(52,
[{iov_base="\t\1M[\0\0\0\0\352\251\6\0\0\0\0\0\3\0\0\0~\0\0\0\t\1M[\0\0\0\0"...,
iov_len=768}], 1) = 120
01:33:13.445880 fcntl(52, F_GETFL) = 0x8800 (flags
O_RDONLY|O_NONBLOCK|O_LARGEFILE)
01:33:13.445997 readv(52, [{iov_base=0x7ffeda649f50, iov_len=768}], 1) = -1
EAGAIN (Resource temporarily unavailable)
01:33:13.446118 select(44, [43], NULL, NULL, {tv_sec=0, tv_usec=0}) = 0
(Timeout)
01:33:13.446228 futex(0x7fdafc000e40,
FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, {tv_sec=1531773193,
tv_nsec=455219984}, 0xffffffff) = -1 ETIMEDOUT (Connection timed out)
01:33:13.455491 select(12, [11], NULL, NULL, {tv_sec=0, tv_usec=0}) = 0
(Timeout)
01:33:13.455767 fcntl(52, F_GETFL) = 0x8800 (flags
O_RDONLY|O_NONBLOCK|O_LARGEFILE)
01:33:13.455941 readv(52,
[{iov_base="\t\1M[\0\0\0\0\303\330\6\0\0\0\0\0\3\0\0\0}\0\0\0\t\1M[\0\0\0\0"...,
iov_len=768}], 1) = 120
01:33:13.456093 fcntl(52, F_GETFL) = 0x8800 (flags
O_RDONLY|O_NONBLOCK|O_LARGEFILE)
01:33:13.456184 readv(52, [{iov_base=0x7ffeda649f50, iov_len=768}], 1) = -1
EAGAIN (Resource temporarily unavailable)
01:33:13.456288 select(44, [43], NULL, NULL, {tv_sec=0, tv_usec=0}) = 0
(Timeout)
01:33:13.456399 futex(0x7fdafc000e40,
FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, {tv_sec=1531773193,
tv_nsec=465440034}, 0xffffffff) = -1 ETIMEDOUT (Connection timed out)
01:33:13.465646 select(12, [11], NULL, NULL, {tv_sec=0, tv_usec=0}) = 0
(Timeout)
01:33:13.465884 fcntl(52, F_GETFL) = 0x8800 (flags
O_RDONLY|O_NONBLOCK|O_LARGEFILE)
01:33:13.465980 readv(52,
[{iov_base="\t\1M[\0\0\0\0\26\370\6\0\0\0\0\0\3\0\3\0\207\0\0\0\t\1M[\0\0\0\0"...,
iov_len=768}], 1) = 216
01:33:13.466150 fcntl(52, F_GETFL) = 0x8800 (flags
O_RDONLY|O_NONBLOCK|O_LARGEFILE)
01:33:13.466236 readv(52, [{iov_base=0x7ffeda649f50, iov_len=768}], 1) = -1
EAGAIN (Resource temporarily unavailable)
01:33:13.466312 select(44, [43], NULL, NULL, {tv_sec=0, tv_usec=0}) = 0
(Timeout)
01:33:13.466417 futex(0x7fdafc000e40,
FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, {tv_sec=1531773193,
tv_nsec=475615024}, 0xffffffffstrace: Process 3174 detached
^C <detached ...>
I was interested in fact that the file descriptor 52 is EAGAIN (Resource
temporarily unavailable)
ok, I looked who is fd 52
$ ls -la /proc/3174/fd
total 0
lr-x------. 1 mikhail mikhail 64 Jul 17 01:33 5 ->
/home/mikhail/.steam/steam.pipe
lr-x------. 1 mikhail mikhail 64 Jul 17 01:33 50 ->
'/home/mikhail/.local/share/Steam/steamapps/common/Rise of the Tomb
Raider/bin/icudtl.dat'
lr-x------. 1 mikhail mikhail 64 Jul 17 01:33 51 ->
'/home/mikhail/.local/share/Steam/steamapps/common/Rise of the Tomb
Raider/bin/natives_blob.bin'
lr-x------. 1 mikhail mikhail 64 Jul 17 01:33 52 -> /dev/input/event4
lr-x------. 1 mikhail mikhail 64 Jul 17 01:33 53 ->
'/home/mikhail/.local/share/Steam/steamapps/common/Rise of the Tomb
Raider/bin/snapshot_blob.bin'
lr-x------. 1 mikhail mikhail 64 Jul 17 01:33 54 ->
'/home/mikhail/.local/share/Steam/steamapps/common/Rise of the Tomb
Raider/share/data/bigfile.000.tiger'
lr-x------. 1 mikhail mikhail 64 Jul 17 01:33 55 ->
'/home/mikhail/.local/share/Steam/steamapps/common/Rise of the Tomb
Raider/share/data/bigfile.000.tiger'
hmmm this is /dev/input/event4
And then I do not know the specifics of the work whether this file should be
available or not.
$ xinput list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ xwayland-pointer:15 id=6 [slave pointer (2)]
⎜ ↳ xwayland-relative-pointer:15 id=7 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ xwayland-keyboard:15 id=8 [slave keyboard (3)]</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the assignee for the bug.</li>
</ul>
</body>
</html>