Robert, Wojciech,

Thank you for the advice, this is pretty much exactly what I
discovered after some further research.  This particular code is
pretty old, and I've now re-factored it to use indexed tri-sets
instead of tri-strips and things are much better.

While digging, it looks like there are several ways to optimize vertex
arrays for the caches on various GPUs...have you looked at all at
this?  Are there any reasonable rules-of-thumb for organizing the
vertex arrays such that they make efficient use of the vertex cache
across a wide swath of commodity hardware?  Both NVIDIA and ATI have
published advice on the topic.

sean
_________________________________________________________
Sean Spicer
Aqumin (www.aqumin.com)
Office....+1.713.781.2121
Mobile...+1.713.447.2706
Fax.......+1.713.781.2123



On Sun, Dec 19, 2010 at 6:20 AM, Robert Osfield
<[email protected]> wrote:
> Hi Sean,
>
> In general when moving from display listed data to VBO's it's best to
> avoid using tri-strips with separate osg::DrawElements and instead
> using a single osg::DrawElements containing just GL_TRIANGLES.  This
> will be more duplicated indices but far less overhead in set up and
> dispatch.
>
> With modern graphics hardware and API the biggest overhead is
> typically the dispatch rather than vertex load on the GPU.  Even mid
> range GPU's can comfortable handle a million+ vertices per frame at
> 60hz, but... you have to pass the data to them efficiently, and the
> bottlenecks we were once familiar with have changed.
>
> Robert.
>
> On Fri, Dec 17, 2010 at 6:57 PM, Sean Spicer <[email protected]> wrote:
>> Robert,
>>
>> Some more data...
>>
>> Looks like we're drawing approx 100K tri-strips every frame.  The
>> glDrawElements call is the culprit...though I'm still baffled by why
>> it is so much slower with VBOs than in immediate mode.  Perhaps the
>> drawing isn't sorted by VBO so that all of the triangles drawn from
>> each VBO are draw in single bind call ?
>>
>> sean
>> _________________________________________________________
>> Sean Spicer
>> Aqumin (www.aqumin.com)
>> Office....+1.713.781.2121
>> Mobile...+1.713.447.2706
>> Fax.......+1.713.781.2123
>>
>>
>>
>> On Fri, Dec 17, 2010 at 11:37 AM, Sean Spicer <[email protected]> wrote:
>>> Hi Robert,
>>>
>>> We are not updating the data frame-to-frame, which is why this is so
>>> baffling.  I'm working through the issue with gDebugger now - if you
>>> don't have any suggestions off the top of your head, then I'll start
>>> digging and report back what I find, since I don't have time try and
>>> duplicate the issue outside our app.
>>>
>>> cheers,
>>>
>>> sean
>>> _________________________________________________________
>>> Sean Spicer
>>> Aqumin (www.aqumin.com)
>>> Office....+1.713.781.2121
>>> Mobile...+1.713.447.2706
>>> Fax.......+1.713.781.2123
>>>
>>>
>>>
>>> On Fri, Dec 17, 2010 at 2:36 AM, Robert Osfield
>>> <[email protected]> wrote:
>>>> reproduces the problem you are seeing?
>>>>
>>>
>> _______________________________________________
>> 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