server/client + VBO

do the words “server” and “client” have a network related meaning in the documentation for the VBO extenstion or is it somethin else?

Yes and no.

OpenGL has a concept of client data and state held in memory and quickly accessible, and data and state stored in graphics hardware (that doesn’t necessarily map exactly to what physically happens). In addition this concept is used for network rendering where the server is the display and the client is the software running remotely.

This is the X Windows concept of client & server sometimes called the reverse of the classic client server architecture.

The principal is that the graphics card serves graphics resources to various clients, possibly running remotely. Things like texture memory, framebuffer memory and display lists are served to the client applications to use for rendering.

So even in non networked rendering the concept has been established in OpenGL that the Server is basically close to or part of your graphics hardware and the client is close to or part of your program.

The whole point of VBO is to allow your program to specify the useage intent of the data you are allocating and allow the driver to make smart choices about where to allocate that data, either in graphics memory, AGP GART apperture memory, system memory, and what to do when you try to access or render with that memory etc. This has implications for the cost of reading or writing to that memory that depend on the access patterns vs useage with the goal of allowing smart developers to hint to the driver in a portable way what the optimal treatment of the data should be based on useage without having to know the details of driver implementation. This obviously determines how close to the client or the server (in very vague terms) the memory resides, and perhaps whether it gets copied from one place to another when reads, writes or rendering operations begin.

[This message has been edited by dorbie (edited 12-23-2003).]