j'utilise archlinux 64 bits, cpu : pentium dual core E6800, ram : 4 Go, carte graphique : amd radeon HD4650 pcie, bureau : KDE 4.x
depuis que les paquets mesa ( 11.0.3 ) et llvm-libs ont été mis à jour je constate un problème :
- des applications openGL peuvent crasher avec l'erreur "illegal instruction" ( instruction non permise ), par exemple le programme "tunnel" du paquet mesa-demos
- l'erreur se produit notamment quand mesa veut utiliser le mode émulation software 100% ( cas où le driver de la carte graphique ne supporterait pas une fonction openGL ) et systématiquement quand on demande volontairement le mode 100% émulation software ( variable "export LIBGL_ALWAYS_SOFTWARE=1" )
le moyen de contournement que j'ai trouvé : downgrader llvm et llvm-libs vers la version 3.6.2, puis recompiler les paquets mesa 11.0.3 ( avec gcc ) afin que ces paquets soient linkés à la librairie llvm 3.6.2 ( indispensable de faire ça afin d'éviter qu'il ne cherche llvm 3.7.0 ), avec ce contournement il n'y a aucun bug, tout est ok,
j'arrive aussi à reproduire ce bug dans une machine virtuelle archlinux i686 avec qemu, dans cette machine virtuelle c'est le driver swrast_dri.so de mesa qui est utilisé ( émulation 100% software ), du coup tous les programmes openGL plantent,
j'ai fait un débogage avec gdb et il apparait que ça plante sur une fonction de glibc ( pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib/libpthread.so.0 )
Code : Tout sélectionner
(gdb) thread apply all bt full
Thread 2 (Thread 0x7fffee4c6700 (LWP 11292)):
#0 pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
No locals.
#1 0x00007ffff22fe04a in ?? () from /usr/lib/xorg/modules/dri/r600_dri.so
No symbol table info available.
#2 0x00007ffff22fd787 in ?? () from /usr/lib/xorg/modules/dri/r600_dri.so
No symbol table info available.
#3 0x00007ffff3d74464 in start_thread (arg=0x7fffee4c6700) at pthread_create.c:334
__res = <optimized out>
pd = 0x7fffee4c6700
now = <optimized out>
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140737191372544, -3511726595263618993, 0, 140737488345551, 3,
140737488348064, 3511694852238942287, 3511735595139276879}, mask_was_saved = 0}}, priv = {pad = {0x0,
0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
not_first_call = <optimized out>
pagesize_m1 = <optimized out>
sp = <optimized out>
freesize = <optimized out>
__PRETTY_FUNCTION__ = "start_thread"
#4 0x00007ffff704d13d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
No locals.
Thread 1 (Thread 0x7ffff7f9a740 (LWP 11286)):
#0 0x00007fffedaa55eb in ?? ()
No symbol table info available.
#1 0x000000000076a320 in ?? ()
No symbol table info available.
#2 0x00007fffffffd630 in ?? ()
No symbol table info available.
#3 0x0000000000000007 in ?? ()
No symbol table info available.
---Type <return> to continue, or q <return> to quit---
#4 0x0000000000000000 in ?? ()
No symbol table info available.
https://bugs.freedesktop.org/show_bug.cgi?id=92214
mais aucune solution n'a été trouvée et on dirait que je suis le seul à avoir ce problème
peut-être est-ce un bug de glibc 2.22-3 qui ne se produit que sur les CPU pentium dual core E6800 ?