On Mon Feb 2 14:16:07 2026 +0000, Jacek Caban wrote:
Doing the aliasing both ways like that seems surprising. Are you sure we should expose an extension named function even when the extension itself isn't exposed (but aliases a core function)? It should be easy to add a test using some uncommon extension. Well, the existing function alternatives seem to indicate that it is needed, or at we would have to keep some special cases if we want to replace it with this.
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. Aliases aren't implemented very consistently, and sometimes extension functions are indeed not resolved when their non-extension equivalent is, but sometimes they are. For instance on NVIDIA, both glCopyTexSubImage3DEXT and glCopyTexSubImage3D are resolved even though GL_EXT_copy_texture is not advertized. OTOH GL_INGR_blend_func_separate is not advertized and glBlendFuncSeparateINGR is not resolved, while glBlendFuncSeparate is. 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. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/9987#note_128554