So, I just moved to the very latest tip, and I still can’t run an OpenGLComponent.
I have:
A Dell laptop with Intel CPU, and an Nvidia 9400 GPU.
The Nvidia driver is 290.10. Xorg is 1.11.3, Kernel is 3.1.5 (Arch linux)
Using a clean build of the tip of Juce, if I run the JuceDemo, having added -ldl and built for debug, I get a sigsegv when trying to show the OpenGLComponent.
How can I debug this? I don’t see enough clues for me personally to start from.
Bruce
Stacktrace:
[code]Program received signal SIGSEGV, Segmentation fault.
0x000000004007cec2 in ?? ()
(gdb) thread apply all bt full
Thread 2 (Thread 0x7ffff2ad8700 (LWP 2383)): #0 0x00007ffff792de8a in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
No symbol table info available. #1 0x00000000005a8803 in juce::WaitableEventImpl::wait (this=0xebb840, timeOutMillisecs=4)
at …/…/…/…/modules/juce_core/native/juce_posix_SharedCode.h:121
now = {tv_sec = 1327448024, tv_usec = 953802}
time = {tv_sec = 1327448024, tv_nsec = 957802000} #2 0x000000000058a051 in juce::WaitableEvent::wait (this=0xebb768, timeOutMillisecs=4)
at …/…/…/…/modules/juce_core/native/juce_posix_SharedCode.h:174
No locals. #3 0x00000000005720aa in juce::Thread::wait (this=0xebb710, timeOutMilliseconds=4)
at …/…/…/…/modules/juce_core/threads/juce_Thread.cpp:295
No locals. #4 0x00000000005e5321 in juce::TimerThread::run (this=0xebb710)
at …/…/…/…/modules/juce_events/timers/juce_Timer.cpp:94
messageDeliveryTimeout = 1358538
now = 1356538
elapsed = 52
timeUntilFirstTimer = -42
lastTime = 1356538
messageToSend = {referencedObject = 0xefd510} #5 0x000000000057192b in juce::Thread::threadEntryPoint (this=0xebb710)
at …/…/…/…/modules/juce_core/threads/juce_Thread.cpp:135
No locals. #6 0x0000000000571965 in juce::juce_threadEntryPoint (userData=0xebb710)
at …/…/…/…/modules/juce_core/threads/juce_Thread.cpp:147
No locals. #7 0x000000000058bad0 in juce::threadEntryProc (userData=0xebb710)
—Type to continue, or q to quit—
at …/…/…/…/modules/juce_core/native/juce_posix_SharedCode.h:813
No locals. #8 0x00007ffff7929df0 in start_thread () from /lib/libpthread.so.0
No symbol table info available. #9 0x00007ffff5b023ed in clone () from /lib/libc.so.6
No symbol table info available. #10 0x0000000000000000 in ?? ()
No symbol table info available.
Thread 1 (Thread 0x7ffff7fd4740 (LWP 2380)): #0 0x000000004007cec2 in ?? ()
No symbol table info available. #1 0x0000000040000000 in ?? ()
No symbol table info available. #2 0x00007ffff7e6faf0 in ?? ()
No symbol table info available. #3 0x0000000000000004 in ?? ()
No symbol table info available. #4 0x0000000000000000 in ?? ()
No symbol table info available.
OK (pity about the mysteries here), between the tip last time, and the tip now, OpenGL on Linux x86_64, Kernel 3.1.5, NVidia 290.10, OpenGL is working again.
I suspect the JuceDemo still has a weird workaround to drop into the ‘Software Renderer’ only when the OpenGLDemo is displayed, but no sigsegv!
I’m finding some deadlocks with more than one background thread rendering OpenGLComponents. Will report back.