How can DSA functions be used without extension names on lower versions of OpenGL? My GPU supports OpenGL 4.4 but looking at the OpenGL extensions viewer the only part of 4.5 that it does not support is the GLSL version.

I am able to use all DSA functions without specifying any sort of Extension Prefix.

Similarly, I have been able to run code that uses DSA on GPUs that only support OpenGL 4.2

How is this possible?

I thought that, if my GPU does not support a version of OpenGL I have to use extension prefixes to use those features.
How is this possible?


Because ARB_direct_state_access is an extension. Note that the function/enumerator names in that extension lack the ARB suffix. There are dozens of ARB extensions that work like that. Suffix-less extensions were introduced in OpenGL 3.0 for compatibility purposes. You could write code that could work on OpenGL 3.0 or extensions that expose 3.0 functionality, without having to write different function calls.

The same goes here. You're not using OpenGL 4.5; you're using OpenGL 4.4+some extensions.