For those of you who were familiar with LP, GL 3.0 isn’t that. It isn’t close. A whole lot of things were missed.
What I want is a full accounting of the features we didn’t get, so that we can reprioritize them. I’ve looked over the old PDFs, and I have a list, but I’m not certain it is comprehensive. Feel free to add to this anything you remember.
BTW: though I’m all for the complaining about 3.0, don’t do it in this thread. We know we didn’t get the new object model; there’s no need to restate that. What I want are the bits of functionality that we didn’t get.
Backing-store controls: LP was going to provide a way to set textures and buffers, on an object-to-object basis, to not have a backing store.
Dividing image from sampling parameters: Basically, taking TexParams out of texture objects and putting them in another place, then combining them as needed at texture/program bind time.
Constant program data: In LP, there was going to be a thing where, when you linked a program, you could specify that certain uniforms had constant values. This gave the optimizer the chance to make some adjustments, and it also stopped crazy implementations like nVidia’s from recompiling your shader just because you changed a uniform.
Separation of Program and Program Environment: mixing and matching different stages, instancing programs, etc.
Yeah, but it would just give you better ability to manage dynamic buffers/textures from other thread(s). For now you would still have to manually queue up your own version of “draw calls” in separate thread(s), and then have one master thread access the API and do the real draw calls.