Jump to content

  • Log In with Google      Sign In   
  • Create Account

Questions about mesh rendering performance


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
22 replies to this topic

#21 BlueSpud   Members   -  Reputation: 447

Like
0Likes
Like

Posted 13 December 2013 - 02:00 PM


No matter how you think a display list can be optimized, a VBO can be optimized the same way once instead of every frame.

Why would I need to optimize static geometry every frame? I've been going under the assumption that when you create a display list with the compile option, it never plays with the data again, just reads it.



Sponsor:

#22 Aks9   Members   -  Reputation: 914

Like
0Likes
Like

Posted 14 December 2013 - 06:08 AM

Why would I need to optimize static geometry every frame? I've been going under the assumption that when you create a display list with the compile option, it never plays with the data again, just reads it.

 

Exactly! Furthermore, drivers pack your data in the optimal way along with all relevant information for later access.

VBOs are much simpler, and you should know how to pack data, what attributes to activate etc.

But, VBOs are what we have in core profile and should use.

 

It is a long story why there are profiles and why the old deprecated functionality still exists.

If you are happy with DLs continue to use them, but on the proper way, and they'll serve you well.

If you want to switch to non-deprecated functionality abandon them. VBOs are certainly the right way to do things, but you have to know your hw better.



#23 Dark Helmet   Members   -  Reputation: 173

Like
0Likes
Like

Posted 14 December 2013 - 11:20 AM

Exactly! Furthermore, drivers pack your data in the optimal way along with all relevant information for later access. ... If you are happy with DLs continue to use them, but on the proper way, and they'll serve you well. If you want to switch to non-deprecated functionality abandon them. VBOs are certainly the right way to do things, but you have to know your hw better.

Right depends on your goals. For most of us, right isn't defined by core but most efficient use of the hardware (fastest performance).

So yes, agreed. If DL works for you use it. If you want more control over how your GPU memory is utilized, use static VBOs but you'll take a performance hit if you use them alone and you have to be smart about how you encode your data within them. If you happen to be running on NVidia and want VBOs with display list performance, use NV bindless to launch your batches with those VBOs. If not, then substitute VAOs in place of bindless -- it doesn't perform as well but it's better than nothing.

Also, the more data you pack in your VBOs (the larger your batches), the less likely you are to be CPU bound launching batches (which is for the most part what bindless and VAOs strive to reduce).




Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS