supertuxkart crashes weston on weston-rdp with zink
I'm testing on SM8650 (with Adreno a750 GPU) with zink + turnip. Basic vulkan demos work, glxgears
on zink works, but supertuxkart when run via wayland (the default at least on the version I've got from fedora) results in weston with the rdp backend segfaulting with this backtrace:
0x0000fffff7c32ed4 in wl_shm_buffer_get_stride (buffer=0x0) at ../src/wayland-shm.c:437
Downloading source file /usr/src/debug/wayland-1.22.0-3.fc40.aarch64/redhat-linux-build/../src/wayland-shm.c
437 }
Missing separate debuginfos, use: dnf debuginfo-install llvm-libs-18.1.1-1.fc40.aarch64
(gdb) bt full
#0 0x0000fffff7c32ed4 in wl_shm_buffer_get_stride (buffer=0x0) at ../src/wayland-shm.c:437
#1 0x0000fffff30ad298 in gl_renderer_attach_shm (es=0x1adb030, buffer=0x1acc8c0) at ../libweston/renderer-gl/gl-renderer.c:2658
bpp = 32
ec = 0x42e6b0
gr = 0x4748e0
gs = 0x46b060
gb = 0xfffff30a7024 <wl_signal_add+32>
shm_buffer = 0x0
old_buffer = 0x0
gl_format = {0, 0, 0}
gl_pixel_type = 0
shader_variant = SHADER_VARIANT_RGBA
pitch = 65535
offset = {0, 0, 0}
num_planes = 1
i = 10
using_glesv2 = false
yuv = 0x0
__PRETTY_FUNCTION__ = "gl_renderer_attach_shm"
#2 0x0000fffff30af7f8 in gl_renderer_attach_internal (es=0x1adb030, buffer=0x1acc8c0, direct_pnode=0x0) at ../libweston/renderer-gl/gl-renderer.c:3516
gs = 0x46b060
__PRETTY_FUNCTION__ = "gl_renderer_attach_internal"
#3 0x0000fffff30afa2c in gl_renderer_attach (pnode=0x1ae0380) at ../libweston/renderer-gl/gl-renderer.c:3578
es = 0x1adb030
buffer = 0x1acc8c0
#4 0x0000fffff7ce330c in paint_node_update_late (pnode=0x1ae0380) at ../libweston/compositor.c:323
surf = 0x1adb030
vis_dirty = true
plane_dirty = false
content_dirty = true
buffer_dirty = true
__PRETTY_FUNCTION__ = "paint_node_update_late"
#5 0x0000fffff7ceab90 in weston_output_repaint (output=0xfb4440, now=0xffffffffe560) at ../libweston/compositor.c:3698
ec = 0x42e6b0
pnode = 0x1ae0380
animation = 0x0
next = 0xfb4440
cb = 0xffffffffe560
cnext = 0xfffff7ceb1a0 <output_repaint_timer_handler+92>
frame_callback_list = {prev = 0x0, next = 0x9a71c}
r = 65535
frame_time_msec = 4157517424
highest_requested = WESTON_HDCP_DISABLE
__PRETTY_FUNCTION__ = "weston_output_repaint"
#6 0x0000fffff7ceb2d4 in output_repaint_timer_handler (data=0x42e6b0) at ../libweston/compositor.c:3900
compositor = 0x42e6b0
backend = 0x469c00
output = 0xfb4440
now = {tv_sec = 1097, tv_nsec = 398021039}
ret = 0
#7 0x0000fffff7c35c68 in wl_timer_heap_dispatch (timers=0x42e3c8) at ../src/event-loop.c:526
now = {tv_sec = 1097, tv_nsec = 354413685}
root = 0x42f970
list_cursor = 0x42f970
--Type <RET> for more, q to quit, c to continue without paging--
list_tail = <optimized out>
now = {tv_sec = <optimized out>, tv_nsec = <optimized out>}
root = <optimized out>
list_cursor = <optimized out>
list_tail = <optimized out>
#8 wl_event_loop_dispatch (loop=0x42e380, timeout=timeout@entry=-1) at ../src/event-loop.c:1020
ep = {{events = 1, data = {ptr = 0x42e3c8, fd = 4383688, u32 = 4383688, u64 = 4383688}}, {events = 1, data = {ptr = 0x42e3c8, fd = 4383688, u32 = 4383688, u64 = 4383688}}, {events = 1, data = {ptr = 0xfc7020, fd = 16543776, u32 = 16543776, u64 = 16543776}}, {events = 4512, data = {ptr = 0xfffff7fa05e0 <wl_display_run@got[plt]>, fd = -134609440, u32 = 4160357856, u64 = 281474842101216}}, {events = 4160667680, data = {ptr = 0xffffffffefe8, fd = -4120, u32 = 4294963176, u64 = 281474976706536}}, {events = 4160185480, data = {ptr = 0xfffff7fec760, fd = -134297760, u32 = 4160669536, u64 = 281474842412896}}, {events = 4160741376, data = {ptr = 0x41fdd8 <_DYNAMIC>, fd = 4324824, u32 = 4324824, u64 = 4324824}}, {events = 0, data = {ptr = 0xffffffffe670, fd = -6544, u32 = 4294960752, u64 = 281474976704112}}, {events = 4159130796, data = {ptr = 0x168, fd = 360, u32 = 360, u64 = 360}}, {events = 910838528, data = {ptr = 0xffffffffe790, fd = -6256, u32 = 4294961040, u64 = 281474976704400}}, {events = 4156759276, data = {ptr = 0x168, fd = 360, u32 = 360, u64 = 360}}, {events = 4294960816, data = {ptr = 0x1ad6fd0, fd = 28143568, u32 = 28143568, u64 = 28143568}}, {events = 28127184, data = {ptr = 0x1ad5fd0, fd = 28139472, u32 = 28139472, u64 = 28139472}}, {events = 28139496, data = {ptr = 0xffffffffe6d0, fd = -6448, u32 = 4294960848, u64 = 281474976704208}}, {events = 4294967295, data = {ptr = 0x0, fd = 0, u32 = 0, u64 = 0}}, {events = 0, data = {ptr = 0x0, fd = 0, u32 = 0, u64 = 0}}, {events = 0, data = {ptr = 0x0, fd = 0, u32 = 0, u64 = 0}}, {events = 0, data = {ptr = 0x0, fd = 0, u32 = 0, u64 = 0}}, {events = 28135128, data = {ptr = 0x100, fd = 256, u32 = 256, u64 = 256}}, {events = 28131288, data = {ptr = 0x68, fd = 104, u32 = 104, u64 = 104}}, {events = 20, data = {ptr = 0x100000001, fd = 1, u32 = 1, u64 = 4294967297}}, {events = 62, data = {ptr = 0xffffffffefe8, fd = -4120, u32 = 4294963176, u64 = 281474976706536}}, {events = 4160740168, data = {ptr = 0x0, fd = 0, u32 = 0, u64 = 0}}, {events = 4160741376, data = {ptr = 0x0, fd = 0, u32 = 0, u64 = 0}}, {events = 4156690736, data = {ptr = 0xfffff7c36260 <wl_display_run>, fd = -138190240, u32 = 4156777056, u64 = 281474838520416}}, {events = 4, data = {ptr = 0xffffffffe7a0, fd = -6240, u32 = 4294961056, u64 = 281474976704416}}, {events = 4158781284, data = {ptr = 0x0, fd = 0, u32 = 0, u64 = 0}}, {events = 0, data = {ptr = 0x6dd64f6890e02544, fd = -1864358588, u32 = 2430608708, u64 = 7914600705676027204}}, {events = 910838528, data = {ptr = 0xffffffffe800, fd = -6144, u32 = 4294961152, u64 = 281474976704512}}, {events = 4156776956, data = {ptr = 0x42e2b8, fd = 4383416, u32 = 4383416, u64 = 4383416}}, {events = 28111744, data = {ptr = 0x42e2d8, fd = 4383448, u32 = 4383448, u64 = 4383448}}, {events = 4195956, data = {ptr = 0xffffffffefe8, fd = -4120, u32 = 4294963176, u64 = 281474976706536}}}
source = <optimized out>
i = 0
count = <optimized out>
has_timers = <optimized out>
#9 0x0000fffff7c36294 in wl_display_run (display=0x42e290) at ../src/wayland-server.c:1493
#10 0x0000fffff7f814d0 in wet_main (argc=1, argv=0xffffffffef88, test_data=0x0) at ../frontend/main.c:4473
ret = 1
cmdline = 0x42d900 "\220WG"
display = 0x42e290
signals = {0x42e420, 0x42e470, 0x42e4c0}
loop = 0x42e380
i = 1
fd = -1
backends = 0x4274a0 "rdp-backend.so"
renderer = 0x4274c0 "gl"
shell = 0x430750 "desktop"
xwayland = true
modules = 0xfc6a10 ""
option_modules = 0x0
log = 0x0
log_scopes = 0x0
flight_rec_scopes = 0xfffff7f8b1f8 "log,drm-backend"
server_socket = 0x0
require_outputs = 0x0
idle_time = 0
help = 0
socket_name = 0x0
version = 0
noconfig = 0
debug_protocol = 0
numlock_on = false
config_file = 0x0
config = 0x0
section = 0x0
primary_client = 0x0
--Type <RET> for more, q to quit, c to continue without paging--
primary_client_destroyed = {link = {prev = 0x400674 <_start+52>, next = 0xffffffffefe8}, notify = 0xfffff7ffdb48 <_rtld_local_ro>}
seat = 0x420018 <wet_main@got[plt]>
wet = {compositor = 0x42e6b0, config = 0x0, parsed_options = 0x4306f0, drm_use_current_mode = false, init_failed = false, backend_list = {prev = 0x4307b8, next = 0x4307b8}, layoutput_list = {prev = 0xffffffffec70, next = 0xffffffffec70}, child_process_list = {prev = 0xfc7d20, next = 0xfc7200}, autolaunch_pid = -1, autolaunch_watch = false, use_color_manager = false, drm_backend_loaded = false, screenshot_auth = {link = {prev = 0x0, next = 0x0}, notify = 0x0}, require_outputs = REQUIRE_OUTPUTS_ANY}
log_ctx = 0x42d9b0
logger = 0x42da90
flight_rec = 0x42dad0
process = 0x428c80
process_tmp = 0x4286e0
wet_xwl = 0xfc68c0
mask = {__val = {512, 281474842484736, 4324824, 0, 281474839836304, 281474976705616, 0, 281474842490616, 281474976705764, 281474842484736, 281474976705808, 281474842257980, 4195209, 281474976706168, 0, 281474842439296}}
action = {__sigaction_handler = {sa_handler = 0xfffff7f80668 <sigint_helper>, sa_sigaction = 0xfffff7f80668 <sigint_helper>}, sa_mask = {__val = {0, 281470681743360, 244864141469, 281474842412896, 4294962016, 0, 281470681743361, 0, 1, 281474842489680, 281474976705680, 281474842279196, 281474842489680, 72, 4325400, 281474842411040}}, sa_flags = 0, sa_restorer = 0x400570}
wait_for_debugger = false
protologger = 0x42fbf0
core_options = {{type = WESTON_OPTION_STRING, name = 0xfffff7f8b0d8 "backend", short_name = 66 'B', data = 0xffffffffed48}, {type = WESTON_OPTION_STRING, name = 0xfffff7f8b0e0 "backends", short_name = 0 '\000', data = 0xffffffffed48}, {type = WESTON_OPTION_STRING, name = 0xfffff7f8b0f0 "renderer", short_name = 0 '\000', data = 0xffffffffed40}, {type = WESTON_OPTION_STRING, name = 0xfffff7f8aef8 "shell", short_name = 0 '\000', data = 0xffffffffed38}, {type = WESTON_OPTION_STRING, name = 0xfffff7f8b100 "socket", short_name = 83 'S', data = 0xffffffffecf0}, {type = WESTON_OPTION_INTEGER, name = 0xfffff7f8b108 "idle-time", short_name = 105 'i', data = 0xffffffffecfc}, {type = WESTON_OPTION_BOOLEAN, name = 0xfffff7f8b118 "xwayland", short_name = 0 '\000', data = 0xffffffffed37}, {type = WESTON_OPTION_STRING, name = 0xfffff7f8b128 "modules", short_name = 0 '\000', data = 0xffffffffed20}, {type = WESTON_OPTION_STRING, name = 0xfffff7f8b0d0 "log", short_name = 0 '\000', data = 0xffffffffed18}, {type = WESTON_OPTION_BOOLEAN, name = 0xfffff7f8b130 "help", short_name = 104 'h', data = 0xffffffffecf8}, {type = WESTON_OPTION_BOOLEAN, name = 0xfffff7f8b138 "version", short_name = 0 '\000', data = 0xffffffffecec}, {type = WESTON_OPTION_BOOLEAN, name = 0xfffff7f8b140 "no-config", short_name = 0 '\000', data = 0xffffffffece8}, {type = WESTON_OPTION_STRING, name = 0xfffff7f8b150 "config", short_name = 99 'c', data = 0xffffffffecd8}, {type = WESTON_OPTION_BOOLEAN, name = 0xfffff7f8b158 "wait-for-debugger", short_name = 0 '\000', data = 0xffffffffeb27}, {type = WESTON_OPTION_BOOLEAN, name = 0xfffff7f8b170 "debug", short_name = 0 '\000', data = 0xffffffffece4}, {type = WESTON_OPTION_STRING, name = 0xfffff7f8b178 "logger-scopes", short_name = 108 'l', data = 0xffffffffed10}, {type = WESTON_OPTION_STRING, name = 0xfffff7f8b188 "flight-rec-scopes", short_name = 102 'f', data = 0xffffffffed08}}
#11 0x000000000040078c in main (argc=11, argv=0xffffffffef88) at ../frontend/executable.c:33
(
The weston command I'm using is weston -B rdp-backend.so --renderer gl --rdp-tls-key=tls.key --rdp-tls-cert=tls.crt --width=1920 --height= 1080 --idle-time=0 --xwayland
Running via X11/XWayland does seem to work.
Edited by Connor Abbott