The multisample thing is actually surprising. Usually, you can tell which extensions NVIDIA worked on closely by whether or not there are any DSA interactions. ARB_texture_storage and ARB_separate_shader_objects are good examples of this. Maybe that’s just a more recent thing, though.
I imagine that the ARB is hesitant on this because it doesn’t actually change anything. That it provides an alternate mechanism for doing stuff. And with 3.1, we had that whole “get rid of alternate mechanisms for doing stuff” thing.
Plus, you don’t really get anything from DSA (besides API annoyances being removed). The driver cannot assume that binding something means you intend to use it, because those old functions still exist. Which means that we would have to have yet another round of deprecation and removal; the last one was painful enough. Especially since NVIDIA didn’t seem to care much for it, saying that it wouldn’t help drivers and so forth.
Perhaps this is a place where the ARB could employ profiles to greater effect. We already have core vs. compatibility. We also have debug contexts. We could therefore have DSA contexts. Basically, they are a way of saying, “I will not call glTexParameter, glVertexAttribPointer, or any other state change functions.” Of course, by “I will not call,” I mean “these functions will fail and throw a GL_INVALID_OPERATION error”. That way, the driver knows that you will not be calling old-style functions, so it knows that if you bind a texture, you’re serious about using it.
Also, there are many context values are aren’t bound up in objects. The viewport transform, rasterization settings, blending, post-fragment tests, etc. If we’re going to have DSA, we need to basically have an object-based API. It makes no sense to have some things be objects and other things not be objects.
Maybe there is an IP issue with Direct State Access too.
That seems unlikely. The S3TC extension has an IP section specifically mentioning the issue. The DSA extension does not. Also, I imagine that AMD wouldn’t have bothered with DSA if they had to pay money to implement it.