Crash and slowness in FreeCAD
System information
System: Host: koala-ESPRIMO-P3521 Kernel: 5.8.0-28-generic x86_64 bits: 64 compiler: gcc v: 10.2.0 Desktop: LXQt 0.15.0
tk: Qt 5.14.2 wm: Openbox dm: LightDM Distro: Ubuntu 20.10 (Groovy Gorilla)
CPU: Info: 6-Core model: AMD Ryzen 5 3600 bits: 64 type: MT MCP arch: Zen 2 L2 cache: 3072 KiB
flags: avx avx2 lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm bogomips: 86237
Speed: 2196 MHz min/max: 2200/3600 MHz boost: enabled Core speeds (MHz): 1: 2196 2: 2192 3: 2196 4: 2196 5: 2196
6: 2195 7: 2195 8: 2196 9: 2194 10: 2195 11: 2195 12: 2194
Graphics: Device-1: AMD Pitcairn PRO [Radeon HD 7850 / R7 265 / R9 270 1024SP] vendor: Hightech Information System
driver: amdgpu v: kernel bus ID: 06:00.0 chip ID: 1002:6819
Display: x11 server: X.Org 1.20.9 driver: amdgpu,ati unloaded: fbdev,modesetting,vesa resolution: 1280x1024~60Hz
s-dpi: 86
OpenGL: renderer: AMD Radeon HD 7800 Series (PITCAIRN DRM 3.38.0 5.8.0-28-generic LLVM 8.0.1)
v: 4.6 Mesa 21.0.0-devel (git-ef9362acb8) direct render: Yes
Description
FreeCAD's 3D view sometimes lags for serval seconds when updated and sometimes the program crashes with a Segmentation fault inside mesa. FreeCAD works fine with llvmpipe.
gdb bt:
#0 util_shorten_ubyte_elts_to_userptr
(context=context@entry=0x5637052fc390, info=info@entry=0x56370534c968, add_transfer_flags=add_transfer_flags@entry=0, index_bias=index_bias@entry=0, start=616556, count=count@entry=616560, out=0x7fa6dce8e100) at ../src/gallium/auxiliary/util/u_index_modify.c:53
#1 0x00007fa7acee2c9a in si_draw_vbo (ctx=0x5637052fc390, info=0x56370534c968, indirect=0x0, draws=0x7fa6fcd8c180, num_draws=<optimized out>)
at ../src/gallium/drivers/radeonsi/si_state_draw.c:2028
#2 0x00007fa7ad1aaf95 in tc_call_draw_single (pipe=<optimized out>, payload=0x56370534c968) at ../src/gallium/auxiliary/util/u_threaded_context.c:2295
#3 0x00007fa7ad1ad5fb in tc_batch_execute (job=job@entry=0x56370534c710, thread_index=thread_index@entry=0) at ../src/gallium/auxiliary/util/u_threaded_context.c:198
#4 0x00007fa7ac65d8b8 in util_queue_thread_func (input=input@entry=0x5637052e6fc0) at ../src/util/u_queue.c:304
#5 0x00007fa7ac65d40b in impl_thrd_routine (p=<optimized out>) at ../include/c11/threads_posix.h:87
#6 0x00007fa7b6263590 in start_thread (arg=0x7fa6fcd8d640) at pthread_create.c:463
#7 0x00007fa7b6cf6223 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Regression
FreeCAD worked fine a few weeks ago. I can try to regression test the performance issue, if necessary, but the crash takes too long to trigger for that.