From fd4d43aa024fc5e9f61f1c72f7a8bc243ffc994a Mon Sep 17 00:00:00 2001 From: Yuxuan Shui Date: Tue, 31 Mar 2020 05:59:44 +0100 Subject: [PATCH] x: fix glx error codes compton was using wrong set of constants as glx error codes. Signed-off-by: Yuxuan Shui --- README.md | 3 ++- src/meson.build | 2 +- src/picom.c | 2 -- src/x.c | 24 +++++++++++++++--------- 4 files changed, 18 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 6d525ef..264a531 100644 --- a/README.md +++ b/README.md @@ -80,6 +80,7 @@ Assuming you already have all the usual building tools installed (e.g. gcc, pyth * xcb-image * xcb-present * xcb-xinerama +* xcb-glx * pixman * libdbus (optional, disable with the `-Ddbus=false` meson configure flag) * libconfig (optional, disable with the `-Dconfig_file=false` meson configure flag) @@ -91,7 +92,7 @@ Assuming you already have all the usual building tools installed (e.g. gcc, pyth On Debian based distributions (e.g. Ubuntu), the list of needed packages are ``` -libxext-dev libxcb1-dev libxcb-damage0-dev libxcb-xfixes0-dev libxcb-shape0-dev libxcb-render-util0-dev libxcb-render0-dev libxcb-randr0-dev libxcb-composite0-dev libxcb-image0-dev libxcb-present-dev libxcb-xinerama0-dev libpixman-1-dev libdbus-1-dev libconfig-dev libgl1-mesa-dev libpcre2-dev libevdev-dev uthash-dev libev-dev libx11-xcb-dev +libxext-dev libxcb1-dev libxcb-damage0-dev libxcb-xfixes0-dev libxcb-shape0-dev libxcb-render-util0-dev libxcb-render0-dev libxcb-randr0-dev libxcb-composite0-dev libxcb-image0-dev libxcb-present-dev libxcb-xinerama0-dev libxcb-glx0-dev libpixman-1-dev libdbus-1-dev libconfig-dev libgl1-mesa-dev libpcre2-dev libevdev-dev uthash-dev libev-dev libx11-xcb-dev ``` To build the documents, you need `asciidoc` diff --git a/src/meson.build b/src/meson.build index 4f6ac9a..82ce2d4 100644 --- a/src/meson.build +++ b/src/meson.build @@ -16,7 +16,7 @@ cflags = [] required_xcb_packages = [ 'xcb-render', 'xcb-damage', 'xcb-randr', 'xcb-sync', 'xcb-composite', - 'xcb-shape', 'xcb-xinerama', 'xcb-xfixes', 'xcb-present', 'xcb' + 'xcb-shape', 'xcb-xinerama', 'xcb-xfixes', 'xcb-present', 'xcb-glx', 'xcb' ] required_packages = [ diff --git a/src/picom.c b/src/picom.c index d97f10c..80c3d76 100644 --- a/src/picom.c +++ b/src/picom.c @@ -1652,11 +1652,9 @@ static session_t *session_init(int argc, char **argv, Display *dpy, .randr_exists = 0, .randr_event = 0, .randr_error = 0, -#ifdef CONFIG_OPENGL .glx_exists = false, .glx_event = 0, .glx_error = 0, -#endif .xrfilter_convolution_exists = false, .atoms_wintypes = {0}, diff --git a/src/x.c b/src/x.c index 3c22414..1b359fa 100644 --- a/src/x.c +++ b/src/x.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include @@ -361,20 +362,25 @@ _x_strerror(unsigned long serial, uint8_t major, uint16_t minor, uint8_t error_c CASESTRRET2(RENDER_GLYPH); } -#ifdef CONFIG_OPENGL if (ps->glx_exists) { o = error_code - ps->glx_error; switch (o) { - CASESTRRET(GLX_BAD_SCREEN); - CASESTRRET(GLX_BAD_ATTRIBUTE); - CASESTRRET(GLX_NO_EXTENSION); - CASESTRRET(GLX_BAD_VISUAL); - CASESTRRET(GLX_BAD_CONTEXT); - CASESTRRET(GLX_BAD_VALUE); - CASESTRRET(GLX_BAD_ENUM); + CASESTRRET2(GLX_BAD_CONTEXT); + CASESTRRET2(GLX_BAD_CONTEXT_STATE); + CASESTRRET2(GLX_BAD_DRAWABLE); + CASESTRRET2(GLX_BAD_PIXMAP); + CASESTRRET2(GLX_BAD_CONTEXT_TAG); + CASESTRRET2(GLX_BAD_CURRENT_WINDOW); + CASESTRRET2(GLX_BAD_RENDER_REQUEST); + CASESTRRET2(GLX_BAD_LARGE_REQUEST); + CASESTRRET2(GLX_UNSUPPORTED_PRIVATE_REQUEST); + CASESTRRET2(GLX_BAD_FB_CONFIG); + CASESTRRET2(GLX_BAD_PBUFFER); + CASESTRRET2(GLX_BAD_CURRENT_DRAWABLE); + CASESTRRET2(GLX_BAD_WINDOW); + CASESTRRET2(GLX_GLX_BAD_PROFILE_ARB); } } -#endif if (ps->xsync_exists) { o = error_code - ps->xsync_error;