xserver on OpenGL

Allen Akin akin@pobox.com
Mon, 8 Dec 2003 09:16:32 -0800


On Mon, Dec 08, 2003 at 09:04:07AM -0700, Brian Paul wrote:
| There's no single thing that makes them hard.  It's a bunch of little 
| things that get compounded:
| 
| - how/where to allocate the memory
| - updating the drivers to allow rendering to that memory, rather
|   than the front/back color buffers.
| - implementing all the infrastructure
| - implementing the programming API
| - etc.

Just to elaborate some of these points:  PBuffers have a "format" system
completely separate from Visuals (so that you can render to
undisplayable targets, like high-dynamic-range images or depth buffers
for shadow maps).  Making this work usually requires rethinking memory
allocation and going well beyond what the X server would require on its
own.

Superbuffers add even more challenges, such as dealing with
DAG-structured memory (e.g. render-to-texture for mipmapped cube maps,
or slices of 3D texture maps) and memory buffers that don't contain
images at all ("rendering" into buffers of vertices that can be passed
back into the top of the pipeline).  Not to mention that allocation,
deallocation, and binding are much more dynamic than with PBuffers.

The superbuffers extension isn't final yet, but it differs enough from
PBuffers and the capabilities it offers are important enough that we
really need to keep it in mind while designing low-level interfaces.

Allen