extra/mesa to 19.2.0-2

This commit is contained in:
Kevin Mihelich 2019-10-03 12:48:24 +00:00
parent 1597f9241f
commit 4cfbe486de
4 changed files with 200 additions and 19 deletions

View file

@ -9,8 +9,8 @@
pkgbase=mesa
pkgname=('libva-mesa-driver' 'mesa-vdpau' 'mesa')
pkgdesc="An open-source implementation of the OpenGL specification"
pkgver=19.1.7
pkgrel=1
pkgver=19.2.0
pkgrel=2
arch=('x86_64')
makedepends=('python-mako' 'libxml2' 'libx11' 'glproto' 'libdrm' 'dri2proto' 'dri3proto' 'presentproto'
'libxshmfence' 'libxxf86vm' 'libxdamage' 'libvdpau' 'libva' 'wayland' 'wayland-protocols'
@ -21,12 +21,14 @@ license=('custom')
source=(https://mesa.freedesktop.org/archive/mesa-${pkgver}.tar.xz{,.sig}
0001-Rip-out-VC4-forced-NEON.patch
LICENSE
glesv2.pc)
sha512sums=('0865b5f91e5daa00e1da2b3d8b65fe5d2ff6332372bf8fec7d671d05d8d64ec5a7abea1858cdfc506c76b7226d2bea0af3426565f156b796d8e0f949ea33dc15'
glvnd.patch
intel-topology-query-fix-old-gens.patch)
sha512sums=('7278bbfba9c29fe91d1959ff1a48422e917db85287460523d12ae8c6d7f49f76e9636bf4c0d8d7d89e5569b3c67135f1b23b8f6c9d52d39413d8ec22e3bb40f0'
'SKIP'
'df13eaff1f3a95821221637c56d482945c42faca789e8bc71c36d0526750863aac891afab9d51ce0a912d7eede5b2af7c14a1c36ebd17c1bde945c3e057b773b'
'f9f0d0ccf166fe6cb684478b6f1e1ab1f2850431c06aa041738563eb1808a004e52cdec823c103c9e180f03ffc083e95974d291353f0220fe52ae6d4897fecc7'
'd3adb2081c945df701d2e0ad0ecd19f96ebffaba9878da31bf670b1b591a7d9d5895f4b10cda1f9dbf51e551baa8dda5d061e61256225b464eeec34f29141dff')
'3e5746dcd493bff3f04b26de6168b15d0f161de62c1c6657106b61cbb1ad4925cbf3a691d5055491e759f88dbe0362dc909e7d726f87528980662f26ceb6dcbc'
'a5e2ccef20edc81859255c66cb838c5244774d9d6c56dcfce2e462b6ddaa66ef7847242b050402305621c9c9e706629af30dd27c8466b6bd32d1be40cb3e53a0')
validpgpkeys=('8703B6700E7EE06D7A39B8D6EDAE37B02CEB490D' # Emil Velikov <emil.l.velikov@gmail.com>
'946D09B5E4C9845E63075FF1D961C596A7203456' # Andres Gomez <tanty@igalia.com>
'E3E8F480C52ADD73B278EE78E1ECBE07D7D70895' # Juan Antonio Suárez Romero (Igalia, S.L.) <jasuarez@igalia.com>
@ -34,7 +36,12 @@ validpgpkeys=('8703B6700E7EE06D7A39B8D6EDAE37B02CEB490D' # Emil Velikov <emil.l
'71C4B75620BC75708B4BDB254C95FAAB3EB073EC') # Dylan Baker <dylan@pnwbakers.com>
prepare() {
cd mesa-${pkgver}
cd mesa-$pkgver
# libglvnd-1.2.0 support
patch -Np1 -i ${srcdir}/glvnd.patch
# Fix FS#63945
patch -Np1 -i ${srcdir}/intel-topology-query-fix-old-gens.patch
[[ $CARCH == "armv6h" || $CARCH == "armv7h" ]] && patch -p1 -i ../0001-Rip-out-VC4-forced-NEON.patch || true
}
@ -150,8 +157,5 @@ package_mesa() {
# make sure there are no files left to install
find fakeinstall -depth -print0 | xargs -0 rmdir
# bring back missing glesv2.pc
install -m644 -Dt ${pkgdir}/usr/lib/pkgconfig ${srcdir}/glesv2.pc
install -m644 -Dt "${pkgdir}/usr/share/licenses/${pkgname}" LICENSE
}

View file

@ -1,10 +0,0 @@
prefix=/usr
libdir=${prefix}/lib
includedir=${prefix}/include
Name: glesv2
Description: Mesa OpenGL ES 2.0 library
Version: 19.1.0
Libs: -L${libdir} -lGLESv2
Libs.private: -lpthread -pthread -lm -ldl
Cflags: -I${includedir}

148
extra/mesa/glvnd.patch Normal file
View file

@ -0,0 +1,148 @@
From fafd20f67dec9f5891838435ecde1dedb77ab742 Mon Sep 17 00:00:00 2001
From: Dylan Baker <dylan@pnwbakers.com>
Date: Wed, 25 Sep 2019 23:25:27 +0000
Subject: [PATCH] meson: fix logic for generating .pc files with old glvnd
We want to generate PC files for non-glvnd builds and for builds with
old glvnd, but the current logic doesn't do that, it builds them
unconditionally, and for GLES it builds the shared libraries, which is
also not what we want. This does not generate .pc files for gles1 or
gles2. Which it we weren't doing before either, making this not a
regression but a return to status-quo.o
Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/1838
Fixes: 93df862b6affb6b8507e40601212a58012bfa873
("meson: re-add incorrect pkg-config files with GLVND for backward compatibility")
Reviewed-by: Matt Turner <mattst88@gmail.com>
---
meson.build | 9 +++++----
src/egl/meson.build | 30 ++++++++++++++++--------------
src/mapi/meson.build | 2 +-
src/meson.build | 4 ++--
4 files changed, 24 insertions(+), 21 deletions(-)
diff --git a/meson.build b/meson.build
index 0e46fde5edc..da4a07538df 100644
--- a/meson.build
+++ b/meson.build
@@ -100,7 +100,7 @@ endif
# shared-glapi is required if at least two OpenGL APIs are being built
if not with_shared_glapi
- if ((with_gles1 == 'true' and with_gles2 == 'true') or
+ if ((with_gles1 == 'true' and with_gles2 == 'true') or
(with_gles1 == 'true' and with_opengl) or
(with_gles2 == 'true' and with_opengl))
error('shared-glapi required for building two or more of OpenGL, OpenGL ES 1.x, OpenGL ES 2.x')
@@ -397,7 +397,7 @@ endif
if with_glx != 'disabled'
if not (with_platform_x11 and with_any_opengl)
error('Cannot build GLX support without X11 platform support and at least one OpenGL API')
- elif with_glx == 'gallium-xlib'
+ elif with_glx == 'gallium-xlib'
if not with_gallium
error('Gallium-xlib based GLX requires at least one gallium driver')
elif not with_gallium_softpipe
@@ -405,7 +405,7 @@ if with_glx != 'disabled'
elif with_dri
error('gallium-xlib conflicts with any dri driver')
endif
- elif with_glx == 'xlib'
+ elif with_glx == 'xlib'
if with_dri
error('xlib conflicts with any dri driver')
endif
@@ -1326,6 +1326,7 @@ else
endif
dep_glvnd = null_dep
+glvnd_missing_pc_files = false
if with_glvnd
dep_glvnd = dependency('libglvnd', version : '>= 0.2.0')
# GLVND until commit 0dfaea2bcb7cdcc785f9 ("Add pkg-config files for EGL, GL,
@@ -1462,7 +1463,7 @@ if with_platform_x11
if with_glx == 'dri' or with_glx == 'gallium-xlib'
dep_glproto = dependency('glproto', version : '>= 1.4.14')
endif
- if with_glx == 'dri'
+ if with_glx == 'dri'
if with_dri_platform == 'drm'
dep_dri2proto = dependency('dri2proto', version : '>= 2.8')
dep_xxf86vm = dependency('xxf86vm')
diff --git a/src/egl/meson.build b/src/egl/meson.build
index 7038a68e955..7d738e2ebd1 100644
--- a/src/egl/meson.build
+++ b/src/egl/meson.build
@@ -176,21 +176,23 @@ libegl = shared_library(
# If using glvnd the pkg-config header should not point to EGL_mesa, it should
# point to EGL. glvnd is only available on unix like platforms so adding -l
# should be safe here
-if with_glvnd and glvnd_missing_pc_files
- _egl = '-L${libdir} -lEGL'
-else
- _egl = libegl
-endif
+if not with_glvnd or glvnd_missing_pc_files
+ if glvnd_missing_pc_files
+ _egl = '-L${libdir} -lEGL'
+ else
+ _egl = libegl
+ endif
-pkg.generate(
- name : 'egl',
- description : 'Mesa EGL Library',
- version : meson.project_version(),
- libraries : _egl,
- libraries_private: gl_priv_libs,
- requires_private : gl_priv_reqs,
- extra_cflags : gl_pkgconfig_c_flags,
-)
+ pkg.generate(
+ name : 'egl',
+ description : 'Mesa EGL Library',
+ version : meson.project_version(),
+ libraries : _egl,
+ libraries_private: gl_priv_libs,
+ requires_private : gl_priv_reqs,
+ extra_cflags : gl_pkgconfig_c_flags,
+ )
+endif
if with_tests and prog_nm.found()
if with_glvnd
diff --git a/src/mapi/meson.build b/src/mapi/meson.build
index 39c1dba7ce0..2c79a04f1df 100644
--- a/src/mapi/meson.build
+++ b/src/mapi/meson.build
@@ -35,7 +35,7 @@ if with_shared_glapi
else
libglapi = []
endif
-if not with_glvnd or glvnd_missing_pc_files
+if not with_glvnd
if with_gles1
subdir('es1api')
endif
diff --git a/src/meson.build b/src/meson.build
index ddbcd7f3ae4..d01f84c0d46 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -111,12 +111,12 @@ endif
# This must be after at least mesa, glx, and gallium, since libgl will be
# defined in one of those subdirs depending on the glx provider.
-if with_glx != 'disabled'
+if with_glx != 'disabled' and (not with_glvnd or glvnd_missing_pc_files)
# If using glvnd the pkg-config header should not point to GL_mesa, it should
# point to GL. glvnd is only available on unix like platforms so adding -l
# should be safe here
# TODO: in the glvnd case glvnd itself should really be providing this.
- if with_glvnd and glvnd_missing_pc_files
+ if glvnd_missing_pc_files
_gl = '-L${libdir} -lGL'
else
_gl = libgl
--
2.22.0

View file

@ -0,0 +1,39 @@
From 712268730ec05897a6add995444123ac2af54382 Mon Sep 17 00:00:00 2001
From: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Date: Wed, 2 Oct 2019 17:13:06 +0300
Subject: [PATCH] intel: fix topology query
i915 will report ENODEV on generations prior to Haswell because there
is no point in reporting values on those. This is prior any fusing
could happen on parts with identical PCI ids.
This query call was previously only triggered on generation that
support performance queries, which happens to match generation for
which i915 reports topology, but the commit pointed below started
using it on all generations.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Gitlab: https://gitlab.freedesktop.org/mesa/mesa/issues/1860
Cc: <mesa-stable@lists.freedesktop.org>
Fixes: 96e1c945f2 ("i965: Move device info initialization to common code")
---
src/intel/dev/gen_device_info.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/intel/dev/gen_device_info.c b/src/intel/dev/gen_device_info.c
index 3953a1f4af3..85fa978f9c1 100644
--- a/src/intel/dev/gen_device_info.c
+++ b/src/intel/dev/gen_device_info.c
@@ -1320,6 +1320,9 @@ query_topology(struct gen_device_info *devinfo, int fd)
if (gen_ioctl(fd, DRM_IOCTL_I915_QUERY, &query))
return false;
+ if (item.length < 0)
+ return false;
+
struct drm_i915_query_topology_info *topo_info =
(struct drm_i915_query_topology_info *) calloc(1, item.length);
item.data_ptr = (uintptr_t) topo_info;
--
2.22.0