Hi John, On Wed, Nov 25, 2009 at 9:02 PM, John Price <[email protected]> wrote:
> My project is still in development and has a long term objective. My view is > forward looking, so I am interested in embracing gl3 as development > progresses. I am primarily developing for nVidia hardware, and am > particularly interested in nVidia extensions to gl3 that they refer to as > "Bindness Graphics". > > nVidia states: > Bindless Graphics refers to changes to OpenGL that can enable close to > an order of magnitude improvement in the CPU-limitedness of graphics > applications. > > Bindless Graphics has the following desirable properties: > • The driver need not dereference a vertex buffer or constant buffer on > the CPU in order for the GPU to use it. > • Relieves the limits on how many buffer objects can be accessed at > once by shaders > • Buffer objects are accessed as C-style pointer dereferences in the > shading language > • Allows for dependent pointer fetches, enabling more complex scene > graph structures to be built into buffer objects providing significant new > flexibility in the use of shaders. > > Measurements have shown that bindless graphics can result in more than 7x > speedup! I'm pretty curious about the bindless graphics extension, it would be great to reduce the CPU overhead of making lots of fine grained OpenGL calls. The 7x speed up is very very unlikely to be something you'll see though, my guess is that they probably had to really squeeze out a contrived example to produce that type of bottleneck with the old calls, with real world usage the speed up will far less and often will result in no speed up at all as the bottleneck is more often fill rate rather getting data to the GPU. For you own app I'd aks the simple question - is your bottleneck draw dispatch, if not then bindless graphics won't make any difference for you. Bindless graphics will complicate trying to manage code that works on both bindless and non bindless as the extensions not only affect the the GL calls doing dispatch of the data but also shaders, so you'd need to keep multiple sets of shaders to handle the different hardware/driver capabilities. So I'm keen to see bindless graphics make it's way into the OSG to help reduce the draw dispatch overhead, more important for GL3 now that display lists are no longer supported, but we should be realistic about the potential benefits/pitfalls. Robert. _______________________________________________ osg-users mailing list [email protected] http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

