Agreed, DSA is the best thing that happen since … GLSL!
It’s amazing to see how small is the subset of the API can become when you use all those great extensions DSA and bindable buffer.
I think, it would be so great to have a simplified API but those days what I really waiting for is:
On the debug profile, I would like to see something similar to d3d10’s infoqueue. Basically it’s just a context wide info log the driver can dump messages, performance tips, warnings and errors into. This comes in awfully handy.
One thing to keep in mind is that the GL spec development plan has been re-worked to provide a more regular series of progressive improvements.
If a particular feature pops up too late or is too controversial to adopt in release N, it goes in a holding bin for consideration in N+1. A couple features that are going in 3.1 were of exactly this class, we originally wanted them for 3.0 but they didn’t lock down in time.
DSA is currently a pretty big extension in part because it is written against the complete set of historical GL API’s, I could advocate for a leaner version of it to integrate against non-deprecated features in a later revision of the core spec. That said there would be nothing stopping vendors from shipping it in extension form before that time (even beyond NVIDIA) if consensus was reached on a common extension definition.
Yup, but I believe the original suggestion was for future core additions, not additional extensions. With this and few other items in the GL3.x bag we’re more or less on par with DX10’s feature set - more or less.
But NV_explicit_multisample is ugly. Compare this to 2D multisampled texture [arrays], and you see what I mean. NV_explicit_multisample looks like the easy way of getting basic functionality done, without having to do much work to make it orthogonal.
So when considering this for core, please make it shiny as D3D10
That’s what I don’t really understand: What the point of having 2D multisampled texture arrays? I might be interested to control how the multisampling is resolved but this would be what? An access to multisampling data? Is there any expectation for deferred rendering antialiasing?
Well, if you want to do HDR and MSAA, you want to have control over the MSAA resolve, to do the tone mapping before you do the MSAA resolve:
E.g. take the following 4 samples of 1 pixel, by rendering a triangle edge into a floating point render target.
0, 1000,
0, 1000,
If you do the MSAA resolve, you get (0 + 0 + 1000 + 1000)/4 - 250, which could get tone mapped to a very bright value, e.g. 1.
Now if you do tone mapping first, you get ( tonemap(0) + tonemap(0) + tonemap(1000)+ tonemap(1000))/4 = ( 0 + 0 + 1 + 1)/4 = 0.5, a medium intensity value, this way properly anti aliasing the edge.
For the latter, you need access to the individual MSAA samples, e.g. via 2D MSAA textures.