http://www.x.org/wiki/XDC2007Notes#head-b6d8966522f55d527c81882e2ac5d3a3e1f8ec31

Memory management update. Initial development done for unified memory architectures like i915, currently working on VRAM architectures. Accelerated readback for glReadPixels and glCopyPixels not quite sorted, but soon. Also working on sub-allocator for more efficient management. White paper coming soon!

VBO changes. Will enable storing vertex data in GPU memory, avoids per-draw host-to-GPU memory transfer. All vertex-related drawing code done in one place now; glBegin/glEnd converted into VBOs, as are display lists. Simplifies life for driver writers too, including helper code for buffers larger than the hardware can handle. Todo: implement compiled vertex arrays in the same way, update the DRI drivers to use the new path.

OpenGL shading language. Mesa has kind of had this support for a while, but had no hardware support, very slow, etc. Previously had support for the ATI and nVidia extensions, but GLSL wasn't integrated with this. Shaders are clearly the way forward, so we need to get Mesa fixed to handle this.

(example shader program walkthrough.)

(shader compiler diagram. ATI_fp and friends had one front-end, one middle-end for representation, and N backends for execution. GLSL had own front-end, but different middle- and backends. New model unifies this, and adds a stage for optimization and hinting.

Kept the GLSL tokenizer/parser, but replaced the rest. Pretty much a straightforward compiler design. Need to extend the IR to handle new instructions (jump, branch) and addressing modes. Other changes needed to handle the different between ARB shader extensions and the GL 2.0 version.

GL 2.0 API interface is complete, supports most of the language except: arrays, structs, multishader linking, and integer ops. Need to implement indirect addressing for arrays. Register allocation is fair but not great. No subroutining, everything is inlined. No hardware backends updated for this yet, but not a huge job to add. Backends need to be extneded to say what instructions are supported. Error detection is kinda poor. Possible extras: profiler, histogram, debugger, peephole optimizations, etc.

Reply via email to