SIGBUS in _cogl_texture_driver_gl_get_tex_image when using full screen in chromium ozone wayland
I'm not entirely sure where the error is, but mutter is in the middle of the stack trace, so I'm hoping someone here can at least shed some light on where the problem is.
Symptom
gnome-shell crashes with a bus error.
Environment
- Arch Linux
- linux 5.6.8
- mutter 3.36.2
- gnome-shell 3.36.2
- mesa 20.0.6
- RX 5600 XT, amdgpu kernel driver
- Intel i3-8100 CPU with integrated graphics, but not connected to a display
- Chromium compiled for wayland via ozone, using the
chromium-beta-ozone
AUR package, verion 83.0.4103.23-1
Steps to reproduce
- Log in to a gnome shell wayland session
- Open Chromium
- In Chromium, play a video on youtube
- In the Youtube UI, click on the button to display the playing video in full screen
Error details
The gnome-shell process is terminated with a SIGBUS signal
Stacktrace
#0 0x00007ff1f9eb0ce5 in raise () at /usr/lib/libc.so.6
#1 0x00007ff1f9eb0d70 in <signal handler called> () at /usr/lib/libc.so.6
#2 0x00007ff1f9fd9233 in __memmove_avx_unaligned_erms () at /usr/lib/libc.so.6
#3 0x00007ff1e0fbc400 in memcpy (__len=13696, __src=<optimized out>, __dest=<optimized out>) at /usr/include/bits/string_fortified.h:34
row = 0
dst = <optimized out>
dstRowStride = 13696
bpp = <optimized out>
bytesPerRow = 13696
src = 0x7ff168c18000 <error: Cannot access memory at address 0x7ff168c18000>
srcRowStride = 13824
target = <optimized out>
memCopy = <optimized out>
texBaseFormat = <optimized out>
dimensions = <optimized out>
#4 get_tex_memcpy (texImage=0x5592a016c980, pixels=0x7ff16a818010, type=5121, format=32993, depth=1, height=1830, width=1, zoffset=0, yoffset=0, xoffset=0, ctx=0x55929f9e8b20) at ../mesa-20.0.5/src/mesa/main/texgetimage.c:669
row = 0
dst = <optimized out>
dstRowStride = 13696
bpp = <optimized out>
bytesPerRow = 13696
src = 0x7ff168c18000 <error: Cannot access memory at address 0x7ff168c18000>
srcRowStride = 13824
target = <optimized out>
memCopy = <optimized out>
texBaseFormat = <optimized out>
dimensions = <optimized out>
#5 _mesa_GetTexSubImage_sw
(ctx=ctx@entry=0x55929f9e8b20, xoffset=xoffset@entry=0, yoffset=yoffset@entry=0, zoffset=zoffset@entry=0, width=width@entry=3424, height=height@entry=1830, depth=1, format=32993, type=5121, pixels=0x7ff16a818010, texImage=0x5592a016c980) at ../mesa-20.0.5/src/mesa/main/texgetimage.c:737
dimensions = <optimized out>
#6 0x00007ff1e0e41296 in st_GetTexSubImage
(ctx=<optimized out>, xoffset=0, yoffset=<optimized out>, zoffset=<optimized out>, width=3424, height=<optimized out>, depth=<optimized out>, format=32993, type=5121, pixels=<optimized out>, texImage=0x5592a016c980)
at ../mesa-20.0.5/src/mesa/state_tracker/st_cb_texture.c:2267
st = <optimized out>
pipe = <optimized out>
screen = <optimized out>
stImage = 0x5592a016c980
stObj = <optimized out>
src = <optimized out>
dst = <optimized out>
dst_templ =
{reference = {count = -162178992}, width0 = 32753, height0 = 36928, depth0 = 43255, array_size = 1044, format = PIPE_FORMAT_NONE, target = 112, last_level = 119, nr_samples = 187, nr_storage_samples = 159, usage = 146, bind = 2222886464, flags = 32767, next = 0x414a8f78040, screen = 0x0}
dst_format = <optimized out>
src_format = <optimized out>
mesa_format = <optimized out>
gl_target = <optimized out>
pipe_target = <optimized out>
dims = <optimized out>
blit =
{dst = {resource = 0x7ff1e0f757d7 <_mesa_bytes_per_pixel+7>, level = 3774332668, box = {x = 32753, y = 0, z = 0, width = 0, height = -13688, depth = -24643}, format = 3424}, src = {resource = 0x847e91d8, level = 0, box = {x = 0, y = 9544, z = -24673, width = 21906, height = 1830, depth = 0}, format = PIPE_FORMAT_NONE}, mask = 3424, filter = 0, scissor_enable = 2, scissor = {minx = 0, miny = 0, maxx = 0, maxy = 0}, window_rectangle_include = false, num_window_rectangles = 3774402485, window_rectangles = {{minx = 32753, miny = 0, maxx = 0, maxy = 0}, {minx = 0, miny = 0, maxx = 1829, maxy = 0}, {minx = 0, miny = 0, maxx = 3424, maxy = 0}, {minx = 0, miny = 0, maxx = 17701, maxy = 63158}, {minx = 32753, miny = 0, maxx = 38368, maxy = 33918}, {minx = 32767, miny = 0, maxx = 65535, maxy = 65535}, {minx = 65535, miny = 65535, maxx = 0, maxy = 0}, {minx = 0, miny = 0, maxx = 0, maxy = 0}}, render_condition_enable = 225, alpha_blend = 128}
bind = <optimized out>
tex_xfer = 0x7ff1f66a78a6
map = <optimized out>
done = <optimized out>
#7 0x00007ff1e0fbb1b4 in get_texture_image
(ctx=0x55929f9e8b20, texObj=0x5592a3762f50, target=<optimized out>, level=0, xoffset=0, yoffset=0, zoffset=0, width=3424, height=1830, depth=1, format=32993, type=5121, pixels=0x7ff16a818010, caller=<optimized out>)
at ../mesa-20.0.5/src/mesa/main/texgetimage.c:1437
texImage = <optimized out>
firstFace = 0
numFaces = 1
i = 0
imageStride = 0
#8 0x00007ff1e0fbb3aa in _get_texture_image (ctx=0x55929f9e8b20, texObj=0x5592a3762f50,
texObj@entry=0x0, target=3553, level=0, format=format@entry=32993, type=5121, bufSize=2147483647, pixels=0x7ff16a818010, caller=0x7ff1e1c391aa "glGetTexImage") at ../mesa-20.0.5/src/mesa/main/texgetimage.c:1475
width = 3424
height = 1830
depth = 1
is_dsa = false
#9 0x00007ff1e0fbd5b8 in _mesa_GetTexImage (target=<optimized out>, level=<optimized out>, format=32993, type=<optimized out>, pixels=<optimized out>) at ../mesa-20.0.5/src/mesa/main/texgetimage.c:1510
ctx = <optimized out>
caller = <synthetic pointer>
#10 0x00007ff1f89efc1f in _cogl_texture_driver_gl_get_tex_image (ctx=<optimized out>, gl_target=<optimized out>, dest_gl_format=<optimized out>, dest_gl_type=<optimized out>, dest=<optimized out>)
at ../mutter/cogl/cogl/driver/gl/gl/cogl-texture-driver-gl.c:358
#11 0x00007ff1f89fc9ad in _cogl_texture_2d_gl_get_data (tex_2d=0x5592a1882160, format=COGL_PIXEL_FORMAT_BGRA_8888_PRE, rowstride=13696, data=0x7ff16a818010 "") at ../mutter/cogl/cogl/driver/gl/cogl-texture-2d-gl.c:625
ctx = 0x55929f9925c0
bpp = 4 '\004'
width = 3424
gl_format = 32993
gl_type = 5121
__func__ = "_cogl_texture_2d_gl_get_data"
#12 0x00007ff1f89cdb89 in _cogl_texture_2d_get_data (tex=<optimized out>, format=<optimized out>, rowstride=<optimized out>, data=<optimized out>) at ../mutter/cogl/cogl/cogl-texture-2d.c:471
tex_2d = <optimized out>
ctx = <optimized out>
#13 0x00007ff1f89d7d6e in texture_get_cb (subtexture=0x5592a1882160, subtexture_coords=<optimized out>, virtual_coords=<optimized out>, user_data=0x7fff847e9370) at ../mutter/cogl/cogl/cogl-texture.c:684
tg_data = 0x7fff847e9370
meta_texture = 0x5592a39cfb60
closest_format = COGL_PIXEL_FORMAT_BGRA_8888_PRE
bpp = 4
rowstride = 13696
subtexture_width = <optimized out>
subtexture_height = <optimized out>
x_in_subtexture = 0
y_in_subtexture = 0
width = 3424
height = 1830
x_in_bitmap = <optimized out>
y_in_bitmap = <optimized out>
dst_bits = 0x7ff16a818010 ""
#14 0x00007ff1f89cd7da in normalize_meta_coords_cb (slice_texture=<optimized out>, slice_coords=<optimized out>, meta_coords=<optimized out>, user_data=<optimized out>) at ../mutter/cogl/cogl/cogl-meta-texture.c:450
data = <optimized out>
normalized_meta_coords = {0, 0, 0.99999994, 1}
#15 0x00007ff1f89cd976 in padded_grid_repeat_cb (slice_texture=<optimized out>, slice_texture_coords=<optimized out>, meta_coords=<optimized out>, user_data=<optimized out>) at ../mutter/cogl/cogl/cogl-meta-texture.c:94
data = <optimized out>
mapped_coords = {0, 0, 1, 1}
#16 0x00007ff1f89ced04 in _cogl_texture_spans_foreach_in_region
(x_spans=x_spans@entry=0x7fff847e9120, n_x_spans=n_x_spans@entry=1, y_spans=y_spans@entry=0x7fff847e90f0, n_y_spans=<optimized out>, textures=textures@entry=0x7fff847e9290, virtual_coords=virtual_coords@entry=0x7fff847e9260, x_normalize_factor=3424, y_normalize_factor=<optimized out>, wrap_x=COGL_PIPELINE_WRAP_MODE_REPEAT, wrap_y=COGL_PIPELINE_WRAP_MODE_REPEAT, callback=0x7ff1f89cd8f0 <padded_grid_repeat_cb>, user_data=0x7fff847e9260)
at ../mutter/cogl/cogl/cogl-texture.c:1046
span_tex = <optimized out>
iter_x =
{index = 0, spans = 0x7fff847e9120, n_spans = 1, span = 0x7fff847e9120, pos = 0, next_pos = 3424, origin = 0, cover_start = 0, cover_end = 3424, intersect_start = 0, intersect_end = 3424, intersects = 1, flipped = 0, wrap_mode = COGL_PIPELINE_WRAP_MODE_REPEAT, mirror_direction = -2072080240}
iter_y =
{index = 0, spans = 0x7fff847e90f0, n_spans = 1, span = 0x7fff847e90f0, pos = 0, next_pos = 1830, origin = 0, cover_start = 0, cover_end = 1830, intersect_start = 0, intersect_end = 1830, intersects = 1, flipped = 0, wrap_mode = COGL_PIPELINE_WRAP_MODE_REPEAT, mirror_direction = -118730752}
slice_coords = {0, 0, 1, 1}
span_virtual_coords = {0, 0, 3424, 1830}
#17 0x00007ff1f89cef98 in create_grid_and_repeat_cb (slice_texture=0x5592a1882160, slice_texture_coords=slice_texture_coords@entry=0x7fff847e91b0, meta_coords=meta_coords@entry=0x7fff847e91a0, user_data=user_data@entry=0x7fff847e9260)
at ../mutter/cogl/cogl/cogl-meta-texture.c:207
data = 0x7fff847e9260
x_spans = {{start = 0, size = 3424, waste = 0}, {start = 0, size = -1.70965501e+35, waste = 4.58967286e-41}, {start = 0, size = 0, waste = -1.25297477e+35}}
n_x_spans = 1
x_real_index = 0
y_spans = {{start = 0, size = 1830, waste = 0}, {start = 4.58967286e-41, size = -1.76037167e-38, waste = 1.86905189e-41}, {start = 2.80259693e-45, size = 0, waste = -7.93949665e-20}}
n_y_spans = <optimized out>
y_real_index = 0
#18 0x00007ff1f89d18fa in _cogl_sub_texture_foreach_sub_texture_in_region
(tex=0x5592a39cfb60, virtual_tx_1=<optimized out>, virtual_ty_1=<optimized out>, virtual_tx_2=<optimized out>, virtual_ty_2=<optimized out>, callback=0x7ff1f89cee54 <create_grid_and_repeat_cb>, user_data=0x7fff847e9260)
at ../mutter/cogl/cogl/cogl-sub-texture.c:134
sub_tex = 0x5592a39cfb60
full_texture = 0x5592a1882160
mapped_coords = {0, 0, 1, 1}
virtual_coords = {0, 0, 1, 1}
#19 0x00007ff1f89d162e in cogl_meta_texture_foreach_in_region (meta_texture=meta_texture@entry=0x5592a39cfb60, tx_1=<optimized out>, tx_1@entry=0, ty_1=<optimized out>, ty_1@entry=0, tx_2=<optimized out>,
tx_2@entry=1, ty_2=<optimized out>, ty_2@entry=1, wrap_s=wrap_s@entry=COGL_PIPELINE_WRAP_MODE_REPEAT, wrap_t=wrap_t@entry=COGL_PIPELINE_WRAP_MODE_REPEAT, callback=0x7ff1f89cd77f <normalize_meta_coords_cb>, user_data=0x7fff847e9240,
user_data@entry=0x7fff847e9370) at ../mutter/cogl/cogl/cogl-meta-texture.c:558
data =
{meta_region_coords = {0, 0, 3424, 1830}, wrap_s = COGL_PIPELINE_WRAP_MODE_REPEAT, wrap_t = COGL_PIPELINE_WRAP_MODE_REPEAT, callback = 0x7ff1f89cd77f <normalize_meta_coords_cb>, user_data = 0x7fff847e9240, width = 3424, height = 1830, padded_textures = {0x5592a1882160, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, grid_slice_texture_coords = 0x7fff847e91b0, slice_offset_s = 0, slice_offset_t = 0, slice_range_s = 1, slice_range_t = 1}
texture = 0x5592a39cfb60
width = 3424
height = 1830
normalize_data = {callback = 0x7ff1f89d7c17 <texture_get_cb>, user_data = 0x7fff847e9370, s_normalize_factor = 0.000292056066, t_normalize_factor = 0.000546448107}
#20 0x00007ff1f89c12b5 in cogl_texture_get_data (texture=texture@entry=0x5592a39cfb60, format=format@entry=COGL_PIXEL_FORMAT_BGRA_8888_PRE, rowstride=13696, data=data@entry=0x7ff16a818010 "") at ../mutter/cogl/cogl/cogl-texture.c:840
ctx = 0x55929f9925c0
bpp = <optimized out>
byte_size = 25063680
closest_format = COGL_PIXEL_FORMAT_BGRA_8888_PRE
closest_gl_format = 32993
closest_gl_type = 5121
target_bmp = 0x5592a2df7730
tex_width = 3424
tex_height = 1830
texture_format = <optimized out>
ignore_error = 0x0
tg_data = {meta_texture = 0x5592a39cfb60, orig_width = 3424, orig_height = 1830, target_bmp = 0x5592a2df7730, target_bits = 0x7ff16a818010 "", success = 1, error = 0x0}
__func__ = "cogl_texture_get_data"
#21 0x00007ff1f8d4cc3b in meta_shaped_texture_get_image (stex=0x5592a2daa850, clip=clip@entry=0x7fff847e9470) at ../mutter/src/compositor/meta-shaped-texture.c:1381
image_clip = 0x7fff847e93f0
texture = 0x5592a39cfb60
mask_texture = <optimized out>
surface = 0x55929fe4af30
__func__ = "meta_shaped_texture_get_image"
#22 0x00007ff1f8df231e in meta_window_actor_get_image (self=self@entry=0x5592a3ac8d20, clip=clip@entry=0x7fff847e9550) at ../mutter/src/compositor/meta-window-actor.c:1438
stex = <optimized out>
surface_clip = 0x7fff847e9470
priv = 0x5592a3ac89b0
actor = 0x5592a3ac8d20
backend = <optimized out>
clutter_backend = <optimized out>
cogl_context = 0x55929f9925c0
resource_scale = 0
width = 5.28065313e-41
height = 4.58967286e-41
texture = <optimized out>
error = 0x0
offscreen = <optimized out>
framebuffer = <optimized out>
clear_color =
{private_member_red = 80 'P', private_member_green = 150 '\226', private_member_blue = 126 '~', private_member_alpha = 132 '\204', private_member_padding0 = 32767, private_member_padding1 = 4163760155, private_member_padding2 = 32753}
x = -1.41108279e+34
y = 4.59163468e-41
scaled_clip = {x = -2072078688, y = 32767, width = 8, height = 0}
paint_context = <optimized out>
surface = 0x0
#23 0x00007ff1f9c3082b in shell_util_get_content_for_window_actor (window_actor=0x5592a3ac8d20, window_rect=0x5592a0103150) at ../gnome-shell/src/shell-util.c:477
content = <optimized out>
surface = <optimized out>
clip = {x = 0, y = 0, width = 1712, height = 915}
actor_x = 0
actor_y = 0
#24 0x00007ff1f82dfa8d in () at /usr/lib/libffi.so.7
#25 0x00007ff1f82df01b in () at /usr/lib/libffi.so.7
#26 0x00007ff1f9090ad5 in () at /usr/lib/libgjs.so.0
#27 0x00007ff1f90929c8 in () at /usr/lib/libgjs.so.0
#28 0x00007ff1f63f8c3d in () at /usr/lib/libmozjs-68.so
#29 0x00007ff1f63ee325 in () at /usr/lib/libmozjs-68.so
#30 0x00007ff1f63de48f in () at /usr/lib/libmozjs-68.so
#31 0x00007ff1f63f894a in () at /usr/lib/libmozjs-68.so
#32 0x00007ff1f69a066d in () at /usr/lib/libmozjs-68.so
#33 0x000028d354cfb8f8 in ()
#34 0x00005592a3699d70 in ()
#35 0x00007fff847ea578 in ()
#36 0xa59172954a00ca00 in ()
#37 0xfff9800000000000 in ()
#38 0x00007ff1f6f642a8 in () at /usr/lib/libmozjs-68.so
#39 0x000028d354d01363 in ()
#40 0x0000000000006822 in ()
#41 0x00007fff847ea660 in ()
#42 0x00005592a158ec50 in ()
#43 0x0000000000000005 in ()
#44 0x00007fff847ea5b8 in ()
#45 0xfffe191aaab589c0 in ()
#46 0xfffe191aaabad9c0 in ()
#47 0xfffe191aaabc2100 in ()
#48 0xfffe112542414b50 in ()
#49 0xfff8800000000002 in ()
#50 0xfffe04cec0afa6a0 in ()
#51 0xfffe04cec0afa6d0 in ()
#52 0x00007fff847ea6a8 in ()
#53 0x00005592a158ec50 in ()
#54 0x000028d354d44095 in ()
#55 0x000000000000a021 in ()
#56 0xfffe04cec0afa6d0 in ()
#57 0xfffe04cec0afa6a0 in ()
#58 0xfff8800000000002 in ()
#59 0xfffe112542414b50 in ()
#60 0xfffe191aaabc2100 in ()
#61 0xfffe191aaabad9c0 in ()
#62 0xfffe191aaab589c0 in ()
#63 0xfffa800000000005 in ()
#64 0xfff9800000000000 in ()
#65 0xfff9800000000000 in ()
#66 0x00007ff1f647b900 in () at /usr/lib/libmozjs-68.so
#67 0xfffe112542414b50 in ()
#68 0xfff9800000000000 in ()
#69 0x000004cec0a53100 in ()
#70 0x000055929fa561c0 in ()
#71 0x00007fff847ea8c0 in ()
#72 0x000000a000000000 in ()
#73 0x00007fff847ea710 in ()
#74 0x00007ff1f70c2370 in () at /usr/lib/libmozjs-68.so
#75 0x00007fff847ea730 in ()
#76 0x000028d354cf94df in ()
#77 0x0000000000004043 in ()
#78 0x000004cec0a21d80 in ()
#79 0x0000000000000005 in ()
#80 0xfffa000000000000 in ()
#81 0xfffe191aaabc2100 in ()
#82 0xfffe112542414b50 in ()
#83 0xfff8800000000002 in ()
#84 0xfffe04cec0afa6a0 in ()
#85 0xfffe04cec0afa6d0 in ()
#86 0x00007fff847ea790 in ()
#87 0x0000000000000000 in ()