Hi Robert,

Robert Osfield schrieb:
> Hi Stephan,
>
> On 7/25/07, Stephan Maximilian Huber <[EMAIL PROTECTED]> wrote:
>   
>> To bring an old issue again on top: the shiny new threading models for
>> osg do not work on OS X. I reported this issue one or two months ago,
>> but it seems I am the only one who experience these issues or i am the
>> only one who is trying to use a recent version of OSG on OSX.
>>     
>
> Martin and I tested multi-threading on his dual core G5 in the run up
> to 2.0, Martin will test again tomorrow when he get back to his
> machine.  I have dual core Linux machine here which runs fine, and
> will build a quad core machine tomorrow once this is up I'll be able
> to hammer things even harder.
>   
Perhaps the treading problems are only visible on the new intel macs. I 
tested OpenSceneGraph on a  2 x CoreDuro Intel Xeon (Mac Pro) and on a 
CoreDuo (MacBookPro) -- no difference, they both hang.
> I think to resolve these issues we'll need to pick one at a time and
> work through them as having all results in one email is rather hard to
> follow.  

Fine. I'll start with DrawPerContextThread: I am using the modified 
osgcamera example from my last email for testing (osgcamera -d 
dumptruck.osg)

If I close one of the two windows, the app hangs, the app waits for the 
cancelling of one of the rendering threads which does not happen, 
because this thread is blocked by a mutex. (if I am correct on this) 
Anyway, here's part of the console output:

Uniform Adding parent
Uniform Adding parent
OpenGL extension '' is not supported.
Setting up osg::Camera::FRAME_BUFFER
OpenGL extension 'GL_EXT_texture_filter_anisotropic' is supported.
OpenGL extension 'GL_EXT_texture_compression_s3tc' is supported.
OpenGL extension 'GL_ARB_shadow' is supported.
OpenGL extension 'GL_ARB_shadow_ambient' is not supported.
OpenGL extension 'GL_APPLE_client_storage' is supported.
glGetString(GL_RENDERER)==NVIDIA GeForce 7300 GT OpenGL Engine
OpenGL extension '' is not supported.
OpenGL extension '' is not supported.
Setting up osg::Camera::FRAME_BUFFER
Setting up osg::Camera::FRAME_BUFFER
Cancelling OperationThread 0x1c4db20 isRunning()=0
  OperationThread::cancel() thread cancelled 0x1c4db20 isRunning()=0
Cancelling OperationThread 0x1c4df00 isRunning()=0
  OperationThread::cancel() thread cancelled 0x1c4df00 isRunning()=0
close(0x1)0x1c18b70
Cancelling OperationThread 0x1c93e30 isRunning()=0x1
   Doing cancel 0x1c93e30
   Waiting for OperationThread to cancel 0x1c93e30
   Waiting for OperationThread to cancel 0x1c93e30
   Waiting for OperationThread to cancel 0x1c93e30
   Waiting for OperationThread to cancel 0x1c93e30



stack trace of the main-thread:

#10    0x010b0775 in osg::OperationThread::cancel at OperationThread.cpp:313
#11    0x010a250e in osg::GraphicsContext::setGraphicsThread at 
GraphicsContext.cpp:505
#12    0x010a49ee in osg::GraphicsContext::close at GraphicsContext.cpp:362
#13    0x0021d1a4 in osgViewer::GraphicsWindowCarbon::checkEvents at 
GraphicsWindowCarbon.cpp:1098
#14    0x00216fba in osgViewer::Viewer::eventTraversal at Viewer.cpp:1894
#15    0x002199b3 in osgViewer::Viewer::frame at Viewer.cpp:1815
#16    0x00003f5d in main at osgcamera.cpp:124


stack trace of rendering thread 1:

#0    0x90024c67 in semaphore_wait_signal_trap
#1    0x90001922 in pthread_mutex_lock
#2    0x00013db1 in OpenThreads::Mutex::lock at PThreadMutex.c++:122
#3    0x0022c2de in 
OpenThreads::ScopedLock<OpenThreads::Mutex>::ScopedLock at ScopedLock:31
#4    0x0024b002 in ViewerDoubleBufferedRenderingOperation::draw at 
Viewer.cpp:391
#5    0x0024b95e in ViewerDoubleBufferedRenderingOperation::operator() 
at Viewer.cpp:597
#6    0x010a2ff4 in osg::GraphicsContext::runOperations at 
GraphicsContext.cpp:610
#7    0x00243403 in ViewerRunOperations::operator() at Viewer.cpp:1071
#8    0x010a5c3e in osg::GraphicsOperation::operator() at 
GraphicsThread.cpp:50
#9    0x010b1729 in osg::OperationThread::run at OperationThread.cpp:379
#10    0x010a5bad in osg::GraphicsThread::run at GraphicsThread.cpp:38
#11    0x000141b0 in OpenThreads::ThreadPrivateActions::StartThread at 
PThread.c++:158


stack trace of rendering thread 2:

#0    0x90024c67 in semaphore_wait_signal_trap
#1    0x90001922 in pthread_mutex_lock
#2    0x00013db1 in OpenThreads::Mutex::lock at PThreadMutex.c++:122
#3    0x0022c2de in 
OpenThreads::ScopedLock<OpenThreads::Mutex>::ScopedLock at ScopedLock:31
#4    0x0024b002 in ViewerDoubleBufferedRenderingOperation::draw at 
Viewer.cpp:391
#5    0x0024b95e in ViewerDoubleBufferedRenderingOperation::operator() 
at Viewer.cpp:597
#6    0x010a2ff4 in osg::GraphicsContext::runOperations at 
GraphicsContext.cpp:610
#7    0x00243403 in ViewerRunOperations::operator() at Viewer.cpp:1071
#8    0x010a5c3e in osg::GraphicsOperation::operator() at 
GraphicsThread.cpp:50
#9    0x010b1729 in osg::OperationThread::run at OperationThread.cpp:379
#10    0x010a5bad in osg::GraphicsThread::run at GraphicsThread.cpp:38
#11    0x000141b0 in OpenThreads::ThreadPrivateActions::StartThread at 
PThread.c++:158
#12    0x900245c7 in _pthread_body


cheers,
Stephan


_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to