From: Jacek Caban <jacek@codeweavers.com> With test fixes by Rémi Bernon. --- dlls/opengl32/unix_wgl.c | 12 ++++++------ dlls/win32u/tests/d3dkmt.c | 7 ++++++- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/dlls/opengl32/unix_wgl.c b/dlls/opengl32/unix_wgl.c index 54a8d82cfca..a638b29bb91 100644 --- a/dlls/opengl32/unix_wgl.c +++ b/dlls/opengl32/unix_wgl.c @@ -898,17 +898,17 @@ PROC wrap_wglGetProcAddress( TEB *teb, LPCSTR name ) return (void *)-1; } + if (!is_function_supported( ctx, found )) + { + WARN( "Extensions required for %s not supported\n", name ); + return (void *)-1; + } + func_ptr = (const void **)((char *)funcs + found->offset); if (!*func_ptr) { void *driver_func = funcs->p_wglGetProcAddress( name ); - if (!is_function_supported( ctx, found )) - { - WARN( "Extensions required for %s not supported\n", name ); - return (void *)-1; - } - if (driver_func == NULL) { WARN( "Function %s not supported by driver\n", name ); diff --git a/dlls/win32u/tests/d3dkmt.c b/dlls/win32u/tests/d3dkmt.c index 6b52d3100b4..d4ca602e8e4 100644 --- a/dlls/win32u/tests/d3dkmt.c +++ b/dlls/win32u/tests/d3dkmt.c @@ -4224,7 +4224,7 @@ static struct opengl_device *create_opengl_device( HWND hwnd, LUID *luid ) PFN_glGetUnsignedBytevEXT p_glGetUnsignedBytevEXT; PFN_glGetUnsignedBytei_vEXT p_glGetUnsignedBytei_vEXT; - const char *extensions, *ptr; + const char *extensions, *renderer, *ptr; struct opengl_device *dev; unsigned int nodes = 0; LUID device_luid = {0}; @@ -4261,9 +4261,14 @@ static struct opengl_device *create_opengl_device( HWND hwnd, LUID *luid ) ok_x4( glGetError(), ==, 0 ); ok_ptr( extensions, !=, NULL ); + renderer = (char *)glGetString( GL_RENDERER ); + ok_x4( glGetError(), ==, 0 ); + ok_ptr( renderer, !=, NULL ); + ptr = find_opengl_extension( extensions, "GL_EXT_memory_object_win32" ); ok_ptr( ptr, !=, NULL ); ptr = find_opengl_extension( extensions, "GL_EXT_semaphore_win32" ); + todo_wine_if( strstr( renderer, "llvmpipe" )) ok_ptr( ptr, !=, NULL ); ptr = find_opengl_extension( extensions, "GL_EXT_win32_keyed_mutex" ); dev->broken = !winetest_platform_is_wine && ptr == NULL; /* missing on AMD, as is support for importing D3D handles */ -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/10349