Hi!
have a crashing gem with pix_objects like pix_blur, pix_set, etc... On Gem CVS from today 5th of june 2006, compiled against stock Debian libraries, on a testing system. I disabled imagemagick to avoid strange hangups when loading wrong files as images. I tried with an imagemagick-enabled-version of Gem and have the same crashes. And it also crashes with pix_sig2pix~.
regards, Peter
For ./configure results see below.
1. PIX_BLUR
GEM: Graphics Environment for Multimedia GEM: ver: 0.90 GEM: compiled: Jun 1 2006 GEM: maintained by IOhannes m zmoelnig GEM: Authors : Mark Danks (original version on irix/windows) GEM: Chris Clepper (macOS-X) GEM: Daniel Heckenberg (windows) GEM: James Tittle (macOS-X) GEM: IOhannes m zmoelnig (linux/windows) GEM: using MMX optimization
(gdb) run -lib Gem pix_blur_crash.pd Starting program: /usr/local/bin/pd -lib Gem pix_blur_crash.pd [Thread debugging using libthread_db enabled] [New Thread -1211037472 (LWP 26078)] [New Thread -1240061008 (LWP 26085)]
(LOAD IMAGE)
Program received signal SIGILL, Illegal instruction. [Switching to Thread -1211037472 (LWP 26078)] 0xb7b56a79 in pix_blur::processGrayImage () from /usr/local/lib/pd/extra/Gem.pd_linux
(gdb) bt #0 0xb7b56a79 in pix_blur::processGrayImage () from /usr/local/lib/pd/extra/Gem.pd_linux #1 0xb7ad1b18 in GemPixObj::processGrayMMX () from /usr/local/lib/pd/extra/Gem.pd_linux #2 0xb7ad18d8 in GemPixObj::render () from /usr/local/lib/pd/extra/Gem.pd_linux #3 0xb7abbc5c in GemBase::gem_renderMess () from /usr/local/lib/pd/extra/Gem.pd_linux #4 0xb7abbdbb in GemBase::gem_MessCallback () from /usr/local/lib/pd/extra/Gem.pd_linux #5 0x080a7922 in pd_typedmess (x=0x8280458, s=0x824d8d0, argc=2, argv=0xbfd8f880) at m_class.c:665 #6 0x080a9cc7 in outlet_anything (x=0x40, s=0x824d8d0, argc=2, argv=0xbfd8f880) at m_obj.c:387 #7 0xb7abbc01 in GemBase::continueRender () from /usr/local/lib/pd/extra/Gem.pd_linux #8 0xb7abbc68 in GemBase::gem_renderMess () from /usr/local/lib/pd/extra/Gem.pd_linux #9 0xb7abbdbb in GemBase::gem_MessCallback () from /usr/local/lib/pd/extra/Gem.pd_linux #10 0x080a7922 in pd_typedmess (x=0x8280840, s=0x824d8d0, argc=2, argv=0xbfd8f9ac) at m_class.c:665 #11 0x080a9cc7 in outlet_anything (x=0x40, s=0x824d8d0, argc=2, argv=0xbfd8f9ac) at m_obj.c:387 #12 0xb7ae472e in gemhead::renderGL () from /usr/local/lib/pd/extra/Gem.pd_linux #13 0xb7acb6ee in GemMan::renderChain () from /usr/local/lib/pd/extra/Gem.pd_linux #14 0xb7acbcf2 in GemMan::render () from /usr/local/lib/pd/extra/Gem.pd_linux #15 0x080b2854 in sched_tick (next_sys_time=64307200) at m_sched.c:355 #16 0x080b3638 in m_scheduler () at m_sched.c:460 #17 0x080b6705 in sys_main (argc=4, argv=0x0) at s_main.c:292 #18 0xb7d25eb0 in __libc_start_main () from /lib/tls/libc.so.6 #19 0x080551f1 in _start () at ../sysdeps/i386/elf/start.S:119
2. PIX_SET
(gdb) run -lib Gem pix_set_crash.pd Starting program: /usr/local/bin/pd -lib Gem pix_set_crash.pd [Thread debugging using libthread_db enabled] [New Thread -1211262752 (LWP 24038)]
(SENT LIST TO PIX_SET)
Program received signal SIGILL, Illegal instruction. [Switching to Thread -1211262752 (LWP 24038)] 0xb7b70c5c in pix_set::DATAMess () from /usr/local/lib/pd/extra/Gem.pd_linux
(gdb) bt #0 0xb7b70c5c in pix_set::DATAMess () from /usr/local/lib/pd/extra/Gem.pd_linux #1 0xb7b716fe in pix_set::DATAMessCallback () from /usr/local/lib/pd/extra/Gem.pd_linux #2 0x080a7922 in pd_typedmess (x=0x8280b70, s=0x8233d10, argc=18, argv=0x811c568) at m_class.c:665 #3 0x080aae77 in outlet_list (x=0x811c568, s=0x811ad74, argc=18, argv=0x811c568) at m_obj.c:376 #4 0x080ac153 in binbuf_eval (x=0xb7c17818, target=0x8280e74, argc=1, argv=0xbff56e6c) at m_binbuf.c:578 #5 0x0806104d in message_click (x=0x8280e58, xpos=360, ypos=211, shift=0, ctrl=0, alt=0) at g_text.c:300 #6 0x08062141 in text_click (z=0x8280e58, glist=0x827fd18, xpix=360, ypix=211, shift=0, alt=0, dbl=0, doit=1) at g_text.c:1048 #7 0x08087b73 in canvas_doclick (x=0x827fd18, xpos=360, ypos=211, which=1, mod=0, doit=1) at g_editor.c:92 #8 0x080887ea in canvas_mousedown (x=0xb7c17818, xpos=-0, ypos=-0, which=-0, mod=-0) at g_editor.c:1252 #9 0x080a7c1a in pd_typedmess (x=0x827fd18, s=0x822cc40, argc=0, argv=0x811c568) at m_class.c:728 #10 0x080a772c in pd_typedmess (x=0x8280090, s=0x822cc40, argc=4, argv=0x811c548) at m_class.c:749 #11 0x080ac1c6 in binbuf_eval (x=0xb7c17818, target=0x8280090, argc=0, argv=0x0) at m_binbuf.c:574 #12 0x080b8c9c in socketreceiver_read (x=0x8238560, fd=7) at s_inter.c:540 #13 0x080b6a3f in sys_domicrosleep (microsec=<value optimized out>, pollem=<value optimized out>) at s_inter.c:180 #14 0x080b7791 in sys_pollgui () at s_inter.c:823 #15 0x080b318e in m_scheduler () at m_sched.c:466 #16 0x080b6705 in sys_main (argc=4, argv=0x0) at s_main.c:292 #17 0xb7ceeeb0 in __libc_start_main () from /lib/tls/libc.so.6 #18 0x080551f1 in _start () at ../sysdeps/i386/elf/start.S:119
3. PIX_SIG2PIX
(similar)
CONFIGURE:
Result: Target : Gem.pd_linux Objects : Base Controls Geos Manips MarkEx Nongeos Particles Pixes openGL
Configuration: Compiler : g++ CXXFLAGS : -g -O2 -freg-struct-return -O3 -fno-builtin -falign-loops=16 -funroll-loops -ffast-math -mmmx -msse2 : -I/usr/include/ffmpeg -I/usr/include/ffmpeg -I/usr/include/lqt -I/usr/include/lqt -I/usr/include/avifile-0.7 -I/usr/include/FTGL -I/usr/include/freetype2 INCLUDES : -I/usr/include/FTGL -I/usr/include/freetype2 DEFINES :
LIBS : -ldv -lmpeg -lmpeg3 -ljpeg -ltiff -lGLU -lGL -lXext -lXext -lX11 -ldl -lz -lm -lpthread : -lGLU -lGL -lfreetype -lz -lftgl -lvorbis -lvorbisenc -ltheora -logg -ldts -la52 -lraw1394 -ldc1394_control -lgsm -lz -lm -laviplay -L/usr/lib -lquicktime -lpthread -lm -lz -ldl -lquicktime -lpthread -lm -lz -ldl LDFLAGS : -shared -Wl,-export-dynamic :
Strip : strip --strip-unneeded
Install path : /usr/local
pure-data: version : 0.39
used optional libraries:
font-rendering : FTGL
image-support use ImageMagick : no (forced) use TIFF : yes use JPEG : yes video-support use mpeg : yes use mpeg-3 : yes use QuickTime : yes use aviplay : yes use ffmpeg : yes input-support use v4l : yes use ieee1394 : yes
misc using ARB-extensions : yes using NV-extensions : yes using reg-struct-ret : yes
Peter Plessas wrote:
Hi!
have a crashing gem with pix_objects like pix_blur, pix_set, etc... On Gem CVS from today 5th of june 2006, compiled against stock Debian libraries, on a testing system. I disabled imagemagick to avoid strange hangups when loading wrong files as images. I tried with an imagemagick-enabled-version of Gem and have the same crashes. And it also crashes with pix_sig2pix~.
regards, Peter
For ./configure results see below.
GEM: using MMX optimization
(gdb) bt #0 0xb7b56a79 in pix_blur::processGrayImage () from /usr/local/lib/pd/extra/Gem.pd_linux #1 0xb7ad1b18 in GemPixObj::processGrayMMX () from
CXXFLAGS : -g -O2 -freg-struct-return -O3 -fno-builtin -falign-loops=16 -funroll-loops -ffast-math -mmmx -msse2 : -I/usr/include/ffmpeg -I/usr/include/ffmpeg
so i guess this is your pentium (3??) could you try compiling Gem without SIMD enabled? "./configure --disable-SIMD" iirc
mfg.asdr. IOhannes
IOhannes m zmoelnig wrote:
Peter Plessas wrote:
Hi!
so i guess this is your pentium (3??) could you try compiling Gem without SIMD enabled? "./configure --disable-SIMD" iirc
i was no able to reproduce the crash when running Gem compiled with sse2-support on an athlon-XP (which has NO sse2-support).
this is bad.
it shakes my believes that gcc produces code suitable for several flavours of cpu, like intels icc is able to do. (it is also good, since gcc optimizes generic code)
i guess i will have to add some flags to configure which allows you to set the level of simd-optimization (like stopping at mmx). even better would be to autodetect the cpu at configure time and use appropriate flags (which could be overruled via cmdline options)
in the meantime, just remove the "-msse2" flag (and make sure that the "-mmmx" flag stays, so you have at least _some_ benefit) from the Make.config (_after_ configure)
mfa.dr. IOhannes
i was no able to reproduce the crash when running Gem compiled with sse2-support on an athlon-XP (which has NO sse2-support).
this is bad.
it shakes my believes that gcc produces code suitable for several flavours of cpu, like intels icc is able to do. (it is also good, since gcc optimizes generic code)
i guess i will have to add some flags to configure which allows you to set the level of simd-optimization (like stopping at mmx). even better would be to autodetect the cpu at configure time and use appropriate flags (which could be overruled via cmdline options)
in the meantime, just remove the "-msse2" flag (and make sure that the "-mmmx" flag stays, so you have at least _some_ benefit) from the Make.config (_after_ configure)
Ah, so this means that the ./configure --disable-SIMD stays valid and the -msse2 is to be removed in addition?
thanks P
mfa.dr. IOhannes
Peter Plessas wrote:
in the meantime, just remove the "-msse2" flag (and make sure that the "-mmmx" flag stays, so you have at least _some_ benefit) from the Make.config (_after_ configure)
Ah, so this means that the ./configure --disable-SIMD stays valid and the -msse2 is to be removed in addition?
no, the "--disable-SIMD" will remove the "-msse2" by itself. but it will also remove the "-mmmx" which you might want to keep. so: run configure (without "--disable-SIMD") and then remove the "-mmse2".
mfg.adsr. IOhannes
Hi,
some more news:
I mixed up CPUs, in this box sits an AMD: peter@thd:~$ cat /proc/cpuinfo processor : 0 vendor_id : AuthenticAMD cpu family : 6 model : 6 model name : AMD Athlon(tm) Processor stepping : 2 cpu MHz : 1045.612 cache size : 256 KB fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 1 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 sep mtrr pge mca cmov pat pse36 mmx fxsr sse syscall mmxext 3dnowext 3dnow ts bogomips : 2091.50
So we might review the optimization options?
I compiled it again, removing -msse2 from the Make.config, leaving the -mmmx
Pix objects working, but Gem hard-freezes my whole machine when runiing -rt
This is an 2.6.16.4 Kernel with lola-patches.
Wow, and again this is the solution!
Thanks tausendmal!
Peter
On Tue, 6 Jun 2006, IOhannes m zmoelnig wrote:
Peter Plessas wrote:
Hi!
have a crashing gem with pix_objects like pix_blur, pix_set, etc... On Gem CVS from today 5th of june 2006, compiled against stock Debian libraries, on a testing system. I disabled imagemagick to avoid strange hangups when loading wrong files as images. I tried with an imagemagick-enabled-version of Gem and have the same crashes. And it also crashes with pix_sig2pix~.
regards, Peter
For ./configure results see below.
GEM: using MMX optimization
(gdb) bt #0 0xb7b56a79 in pix_blur::processGrayImage () from /usr/local/lib/pd/extra/Gem.pd_linux #1 0xb7ad1b18 in GemPixObj::processGrayMMX () from
CXXFLAGS : -g -O2 -freg-struct-return -O3 -fno-builtin -falign-loops=16 -funroll-loops -ffast-math -mmmx -msse2 : -I/usr/include/ffmpeg -I/usr/include/ffmpeg
so i guess this is your pentium (3??) could you try compiling Gem without SIMD enabled? "./configure --disable-SIMD" iirc
mfg.asdr. IOhannes