Interleaved VBO attributes #1220
Replies: 2 comments
-
If you are trying to optimize performance then perhaps OpenGL/ES/OpenSceneGraph aren't the best starting place. If you aren't already committed on the OSG usage then you'd likely be better off using Vulkan/VulkanSceneGraph, this vastly lower the CPU overhead of your application. If you have to use OSG then interleaving "might" give some performance gain in very specific hardware and scene graph usage, but for most applications/data/hardware is very likely that it will not help at all and the bottlenecks will be elsewhere. A loooong time ago there was so on osg-users discussion about interleaving arrays but it's not well supported in the OSG and causes problems without various elements of the OSG as all the loaders, intersection routines etc. are built around non interleaved arrays. My recommendation is not worry about low level optimization that work in niche situations and start bench-marking your application to figure out where the bottlenecks are, then look to resolving these bottlencks rather than skipping to a worrying about possible low level bottlenecks that may or may not exist with solutions that may or may not help. |
Beta Was this translation helpful? Give feedback.
-
Thanks a lot, Robert. Using Vulkan is unfortunately not an option currently. But now it is clear that interleaved arrays is not something that can be easily tested in OSG. Thanks again for your answer, |
Beta Was this translation helpful? Give feedback.
-
Hello,
I am currently trying to optimize rendering performance on an embedded GPU and I have come across the recommendation from several vendors that static geometry shall use interleaved VBO attributes when possible for a better cache efficiency. I assume this is not something that must help on every situation but I still but like to give it a try.
https://docs.imgtec.com/performance-guides/performance-recommendations/topics/primitive-types.html
https://developer.arm.com/documentation/101897/0301/Vertex-shading/Instanced-vertex-buffers?lang=en
I have been reading through the OSG code and examples but I haven't been able to find anything related to interleaved attributes.
Has somebody already tried this within OSG?
Thanks a lot in advance,
Jose
Beta Was this translation helpful? Give feedback.
All reactions