[PATCH 4/4] wined3d: When creating a 3.x/4.x context, specifically request a core context.
Chip Davis
cdavis at codeweavers.com
Thu Apr 9 01:21:35 CDT 2020
Signed-off-by: Chip Davis <cdavis at codeweavers.com>
---
dlls/wined3d/context.c | 19 ++++++++++++++-----
1 file changed, 14 insertions(+), 5 deletions(-)
diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
index 41dbca24dbc..62be2c37291 100644
--- a/dlls/wined3d/context.c
+++ b/dlls/wined3d/context.c
@@ -1970,7 +1970,7 @@ HGLRC context_create_wgl_attribs(const struct wined3d_gl_info *gl_info, HDC hdc,
{
HGLRC ctx;
unsigned int ctx_attrib_idx = 0;
- GLint ctx_attribs[7], ctx_flags = 0;
+ GLint ctx_attribs[9], ctx_flags = 0;
if (context_debug_output_enabled(gl_info))
ctx_flags = WGL_CONTEXT_DEBUG_BIT_ARB;
@@ -2001,10 +2001,19 @@ HGLRC context_create_wgl_attribs(const struct wined3d_gl_info *gl_info, HDC hdc,
ctx_attribs[ctx_attrib_idx++] = ctx_flags;
ctx_attribs[ctx_attrib_idx] = 0;
}
- if (!(ctx = gl_info->p_wglCreateContextAttribsARB(hdc, share_ctx, ctx_attribs)))
- WARN("Failed to create a WGL context with wglCreateContextAttribsARB, last error %#x.\n",
- GetLastError());
- }
+ if ((ctx = gl_info->p_wglCreateContextAttribsARB(hdc, share_ctx, ctx_attribs)))
+ return ctx;
+ ctx_attribs[ctx_attrib_idx++] = WGL_CONTEXT_PROFILE_MASK_ARB;
+ ctx_attribs[ctx_attrib_idx++] = WGL_CONTEXT_CORE_PROFILE_BIT_ARB;
+ ctx_attribs[ctx_attrib_idx] = 0;
+ if ((ctx = gl_info->p_wglCreateContextAttribsARB(hdc, share_ctx, ctx_attribs)))
+ return ctx;
+ ctx_attribs[ctx_attrib_idx - 3] &= ~WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB;
+ if ((ctx = gl_info->p_wglCreateContextAttribsARB(hdc, share_ctx, ctx_attribs)))
+ return ctx;
+ }
+ WARN("Failed to create a WGL context with wglCreateContextAttribsARB, last error %#x.\n",
+ GetLastError());
}
return ctx;
}
--
2.24.0
More information about the wine-devel
mailing list