Virtual Buffer Objects / VRAM question

Tobs

Member
Joined
Oct 14, 2008
Messages
113
Location
Derby, UK
Website
Visit site
I'm working on a 3D engine, and I'm wondering whether it's worth it to implement VBOs? I know they're in the GLES2.0 spec, but the advantage normally is in storing the data server side. Far as I understand both the CPU and GPU share the RAM, so would VBOs speed up rendering at all? I figure they won't, but I'm normally wrong so I thought I'd ask.


Thanks,


Tobs
 

Delirius

Still Fresh
Joined
Dec 9, 2010
Messages
18
I may be wrong, but isnt all rendering in GLES done by Vertex Buffer Objects, because GLES doesnt have glBegin and glEnd.
 

Tobs

Member
Joined
Oct 14, 2008
Messages
113
Location
Derby, UK
Website
Visit site
Sort of; instead of using glBegin and glEnd you send the data by pointing to it using glVertexPointer and glDrawArrays. The memory is still on the client and is sent every time glDrawArrays is called. The advantage of VBOs is that the data's already on the server so there's no need to keep sending it, hence the speed boost.


TLDR: glVertexPointer and glDrawArrays replace glBegin and glEnd, but you can also VBOs instead.
 

JayFoxRox

Member
Joined
Aug 3, 2008
Messages
779
Age
29
Location
Hanover, Germany
Website
jannikvogel.de
The driver / hardware will still pre-process the data. Keeping it on the server side can hence still give a speed boost.


Check the SGX docs for more informations. They tell you how you should pack your data and which formats to use.


For textures this is even more important because of the more complex cache optimizations done by the driver on a rather large amount of data.
 
Top