Date: Thursday, October 27, 2016 @ 15:55:24 Author: lcarlier Revision: 193785
upgpkg: lib32-mesa 13.0.0rc2-1 upstream update 13.0.0-rc2 - and llvm-3.9.0 rebuild Modified: lib32-mesa/trunk/PKGBUILD lib32-mesa/trunk/remove-libpthread-stubs.patch Deleted: lib32-mesa/trunk/0001-loader-dri3-add-get_dri_screen-to-the-vtable.patch lib32-mesa/trunk/0002-loader-dri3-import-prime-buffers-in-the-currently-bo.patch -----------------------------------------------------------------+ 0001-loader-dri3-add-get_dri_screen-to-the-vtable.patch | 91 ---------- 0002-loader-dri3-import-prime-buffers-in-the-currently-bo.patch | 59 ------ PKGBUILD | 55 +++--- remove-libpthread-stubs.patch | 25 +- 4 files changed, 43 insertions(+), 187 deletions(-) Deleted: 0001-loader-dri3-add-get_dri_screen-to-the-vtable.patch =================================================================== --- 0001-loader-dri3-add-get_dri_screen-to-the-vtable.patch 2016-10-27 14:07:23 UTC (rev 193784) +++ 0001-loader-dri3-add-get_dri_screen-to-the-vtable.patch 2016-10-27 15:55:24 UTC (rev 193785) @@ -1,91 +0,0 @@ -From 0247e5ee3edd546b8598082d5b45d110f61853d0 Mon Sep 17 00:00:00 2001 -From: Martin Peres <[email protected]> -Date: Thu, 6 Oct 2016 17:07:22 +0300 -Subject: [PATCH 1/2] loader/dri3: add get_dri_screen() to the vtable - -This allows querying the current active screen from the -loader's common code. - -Cc: [email protected] -Reviewed-by: Emil Velikov <[email protected]> -Signed-off-by: Martin Peres <[email protected]> ---- - src/egl/drivers/dri2/platform_x11_dri3.c | 12 ++++++++++++ - src/glx/dri3_glx.c | 11 +++++++++++ - src/loader/loader_dri3_helper.h | 1 + - 3 files changed, 24 insertions(+) - -diff --git a/src/egl/drivers/dri2/platform_x11_dri3.c b/src/egl/drivers/dri2/platform_x11_dri3.c -index 31649fe..d93f5bc 100644 ---- a/src/egl/drivers/dri2/platform_x11_dri3.c -+++ b/src/egl/drivers/dri2/platform_x11_dri3.c -@@ -103,6 +103,17 @@ egl_dri3_get_dri_context(struct loader_dri3_drawable *draw) - return dri2_ctx->dri_context; - } - -+static __DRIscreen * -+egl_dri3_get_dri_screen(struct loader_dri3_drawable *draw) -+{ -+ _EGLContext *ctx = _eglGetCurrentContext(); -+ struct dri2_egl_context *dri2_ctx; -+ if (!ctx) -+ return NULL; -+ dri2_ctx = dri2_egl_context(ctx); -+ return dri2_egl_display(dri2_ctx->base.Resource.Display)->dri_screen; -+} -+ - static void - egl_dri3_flush_drawable(struct loader_dri3_drawable *draw, unsigned flags) - { -@@ -119,6 +130,7 @@ static struct loader_dri3_vtable egl_dri3_vtable = { - .set_drawable_size = egl_dri3_set_drawable_size, - .in_current_context = egl_dri3_in_current_context, - .get_dri_context = egl_dri3_get_dri_context, -+ .get_dri_screen = egl_dri3_get_dri_screen, - .flush_drawable = egl_dri3_flush_drawable, - .show_fps = NULL, - }; -diff --git a/src/glx/dri3_glx.c b/src/glx/dri3_glx.c -index 90d7bba..51b6b1c 100644 ---- a/src/glx/dri3_glx.c -+++ b/src/glx/dri3_glx.c -@@ -132,6 +132,16 @@ glx_dri3_get_dri_context(struct loader_dri3_drawable *draw) - return (gc != &dummyContext) ? dri3Ctx->driContext : NULL; - } - -+static __DRIscreen * -+glx_dri3_get_dri_screen(struct loader_dri3_drawable *draw) -+{ -+ struct glx_context *gc = __glXGetCurrentContext(); -+ struct dri3_context *pcp = (struct dri3_context *) gc; -+ struct dri3_screen *psc = (struct dri3_screen *) pcp->base.psc; -+ -+ return (gc != &dummyContext && psc) ? psc->driScreen : NULL; -+} -+ - static void - glx_dri3_flush_drawable(struct loader_dri3_drawable *draw, unsigned flags) - { -@@ -169,6 +179,7 @@ static struct loader_dri3_vtable glx_dri3_vtable = { - .set_drawable_size = glx_dri3_set_drawable_size, - .in_current_context = glx_dri3_in_current_context, - .get_dri_context = glx_dri3_get_dri_context, -+ .get_dri_screen = glx_dri3_get_dri_screen, - .flush_drawable = glx_dri3_flush_drawable, - .show_fps = glx_dri3_show_fps, - }; -diff --git a/src/loader/loader_dri3_helper.h b/src/loader/loader_dri3_helper.h -index 5b8fd1d..658e190 100644 ---- a/src/loader/loader_dri3_helper.h -+++ b/src/loader/loader_dri3_helper.h -@@ -103,6 +103,7 @@ struct loader_dri3_vtable { - void (*set_drawable_size)(struct loader_dri3_drawable *, int, int); - bool (*in_current_context)(struct loader_dri3_drawable *); - __DRIcontext *(*get_dri_context)(struct loader_dri3_drawable *); -+ __DRIscreen *(*get_dri_screen)(struct loader_dri3_drawable *); - void (*flush_drawable)(struct loader_dri3_drawable *, unsigned); - void (*show_fps)(struct loader_dri3_drawable *, uint64_t); - }; --- -2.10.0 - Deleted: 0002-loader-dri3-import-prime-buffers-in-the-currently-bo.patch =================================================================== --- 0002-loader-dri3-import-prime-buffers-in-the-currently-bo.patch 2016-10-27 14:07:23 UTC (rev 193784) +++ 0002-loader-dri3-import-prime-buffers-in-the-currently-bo.patch 2016-10-27 15:55:24 UTC (rev 193785) @@ -1,59 +0,0 @@ -From a599b1c2037ac8aca6c92350c8a7b3e42c81deaa Mon Sep 17 00:00:00 2001 -From: Martin Peres <[email protected]> -Date: Thu, 6 Oct 2016 17:10:35 +0300 -Subject: [PATCH 2/2] loader/dri3: import prime buffers in the currently-bound - screen - -This tries to mirrors the codepath taken by DRI2 in IntelSetTexBuffer2() -and fixes many applications when using DRI3: - - Totem with libva on hw-accelerated decoding - - obs-studio, using Window Capture (Xcomposite) as a Source - - gstreamer with VAAPI - -v2: - - introduce get_dri_screen() in the dri3 loader's vtable (krh) - -Tested-by: Timo Aaltonen <[email protected]> -Tested-by: Ionut Biru <[email protected]> -Cc: [email protected] -Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=71759 -Reviewed-by: Emil Velikov <[email protected]> -Signed-off-by: Martin Peres <[email protected]> ---- - src/loader/loader_dri3_helper.c | 12 +++++++++++- - 1 file changed, 11 insertions(+), 1 deletion(-) - -diff --git a/src/loader/loader_dri3_helper.c b/src/loader/loader_dri3_helper.c -index 3ce0352..8179297 100644 ---- a/src/loader/loader_dri3_helper.c -+++ b/src/loader/loader_dri3_helper.c -@@ -1117,6 +1117,7 @@ dri3_get_pixmap_buffer(__DRIdrawable *driDrawable, unsigned int format, - xcb_sync_fence_t sync_fence; - struct xshmfence *shm_fence; - int fence_fd; -+ __DRIscreen *cur_screen; - - if (buffer) - return buffer; -@@ -1147,8 +1148,17 @@ dri3_get_pixmap_buffer(__DRIdrawable *driDrawable, unsigned int format, - if (!bp_reply) - goto no_image; - -+ /* Get the currently-bound screen or revert to using the drawable's screen if -+ * no contexts are currently bound. The latter case is at least necessary for -+ * obs-studio, when using Window Capture (Xcomposite) as a Source. -+ */ -+ cur_screen = draw->vtable->get_dri_screen(draw); -+ if (!cur_screen) { -+ cur_screen = draw->dri_screen; -+ } -+ - buffer->image = loader_dri3_create_image(draw->conn, bp_reply, format, -- draw->dri_screen, draw->ext->image, -+ cur_screen, draw->ext->image, - buffer); - if (!buffer->image) - goto no_image; --- -2.10.0 - Modified: PKGBUILD =================================================================== --- PKGBUILD 2016-10-27 14:07:23 UTC (rev 193784) +++ PKGBUILD 2016-10-27 15:55:24 UTC (rev 193785) @@ -4,9 +4,9 @@ # Contributor: Andreas Radke <[email protected]> pkgbase=lib32-mesa -pkgname=('lib32-vulkan-intel' 'lib32-mesa-vdpau' 'lib32-mesa' 'lib32-mesa-libgl') -pkgver=12.0.3 -pkgrel=4 +pkgname=('lib32-vulkan-intel' 'lib32-vulkan-radeon' 'lib32-mesa-vdpau' 'lib32-mesa' 'lib32-mesa-libgl') +pkgver=13.0.0rc2 +pkgrel=1 arch=('x86_64') makedepends=('python2-mako' 'lib32-libxml2' 'lib32-expat' 'lib32-libx11' 'glproto' 'lib32-libdrm' 'dri2proto' 'dri3proto' 'presentproto' 'lib32-libxshmfence' 'lib32-libxxf86vm' 'lib32-libxdamage' 'gcc-multilib' 'lib32-libelf' 'lib32-llvm' 'lib32-systemd' @@ -13,17 +13,14 @@ 'lib32-libvdpau' 'lib32-wayland' 'lib32-libgcrypt') url="http://mesa3d.sourceforge.net" license=('custom') -source=(ftp://ftp.freedesktop.org/pub/mesa/${pkgver}/mesa-${pkgver}.tar.xz{,.sig} +#source=(ftp://ftp.freedesktop.org/pub/mesa/${pkgver}/mesa-${pkgver}.tar.xz{,.sig} +source=(ftp://ftp.freedesktop.org/pub/mesa/13.0.0/mesa-13.0.0-rc2.tar.xz{,.sig} LICENSE - remove-libpthread-stubs.patch - 0001-loader-dri3-add-get_dri_screen-to-the-vtable.patch - 0002-loader-dri3-import-prime-buffers-in-the-currently-bo.patch) -sha256sums=('1dc86dd9b51272eee1fad3df65e18cda2e556ef1bc0b6e07cd750b9757f493b1' + remove-libpthread-stubs.patch) +sha256sums=('ef26031a79b915e1643b0ffe5354f8ae774cd445f12b342abac63438f9735a43' 'SKIP' '7fdc119cf53c8ca65396ea73f6d10af641ba41ea1dd2bd44a824726e01c8b3f2' - 'd82c329e89754266eb1538df29b94d33692a66e3b6882b2cee78f4d5aab4a39c' - '52eb98eb6c9c644383d9743692aea302d84c4f89cfaa7a276b9276befc2d9780' - '96ad07e241d16802b14b14ca3d6965fa7f4f4b8c678d62ba375291910dce3b4a') + '75ab53ad44b95204c788a2988e97a5cb963bdbf6072a5466949a2afb79821c8f') validpgpkeys=('8703B6700E7EE06D7A39B8D6EDAE37B02CEB490D') # Emil Velikov <[email protected]> prepare() { @@ -32,11 +29,6 @@ # Now mesa checks for libpthread-stubs - so remove the check patch -Np1 -i ../remove-libpthread-stubs.patch - # fix FS#50240 - https://bugs.freedesktop.org/show_bug.cgi?id=71759 - # merged upstream - patch -Np1 -i ../0001-loader-dri3-add-get_dri_screen-to-the-vtable.patch - patch -Np1 -i ../0002-loader-dri3-import-prime-buffers-in-the-currently-bo.patch - autoreconf -fiv } @@ -57,7 +49,7 @@ --with-gallium-drivers=r300,r600,radeonsi,nouveau,swrast,virgl \ --with-dri-drivers=i915,i965,r200,radeon,nouveau,swrast \ --with-egl-platforms=x11,drm,wayland \ - --with-vulkan-drivers=intel \ + --with-vulkan-drivers=intel,radeon \ --with-sha1=libgcrypt \ --disable-xvmc \ --enable-gallium-llvm \ @@ -83,9 +75,12 @@ package_lib32-vulkan-intel() { pkgdesc="Intel's Vulkan mesa driver (32-bit)" - depends=('vulkan-intel' 'lib32-vulkan-icd-loader' 'lib32-libgcrypt' 'lib32-wayland' 'lib32-libxcb' + depends=('vulkan-intel' 'lib32-vulkan-icd-loader' 'lib32-libgcrypt' 'lib32-wayland' 'lib32-libx11' 'lib32-gcc-libs' 'lib32-libxshmfence') + install -m755 -d ${pkgdir}/usr/share/vulkan/icd.d + mv -v ${srcdir}/fakeinstall/usr/share/vulkan/icd.d/intel_icd*.json ${pkgdir}/usr/share/vulkan/icd.d/ + install -m755 -d ${pkgdir}/usr/lib32 mv -v ${srcdir}/fakeinstall/usr/lib32/libvulkan_intel.so ${pkgdir}/usr/lib32/ @@ -93,6 +88,18 @@ install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/lib32-vulkan-intel/" } +package_lib32-vulkan-radeon() { + pkgdesc="Radeon's Vulkan mesa driver (32-bit)" + depends=('vulkan-radeon' 'lib32-vulkan-icd-loader' 'lib32-libgcrypt' 'lib32-wayland' 'lib32-libx11' + 'lib32-llvm-libs' 'lib32-libdrm' 'lib32-libelf' 'lib32-libxshmfence') + + install -m755 -d ${pkgdir}/usr/lib32 + mv -v ${srcdir}/fakeinstall/usr/lib32/libvulkan_radeon.so ${pkgdir}/usr/lib32/ + + install -m755 -d "${pkgdir}/usr/share/licenses/lib32-vulkan-radeon" + install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/lib32-vulkan-radeon/" +} + package_lib32-mesa-vdpau() { pkgdesc="Mesa VDPAU drivers (32-bit)" depends=('lib32-libdrm' 'lib32-libx11' 'lib32-expat' 'lib32-llvm-libs' 'lib32-libelf' 'lib32-libgcrypt' @@ -107,7 +114,7 @@ package_lib32-mesa() { pkgdesc="an open-source implementation of the OpenGL specification (32-bit)" - depends=('lib32-libdrm' 'lib32-libxxf86vm' 'lib32-libxdamage' 'lib32-libxshmfence' 'lib32-systemd' + depends=('lib32-libdrm' 'lib32-libxxf86vm' 'lib32-libxdamage' 'lib32-libxshmfence' 'lib32-libgcrypt' 'lib32-libelf' 'lib32-llvm-libs' 'lib32-wayland' 'lib32-libtxc_dxtn' 'mesa') optdepends=('opengl-man-pages: for the OpenGL API man pages' 'lib32-mesa-vdpau: for accelerated video playback') @@ -114,7 +121,6 @@ provides=('lib32-ati-dri' 'lib32-intel-dri' 'lib32-nouveau-dri' 'lib32-mesa-dri') conflicts=('lib32-ati-dri' 'lib32-intel-dri' 'lib32-nouveau-dri' 'lib32-mesa-dri') replaces=('lib32-ati-dri' 'lib32-intel-dri' 'lib32-nouveau-dri' 'lib32-mesa-dri') - install -m755 -d ${pkgdir}/usr/lib32/xorg/modules/dri # ati-dri, nouveay-dri, intel-dri, swrast mv -v ${srcdir}/fakeinstall/usr/lib32/xorg/modules/dri/* ${pkgdir}/usr/lib32/xorg/modules/dri @@ -131,8 +137,8 @@ mv -v ${pkgdir}/usr/lib32/libEGL.so* ${pkgdir}/usr/lib32/mesa/ mv -v ${pkgdir}/usr/lib32/libGLES*.so* ${pkgdir}/usr/lib32/mesa/ - install -m755 -d "${pkgdir}/usr/share/licenses" - ln -s mesa "$pkgdir/usr/share/licenses/lib32-mesa" + install -m755 -d "${pkgdir}/usr/share/licenses/lib32-mesa" + install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/lib32-mesa/" } package_lib32-mesa-libgl() { @@ -159,6 +165,7 @@ ln -s libGLESv2.so.2.0.0 ${pkgdir}/usr/lib32/libGLESv2.so.2 ln -s libGLESv2.so.2.0.0 ${pkgdir}/usr/lib32/libGLESv2.so - install -m755 -d "${pkgdir}/usr/share/licenses" - ln -s lib32-mesa "${pkgdir}/usr/share/licenses/lib32-mesa-libgl" + + install -m755 -d "${pkgdir}/usr/share/licenses/lib32-mesa-libgl" + install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/lib32-mesa-libgl/" } Modified: remove-libpthread-stubs.patch =================================================================== --- remove-libpthread-stubs.patch 2016-10-27 14:07:23 UTC (rev 193784) +++ remove-libpthread-stubs.patch 2016-10-27 15:55:24 UTC (rev 193785) @@ -1,14 +1,13 @@ -diff -ur mesa-orig/configure.ac mesa-origb/configure.ac ---- mesa-orig/configure.ac 2016-05-25 15:37:44.191643017 +0200 -+++ mesa-origb/configure.ac 2016-05-25 15:42:20.861654709 +0200 -@@ -813,10 +813,6 @@ - dnl pkgconfig files. - test -z "$PTHREAD_LIBS" && PTHREAD_LIBS="-lpthread" +diff --git a/configure.ac b/configure.ac +index 54416b4..8a708d3 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -824,7 +824,7 @@ test -z "$PTHREAD_LIBS" && PTHREAD_LIBS="-lpthread" --PKG_CHECK_MODULES(PTHREADSTUBS, pthread-stubs) --AC_SUBST(PTHREADSTUBS_CFLAGS) --AC_SUBST(PTHREADSTUBS_LIBS) -- - dnl SELinux awareness. - AC_ARG_ENABLE([selinux], - [AS_HELP_STRING([--enable-selinux], + dnl pthread-stubs is mandatory on targets where it exists + case "$host_os" in +-cygwin* ) ++cygwin* | linux* ) + pthread_stubs_possible="no" + ;; + * )
