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

Reply via email to