FWIW I don't even think this is something that is done by native OpenGL, the wglGetProcAddress is likely simply forwarded to the ICDs and whatever they decide to return is used.
My understanding is that it varies between functions, and some are handled through generic dispatch tables.
We are now handling the function resolution ourselves by checking the required extensions, and that means we are being stricter than what drivers would do. Maybe we should not be doing that at all in the first place.
We've been through this. The check is needed because in WGL, getting the proc address is context-dependent, while in other APIs it isn't. BTW, that also makes treating opengl_funcs as a cache incorrect. I'm hoping we can get rid of strings in `is_any_extension_supported` and instead unconditionally check the extensions. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/9987#note_128570