summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorReza Jahanbakhshi2021-12-07 17:52:28 +0100
committerReza Jahanbakhshi2021-12-07 17:53:01 +0100
commit5e16b5c8460d17fe5310f2c2eb904d479aa4f553 (patch)
treef1ce4e3d5702628e876cc54621245916eea92f65
parent3b86357b28e9065bc9f9230fc760a4c43c224c87 (diff)
downloadaur-5e16b5c8460d17fe5310f2c2eb904d479aa4f553.tar.gz
A patch applied to resolve the error GLX drawable type is not supported. https://gitlab.freedesktop.org/mesa/mesa/-/issues/5726
-rw-r--r--.SRCINFO5
-rw-r--r--PKGBUILD13
-rw-r--r--fix-pbuffer.patch26
3 files changed, 39 insertions, 5 deletions
diff --git a/.SRCINFO b/.SRCINFO
index c9ebf1dd45b5..afc971b05808 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,6 +1,6 @@
pkgbase = mesa-git
pkgdesc = an open-source implementation of the OpenGL specification, git version
- pkgver = 22.0.0_devel.147684.6e7ffa760f3
+ pkgver = 22.0.0_devel.147797.92d84f189c7
pkgrel = 1
url = https://www.mesa3d.org
arch = x86_64
@@ -62,9 +62,12 @@ pkgbase = mesa-git
conflicts = mesa-libgl
source = mesa::git+https://gitlab.freedesktop.org/mesa/mesa.git#branch=main
source = LICENSE
+ source = fix-pbuffer.patch
md5sums = SKIP
md5sums = 5c65a0fe315dd347e09b1f2826a1df5a
+ md5sums = 4ced312d276450afb43d5296458b5e0e
sha512sums = SKIP
sha512sums = 25da77914dded10c1f432ebcbf29941124138824ceecaf1367b3deedafaecabc082d463abcfa3d15abff59f177491472b505bcb5ba0c4a51bb6b93b4721a23c2
+ sha512sums = 921e6ef4a883e51604ec5a76bf7a3805633dc60178578faae9caeec840535cac91e4d6ce0d5826553340d8c76a1d369d92725ec89c346a270335b45ae6a4dade
pkgname = mesa-git
diff --git a/PKGBUILD b/PKGBUILD
index 8c88ba73813e..8e05f1c5feb7 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -12,7 +12,7 @@
pkgname=mesa-git
pkgdesc="an open-source implementation of the OpenGL specification, git version"
-pkgver=22.0.0_devel.147684.6e7ffa760f3
+pkgver=22.0.0_devel.147797.92d84f189c7
pkgrel=1
arch=('x86_64')
makedepends=('git' 'python-mako' 'xorgproto'
@@ -26,11 +26,14 @@ conflicts=('mesa' 'opencl-mesa' 'vulkan-intel' 'vulkan-radeon' 'vulkan-mesa-laye
url="https://www.mesa3d.org"
license=('custom')
source=('mesa::git+https://gitlab.freedesktop.org/mesa/mesa.git#branch=main'
- 'LICENSE')
+ 'LICENSE'
+ 'fix-pbuffer.patch')
md5sums=('SKIP'
- '5c65a0fe315dd347e09b1f2826a1df5a')
+ '5c65a0fe315dd347e09b1f2826a1df5a'
+ '4ced312d276450afb43d5296458b5e0e')
sha512sums=('SKIP'
- '25da77914dded10c1f432ebcbf29941124138824ceecaf1367b3deedafaecabc082d463abcfa3d15abff59f177491472b505bcb5ba0c4a51bb6b93b4721a23c2')
+ '25da77914dded10c1f432ebcbf29941124138824ceecaf1367b3deedafaecabc082d463abcfa3d15abff59f177491472b505bcb5ba0c4a51bb6b93b4721a23c2'
+ '921e6ef4a883e51604ec5a76bf7a3805633dc60178578faae9caeec840535cac91e4d6ce0d5826553340d8c76a1d369d92725ec89c346a270335b45ae6a4dade')
# NINJAFLAGS is an env var used to pass commandline options to ninja
# NOTE: It's your responbility to validate the value of $NINJAFLAGS. If unsure, don't set it.
@@ -90,6 +93,8 @@ prepare() {
if [ -d _build ]; then
rm -rf _build
fi
+
+ patch --directory=mesa --forward --strip=1 --input="${srcdir}/fix-pbuffer.patch"
}
build () {
diff --git a/fix-pbuffer.patch b/fix-pbuffer.patch
new file mode 100644
index 000000000000..a6be2d1d102d
--- /dev/null
+++ b/fix-pbuffer.patch
@@ -0,0 +1,26 @@
+diff --git a/src/glx/dri_common.c b/src/glx/dri_common.c
+index 0be684dda95..a700956f292 100644
+--- a/src/glx/dri_common.c
++++ b/src/glx/dri_common.c
+@@ -390,20 +390,7 @@ driFetchDrawable(struct glx_context *gc, GLXDrawable glxDrawable)
+ * case which use the same XID for both X pixmap and GLX drawable.
+ */
+
+- /* Infer the GLX drawable type. */
+- if (__glXGetDrawableAttribute(dpy, glxDrawable, GLX_DRAWABLE_TYPE, &type)) {
+- if (type != GLX_PBUFFER_BIT) {
+- ErrorMessageF("GLX drawable type is not supported\n");
+- return NULL;
+- }
+- } else {
+- /* Xserver may not implement GLX_DRAWABLE_TYPE query yet, or glxDrawable
+- * is a X window. Assume it's a GLXPbuffer in former case, because we don't
+- * know GLXPixmap and GLXWindow's X drawable ID anyway.
+- */
+- type = GLX_PBUFFER_BIT | GLX_WINDOW_BIT;
+- }
+-
++ type = GLX_PBUFFER_BIT | GLX_WINDOW_BIT;
+ pdraw = psc->driScreen->createDrawable(psc, glxDrawable, glxDrawable,
+ type, config);
+