Some of these are probably already core in 3.0, others may be planned for the LP refresh or ME. Regardless, I’m listing all the extensions that I think should really be made core features.
[ul][li]FBOs: I believe that this functionality is in 3.0, but I’m listing it anyway.[]Framebuffer blitting: A quick test shows that framebuffer blitting is nearly 5x faster than drawing a fullscreen quad with an FBO texture. NVIDIA supports the current extension on at least the 6600 series of cards, maybe even earlier ones.[]Multisampled FBOs: Control over when AA is resolved, as well as the ability to dynamically mess with the AA level without destroying the context.[]Point Sprites: Useful for particle systems, even if they are made obsolete by geometry shaders. They’re easier to use than writing a point-sprite geometry shader, too[]Texture Rectangles: Integer coordinates are needed to make textures into arrays of data. That’s more important now that there’s no fixed-functionality transformation. Especially useful when using instancing (see below)[]Bindable uniforms: These appear to be part of the new object model. I’m listing it for completeness.[]Instancing: Even if the driver has to send all the instances to the GPU, avoiding a jump or ten into kernel mode will improve application performance. I believe this is slated for ME.[]Geometry shaders: Slated for ME, just listed for completeness.[]Texture Buffers: I’d actually like to just see this generalized to data buffers. Useful for fancy effects and GPGPU. Probably going to be in ME or sooner (exists in DX10)[]Anisotropic Filtering: Hardware has supported this for a long time - why isn’t it core yet?[]Floating-point formats: Support for textures and buffer objects with full FP support. 16- and 32-bit 1-, 2-, 3-, and 4-component, shared exponent, &c.[]Un-clamped pipeline: This goes with FP textures - removing the clamping at different stages of the pipeline. Ideally, clamping could be controlled at different stages seperately (load to GPU, end of VS, end of GS, end of FS/draw to buffer).[]Transform feedback: Makes GPU-based skeletal animation a lot easier. Also good for procedural generation, phsysics simulation, and other GPGPU stuff.[/ul][/li]
Why this list, you may ask? Well, these are the features not currently in GL2 core that I’ll be using in my engine (which is on hold until LP comes out - I’ll add new features as they get ported to the new object model). The other reason is that these are all features that games are likely to use, so getting them into the object model ASAP may help more developers make up their minds between DX and GL. It doesn’t matter that GL can run on every platform known to man if it doesn’t support the features that developers want.