From Paul Martz, "I had to make Yet Another tweak to the workaround for the occlusion query issue on NVIDIA cards. Testing indicates that this produces stable results. I checked this in to the 2.6 branch as revision 8965. Please include this on the trunk"
This commit is contained in:
parent
99fd6ed93a
commit
7a6ec46535
@ -35,6 +35,8 @@
|
||||
#include <map>
|
||||
#include <vector>
|
||||
|
||||
#include <OpenThreads/Thread>
|
||||
|
||||
|
||||
typedef osg::buffered_value< osg::ref_ptr< osg::Drawable::Extensions > > OcclusionQueryBufferedExtensions;
|
||||
static OcclusionQueryBufferedExtensions s_OQ_bufferedExtensions;
|
||||
@ -238,9 +240,13 @@ struct RetrieveQueriesCallback : public osg::Camera::DrawCallback
|
||||
// work aroung issues in the device driver. For example, without this
|
||||
// code, we've seen crashes on 64-bit Mac/Linux NVIDIA systems doing
|
||||
// multithreaded, multipipe rendering (as in a CAVE).
|
||||
// Tried with ATI and verified this workaround is not needed; the
|
||||
// problem is specific to NVIDIA.
|
||||
GLint ready( 0 );
|
||||
while( !ready )
|
||||
{
|
||||
// Apparently, must actually sleep here to avoid issues w/ NVIDIA Quadro.
|
||||
OpenThreads::Thread::microSleep( 5 );
|
||||
ext->glGetQueryObjectiv( tr->_id, GL_QUERY_RESULT_AVAILABLE, &ready );
|
||||
};
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user