diff --git a/src/osg/Program.cpp b/src/osg/Program.cpp index 5e78a6cac..073fd27a0 100644 --- a/src/osg/Program.cpp +++ b/src/osg/Program.cpp @@ -2664,10 +2664,13 @@ void Program::PerContextProgram::linkProgram() << " contextID=" << _contextID << std::endl; - _extensions->glProgramParameteri( _glProgramHandle, GL_GEOMETRY_VERTICES_OUT_EXT, _program->_geometryVerticesOut ); - _extensions->glProgramParameteri( _glProgramHandle, GL_GEOMETRY_INPUT_TYPE_EXT, _program->_geometryInputType ); - _extensions->glProgramParameteri( _glProgramHandle, GL_GEOMETRY_OUTPUT_TYPE_EXT, _program->_geometryOutputType ); - + if (_extensions->isGeometryShader4Supported()) + { + _extensions->glProgramParameteri( _glProgramHandle, GL_GEOMETRY_VERTICES_OUT_EXT, _program->_geometryVerticesOut ); + _extensions->glProgramParameteri( _glProgramHandle, GL_GEOMETRY_INPUT_TYPE_EXT, _program->_geometryInputType ); + _extensions->glProgramParameteri( _glProgramHandle, GL_GEOMETRY_OUTPUT_TYPE_EXT, _program->_geometryOutputType ); + } + // Detach removed shaders for( unsigned int i=0; i < _shadersToDetach.size(); ++i ) {