Crash in gsk_gl_driver_release_texture ()
Steps to reproduce
I was looking at the Recorder when gathering data for #5174 (closed), then the whole thing crashed out of nowhere. This is what I was looking at:
Might be the same as #4586 (closed).
Version information
gtk4-4.8.0-1.fc37.x86_64, Fedora 37 Silverblue
Warnings
Attempt to create texture of size 20278x21 but max size is 16384. Clipping will occur.
Backtrace
#0 gsk_gl_driver_release_texture (texture=0x0, self=0x560410a28640) at ../gsk/gl/gskgldriver.c:863
#1 gsk_gl_texture_library_real_compact (self=0x5604116e4f00, frame_id=<optimized out>) at ../gsk/gl/gskgltexturelibrary.c:115
#2 0x00007fddaae8f273 in gsk_gl_texture_library_compact (frame_id=<optimized out>, self=<optimized out>) at ../gsk/gl/gskgltexturelibrary.c:487
#3 gsk_gl_texture_library_begin_frame (self=0x5604116e4f00, frame_id=1740) at ../gsk/gl/gskgltexturelibrary.c:295
#4 0x00007fddaae7f809 in gsk_gl_driver_begin_frame (self=0x560410a28640, command_queue=<optimized out>) at ../gsk/gl/gskgldriver.c:564
#5 0x00007fddaae71852 in gsk_gl_renderer_render (renderer=0x56041129c1d0, root=0x7fdd7c032c40, update_area=<optimized out>) at ../gsk/gl/gskglrenderer.c:308
#6 0x00007fddaae5b3fa in gsk_renderer_render (renderer=0x56041129c1d0, root=0x7fdd7c032c40, region=<optimized out>) at ../gsk/gskrenderer.c:463
#7 0x00007fddaad22474 in gtk_widget_render (widget=<optimized out>, surface=<optimized out>, region=0x560411ca81d0) at ../gtk/gtkwidget.c:11721
#8 0x00007fddaad232a9 in surface_render () at ../gtk/gtkwindow.c:4685
#9 0x00007fddaade6708 in _gdk_marshal_BOOLEAN__BOXEDv (closure=0x5604115fa440, return_value=0x7ffd54c23550, instance=<optimized out>, args=<optimized out>, marshal_data=<optimized out>, n_params=<optimized out>, param_types=0x56040e4bace0) at gdk/gdkmarshalers.c:130
#10 0x00007fddab33a504 in _g_closure_invoke_va (param_types=<optimized out>, n_params=<optimized out>, args=0x7ffd54c23600, instance=<optimized out>, return_value=<optimized out>, closure=0x5604115fa440) at ../gobject/gclosure.c:895
#11 g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7ffd54c23600) at ../gobject/gsignal.c:3456
#12 0x00007fddab33a5e3 in g_signal_emit (instance=instance@entry=0x560410ee3190, signal_id=<optimized out>, detail=detail@entry=0) at ../gobject/gsignal.c:3606
#13 0x00007fddaae129d6 in gdk_surface_process_updates_internal (surface=0x560410ee3190) at ../gdk/gdksurface.c:1334
#14 gdk_surface_paint_on_clock (clock=<optimized out>, data=0x560410ee3190) at ../gdk/gdksurface.c:1422
#15 0x00007fddab33a504 in _g_closure_invoke_va (param_types=<optimized out>, n_params=<optimized out>, args=0x7ffd54c238a0, instance=<optimized out>, return_value=<optimized out>, closure=0x5604100d76e0) at ../gobject/gclosure.c:895
#16 g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7ffd54c238a0) at ../gobject/gsignal.c:3456
#17 0x00007fddab33a5e3 in g_signal_emit (instance=instance@entry=0x5604112e4290, signal_id=<optimized out>, detail=detail@entry=0) at ../gobject/gsignal.c:3606
#18 0x00007fddaadffde7 in _gdk_frame_clock_emit_paint (frame_clock=0x5604112e4290) at ../gdk/gdkframeclock.c:708
#19 gdk_frame_clock_paint_idle (data=data@entry=0x5604112e4290) at ../gdk/gdkframeclockidle.c:608
#20 0x00007fddab221448 in g_timeout_dispatch (source=0x56040fe58a30, callback=0x7fddaadff8e0 <gdk_frame_clock_paint_idle>, user_data=0x5604112e4290) at ../glib/gmain.c:5007
#21 0x00007fddab220c3f in g_main_dispatch (context=0x56040e123d20) at ../glib/gmain.c:3444
#22 g_main_context_dispatch (context=0x56040e123d20) at ../glib/gmain.c:4162
#23 0x00007fddab2764c8 in g_main_context_iterate.constprop.0 (context=0x56040e123d20, block=1, dispatch=1, self=<optimized out>) at ../glib/gmain.c:4238
#24 0x00007fddab21dec0 in g_main_context_iteration (context=context@entry=0x56040e123d20, may_block=may_block@entry=1) at ../glib/gmain.c:4303
#25 0x00007fddab44989d in g_application_run (application=0x56040e11c100, argc=argc@entry=1, argv=argv@entry=0x7ffd54c23cf8) at ../gio/gapplication.c:2571
#26 0x000056040c1ed3b8 in main (argc=1, argv=0x7ffd54c23cf8) at ../src/sysprof/sysprof.c:44
bt full
#0 gsk_gl_driver_release_texture (texture=0x0, self=0x560410a28640) at ../gsk/gl/gskgldriver.c:863
texture_id = 287185872
texture_id = <optimized out>
#1 gsk_gl_texture_library_real_compact (self=0x5604116e4f00, frame_id=<optimized out>) at ../gsk/gl/gskgltexturelibrary.c:115
entry = 0x7fdd7d34f950
iter = {dummy1 = 0x560410c7d800, dummy2 = 0x5604100d4890, dummy3 = 0x5604100d4870, dummy4 = 244, dummy5 = 32733, dummy6 = 0x5604000005b7}
dropped = 0
atlased = <optimized out>
removed = <optimized out>
ret = <optimized out>
periodic_scan = <optimized out>
#2 0x00007fddaae8f273 in gsk_gl_texture_library_compact (frame_id=<optimized out>, self=<optimized out>) at ../gsk/gl/gskgltexturelibrary.c:487
__func__ = <optimized out>
#3 gsk_gl_texture_library_begin_frame (self=0x5604116e4f00, frame_id=1740) at ../gsk/gl/gskgltexturelibrary.c:295
__func__ = "gsk_gl_texture_library_begin_frame"
#4 0x00007fddaae7f809 in gsk_gl_driver_begin_frame (self=0x560410a28640, command_queue=<optimized out>) at ../gsk/gl/gskgldriver.c:564
last_frame_id = 1739
__func__ = "gsk_gl_driver_begin_frame"
#5 0x00007fddaae71852 in gsk_gl_renderer_render (renderer=0x56041129c1d0, root=0x7fdd7c032c40, update_area=<optimized out>) at ../gsk/gl/gskglrenderer.c:308
self = <optimized out>
render_region = <optimized out>
viewport = {origin = {x = 0, y = 0}, size = {width = 1084, height = 925}}
job = <optimized out>
surface = 0x560410ee3190
clear_framebuffer = 0
scale_factor = <optimized out>
#6 0x00007fddaae5b3fa in gsk_renderer_render (renderer=0x56041129c1d0, root=0x7fdd7c032c40, region=<optimized out>) at ../gsk/gskrenderer.c:463
priv = 0x56041129c190
clip = 0x56041225b760
__func__ = "gsk_renderer_render"
#7 0x00007fddaad22474 in gtk_widget_render (widget=<optimized out>, surface=<optimized out>, region=0x560411ca81d0) at ../gtk/gtkwidget.c:11721
priv = <optimized out>
snapshot = <optimized out>
renderer = 0x56041129c1d0
root = 0x7fdd7c032c40
x = 61
y = 55
before_snapshot = <optimized out>
before_render = 0
#8 0x00007fddaad232a9 in surface_render () at ../gtk/gtkwindow.c:4685
default_icon_name = 0x0
window_props = {0x0, 0x56040e1f23d0, 0x56040e296930, 0x56040e2969a0, 0x56040e268660, 0x56040e2686e0, 0x56040e296a10, 0x56040e296a80, 0x56040e1f24f0, 0x56040e2ab460, 0x56040e2ab540, 0x56040e2ab5b0, 0x56040e2ab620, 0x56040e2ab770, 0x56040e242820, 0x56040e242890, 0x56040e242900, 0x56040e242970, 0x56040e2429e0, 0x56040e2ab4d0, 0x56040e1f2460, 0x56040e296af0, 0x56040e296b60, 0x56040e2ab690, 0x56040e2ab700}
org_kde_kwin_server_decoration_requests = {{name = 0x7fddaaec5bfd "release", signature = 0x7fddaaeb4610 "", types = 0x7fddab04cd40 <server_decoration_types.lto_priv>}, {name = 0x7fddaaefd4b7 "request_mode", signature = 0x7fddaaeffad0 "u", types = 0x7fddab04cd40 <server_decoration_types.lto_priv>}}
parent_buildable_iface = 0x56040e2c0460
parent_accessible_iface = 0x56040e1aa8b0
gtk_window_parent_class = 0x56040e2b5230
disable_startup_notification = 0
gtk_widget_paintable_parent_class = 0x56040e113390
server_decoration_types = {0x0, 0x7fddab039b00 <org_kde_kwin_server_decoration_interface>, 0x7fdda9c22a00 <wl_surface_interface>}
quark_gtk_window_icon_info = 1135
properties = {0x0, 0x56041065b220}
GtkWidgetPaintable_private_offset = 0
toplevel_list = 0x56040e2a1040
org_kde_kwin_server_decoration_events = {{name = 0x7fddaaf06280 "mode", signature = 0x7fddaaeffad0 "u", types = 0x7fddab04cd40 <server_decoration_types.lto_priv>}}
org_kde_kwin_server_decoration_interface = {name = 0x7fddaaefd5e8 "org_kde_kwin_server_decoration", version = 1, method_count = 2, methods = 0x7fddab039ac0 <org_kde_kwin_server_decoration_requests>, event_count = 1, events = 0x7fddab039aa0 <org_kde_kwin_server_decoration_events>}
#9 0x00007fddaade6708 in _gdk_marshal_BOOLEAN__BOXEDv (closure=0x5604115fa440, return_value=0x7ffd54c23550, instance=<optimized out>, args=<optimized out>, marshal_data=<optimized out>, n_params=<optimized out>, param_types=0x56040e4bace0) at gdk/gdkmarshalers.c:130
cc = <optimized out>
data1 = <optimized out>
data2 = 0x560410585660
callback = 0x7fddaad23290 <surface_render>
v_return = <optimized out>
arg0 = 0x560411ca81d0
args_copy = {{gp_offset = 32, fp_offset = 48, overflow_arg_area = 0x7ffd54c236e0, reg_save_area = 0x7ffd54c23620}}
__func__ = "_gdk_marshal_BOOLEAN__BOXEDv"
#10 0x00007fddab33a504 in _g_closure_invoke_va (param_types=<optimized out>, n_params=<optimized out>, args=0x7ffd54c23600, instance=<optimized out>, return_value=<optimized out>, closure=0x5604115fa440) at ../gobject/gclosure.c:895
marshal = <optimized out>
marshal_data = <optimized out>
in_marshal = <optimized out>
real_closure = 0x5604115fa420
real_closure = <optimized out>
__func__ = <optimized out>
_g_boolean_var_ = <optimized out>
marshal = <optimized out>
marshal_data = <optimized out>
in_marshal = <optimized out>
_g_boolean_var_ = <optimized out>
cunion = <optimized out>
new_int = <optimized out>
old_int = <optimized out>
success = <optimized out>
tmp = <optimized out>
gaicae_oldval = <optimized out>
cunion = <optimized out>
new_int = <optimized out>
old_int = <optimized out>
success = <optimized out>
tmp = <optimized out>
gaicae_oldval = <optimized out>
#11 g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7ffd54c23600) at ../gobject/gsignal.c:3456
return_accu = <optimized out>
accu = {g_type = 20, data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}}
accumulator = <optimized out>
emission = {next = 0x7ffd54c237a0, instance = 0x560410ee3190, ihint = {signal_id = 266, detail = 0, run_type = (G_SIGNAL_RUN_FIRST | G_SIGNAL_ACCUMULATOR_FIRST_RUN)}, state = EMISSION_RUN, chain_type = 94575421012272}
instance_type = <optimized out>
emission_return = {g_type = 20, data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}}
rtype = <optimized out>
static_scope = <optimized out>
fastpath_handler = <optimized out>
closure = <optimized out>
run_type = <optimized out>
hlist = <optimized out>
l = <optimized out>
fastpath = <optimized out>
instance_and_params = <optimized out>
signal_return_type = <optimized out>
param_values = <optimized out>
node = <optimized out>
i = <optimized out>
n_params = <optimized out>
__func__ = "g_signal_emit_valist"
#12 0x00007fddab33a5e3 in g_signal_emit (instance=instance@entry=0x560410ee3190, signal_id=<optimized out>, detail=detail@entry=0) at ../gobject/gsignal.c:3606
var_args = {{gp_offset = 24, fp_offset = 48, overflow_arg_area = 0x7ffd54c236e0, reg_save_area = 0x7ffd54c23620}}
#13 0x00007fddaae129d6 in gdk_surface_process_updates_internal (surface=0x560410ee3190) at ../gdk/gdksurface.c:1334
expose_region = 0x560411ca81d0
handled = 32733
#14 gdk_surface_paint_on_clock (clock=<optimized out>, data=0x560410ee3190) at ../gdk/gdksurface.c:1422
surface = 0x560410ee3190
__func__ = "gdk_surface_paint_on_clock"
#15 0x00007fddab33a504 in _g_closure_invoke_va (param_types=<optimized out>, n_params=<optimized out>, args=0x7ffd54c238a0, instance=<optimized out>, return_value=<optimized out>, closure=0x5604100d76e0) at ../gobject/gclosure.c:895
marshal = <optimized out>
marshal_data = <optimized out>
in_marshal = <optimized out>
real_closure = 0x5604100d76c0
real_closure = <optimized out>
__func__ = <optimized out>
_g_boolean_var_ = <optimized out>
marshal = <optimized out>
marshal_data = <optimized out>
in_marshal = <optimized out>
_g_boolean_var_ = <optimized out>
cunion = <optimized out>
new_int = <optimized out>
old_int = <optimized out>
success = <optimized out>
tmp = <optimized out>
gaicae_oldval = <optimized out>
cunion = <optimized out>
new_int = <optimized out>
old_int = <optimized out>
success = <optimized out>
tmp = <optimized out>
gaicae_oldval = <optimized out>
#16 g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7ffd54c238a0) at ../gobject/gsignal.c:3456
return_accu = <optimized out>
accu = {g_type = 0, data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}}
accumulator = <optimized out>
emission = {next = 0x0, instance = 0x5604112e4290, ihint = {signal_id = 262, detail = 0, run_type = (G_SIGNAL_RUN_FIRST | G_SIGNAL_ACCUMULATOR_FIRST_RUN)}, state = EMISSION_RUN, chain_type = 94575421428448}
instance_type = <optimized out>
emission_return = {g_type = 0, data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}}
rtype = <optimized out>
static_scope = <optimized out>
fastpath_handler = <optimized out>
closure = <optimized out>
run_type = <optimized out>
hlist = <optimized out>
l = <optimized out>
fastpath = <optimized out>
instance_and_params = <optimized out>
signal_return_type = <optimized out>
param_values = <optimized out>
node = <optimized out>
i = <optimized out>
n_params = <optimized out>
__func__ = "g_signal_emit_valist"
#17 0x00007fddab33a5e3 in g_signal_emit (instance=instance@entry=0x5604112e4290, signal_id=<optimized out>, detail=detail@entry=0) at ../gobject/gsignal.c:3606
var_args = {{gp_offset = 24, fp_offset = 48, overflow_arg_area = 0x7ffd54c23980, reg_save_area = 0x7ffd54c238c0}}
#18 0x00007fddaadffde7 in _gdk_frame_clock_emit_paint (frame_clock=0x5604112e4290) at ../gdk/gdkframeclock.c:708
before = 27163408282267
before = <optimized out>
#19 gdk_frame_clock_paint_idle (data=data@entry=0x5604112e4290) at ../gdk/gdkframeclockidle.c:608
clock = 0x5604112e4290
clock_idle = 0x5604112e4290
priv = 0x5604112e4180
skip_to_resume_events = 0
timings = <optimized out>
before = 27163408232050
__func__ = "gdk_frame_clock_paint_idle"
#20 0x00007fddab221448 in g_timeout_dispatch (source=0x56040fe58a30, callback=0x7fddaadff8e0 <gdk_frame_clock_paint_idle>, user_data=0x5604112e4290) at ../glib/gmain.c:5007
timeout_source = 0x56040fe58a30
again = <optimized out>
#21 0x00007fddab220c3f in g_main_dispatch (context=0x56040e123d20) at ../glib/gmain.c:3444
dispatch = 0x7fddab221420 <g_timeout_dispatch>
prev_source = 0x0
begin_time_nsec = 27163408230164
was_in_call = 0
user_data = 0x5604112e4290
callback = 0x7fddaadff8e0 <gdk_frame_clock_paint_idle>
cb_funcs = 0x7fddab3073e0 <g_source_callback_funcs>
cb_data = 0x560412b61950
need_destroy = <optimized out>
source = 0x56040fe58a30
current = 0x56040e137650
i = 0
__func__ = <optimized out>
#22 g_main_context_dispatch (context=0x56040e123d20) at ../glib/gmain.c:4162
No locals.
#23 0x00007fddab2764c8 in g_main_context_iterate.constprop.0 (context=0x56040e123d20, block=1, dispatch=1, self=<optimized out>) at ../glib/gmain.c:4238
max_priority = 120
timeout = 0
some_ready = 1
nfds = 4
allocated_nfds = <optimized out>
fds = <optimized out>
begin_time_nsec = 27163408164862
#24 0x00007fddab21dec0 in g_main_context_iteration (context=context@entry=0x56040e123d20, may_block=may_block@entry=1) at ../glib/gmain.c:4303
retval = <optimized out>
#25 0x00007fddab44989d in g_application_run (application=0x56040e11c100, argc=argc@entry=1, argv=argv@entry=0x7ffd54c23cf8) at ../gio/gapplication.c:2571
arguments = 0x56040e122cc0
status = 0
context = 0x56040e123d20
acquired_context = <optimized out>
__func__ = "g_application_run"
#26 0x000056040c1ed3b8 in main (argc=1, argv=0x7ffd54c23cf8) at ../src/sysprof/sysprof.c:44
app = 0x56040e11c100
ret = <optimized out>