diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c index 7ad944fe6a9..9707f81a3b5 100644 --- a/dlls/wined3d/directx.c +++ b/dlls/wined3d/directx.c @@ -1761,7 +1761,7 @@ static DWORD wined3d_parse_gl_version(const char *gl_version) } static enum wined3d_gl_vendor wined3d_guess_gl_vendor(const struct wined3d_gl_info *gl_info, - const char *gl_vendor_string, const char *gl_renderer) + const char *gl_vendor_string, const char *gl_renderer, const char *gl_version) { /* MacOS has various specialities in the extensions it advertises. Some have to be loaded from * the opengl 1.2+ core, while other extensions are advertised, but software emulated. So try to @@ -1792,7 +1792,8 @@ static enum wined3d_gl_vendor wined3d_guess_gl_vendor(const struct wined3d_gl_in || strstr(gl_vendor_string, "Intel") || strstr(gl_renderer, "Mesa") || strstr(gl_renderer, "Gallium") - || strstr(gl_renderer, "Intel")) + || strstr(gl_renderer, "Intel") + || strstr(gl_version, "Mesa")) return GL_VENDOR_MESA; FIXME("Received unrecognized GL_VENDOR %s. Returning GL_VENDOR_UNKNOWN.\n", @@ -4350,7 +4351,7 @@ static BOOL wined3d_adapter_init_gl_caps(struct wined3d_adapter *adapter, checkGLcall("creating VAO"); } - gl_vendor = wined3d_guess_gl_vendor(gl_info, gl_vendor_str, gl_renderer_str); + gl_vendor = wined3d_guess_gl_vendor(gl_info, gl_vendor_str, gl_renderer_str, gl_version_str); TRACE("Guessed GL vendor %#x.\n", gl_vendor); if (!(gpu_description = query_gpu_description(gl_info, &vram_bytes)))