Compare commits

...

5 Commits

3 changed files with 31 additions and 0 deletions

View File

@@ -1,3 +1,17 @@
2009-10-21 15:45:55 -0600 paulmartz
* Add CMake-controllable option to avoid doing a glBlitFramebuffer
into depth to resolve multisampling. This works arouns a hang on
OS X with NVIDIA GeForce 8800 and v1.5.49 drivers.
2009-07-28 00:13:31 robert
* Release OpenSceneGraph-2.8.2
2009-07-28 06:13 robert
* ChangeLog: Updated ChangeLog
2009-07-28 06:02 robert
* CMakeLists.txt, NEWS.txt, README.txt: Updated dates for 2.8.2

View File

@@ -6,6 +6,16 @@ ELSE (DYNAMIC_OPENSCENEGRAPH)
ADD_DEFINITIONS(-DOSG_LIBRARY_STATIC)
ENDIF(DYNAMIC_OPENSCENEGRAPH)
#
# MSFBO resolve blit to depth buffer control.
#
OPTION(OSG_MULTISAMPLE_FBO_RESOLVE_IGNORES_DEPTH "Set to ON to ignore depth when resolving multisampled FBO rendering. This is a workaround for a crash on OS X with NVIDIA driver 1.5.49." OFF)
IF(OSG_MULTISAMPLE_FBO_RESOLVE_IGNORES_DEPTH)
ADD_DEFINITIONS(-DOSG_MULTISAMPLE_FBO_RESOLVE_IGNORES_DEPTH)
ENDIF(OSG_MULTISAMPLE_FBO_RESOLVE_IGNORES_DEPTH)
SET(LIB_NAME osgUtil)
SET(HEADER_PATH ${OpenSceneGraph_SOURCE_DIR}/include/${LIB_NAME})
SET(LIB_PUBLIC_HEADERS

View File

@@ -879,7 +879,14 @@ void RenderStage::drawInner(osg::RenderInfo& renderInfo,RenderLeaf*& previous, b
switch (it->first)
{
case Camera::DEPTH_BUFFER:
#ifndef OSG_MULTISAMPLE_FBO_RESOLVE_IGNORES_DEPTH
// This #define is a workaround for an OS X NVIDIA driver bug
// confirmed on GeForce 8800 with driver v1.5.49.
// If the glBlitFramebuffer mask includes depth, the OS X desktop
// will hang. The #define is controlled from CMake and should be
// set to ON to enable the workaround and avoid blitting depth.
blitMask |= GL_DEPTH_BUFFER_BIT;
#endif
break;
case Camera::STENCIL_BUFFER:
blitMask |= GL_STENCIL_BUFFER_BIT;