Robert, Thanks for the quick reply. Using osg::DrawElementsUShort worked. Could you go into short detail why you think that would work over the osg::DrawArrays? If I do report the bug to Intel/Dell, I'd like to be armed with as much information as possible. ;)
Thanks again, Jesse On Tue, Nov 2, 2010 at 12:29 PM, Robert Osfield <[email protected]>wrote: > Hi Jesse, > > I'm amazed that such a simple example is able to reveal a driver bug, > it really makes wonder how much testing the driver underwent before > being let out in the wild. Clearly Intel/Dell need to informed about > this problem, your example is simple enough that they should be able > to reproduce the problem easily themselves. > > As for workarounds, you could try using osg::DrawElementsUShort rather > than a DrawArray primitive set, or merging the DrawArrays into a > single DrawArrays. > > Robert. > > On Tue, Nov 2, 2010 at 4:22 PM, Jesse Stimpson <[email protected]> > wrote: > > I'm doing some testing of osg 2.8.2 on a laptop with an integrated > graphics > > chipset (Intel 4 Series Express) with the latest drivers from Dell. > > I'm finding that the hardware has trouble drawing line geometry when the > > lines are arranged in multiple PrimitiveSets underneath a single > Geometry. I > > only see the line from the first PrimitiveSet drawn and the others are > > seemingly skipped. Disabling hardware acceleration fixes the problem; > i.e. > > all lines are drawn. > > I've created a simple osg executable that reproduces the problem on my > > hardware. The code can be found below. Of course, both lines are drawn as > > expected on more capable hardware. > > Is there anything we can do in osg to fix or workaround this driver bug > > short of splitting up the lines into separate Geometrys rather than > separate > > PrimitiveSets? > > Thank you, > > Jesse Stimpson > > > > Here is the sample code: > > #include <osgViewer/Viewer> > > #include <osg/Geode> > > #include <osg/Geometry> > > #include <osg/Array> > > > > int main(int argc, char* argv[]) > > { > > osg::ArgumentParser arguments(&argc,argv); > > osgViewer::Viewer viewer(arguments); > > osg::Geode* geode = new osg::Geode; > > osg::Geometry* geom = new osg::Geometry; > > osg::Vec3Array* verts = new osg::Vec3Array; > > osg::Vec4Array* color = new osg::Vec4Array; > > verts->push_back(osg::Vec3(0,0,0)); > > verts->push_back(osg::Vec3(0,0,1)); > > verts->push_back(osg::Vec3(1,0,0)); > > verts->push_back(osg::Vec3(1,0,1)); > > color->push_back(osg::Vec4(1,0,0,1)); > > geom->setVertexArray(verts); > > geom->setColorArray(color); > > geom->setColorBinding(osg::Geometry::BIND_OVERALL); > > geom->getOrCreateStateSet()->setMode(GL_LIGHTING, > osg::StateAttribute::OFF); > > geom->addPrimitiveSet(new osg::DrawArrays(GL_LINES, 0, 2)); > > geom->addPrimitiveSet(new osg::DrawArrays(GL_LINES, 2, 2)); > > geode->addDrawable(geom); > > viewer.setSceneData( geode ); > > viewer.realize(); > > return viewer.run(); > > } > > > > _______________________________________________ > > osg-users mailing list > > [email protected] > > > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org > > > > > _______________________________________________ > osg-users mailing list > [email protected] > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org >
_______________________________________________ osg-users mailing list [email protected] http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

