[osg-users] [MDI branch] AZDO SandBox

Julien Valentin julienvalentin51 at gmail.com
Thu Oct 19 20:17:16 PDT 2017


Hi Robert

I can't garantee there will not be further other integration issues but havent encountered one since long time so i think the branch can be removed.

Concerning the example, the cost of MDIs is a gpu charge one will have to deal with. It only become really interesting once you've pushed your logic on the gpu side (cull,material,texture,physics,ai). I do my testing on GT440 and even with it I achieve really amazing stuff ....
Cheers


robertosfield wrote:
> Hi Julian et. al,
> 
> On 28 July 2017 at 17:53, Julien Valentin < ()> wrote:
> 
> > Hi,
> > 
> > I pushed a new osg branch at git for Indirect Draw feature
> > https://github.com/openscenegraph/OpenSceneGraph/tree/MultiDrawIndirect (https://github.com/openscenegraph/OpenSceneGraph/tree/MultiDrawIndirect)
> > 
> 
> 
> 
> 
> Now that this branch is merged with master, it should be OK for us to delete the branch.  Julian, do you have any further revisions planned?
> 
> 
> FYI, I made some build fixes for compiling the OSG without the automatic ref_ptr<> -> C pointer conversion enabled, so these would need merging with the MultiDrawIndirect branch if you want to keep it around.
> 
> 
> I also did some testing of the osgsimpleMDI example and found the --classic code path that uses multiple DrawElementsUInt in place of a single DefaultIndirectCommandDrawElements and was surprised at how the performance was with the non MultiDrawIndirect code path, However, looking at the way this example works I spotted that a DrawElemenetsUInt was being used for each separate quad which is about the worst way to implement things.  To provide a proper comparison I added a --single code path that creates a single DrawElementsUInt primitive set and this produced the expected performance.
> 
> 
> The performance I get on my iCore7 + Geforce GTX 760 was:
> 
> 
>   osgsimpleMDI    [ uses MultiDrawElementsIndirectUShort : draw dispatch 0.11ms, draw GPU 0.94ms]
> 
>   osgsimpleMDI  --classic  [ uses multiple DrawElementsUShort : draw dispatch 2.3ms, draw GPU 0.44ms]
> 
>   osgsimpleMDI  --single  [ uses single DrawElementsUShort : draw dispatch 0.11ms, draw GPU 0.22ms]
> 
> 
> 
> So for this test MDI is lightweight on draw dispatch but heavy on the GPU, multiple DrawElementsUInt is super heavy on draw dispatch but modest on GPU, but the winner is single DrawElementsUInt with lightweight draw dispatch and on the GPU (move than 4 times faster than MDI.)
> 
> 
> Different drivers and hardware will give different values but for this particular usage case using old style DrawElementsUInt will likely be the best.
> 
> 
> Robert.
> 
>  ------------------
> Post generated by Mail2Forum


------------------
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=72210#72210







More information about the osg-users mailing list