From c269aa387f513c2ea0c59f9b27de3e114df0d87c Mon Sep 17 00:00:00 2001 From: Bastian Beranek Date: Sat, 1 May 2021 09:52:01 +0200 Subject: [PATCH] glx: Assign unique serial number to GLXBadFBConfig error Since commit f39fd3dce72 a new GLX error is issued in case context creation fails. This broke wine on certain hardware: While wine installs an error handler to ignore this kind of error, it does not function because it expects the dpy->request serial number of the error to be incremented since the installation of the handler. Workaround this by artificially increasing the request number. This also guarantees a unique serial number for the error. Fixes: f39fd3dce72eaef59ab39a23b75030ef9efc2a40 Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3969 Signed-off-by: Bastian Beranek Part-of: (cherry picked from commit 960c86d6787437b643825baa230bc0cd7f9f7540) --- .pick_status.json | 2 +- src/glx/create_context.c | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.pick_status.json b/.pick_status.json index b75a8734281..e23a77d662f 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -40,7 +40,7 @@ "description": "glx: Assign unique serial number to GLXBadFBConfig error", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "master_sha": null, "because_sha": "f39fd3dce72eaef59ab39a23b75030ef9efc2a40" }, diff --git a/src/glx/create_context.c b/src/glx/create_context.c index 11c1466ddcd..2709c995ce9 100644 --- a/src/glx/create_context.c +++ b/src/glx/create_context.c @@ -124,6 +124,9 @@ glXCreateContextAttribsARB(Display *dpy, GLXFBConfig config, * somehow on the client side. clean up the server resource and panic. */ xcb_glx_destroy_context(c, xid); + /* increment dpy->request in order to give a unique serial number to the + * error */ + XNoOp(dpy); __glXSendError(dpy, GLXBadFBConfig, xid, 0, False); } else { gc->xid = xid;