From: Rémi Bernon rbernon@codeweavers.com
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=58831 --- dlls/opengl32/unix_wgl.c | 5 +++++ dlls/win32u/opengl.c | 2 +- dlls/win32u/sysparams.c | 2 +- dlls/win32u/win32u_private.h | 1 + 4 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/dlls/opengl32/unix_wgl.c b/dlls/opengl32/unix_wgl.c index 2f7cb3c1bb0..085df429202 100644 --- a/dlls/opengl32/unix_wgl.c +++ b/dlls/opengl32/unix_wgl.c @@ -891,6 +891,11 @@ const GLubyte *wrap_glGetString( TEB *teb, GLenum name ) const char *vendor = funcs->p_wglQueryCurrentRendererStringWINE( WGL_RENDERER_VENDOR_ID_WINE ); return vendor ? (const GLubyte *)vendor : ret; } + if (name == GL_RENDERER) + { + const char *renderer = funcs->p_wglQueryCurrentRendererStringWINE( WGL_RENDERER_DEVICE_ID_WINE ); + return renderer ? (const GLubyte *)renderer : ret; + } if (name == GL_EXTENSIONS) { struct context *ctx = get_current_context( teb, NULL, NULL ); diff --git a/dlls/win32u/opengl.c b/dlls/win32u/opengl.c index 4afc417fb5d..60c80784115 100644 --- a/dlls/win32u/opengl.c +++ b/dlls/win32u/opengl.c @@ -1117,7 +1117,7 @@ static void init_device_info( struct egl_platform *egl, const struct opengl_func { funcs->p_eglMakeCurrent( egl->display, EGL_NO_SURFACE, EGL_NO_SURFACE, context );
- egl->device_name = (const char *)funcs->p_glGetString( GL_RENDERER ); + egl->device_name = gpu_device_name( egl->vendor_id, egl->device_id, (const char *)funcs->p_glGetString( GL_RENDERER ) ); egl->vendor_name = opengl_vendor_to_name( egl->vendor_id, (const char *)funcs->p_glGetString( GL_VENDOR ) ); TRACE( " - device_name: %s\n", debugstr_a( egl->device_name ) ); TRACE( " - vendor_name: %s\n", debugstr_a( egl->vendor_name ) ); diff --git a/dlls/win32u/sysparams.c b/dlls/win32u/sysparams.c index 1e778341d23..5b46c77c3bf 100644 --- a/dlls/win32u/sysparams.c +++ b/dlls/win32u/sysparams.c @@ -1116,7 +1116,7 @@ static const char* driver_vendor_to_name( UINT16 vendor ) } }
-static const char *gpu_device_name( UINT16 vendor, UINT16 device, const char *default_name ) +const char *gpu_device_name( UINT16 vendor, UINT16 device, const char *default_name ) { switch (MAKELONG(vendor, device)) { diff --git a/dlls/win32u/win32u_private.h b/dlls/win32u/win32u_private.h index 7bbbef49ebc..288fde75f48 100644 --- a/dlls/win32u/win32u_private.h +++ b/dlls/win32u/win32u_private.h @@ -168,6 +168,7 @@ extern UINT get_thread_dpi(void); extern UINT set_thread_dpi_awareness_context( UINT context ); extern UINT get_thread_dpi_awareness_context(void); extern RECT get_virtual_screen_rect( UINT dpi, MONITOR_DPI_TYPE type ); +extern const char *gpu_device_name( UINT16 vendor, UINT16 device, const char *name ); extern BOOL is_exiting_thread( DWORD tid ); extern POINT map_dpi_point( POINT pt, UINT dpi_from, UINT dpi_to ); extern RECT map_dpi_rect( RECT rect, UINT dpi_from, UINT dpi_to );