Well, I have a stack trace, but it was *shockingly* flaky to try to get and so I don't have huge faith that it's actually correct. Guess debugging X11 is a little more involved than "attach gdb, type 'backtrace'".
Trace attached.
Continuing. Thread 1 "Xorg" received signal SIGSEGV, Segmentation fault. 0x0000ffffb8459f64 in ra_get_node_class (g=g@entry=0xaaaaebc6a4b0, n=n@entry=4294967295) at ../src/util/register_allocate.c:564 564../src/util/register_allocate.c: No such file or directory. #0 0x0000ffffb8459f64 in ra_get_node_class (g=g@entry=0xaaaaebc6a4b0, n=n@entry=4294967295) at ../src/util/register_allocate.c:564 No locals. #1 0x0000ffffb8705278 in mir_spill_register (ctx=ctx@entry=0xaaaaebbfab70, g=g@entry=0xaaaaebc6a4b0, spill_count=spill_count@entry=0xffffd2707194) at ../src/panfrost/midgard/midgard_schedule.c:1252 spill_index = 125 spill_node = -1 class = <optimized out> is_special = <optimized out> is_special_w = <optimized out> spill_slot = <optimized out> read_bytemask = <optimized out> #2 0x0000ffffb8706e50 in schedule_program (ctx=ctx@entry=0xaaaaebbfab70) at ../src/panfrost/midgard/midgard_schedule.c:1405 g = <optimized out> spilled = true iter_count = <optimized out> spill_count = 0 #3 0x0000ffffb8701d3c in midgard_compile_shader_nir (screen=screen@entry=0xaaaaea35db60, nir=nir@entry=0xaaaaebc24ae0, program=program@entry=0xffffd27074f8, is_blend=is_blend@entry=false) at ../src/panfrost/midgard/midgard_compile.c:2525 compiled = 0xffffd2707610 ctx = 0xaaaaebbfab70 varyings = <optimized out> max_varying = <optimized out> progress = <optimized out> br_block_idx = <optimized out> bundle_count = <optimized out> source_order_bundles = <optimized out> bundle_idx = <optimized out> current_bundle = <optimized out> clone = <optimized out> clone = <optimized out> clone = <optimized out> clone = <optimized out> clone = <optimized out> clone = <optimized out> clone = <optimized out> clone = <optimized out> clone = <optimized out> clone = <optimized out> clone = <optimized out> #4 0x0000ffffb86e9904 in panfrost_shader_compile (ctx=ctx@entry=0xaaaaea35d7b0, meta=0xaaaaebbac8f0, ir_type=<optimized out>, ir=<optimized out>, stage=stage@entry=MESA_SHADER_FRAGMENT, state=state@entry=0xaaaaebc70090, outputs_written=outputs_written@entry=0xffffd2707690) at ../src/gallium/drivers/panfrost/pan_assemble.c:68 screen = 0xaaaaea34fa60 dst = <optimized out> s = 0xaaaaebc24ae0 program = {work_register_count = 0, uniform_count = 4, uniform_cutoff = 0, sysval_count = 0, sysvals = {0 <repeats 32 times>}, varyings = {31, 0 <repeats 31 times>}, writes_point_size = false, first_tag = 0, compiled = {mem_ctx = 0x0, data = 0x0, size = 0, capacity = 0}, blend_patch_offset = 0, tls_size = 0, alpha_ref = 0} size = <optimized out> default_vec1_swizzle = <optimized out> default_vec2_swizzle = <optimized out> default_vec4_swizzle = <optimized out> #5 0x0000ffffb86e427c in panfrost_bind_shader_state (pctx=0xaaaaea35d7b0, hwcso=0xaaaaebc6ff60, type=PIPE_SHADER_FRAGMENT) at ../src/gallium/auxiliary/tgsi/tgsi_from_mesa.h:82 outputs_written = 0 ctx = <optimized out> variant = <optimized out> variants = <optimized out> shader_state = 0xaaaaebc70090 #6 0x0000ffffb834c53c in st_update_fp (st=0xaaaaea3bc550) at ../src/mesa/state_tracker/st_atom_shader.c:168 stfp = 0xaaaaebbe62f0 shader = 0xaaaaebc6ff60 #7 0x0000ffffb8349be0 in st_validate_state (st=st@entry=0xaaaaea3bc550, pipeline=pipeline@entry=ST_PIPELINE_RENDER) at ../src/util/bitscan.h:104 ctx = <optimized out> dirty = <optimized out> pipeline_mask = 72057594037927935 dirty_lo = 1745356864 dirty_hi = 8388625 #8 0x0000ffffb828ff04 in prepare_draw (ctx=0xaaaaea392180, st=0xaaaaea3bc550) at ../src/mesa/state_tracker/st_draw.c:132 pipe = <optimized out> pipe = <optimized out> cpu = <optimized out> L3_cache = <optimized out> #9 st_draw_vbo (ctx=0xaaaaea392180, prims=0xffffd2707900, nr_prims=1, ib=0x0, index_bounds_valid=<optimized out>, min_index=<optimized out>, max_index=<optimized out>, tfb_vertcount=0x0, stream=0, indirect=0x0) at ../src/mesa/state_tracker/st_draw.c:184 st = 0xaaaaea3bc550 info = {index_size = 0 '\000', mode = 210, primitive_restart = 1, has_user_indices = 0, vertices_per_patch = 27 '\033', start = 2192418345, count = 3530586320, start_instance = 65535, instance_count = 3088930016, drawid = 65535, index_bias = -1198186184, min_index = 65535, max_index = 4, restart_index = 0, index = {resource = 0x7, user = 0x7}, indirect = 0xaaaaea392180, count_from_stream_output = 0xffffaaa1b288} i = <optimized out> start = 0 #10 0x0000ffffb833a1a0 in _mesa_draw_arrays (drawID=<optimized out>, baseInstance=<optimized out>, numInstances=<optimized out>, count=<optimized out>, start=<optimized out>, mode=<optimized out>, ctx=<optimized out>) at ../src/mesa/main/draw.c:374 prim = {mode = 7, indexed = 0, begin = 1, end = 1, is_indirect = 0, pad = 0, start = 0, count = 4, basevertex = 0, num_instances = 1, base_instance = 0, draw_id = 0, indirect_offset = 0} prim = <optimized out> #11 _mesa_draw_arrays (ctx=<optimized out>, mode=<optimized out>, start=<optimized out>, count=<optimized out>, numInstances=<optimized out>, baseInstance=<optimized out>, drawID=<optimized out>) at ../src/mesa/main/draw.c:351 prim = <optimized out> #12 0x0000ffffb90d05bc in glamor_composite_with_shader (ca_state=CA_NONE, rects=<optimized out>, nrect=1, dest_pixmap_priv=0xaaaaebbcee30, mask_pixmap_priv=0xaaaaebbdc780, source_pixmap_priv=0xaaaaebbdadd0, dest_pixmap=<optimized out>, mask_pixmap=0xaaaaebbdc730, source_pixmap=0xaaaaebbdad80, dest=0xaaaaebbda070, mask=0xaaaaebbdc850, source=0xaaaaebbdc8d0, op=1 '\001') at ../../../../glamor/glamor_render.c:1287 mrect = <optimized out> rect_processed = 1 vb_stride = 6 vertices = <optimized out> dst_xscale = <optimized out> src_yscale = 0.0181818176 key = {source = SHADER_SOURCE_TEXTURE_ALPHA, mask = SHADER_MASK_TEXTURE_ALPHA, in = glamor_program_alpha_normal, dest_swizzle = SHADER_DEST_SWIZZLE_ALPHA_TO_RED} dest_y_off = 0 mask_y_off = 0 src_matrix = {0, 0, 0, 0, 1.40129846e-45, 0, -2.5821918e+11, 9.18340949e-41, -3.75533339e+12} pmask_matrix = 0x0 nrect_max = 1 dst_yscale = <optimized out> shader = 0xaaaaea3dcda8 op_info = {dest_alpha = 0, source_alpha = 0, source_blend = 1, dest_blend = 0} op_info_ca = {dest_alpha = 23, source_alpha = 0, source_blend = 3530587640, dest_blend = 65535} saved_source_format = 0 screen = <optimized out> mask_xscale = 0.0181818176 key_ca = {source = 3929902672, mask = 43690, in = glamor_program_alpha_normal, dest_swizzle = SHADER_DEST_SWIZZLE_DEFAULT} source_x_off = 0 ret = 0 glamor_priv = 0xaaaaea3da140 mask_yscale = 0.0181818176 src_xscale = 0.0181818176 dest_x_off = 0 source_y_off = 0 mask_x_off = 0 mask_matrix = {-4.58865858e+26, 6.12227299e-41, 0, 0, 0, 0, -9.14931297e-05, 9.18340949e-41, 1.40129846e-45} psrc_matrix = 0x0 shader_ca = 0x0 screen = <optimized out> glamor_priv = <optimized out> dst_xscale = <optimized out> dst_yscale = <optimized out> mask_xscale = <optimized out> mask_yscale = <optimized out> src_xscale = <optimized out> src_yscale = <optimized out> key = <optimized out> key_ca = <optimized out> dest_x_off = <optimized out> dest_y_off = <optimized out> source_x_off = <optimized out> source_y_off = <optimized out> mask_x_off = <optimized out> mask_y_off = <optimized out> saved_source_format = <optimized out> src_matrix = <optimized out> mask_matrix = <optimized out> psrc_matrix = <optimized out> pmask_matrix = <optimized out> nrect_max = <optimized out> ret = <optimized out> shader = <optimized out> shader_ca = <optimized out> op_info = <optimized out> op_info_ca = <optimized out> __FUNCTION__ = "glamor_composite_with_shader" _w_ = <optimized out> _h_ = <optimized out> _i_ = <optimized out> _i_ = <optimized out> bounds = <optimized out> i = <optimized out> box = <optimized out> mrect = <optimized out> rect_processed = <optimized out> vb_stride = <optimized out> vertices = <optimized out> x_source = <optimized out> y_source = <optimized out> x_mask = <optimized out> y_mask = <optimized out> x_dest = <optimized out> y_dest = <optimized out> width = <optimized out> height = <optimized out> fbo_x_off = <optimized out> fbo_y_off = <optimized out> _t0_ = <optimized out> _t1_ = <optimized out> _t2_ = <optimized out> _t5_ = <optimized out> #13 glamor_composite_clipped_region (op=op@entry=1 '\001', source=source@entry=0xaaaaebbd96d0, mask=mask@entry=0xaaaaebbdc850, dest=dest@entry=0xaaaaebbda070, source_pixmap=source_pixmap@entry=0xaaaaebbd95b0, mask_pixmap=mask_pixmap@entry=0xaaaaebbdc730, dest_pixmap=dest_pixmap@entry=0xaaaaebbcede0, region=region@entry=0xffffd2707df8, x_source=<optimized out>, x_source@entry=23, y_source=<optimized out>, y_source@entry=23, x_mask=<optimized out>, x_mask@entry=0, y_mask=<optimized out>, y_mask@entry=0, x_dest=x_dest@entry=0, y_dest=y_dest@entry=0) at ../../../../glamor/glamor_render.c:1570 box_cnt = 1 source_pixmap_priv = <optimized out> mask_pixmap_priv = <optimized out> dest_pixmap_priv = 0xaaaaebbcee30 glamor_priv = <optimized out> screen = <optimized out> temp_src = <optimized out> temp_mask = <optimized out> temp_src_pixmap = <optimized out> temp_mask_pixmap = <optimized out> temp_src_priv = <optimized out> temp_mask_priv = <optimized out> x_temp_src = 0 y_temp_src = 0 x_temp_mask = 0 y_temp_mask = 0 extent = 0xffffd2707df8 rect = {{x_src = 0, y_src = 0, x_mask = 0, y_mask = 0, x_dst = 0, y_dst = 0, width = 55, height = 55}, {x_src = -26100, y_src = -11174, x_mask = -21846, y_mask = 0, x_dst = -26928, y_dst = -5187, width = -21846, height = 0}, {x_src = -4640, y_src = -5188, x_mask = -21846, y_mask = 0, x_dst = 32064, y_dst = -11664, width = -1, height = 0}, {x_src = 5044, y_src = -18163, x_mask = -1, y_mask = 0, x_dst = -14256, y_dst = -5187, width = -21846, height = 0}, {x_src = -24464, y_src = -5187, x_mask = -21846, y_mask = 0, x_dst = -26928, y_dst = -5187, width = -21846, height = 0}, {x_src = -20480, y_src = -18161, x_mask = -1, y_mask = 0, x_dst = -4640, y_dst = -5188, width = -21846, height = 0}, {x_src = 55, y_src = 0, x_mask = 0, y_mask = 0, x_dst = 55, y_dst = 0, width = 0, height = 0}, {x_src = 0, y_src = 0, x_mask = 0, y_mask = 0, x_dst = 0, y_dst = 0, width = 0, height = 0}, {x_src = -24256, y_src = -5571, x_mask = -21846, y_mask = 0, x_dst = -22768, y_dst = -18071, width = -1, height = 0}, {x_src = 32248, y_src = -11664, x_mask = -1, y_mask = 0, x_dst = 1, y_dst = 0, width = 0, height = 0}} prect = 0xffffd2707c38 prect_size = 10 ok = 0 i = <optimized out> width = <optimized out> height = <optimized out> box = 0xffffd2707df8 nbox = 1 ca_state = CA_NONE __FUNCTION__ = "glamor_composite_clipped_region" #14 0x0000ffffb90d16cc in glamor_composite (op=1 '\001', source=0xaaaaebbd96d0, mask=0xaaaaebbdc850, dest=0xaaaaebbda070, x_source=23, y_source=23, x_mask=0, y_mask=0, x_dest=0, y_dest=0, width=55, height=55) at ../../../../glamor/glamor_render.c:1709 screen = <optimized out> dest_pixmap = 0xaaaaebbcede0 source_pixmap = <optimized out> mask_pixmap = 0xaaaaebbdc730 glamor_priv = 0xaaaaea3da140 region = {extents = {x1 = 0, y1 = 0, x2 = 55, y2 = 55}, data = 0x0} extent = <optimized out> nbox = <optimized out> ok = 0 force_clip = <optimized out> __FUNCTION__ = "glamor_composite" #15 0x0000aaaad45bc908 in damageComposite (op=1 '\001', pSrc=0xaaaaebbd96d0, pMask=0xaaaaebbdc850, pDst=0xaaaaebbda070, xSrc=23, ySrc=23, xMask=0, yMask=0, xDst=0, yDst=0, width=55, height=55) at ../../../../../miext/damage/damage.c:513 pScreen = <optimized out> ps = 0xaaaaea3d9df0 pScrPriv = 0xaaaaeaa35710 #16 0x0000ffffb90d8568 in glamor_trapezoids (op=1 '\001', src=0xaaaaebbd96d0, dst=0xaaaaebbda070, mask_format=<optimized out>, x_src=<optimized out>, y_src=<optimized out>, ntrap=<optimized out>, traps=<optimized out>) at ../../../../glamor/glamor_trapezoid.c:146 screen = <optimized out> bounds = {x1 = 0, y1 = 0, x2 = 55, y2 = 55} picture = 0xaaaaebbdc850 x_dst = <optimized out> y_dst = 0 x_rel = <optimized out> y_rel = <optimized out> width = 55 height = <optimized out> stride = <optimized out> pixmap = 0xaaaaebbdc730 image = 0xaaaaeb331d40 #17 0x0000aaaad45b1e7c in ProcRenderTrapezoids (client=0xaaaaead37920) at ../../../../render/render.c:746 rc = <optimized out> ntraps = <optimized out> pSrc = 0xaaaaebbd96d0 pDst = 0xaaaaebbda070 pFormat = 0xaaaaea3d9588 stuff = <optimized out> #18 0x0000aaaad44e1e18 in Dispatch () at ../../../../dix/dispatch.c:478 result = <optimized out> client = 0xaaaaead37920 start_tick = 3195 #19 0x0000aaaad44e5f44 in dix_main (argc=8, argv=0xffffd2708238, envp=<optimized out>) at ../../../../dix/main.c:276 i = <optimized out> alwaysCheckForInput = {0, 1} #20 0x0000ffffb999b2ec in __libc_start_main (main=0xaaaad44cf958 <main>, argc=8, argv=0xffffd2708238, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=<optimized out>) at ../csu/libc-start.c:308 self = <optimized out> result = <optimized out> unwind_buf = {cancel_jmp_buf = {{jmp_buf = {187650684484184, 0, 187650682976604, 0, 0, 0, 0, 0, 0, 0, 281474212331760, 12289526237189948766, 8286623359013384052, 12289526238949013278, 0, 0, 0, 0, 0, 0, 0, 0}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0xaaaad46d1110 <__libc_start_m...@got.plt>, 0xaaaad44cf990 <_start+52>}, data = {prev = 0x0, cleanup = 0x0, canceltype = -731049712}}} not_first_call = <optimized out> #21 0x0000aaaad44cf990 in _start () at ../../../../render/render.c:2065 No symbol table info available. Backtrace stopped: previous frame identical to this frame (corrupt stack?)