From ef80baf75c20410358a0d39c02b7f76e714abf86 Mon Sep 17 00:00:00 2001 From: Michael Lutz Date: Wed, 21 Apr 2021 22:57:09 +0200 Subject: Codechange: [Win32] Try getting an OpenGL 4.5 context first before aiming at 3.2. --- src/video/win32_v.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'src/video/win32_v.cpp') diff --git a/src/video/win32_v.cpp b/src/video/win32_v.cpp index 19e186ae2..1dc1db8ce 100644 --- a/src/video/win32_v.cpp +++ b/src/video/win32_v.cpp @@ -1360,14 +1360,22 @@ const char *VideoDriver_Win32OpenGL::AllocateContext() /* Create OpenGL device context. Try to get an 3.2+ context if possible. */ if (_wglCreateContextAttribsARB != nullptr) { + /* Try for OpenGL 4.5 first. */ int attribs[] = { - WGL_CONTEXT_MAJOR_VERSION_ARB, 3, - WGL_CONTEXT_MINOR_VERSION_ARB, 2, + WGL_CONTEXT_MAJOR_VERSION_ARB, 4, + WGL_CONTEXT_MINOR_VERSION_ARB, 5, WGL_CONTEXT_FLAGS_ARB, _debug_driver_level >= 8 ? WGL_CONTEXT_DEBUG_BIT_ARB : 0, _hasWGLARBCreateContextProfile ? WGL_CONTEXT_PROFILE_MASK_ARB : 0, WGL_CONTEXT_CORE_PROFILE_BIT_ARB, // Terminate list if WGL_ARB_create_context_profile isn't supported. 0 }; rc = _wglCreateContextAttribsARB(this->dc, nullptr, attribs); + + if (rc == nullptr) { + /* Try again for a 3.2 context. */ + attribs[1] = 3; + attribs[3] = 2; + rc = _wglCreateContextAttribsARB(this->dc, nullptr, attribs); + } } if (rc == nullptr) { -- cgit v1.2.3-54-g00ecf