I recently tried some simple glsl stuff, mostly a very pleasant experience, but when i was profiling geometry performance, i noticed a remarkable drop in geometry performance when using certain combinations of VBOs. Granted, my knowledge of VBO implementation is pretty limited, but it seems to work flawlessly when not using glsl. I set up a bunch of buffers for the vertices, normals, texcoords and indices respectively. Now, when i don’t use any glsl shaders my performance is, as expected, considerably faster with VBOs (anywhere from 30%-110%), but when i apply a glsl shader, performance plummets when using VBOs, ending up about 60% slower than vanilla glDrawElement calls. This obviously confused me a wee bit, so I tried fooling around with combinations of VBO and non-VBO arrays, and found that any combination using VBO normals has drastically reduced performance. There seems to be other combinations which is even worse, a case of using VBO indices, but one or more of the other arrays not using VBO. Even more strange things happened as I continued fooling with the combinations, with VBO vertices, VBO or non VBO texcoords, non VBO normals and non VBO indices suddenly providing about a 15% improvement over the vanilla case. Could anyone shed some light on the issue? I’m stumped, my system is an xp 3200, ati radeon 9600 pro, catalyst 4.8.
Thanks to any replies, in advance.