pkgsrc-WIP-changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
MesaLib-dfbsd: Update wip/MesaLib-dfbsd to 19.1.0-rc3
Module Name: pkgsrc-wip
Committed By: David Shao <davshao%gmail.com@localhost>
Pushed By: dshao
Date: Thu May 23 23:12:44 2019 -0700
Changeset: 37b53277d4ea70df1598342e3c8815d9c5d66b73
Modified Files:
MesaLib-dfbsd/Makefile
MesaLib-dfbsd/PLIST
MesaLib-dfbsd/TODO
MesaLib-dfbsd/builtin.mk
MesaLib-dfbsd/distinfo
MesaLib-dfbsd/dri.mk
MesaLib-dfbsd/options.mk
MesaLib-dfbsd/patches/patch-include_GL_internal_dri__interface.h
MesaLib-dfbsd/patches/patch-src_amd_vulkan_radv__device.c
MesaLib-dfbsd/patches/patch-src_compiler_builtin__type__macros.h
MesaLib-dfbsd/patches/patch-src_egl_drivers_dri2_platform__x11.c
MesaLib-dfbsd/patches/patch-src_egl_main_eglglobals.c
MesaLib-dfbsd/patches/patch-src_gallium_auxiliary_pipe-loader_pipe__loader__drm.c
MesaLib-dfbsd/patches/patch-src_gallium_drivers_freedreno_freedreno__screen.c
MesaLib-dfbsd/patches/patch-src_gallium_drivers_radeonsi_si__compute__blit.c
MesaLib-dfbsd/patches/patch-src_gallium_drivers_radeonsi_si__pipe.c
MesaLib-dfbsd/patches/patch-src_glx_glxclient.h
MesaLib-dfbsd/patches/patch-src_glx_glxcurrent.c
MesaLib-dfbsd/patches/patch-src_intel_isl_isl__tiled__memcpy.c
MesaLib-dfbsd/patches/patch-src_intel_tools_aub__mem.c
MesaLib-dfbsd/patches/patch-src_intel_vulkan_anv__allocator.c
MesaLib-dfbsd/patches/patch-src_intel_vulkan_anv__device.c
MesaLib-dfbsd/patches/patch-src_intel_vulkan_anv__gem__stubs.c
MesaLib-dfbsd/patches/patch-src_mapi_entry__x86-64__tls.h
MesaLib-dfbsd/patches/patch-src_mapi_entry__x86__tls.h
MesaLib-dfbsd/patches/patch-src_mapi_u__current.c
MesaLib-dfbsd/patches/patch-src_mapi_u__current.h
MesaLib-dfbsd/patches/patch-src_mesa_drivers_dri_i915_intel__screen.c
MesaLib-dfbsd/patches/patch-src_mesa_drivers_dri_i965_intel__screen.c
MesaLib-dfbsd/patches/patch-src_mesa_drivers_dri_swrast_swrast.c
MesaLib-dfbsd/patches/patch-src_mesa_main_context.c
MesaLib-dfbsd/patches/patch-src_util_os__time.c
MesaLib-dfbsd/patches/patch-src_util_u__queue.c
MesaLib-dfbsd/patches/patch-src_util_u__thread.h
MesaLib-dfbsd/patches/patch-src_util_xmlconfig.c
Added Files:
MesaLib-dfbsd/patches/patch-meson.build
MesaLib-dfbsd/patches/patch-meson__options.txt
MesaLib-dfbsd/patches/patch-src_gallium_drivers_iris_meson.build
MesaLib-dfbsd/patches/patch-src_gallium_drivers_nouveau_meson.build
MesaLib-dfbsd/patches/patch-src_gallium_drivers_radeonsi_si__buffer.c
MesaLib-dfbsd/patches/patch-src_gallium_drivers_radeonsi_si__dma__cs.c
MesaLib-dfbsd/patches/patch-src_gallium_drivers_radeonsi_si__gfx__cs.c
MesaLib-dfbsd/patches/patch-src_intel_perf_gen__perf.h
MesaLib-dfbsd/patches/patch-src_mapi_entry__x86__tsd.h
MesaLib-dfbsd/patches/patch-src_mesa_drivers_dri_i965_brw__bufmgr.c
MesaLib-dfbsd/patches/patch-src_util_ralloc.h
MesaLib-dfbsd/patches/patch-src_util_u__process.c
Removed Files:
MesaLib-dfbsd/patches/patch-configure.ac
MesaLib-dfbsd/patches/patch-src_gbm_Makefile.am
MesaLib-dfbsd/patches/patch-src_glx_Makefile.am
MesaLib-dfbsd/patches/patch-src_intel_Makefile.tools.am
MesaLib-dfbsd/patches/patch-src_mesa_drivers_dri_i965_brw__performance__query.c
MesaLib-dfbsd/patches/patch-src_mesa_drivers_x11_Makefile.am
MesaLib-dfbsd/patches/patch-src_util_Makefile.am
MesaLib-dfbsd/patches/patch-src_util_futex.h
Log Message:
MesaLib-dfbsd: Update wip/MesaLib-dfbsd to 19.1.0-rc3
To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=37b53277d4ea70df1598342e3c8815d9c5d66b73
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
diffstat:
MesaLib-dfbsd/Makefile | 98 ++++--
MesaLib-dfbsd/PLIST | 57 +++-
MesaLib-dfbsd/TODO | 5 +-
MesaLib-dfbsd/builtin.mk | 4 +-
MesaLib-dfbsd/distinfo | 86 +++---
MesaLib-dfbsd/dri.mk | 39 ++-
MesaLib-dfbsd/options.mk | 335 +++++++++++++++++----
MesaLib-dfbsd/patches/patch-configure.ac | 127 --------
.../patch-include_GL_internal_dri__interface.h | 12 +-
MesaLib-dfbsd/patches/patch-meson.build | 63 ++++
MesaLib-dfbsd/patches/patch-meson__options.txt | 17 ++
.../patches/patch-src_amd_vulkan_radv__device.c | 8 +-
.../patch-src_compiler_builtin__type__macros.h | 2 +-
.../patch-src_egl_drivers_dri2_platform__x11.c | 2 +-
.../patches/patch-src_egl_main_eglglobals.c | 21 +-
...llium_auxiliary_pipe-loader_pipe__loader__drm.c | 8 +-
...c_gallium_drivers_freedreno_freedreno__screen.c | 6 +-
.../patch-src_gallium_drivers_iris_meson.build | 22 ++
.../patch-src_gallium_drivers_nouveau_meson.build | 13 +
...patch-src_gallium_drivers_radeonsi_si__buffer.c | 65 ++++
...rc_gallium_drivers_radeonsi_si__compute__blit.c | 27 +-
...atch-src_gallium_drivers_radeonsi_si__dma__cs.c | 22 ++
...atch-src_gallium_drivers_radeonsi_si__gfx__cs.c | 38 +++
.../patch-src_gallium_drivers_radeonsi_si__pipe.c | 58 ++--
MesaLib-dfbsd/patches/patch-src_gbm_Makefile.am | 12 -
MesaLib-dfbsd/patches/patch-src_glx_Makefile.am | 49 ---
MesaLib-dfbsd/patches/patch-src_glx_glxclient.h | 2 +-
MesaLib-dfbsd/patches/patch-src_glx_glxcurrent.c | 4 +-
.../patches/patch-src_intel_Makefile.tools.am | 14 -
.../patch-src_intel_isl_isl__tiled__memcpy.c | 12 +-
.../patches/patch-src_intel_perf_gen__perf.h | 14 +
.../patches/patch-src_intel_tools_aub__mem.c | 4 +-
.../patch-src_intel_vulkan_anv__allocator.c | 4 +-
.../patches/patch-src_intel_vulkan_anv__device.c | 14 +-
.../patch-src_intel_vulkan_anv__gem__stubs.c | 4 +-
.../patches/patch-src_mapi_entry__x86-64__tls.h | 2 +-
.../patches/patch-src_mapi_entry__x86__tls.h | 2 +-
.../patches/patch-src_mapi_entry__x86__tsd.h | 86 ++++++
MesaLib-dfbsd/patches/patch-src_mapi_u__current.c | 4 +-
MesaLib-dfbsd/patches/patch-src_mapi_u__current.h | 2 +-
...patch-src_mesa_drivers_dri_i915_intel__screen.c | 4 +-
.../patch-src_mesa_drivers_dri_i965_brw__bufmgr.c | 31 ++
...mesa_drivers_dri_i965_brw__performance__query.c | 72 -----
...patch-src_mesa_drivers_dri_i965_intel__screen.c | 6 +-
.../patch-src_mesa_drivers_dri_swrast_swrast.c | 2 +-
.../patches/patch-src_mesa_drivers_x11_Makefile.am | 15 -
.../patches/patch-src_mesa_main_context.c | 8 +-
MesaLib-dfbsd/patches/patch-src_util_Makefile.am | 15 -
MesaLib-dfbsd/patches/patch-src_util_futex.h | 53 ----
MesaLib-dfbsd/patches/patch-src_util_os__time.c | 2 +-
MesaLib-dfbsd/patches/patch-src_util_ralloc.h | 51 ++++
MesaLib-dfbsd/patches/patch-src_util_u__process.c | 13 +
MesaLib-dfbsd/patches/patch-src_util_u__queue.c | 6 +-
MesaLib-dfbsd/patches/patch-src_util_u__thread.h | 22 +-
MesaLib-dfbsd/patches/patch-src_util_xmlconfig.c | 11 +-
55 files changed, 1048 insertions(+), 627 deletions(-)
diffs:
diff --git a/MesaLib-dfbsd/Makefile b/MesaLib-dfbsd/Makefile
index b0bd248eab..1d3e083fd5 100644
--- a/MesaLib-dfbsd/Makefile
+++ b/MesaLib-dfbsd/Makefile
@@ -1,20 +1,72 @@
-# $NetBSD: Makefile,v 1.18 2019/02/22 15:40:35 tnn Exp $
+# $NetBSD: Makefile,v 1.20 2019/04/25 07:32:56 maya Exp $
-# 2019-02-02 wsi/display: add comment
-COMMIT_ID= 808bf59cac793bc6c7de04eee4e23e6921a8a7b5
+# 2019-05-11 nir: Fix wrong sign in lower_rcp
+# COMMIT_ID= 974c4d679c23373dbed386c696e3e3bc1bfa23ae
+
+# 2019-05-10 intel: drop misleading driver name from gen_get_device_info()
+# COMMIT_ID= 7b2468bf6e58b0b178f8f498fca92c9cc0a71edb
+
+# 2019-05-10 radv: clear vertex bindings while resetting command buffer
+# COMMIT_ID= 24af0f1318967e20a8c5d7f3559389c341a0a11c
+
+# 2019-05-09 lima: fix tile buffer reloading
+# COMMIT_ID= e44a4bae52f8d835bd7d4b740cb688f59d03cced
+
+# 2019-05-08 iris: Reorganise execbuf to have a single point of failure
+# COMMIT_ID= 8b8125646991fb7e923821bafea9bec3ba355b42
+
+# 2019-05-08 kmsro: add _dri.so to two of the kmsro drivers.
+# COMMIT_ID= 0a42d5b98bc3083e20475eb1ecea20f9b876269d
+
+# 2019-05-07 Revert "glx: Fix synthetic error generation in __glXSendError"
+# COMMIT_ID= a01b393c397c846345f03f76f1167dd667e0ee96
+
+# 2019-05-04 panfrost/midgard: iabs cannot run on mul
+# COMMIT_ID= 68238732462bb044282ffbeb6cb08b96c7ff7805
+
+# 2019-05-03 st/va: check resource_get_info nullity in vlVaDeriveImage
+# COMMIT_ID= 8cd71f399e73c5d87e9162cc74da76e317a9f41f
+
+# 2019-05-03 radv: apply the indexing workaround for atomic buffer operations on GFX9
+# COMMIT_ID= 4f18c43d1df64135e8968a7d4fbfd2c9918b76ae
+
+# 2019-05-03 anv: fix crash when application does not provide push constants
+# COMMIT_ID= 80dc78407d0d1e03ceddf8889b217e8fd113568d
+
+# 2019-05-02 anv: Stop including POS in FS input limits
+# COMMIT_ID= be7e9870d620460a91e8fbdbb8bf39b5c462aed3
+
+# 2019-05-02 docs: fixup mistake in contents
+# COMMIT_ID= 96924aa92ecf16cd2145b1a881df37d9162c6ba7
+
+# 2019-05-02 panfrost/midgard: Skip liveness analysis for instructions without dest
+# COMMIT_ID= ad7c9ba0ecb349763ab7fad7bce74f1d47c139e3
+
+# 2019-05-01 util/bitset: Return an actual bool from test macros
+# COMMIT_ID= bf774b56be46d5812868d9f6e7e63437d36754e0
+
+# 2019-05-01 panfrost: Fix blend shader upload
+# COMMIT_ID= 09c669260f6d311d0d99f2c63ebd0ec5b68853f8
+
+# 2019-05-01 util: move #include out of #if linux
+# COMMIT_ID= 70da00ffd65e56c8c8cc6ecfcec462fb52ee5102
+
+# 2019-05-01 gitlab-ci: build vulkan drivers in clang build
+# COMMIT_ID= 47f419d0b37721776785a54005783ef6fe836d66
PORTNAME= mesa
-DISTNAME= ${PORTNAME}-${COMMIT_ID}
-PKGNAME= MesaLib-19.1.0
+# DISTNAME= ${PORTNAME}-${COMMIT_ID}
+# PKGNAME= MesaLib-19.1.0
# PKGREVISION= 1
-CATEGORIES= graphics x11
-MASTER_SITES= http://cgit.freedesktop.org/mesa/${PORTNAME}/snapshot/
+# CATEGORIES= graphics x11
+# MASTER_SITES= http://cgit.freedesktop.org/mesa/${PORTNAME}/snapshot/
-# DISTNAME= mesa-18.3.3
+DISTNAME= mesa-19.1.0-rc3
# PKGNAME= ${DISTNAME:S/mesa/MesaLib/}
-# CATEGORIES= graphics x11
-# MASTER_SITES= ftp://ftp.freedesktop.org/pub/mesa/
+PKGNAME= MesaLib-19.1.0
+CATEGORIES= graphics x11
+MASTER_SITES= ftp://ftp.freedesktop.org/pub/mesa/
# MASTER_SITES= ftp://ftp.freedesktop.org/pub/mesa/${PKGVERSION_NOREV}/
EXTRACT_SUFX= .tar.xz
@@ -23,10 +75,11 @@ HOMEPAGE= https://www.mesa3d.org/
COMMENT= The Mesa 3D Graphics Library
LICENSE= mit
-GNU_CONFIGURE= yes
-USE_TOOLS+= autoconf automake autoreconf bison pkg-config gmake flex
+# GNU_CONFIGURE= yes
+# USE_TOOLS+= autoconf automake autoreconf bison pkg-config gmake flex
+USE_TOOLS+= bison pkg-config gmake flex
USE_LANGUAGES= c99 c++
-USE_LIBTOOL= yes
+# USE_LIBTOOL= yes
PKGCONFIG_OVERRIDE+= src/egl/main/egl.pc.in
PKGCONFIG_OVERRIDE+= src/gallium/targets/d3dadapter9/d3d.pc.in
@@ -41,6 +94,7 @@ PKGCONFIG_OVERRIDE+= src/mesa/drivers/osmesa/osmesa.pc.in
PKGCONFIG_OVERRIDE+= src/mesa/gl.pc.in
CONFIGURE_ARGS+= --enable-shared-glapi
+MESON_ARGS+= -Dshared-glapi=true
# Work around a buildlink and/or libtool bug:
# In the libtool install/relink stage, if we want to link with two static
@@ -62,11 +116,11 @@ SUBST_SED.wrapper-bug+= -e 's,libglapi_tmp_rename\.la,libglapi.la,g'
SUBST_SED.wrapper-bug+= -e 's,libglapi_tmp_rename_la,libglapi_la,g'
# Replace /etc/drirc.d with ${PREFIX}/etc/drirc.d
-SUBST_CLASSES+= drirc
-SUBST_STAGE.drirc= pre-configure
-SUBST_MESSAGE.drirc= Fixing hardcoded /etc/drirc.d references
-SUBST_FILES.drirc+= src/util/xmlconfig.c
-SUBST_SED.drirc+= -e 's|/etc|${PREFIX}/etc|g'
+SUBST_CLASSES+= drirc
+SUBST_STAGE.drirc= pre-configure
+SUBST_MESSAGE.drirc= Fixing hardcoded /etc/drirc.d references
+SUBST_FILES.drirc+= src/util/xmlconfig.c
+SUBST_SED.drirc+= -e 's|/etc|${PREFIX}/etc|g'
CFLAGS.SunOS+= -D__EXTENSIONS__ -D_POSIX_PTHREAD_SEMANTICS
CXXFLAGS.SunOS+= -Drestrict=__restrict__
@@ -78,6 +132,7 @@ LDFLAGS.SunOS+= -lsocket -lnsl
.if ${MACHINE_ARCH} == "i386"
CONFIGURE_ARGS+= --enable-glx-read-only-text
+MESON_ARGS+= -Dglx-read-only-text=true
.endif
PYTHON_FOR_BUILD_ONLY= yes
@@ -102,7 +157,7 @@ CONFIGURE_ARGS+= --enable-autotools
pre-configure:
touch ${WRKSRC}/src/glx/apple_dummy.cpp
- cd ${WRKSRC} && autoreconf -vif
+# cd ${WRKSRC} && autoreconf -vif
DRIRC_DIR= ${PKG_SYSCONFDIR}/drirc.d
EGDIR= ${PREFIX}/share/examples/mesa
@@ -123,9 +178,14 @@ CWRAPPERS_APPEND.cxx+= -fuse-ld=${PKG_LD:Q}
.include "../../devel/binutils/buildlink3.mk"
.endif
+# Meson
+CFLAGS+= -Wno-return-type
+.include "../../devel/py-meson/build.mk"
+
.include "../../devel/zlib/buildlink3.mk"
.include "../../x11/libXrandr/buildlink3.mk"
.include "../../x11/libX11/buildlink3.mk"
.include "../../x11/libXext/buildlink3.mk"
.include "../../x11/libxcb/buildlink3.mk"
+.include "../../textproc/expat/buildlink3.mk"
.include "../../mk/bsd.pkg.mk"
diff --git a/MesaLib-dfbsd/PLIST b/MesaLib-dfbsd/PLIST
index a018a44e63..db0e7a81b0 100644
--- a/MesaLib-dfbsd/PLIST
+++ b/MesaLib-dfbsd/PLIST
@@ -35,6 +35,7 @@ ${PLIST.xatracker}include/xa_tracker.h
@comment ${PLIST.vaapi}lib/dri/gallium_drv_video.so
${PLIST.i915}lib/dri/i915_dri.so
${PLIST.i965}lib/dri/i965_dri.so
+${PLIST.iris}lib/dri/iris_dri.so
@comment ${PLIST.ilo}lib/dri/ilo_dri.so
${PLIST.freedreno}lib/dri/kgsl_dri.so
${PLIST.swrast}lib/dri/kms_swrast_dri.so
@@ -49,23 +50,47 @@ ${PLIST.radeonsi}lib/dri/radeonsi_dri.so
${PLIST.swrast_dri}lib/dri/swrast_dri.so
${PLIST.vc4}lib/dri/vc4_dri.so
${PLIST.svga}lib/dri/vmwgfx_dri.so
-${PLIST.egl}lib/libEGL.la
-lib/libGL.la
-${PLIST.glesv1}lib/libGLESv1_CM.la
-${PLIST.glesv2}lib/libGLESv2.la
-${PLIST.osmesa}lib/libOSMesa.la
+@comment ${PLIST.egl}lib/libEGL.la
+${PLIST.egl}lib/libEGL.so
+${PLIST.egl}lib/libEGL.so.1
+${PLIST.egl}lib/libEGL.so.1.0.0
+@comment lib/libGL.la
+lib/libGL.so
+lib/libGL.so.1
+lib/libGL.so.1.2.0
+@comment ${PLIST.glesv1}lib/libGLESv1_CM.la
+${PLIST.glesv1}lib/libGLESv1_CM.so
+${PLIST.glesv1}lib/libGLESv1_CM.so.1
+${PLIST.glesv1}lib/libGLESv1_CM.so.1.1.0
+@comment ${PLIST.glesv2}lib/libGLESv2.la
+${PLIST.glesv2}lib/libGLESv2.so
+${PLIST.glesv2}lib/libGLESv2.so.2
+${PLIST.glesv2}lib/libGLESv2.so.2.0.0
+@comment ${PLIST.osmesa}lib/libOSMesa.la
+${PLIST.osmesa}lib/libOSMesa.so
+${PLIST.osmesa}lib/libOSMesa.so.8
+${PLIST.osmesa}lib/libOSMesa.so.8.0.0
${PLIST.xvmc}${PLIST.nouveau}lib/libXvMCnouveau.so
-${PLIST.xvmc}${PLIST.nouveau}lib/libXvMCnouveau.so.1
-${PLIST.xvmc}${PLIST.nouveau}lib/libXvMCnouveau.so.1.0
-${PLIST.xvmc}${PLIST.nouveau}lib/libXvMCnouveau.so.1.0.0
+@comment ${PLIST.xvmc}${PLIST.nouveau}lib/libXvMCnouveau.so.1
+@comment ${PLIST.xvmc}${PLIST.nouveau}lib/libXvMCnouveau.so.1.0
+@comment ${PLIST.xvmc}${PLIST.nouveau}lib/libXvMCnouveau.so.1.0.0
${PLIST.xvmc}${PLIST.r600}lib/libXvMCr600.so
-${PLIST.xvmc}${PLIST.r600}lib/libXvMCr600.so.1
-${PLIST.xvmc}${PLIST.r600}lib/libXvMCr600.so.1.0
-${PLIST.xvmc}${PLIST.r600}lib/libXvMCr600.so.1.0.0
-${PLIST.gbm}lib/libgbm.la
-lib/libglapi.la
-${PLIST.wayland}lib/libwayland-egl.la
-${PLIST.xatracker}lib/libxatracker.la
+@comment ${PLIST.xvmc}${PLIST.r600}lib/libXvMCr600.so.1
+@comment ${PLIST.xvmc}${PLIST.r600}lib/libXvMCr600.so.1.0
+@comment ${PLIST.xvmc}${PLIST.r600}lib/libXvMCr600.so.1.0.0
+@comment ${PLIST.gbm}lib/libgbm.la
+${PLIST.gbm}lib/libgbm.so
+${PLIST.gbm}lib/libgbm.so.1
+${PLIST.gbm}lib/libgbm.so.1.0.0
+@comment lib/libglapi.la
+lib/libglapi.so
+lib/libglapi.so.0
+lib/libglapi.so.0.0.0
+@comment ${PLIST.wayland}lib/libwayland-egl.la
+@comment ${PLIST.xatracker}lib/libxatracker.la
+${PLIST.xatracker}lib/libxatracker.so
+${PLIST.xatracker}lib/libxatracker.so.2
+${PLIST.xatracker}lib/libxatracker.so.2.5.0
${PLIST.dri}lib/pkgconfig/dri.pc
${PLIST.egl}lib/pkgconfig/egl.pc
${PLIST.gbm}lib/pkgconfig/gbm.pc
@@ -75,6 +100,7 @@ ${PLIST.glesv1}lib/pkgconfig/glesv1_cm.pc
${PLIST.glesv2}lib/pkgconfig/glesv2.pc
${PLIST.wayland}lib/pkgconfig/wayland-egl.pc
${PLIST.xatracker}lib/pkgconfig/xatracker.pc
+@comment ${PLIST.vdpau}lib/vdpau/libvdpau_gallium.so
${PLIST.nouveau}${PLIST.vdpau}lib/vdpau/libvdpau_nouveau.so
${PLIST.nouveau}${PLIST.vdpau}lib/vdpau/libvdpau_nouveau.so.1
${PLIST.nouveau}${PLIST.vdpau}lib/vdpau/libvdpau_nouveau.so.1.0
@@ -101,4 +127,5 @@ ${PLIST.vulkan}lib/libvulkan_intel.la
${PLIST.vulkan}lib/libvulkan_radeon.la
${PLIST.vulkan}share/vulkan/icd.d/intel_icd.${MACHINE_ARCH}.json
${PLIST.vulkan}share/vulkan/icd.d/radeon_icd.${MACHINE_ARCH}.json
+share/drirc.d/00-mesa-defaults.conf
share/examples/mesa/00-mesa-defaults.conf
diff --git a/MesaLib-dfbsd/TODO b/MesaLib-dfbsd/TODO
index 5589abaf3e..06da5abeee 100644
--- a/MesaLib-dfbsd/TODO
+++ b/MesaLib-dfbsd/TODO
@@ -5,4 +5,7 @@ Copy port to graphics/MesaLib, do not install from wip.
* Test OSX quartz, check if bug 90311 patch needs regen
* Test Solaris
* Test Linux
-* Fully port Vulkan support from FreeBSD ports.
+* Fully port Vulkan support from FreeBSD ports.
+* Figure out if there really is a problem with atomic_add_unless
+ inverting the Linux definition
+* See what can be ported from latest OpenBSD xenocara and NetBSD xsrc
diff --git a/MesaLib-dfbsd/builtin.mk b/MesaLib-dfbsd/builtin.mk
index 71884e4b32..f9bab9d959 100644
--- a/MesaLib-dfbsd/builtin.mk
+++ b/MesaLib-dfbsd/builtin.mk
@@ -22,7 +22,7 @@ IS_BUILTIN.MesaLib= yes
IS_BUILTIN.MesaLib= no
. endif
.endif
-MAKEVARS+= IS_BUILTIN.MesaLib
+MAKEVARS+= IS_BUILTIN.MesaLib
###
### If there is a built-in implementation, then set BUILTIN_PKG.<pkg> to
@@ -67,7 +67,7 @@ USE_BUILTIN.MesaLib!= \
. endif
. endif # PREFER.MesaLib
.endif
-MAKEVARS+= USE_BUILTIN.MesaLib
+MAKEVARS+= USE_BUILTIN.MesaLib
###
### The section below only applies if we are not including this file
diff --git a/MesaLib-dfbsd/distinfo b/MesaLib-dfbsd/distinfo
index 2ef85cfa77..64f9af7a63 100644
--- a/MesaLib-dfbsd/distinfo
+++ b/MesaLib-dfbsd/distinfo
@@ -1,27 +1,33 @@
-$NetBSD: distinfo,v 1.16 2019/02/22 15:40:35 tnn Exp $
+$NetBSD: distinfo,v 1.17 2019/05/01 19:31:45 maya Exp $
-SHA1 (mesa-808bf59cac793bc6c7de04eee4e23e6921a8a7b5.tar.xz) = 781799c44fbc7e3d486a584c0da94015fbd84491
-RMD160 (mesa-808bf59cac793bc6c7de04eee4e23e6921a8a7b5.tar.xz) = 38d2cccc855cf1dfc8b712624d04cefa63b08757
-SHA512 (mesa-808bf59cac793bc6c7de04eee4e23e6921a8a7b5.tar.xz) = 1de951823e8b355370e705b79ec10ac9d66d12f6f16b205dd8b774f393f22c470435de6b36047b11381bc4cc654eb9b7bc7d6c30e60652a3d3e41e593398834b
-Size (mesa-808bf59cac793bc6c7de04eee4e23e6921a8a7b5.tar.xz) = 10222844 bytes
-SHA1 (patch-configure.ac) = ba9ded10c5a87275db29c9d008d917041b2e0c78
-SHA1 (patch-include_GL_internal_dri__interface.h) = 146d2f3f3e50fc1947e8941301d9cf9d90a035e2
+SHA1 (mesa-19.1.0-rc3.tar.xz) = c1e984fbeb7e86c8cd8b21f40b81372e0147d720
+RMD160 (mesa-19.1.0-rc3.tar.xz) = 20897eba53a23fe7efa5370b1cdbfe32e8e01b68
+SHA512 (mesa-19.1.0-rc3.tar.xz) = 740d5d13458b54e1942bfe7165938ec414aa7949aa60109ba872236f3b483c7305ac76b1b48c38dc6fd7691748106447757ac081f364952cc9e00f45fa9e2ea5
+Size (mesa-19.1.0-rc3.tar.xz) = 10878280 bytes
+SHA1 (patch-include_GL_internal_dri__interface.h) = ed567949ae44f7477738138347cf9648b9a8d634
+SHA1 (patch-meson.build) = 3cd30902cd5af7bc860dd2984a51d9ebf051662e
+SHA1 (patch-meson__options.txt) = 171ac109444b0ce8ea37e53b72f529a4b5e5c6f6
SHA1 (patch-src_amd_common_ac__debug.c) = 8233367c3b5bc344442ea8d19488fdd1e3791ae9
-SHA1 (patch-src_amd_vulkan_radv__device.c) = a029ba89311fe62e3712573993fabf38910e9838
+SHA1 (patch-src_amd_vulkan_radv__device.c) = 2eef90c3139ffa8349f5960eb328b7df3071a45c
SHA1 (patch-src_amd_vulkan_winsys_amdgpu_radv__amdgpu__cs.c) = 1fe81a7b16e36dc9125400c20543271216a33a45
-SHA1 (patch-src_compiler_builtin__type__macros.h) = 857bca0c0f55ec8d7a20b3807c7a5d7bd06bdfbf
+SHA1 (patch-src_compiler_builtin__type__macros.h) = 128030d0c532e5f3982dc6ebde1957fc0ca7f5d5
SHA1 (patch-src_compiler_glsl_glsl__parser__extras.cpp) = ef114d6e288e6d212fce9d1c0606f7d454a171c4
SHA1 (patch-src_egl_drivers_dri2_platform__drm.c) = e18e7b1ffbc74b8acf3d9095a92c750f9d005479
-SHA1 (patch-src_egl_drivers_dri2_platform__x11.c) = 49e48c31eacb79d1da357fe70eaffd2926b5280e
-SHA1 (patch-src_egl_main_eglglobals.c) = 0d52014f52e62fc5fa6650336ddb0011ecf331e6
+SHA1 (patch-src_egl_drivers_dri2_platform__x11.c) = 1b8c7689b18643777d494bbb491866ed0041155d
+SHA1 (patch-src_egl_main_eglglobals.c) = c8db1469859d448635f96a0eac1a936104cd0fdd
SHA1 (patch-src_gallium_auxiliary_drivers_trace_tr__dump.c) = 360e1608508a7bbb41acecd58930781038e2309e
-SHA1 (patch-src_gallium_auxiliary_pipe-loader_pipe__loader__drm.c) = f913b779404e6bd8ae707a4fd66eb7c1dca9b311
+SHA1 (patch-src_gallium_auxiliary_pipe-loader_pipe__loader__drm.c) = 14f0511191ef468a39e3248d44f7dbdffa554547
SHA1 (patch-src_gallium_auxiliary_util_u__format__tests.c) = d878e6f3e9a0a37d4903c0d0551f9fa535635d40
-SHA1 (patch-src_gallium_drivers_freedreno_freedreno__screen.c) = d76bf52c25609d641dbf4021e81282cbdc925976
+SHA1 (patch-src_gallium_drivers_freedreno_freedreno__screen.c) = b19e93b1612d6eacccf35260110db9402eb4edca
+SHA1 (patch-src_gallium_drivers_iris_meson.build) = 31f0afab5212860917fe78e2b282a730187502ef
+SHA1 (patch-src_gallium_drivers_nouveau_meson.build) = 59de3f012f604ae185d90c5c64521f35580eaa00
SHA1 (patch-src_gallium_drivers_nouveau_nouveau__vp3__video.c) = 04f95784c3270c9bb7e95377982e217962481525
SHA1 (patch-src_gallium_drivers_nouveau_nv50_nv84__video.c) = 1b4239fe053523835ecac006894bdb0cde0ee626
-SHA1 (patch-src_gallium_drivers_radeonsi_si__compute__blit.c) = a154669340b36125561749ca305ba47a5e1bf110
-SHA1 (patch-src_gallium_drivers_radeonsi_si__pipe.c) = 24a37091733e938199dfefe98d0f21796162a7ea
+SHA1 (patch-src_gallium_drivers_radeonsi_si__buffer.c) = dc2dcb0f87a01ae0162a8c5746911c53e669cd2e
+SHA1 (patch-src_gallium_drivers_radeonsi_si__compute__blit.c) = 86ba535e10a1d692877782cef6a1ec4aafeec4c7
+SHA1 (patch-src_gallium_drivers_radeonsi_si__dma__cs.c) = 3c6a2a49e40dd8f99f5f393ad6e03345111cdeb1
+SHA1 (patch-src_gallium_drivers_radeonsi_si__gfx__cs.c) = 98ca07e2cc518125e5ec8924cbadc19f4c13de56
+SHA1 (patch-src_gallium_drivers_radeonsi_si__pipe.c) = de016f03468ff7607543cb1587180b7e9893e560
SHA1 (patch-src_gallium_drivers_radeonsi_si__state__shaders.c) = ed51a57765f2349bc91fd509dc03e709241bd899
SHA1 (patch-src_gallium_drivers_vc4_vc4__bufmgr.c) = 1d591d346486fdf58893f69ab92a272e6a31a987
SHA1 (patch-src_gallium_include_pipe_p__config.h) = f4e38eac66167b619c30076bb0144dd716310967
@@ -29,48 +35,46 @@ SHA1 (patch-src_gallium_state__trackers_clover_llvm_invocation.cpp) = 3053db09fb
SHA1 (patch-src_gallium_state__trackers_clover_llvm_metadata.hpp) = c97d38098ea03658bc193a50e445b87f1c020839
SHA1 (patch-src_gallium_state__trackers_clover_util_range.hpp) = cdc78067986c1b92818472c4201c58ef1b42c4f4
SHA1 (patch-src_gallium_winsys_radeon_drm_radeon__drm__winsys.c) = 8c73f29a93e4e7ae8c0acd6f5f345047dc8a8541
-SHA1 (patch-src_gbm_Makefile.am) = 5f3107afbf64b97f7d21ce427cecc4fb78974db3
-SHA1 (patch-src_glx_Makefile.am) = 869c4f2388f835b9b296b3c84c2a03ef7717f17d
SHA1 (patch-src_glx_apple_apple__glapi.c) = c4eea8dabf74eb03d22da4eb834b18ae3384c63b
SHA1 (patch-src_glx_dri__common.h) = 0274877f8c65a4bb729536a897df4704897a4c6e
SHA1 (patch-src_glx_dri__glx.c) = 8fd48776e9953b18bd17ba130d90ae2935e67242
-SHA1 (patch-src_glx_glxclient.h) = f0358179ae397bc8677597b0ccb9a471f40f15de
-SHA1 (patch-src_glx_glxcurrent.c) = 8b8e949eded13491c5865601253c6e7d4b06e228
+SHA1 (patch-src_glx_glxclient.h) = 5e597362c3839f26118fe98983701f33d6047cfd
+SHA1 (patch-src_glx_glxcurrent.c) = 67142b977aadf23b0b0d3a06db3d9450e0b7f892
SHA1 (patch-src_glx_glxext.c) = 15c2c5e0c6b5095ce849fb86ad148aa05d7d907a
-SHA1 (patch-src_intel_Makefile.tools.am) = 5253d5972b48ae3bc8d648bb9f479dcf6cbd3fab
SHA1 (patch-src_intel_compiler_brw__fs__bank__conflicts.cpp) = 6276d2c6846bb4dd08699921bec4e20202a17478
-SHA1 (patch-src_intel_isl_isl__tiled__memcpy.c) = 265721e521d1d1e43a50cbbcffbc0f0fc47922f7
-SHA1 (patch-src_intel_tools_aub__mem.c) = 671e478a843b70c12c5038ad314c108925ab5cc7
+SHA1 (patch-src_intel_isl_isl__tiled__memcpy.c) = f019e47e535e2c2ab8d324937362a4c7965311f1
+SHA1 (patch-src_intel_perf_gen__perf.h) = 2915eb9dc7161d74d73b8e238dc1f0d0d9b82935
+SHA1 (patch-src_intel_tools_aub__mem.c) = fe7f8315515618e2becfa5279de613bca200dbf8
SHA1 (patch-src_intel_tools_aubinator__error__decode.c) = 159b57f9a3c1fd37ab1e5b49ff911073e2e9ff9b
SHA1 (patch-src_intel_tools_error2aub.c) = e38395e3889f6e3af645f312a429ce2a7d285231
-SHA1 (patch-src_intel_vulkan_anv__allocator.c) = 5dd27eea9811d739558c5b488c57a3d7ae539d87
-SHA1 (patch-src_intel_vulkan_anv__device.c) = 69ded51aa20ed3a8a2b1515b90eceac1fadf1db4
+SHA1 (patch-src_intel_vulkan_anv__allocator.c) = da5a11c95d17d6476e7141572264a215807b8cd7
+SHA1 (patch-src_intel_vulkan_anv__device.c) = 1f6ac5bcd6bf31275b93b805ee5fe6213e6dbb7e
SHA1 (patch-src_intel_vulkan_anv__gem.c) = b8eb487fa704151e7c3c3b1d23973b2b0aa5922e
-SHA1 (patch-src_intel_vulkan_anv__gem__stubs.c) = 7f0a25e96624815ef0912024b52bbb512d4fa42f
+SHA1 (patch-src_intel_vulkan_anv__gem__stubs.c) = ad5a4bd9fe521cf73faf2f0cf0f493a0b40f4c20
SHA1 (patch-src_intel_vulkan_anv__queue.c) = 2dbf7dfd0c77f74f510032bf8d12109f58c50a30
-SHA1 (patch-src_mapi_entry__x86-64__tls.h) = 11b7ef1da435fa17fc7025a46a123d447d6a7d07
-SHA1 (patch-src_mapi_entry__x86__tls.h) = 11c0f5302d305a77f3a1780d44a2c61f48a66273
+SHA1 (patch-src_mapi_entry__x86-64__tls.h) = a0cbe5c8412fa626926ade0c72c6bc13b1ab4f36
+SHA1 (patch-src_mapi_entry__x86__tls.h) = 740312f64e4848164482f44642859aecc7025853
+SHA1 (patch-src_mapi_entry__x86__tsd.h) = 52d0197fb7b84382147aca98f8cccf24892a9df3
SHA1 (patch-src_mapi_glapi_gen_gl__gentable.py) = 0b1d4ef3f78a9b3726ef7f9921608a48a5e4ac56
-SHA1 (patch-src_mapi_u__current.c) = 38d324fcd1c28d155106ccd248edb5eb1aa9ffac
-SHA1 (patch-src_mapi_u__current.h) = 465a992bd34057e9521f0a33e6f2e25cefc145ca
-SHA1 (patch-src_mesa_drivers_dri_i915_intel__screen.c) = e33f51b3502e8c52ff7283aeb807996717f79f4f
-SHA1 (patch-src_mesa_drivers_dri_i965_brw__performance__query.c) = 1250b3477c4b8013b928772b7dc7f24e8c4b67aa
-SHA1 (patch-src_mesa_drivers_dri_i965_intel__screen.c) = 639d0d2680a98dd5213dfadf608468de6ac54c20
-SHA1 (patch-src_mesa_drivers_dri_swrast_swrast.c) = 3106f350e590f62c8bd29cd85f24f977639dccdb
-SHA1 (patch-src_mesa_drivers_x11_Makefile.am) = 172a8da11a620edce790f64338a0390cd1e93188
-SHA1 (patch-src_mesa_main_context.c) = 74226013b56ad6c9678f1970458538b35967678f
+SHA1 (patch-src_mapi_u__current.c) = bee667c667bb1bd6e3b0f774d6ad6da5b7f0546d
+SHA1 (patch-src_mapi_u__current.h) = 13e91936db8d468c4f4744eb5cc01ad879b53539
+SHA1 (patch-src_mesa_drivers_dri_i915_intel__screen.c) = fb9324dcbc8ffbc00bee6aedcc38db2e94b24f9d
+SHA1 (patch-src_mesa_drivers_dri_i965_brw__bufmgr.c) = ad0fc0cacf59dde38d18f9ceb93411105cdd6c89
+SHA1 (patch-src_mesa_drivers_dri_i965_intel__screen.c) = 1b5de370add6984fb44968c055b7d8d5a54417dd
+SHA1 (patch-src_mesa_drivers_dri_swrast_swrast.c) = 4c0ca7dec2398a15f77b643d0f86af41ca202be3
+SHA1 (patch-src_mesa_main_context.c) = 441026b8f073fd90f2586dfb306482feed6c6834
SHA1 (patch-src_mesa_main_extensions.c) = 2f48bdb1176c2878bb33bcfab7556172b50a987e
SHA1 (patch-src_mesa_main_macros.h) = c5dceaa8dc02a58e5b2273d82e3fe1cc12e327d3
SHA1 (patch-src_mesa_main_shader__query.cpp) = 3f9c31645d87855759def11344dee16af23c7be3
SHA1 (patch-src_mesa_x86_common__x86.c) = f8c4b93443ef66d017f6aa114b877565b30f2598
-SHA1 (patch-src_util_Makefile.am) = e390cd47b784ad08987b81fdbce537968ad4a624
SHA1 (patch-src_util_build__id.c) = fee28ddf5c91208492efcfdebf32e0cfef35502d
SHA1 (patch-src_util_disk__cache.c) = cc0b29780dba5d5b5e43c0798336f16a1f0008de
-SHA1 (patch-src_util_futex.h) = 35097c3b8baf8b969c6ec5ec1feb6f4e0a48237e
-SHA1 (patch-src_util_os__time.c) = 0cdeec38dbb09700f4cfaa075f865e2a617daf31
+SHA1 (patch-src_util_os__time.c) = d33f0cbdfc5a09661f906aab5feda0b0c70f2f48
SHA1 (patch-src_util_ralloc.c) = d311bfd9ed7e673d72e050668d351c1e6552cdc8
+SHA1 (patch-src_util_ralloc.h) = 56ff594c3f5aa450de14363735f4318864102214
SHA1 (patch-src_util_strndup.h) = 73f49694ca48ad6b9a9d8346c5b84fddec2463bd
SHA1 (patch-src_util_u__atomic.h) = 31d4514538ef5ee53012695eb5c66134aaec981e
-SHA1 (patch-src_util_u__queue.c) = ed1ea3f6fc37e9a64894a3e865c48691b6e01b2c
-SHA1 (patch-src_util_u__thread.h) = 1c0d6ea3638e79bb437843e96cfe6786a9616b7b
-SHA1 (patch-src_util_xmlconfig.c) = ad5619e067957b120a70c1c63421c92b356e16ac
+SHA1 (patch-src_util_u__process.c) = 4f905ab7c812ac3f48165857dbc40455879c9f4b
+SHA1 (patch-src_util_u__queue.c) = 17fb475e139d29ae27a54e6f6104d274e50226f7
+SHA1 (patch-src_util_u__thread.h) = 9155dc93d4401aae279e0134b7cd0dc1b53e39fd
+SHA1 (patch-src_util_xmlconfig.c) = fa0cfe2e1348dfb5e91f9c20aae3c43eee1998b5
diff --git a/MesaLib-dfbsd/dri.mk b/MesaLib-dfbsd/dri.mk
index 9a15e89c6e..c573b3f2f6 100644
--- a/MesaLib-dfbsd/dri.mk
+++ b/MesaLib-dfbsd/dri.mk
@@ -1,34 +1,33 @@
-# $NetBSD: dri.mk,v 1.1 2018/10/07 23:49:31 ryoon Exp $
+# $NetBSD: dri.mk,v 1.2 2019/04/11 16:27:03 maya Exp $
#
# Currently, this is for convenience only.
#
.if !defined(DRI_MK)
DRI_MK= # defined
-.if !defined(USE_BUILTIN.MesaLib)
+. if !defined(USE_BUILTIN.MesaLib)
CHECK_BUILTIN.MesaLib:= yes
-. include "../../graphics/MesaLib/builtin.mk"
+. include "../../graphics/MesaLib/builtin.mk"
CHECK_BUILTIN.MesaLib:= no
-.endif
+. endif
-.if !empty(USE_BUILTIN.MesaLib:M[Nn][Oo])
-. if ${OPSYS} != "Darwin"
+. if !empty(USE_BUILTIN.MesaLib:M[Nn][Oo])
+. if ${OPSYS} != "Darwin"
BUILDLINK_API_DEPENDS.libdrm+= libdrm>=2.4.60
-. endif
-. if ${OPSYS} == "Linux"
+. endif
+. if ${OPSYS} == "Linux"
BUILDLINK_API_DEPENDS.libxcb+= libxcb>=1.9.3
+. endif
. endif
-.endif
-.include "../../textproc/expat/buildlink3.mk"
-.include "../../x11/xorgproto/buildlink3.mk"
+. include "../../x11/xorgproto/buildlink3.mk"
# XXX these do not have builtin.mk
-.if ${X11_TYPE} == "modular"
-. include "../../x11/libxshmfence/buildlink3.mk"
-.endif
-.include "../../x11/libXdamage/buildlink3.mk"
-.include "../../x11/libXfixes/buildlink3.mk"
-.include "../../x11/libXxf86vm/buildlink3.mk"
-.if ${OPSYS} != "Darwin"
-. include "../../x11/libdrm/buildlink3.mk"
-.endif
+. if ${X11_TYPE} == "modular"
+. include "../../x11/libxshmfence/buildlink3.mk"
+. endif
+. include "../../x11/libXdamage/buildlink3.mk"
+. include "../../x11/libXfixes/buildlink3.mk"
+. include "../../x11/libXxf86vm/buildlink3.mk"
+. if ${OPSYS} != "Darwin"
+. include "../../x11/libdrm/buildlink3.mk"
+. endif
.endif
diff --git a/MesaLib-dfbsd/options.mk b/MesaLib-dfbsd/options.mk
index ddc31675d6..7f80b2ca17 100644
--- a/MesaLib-dfbsd/options.mk
+++ b/MesaLib-dfbsd/options.mk
@@ -1,4 +1,4 @@
-# $NetBSD: options.mk,v 1.11 2019/01/26 21:28:29 tnn Exp $
+# $NetBSD: options.mk,v 1.12 2019/04/11 16:27:03 maya Exp $
PKG_OPTIONS_VAR= PKG_OPTIONS.MesaLib
PKG_SUPPORTED_OPTIONS= llvm dri
@@ -9,15 +9,40 @@ PKG_SUPPORTED_OPTIONS+= vdpau vaapi
PKG_SUPPORTED_OPTIONS+= osmesa
PKG_SUPPORTED_OPTIONS+= glesv1 glesv2
PKG_SUPPORTED_OPTIONS+= xa
+PKG_SUPPORTED_OPTIONS+= asm
PKG_SUPPORTED_OPTIONS+= noatexit
+PKG_SUPPORTED_OPTIONS+= iris
+PKG_SUGGESTED_OPTIONS+= iris
PKG_SUPPORTED_OPTIONS+= vulkan
+
+PKG_SUPPORTED_OPTIONS+= test_dri3_enable
+PKG_SUPPORTED_OPTIONS+= no_render_node
+PKG_SUPPORTED_OPTIONS+= use_clock_nanosleep_os_time
+PKG_SUPPORTED_OPTIONS+= use_pthread_getcpuclockid
+
+PKG_SUPPORTED_OPTIONS+= revert_i965_softpin
+PKG_SUPPORTED_OPTIONS+= revert_sdma_uploader
+PKG_SUPPORTED_OPTIONS+= require_36_gen4
+
+PKG_SUPPORTED_OPTIONS+= physmem_netbsd
+PKG_SUPPORTED_OPTIONS+= setaffinity_np_netbsd
+PKG_SUPPORTED_OPTIONS+= no_initial_exec_nonnull
+
PKG_SUPPORTED_OPTIONS+= no_cs_queue
PKG_SUPPORTED_OPTIONS+= revert_threaded_context
PKG_SUPPORTED_OPTIONS+= revert_copy_clear
-# PKG_SUGGESTED_OPTIONS+= xvmc
+PKG_SUPPORTED_OPTIONS+= no_getprogramname
+PKG_SUPPORTED_OPTIONS+= strict_xsrc_netbsd
+
+PKG_SUPPORTED_OPTIONS+= x86_tsd_openbsd
+PKG_SUPPORTED_OPTIONS+= no_linear_alloc_destructor
+
+PKG_SUGGESTED_OPTIONS+= xvmc
PKG_SUGGESTED_OPTIONS+= vdpau vaapi
+PKG_SUGGESTED_OPTIONS+= osmesa
+
# glesv1 and glesv2 build error on NetBSD
# due to no table_noop_array for tls patch
.if ${OPSYS} != "NetBSD"
@@ -25,7 +50,12 @@ PKG_SUGGESTED_OPTIONS+= glesv1 glesv2
.endif
PKG_SUGGESTED_OPTIONS+= xa
-PKG_SUGGESTED_OPTIONS+= noatexit
+
+PKG_SUGGESTED_OPTIONS+= asm
+
+# .if ${OPSYS} == "NetBSD"
+# PKG_SUGGESTED_OPTIONS+= noatexit
+# .endif
# The LLVM option enables JIT accelerated software rendering and
# is also required to support the latest RADEON GPUs, so enable it
@@ -54,17 +84,75 @@ PKG_SUGGESTED_OPTIONS+= dri
PKG_SUGGESTED_OPTIONS+= glx-tls
.endif
+.if ${OPSYS} == "DragonFly" || ${OPSYS} == "NetBSD"
+PKG_SUGGESTED_OPTIONS+= test_dri3_enable
+.endif
+
+# Revert patch removing support for no dedicated render nodes
+.if ${OPSYS} == "FreeBSD" || ${OPSYS} == "DragonFly" || ${OPSYS} == "NetBSD"
+PKG_SUGGESTED_OPTIONS+= no_render_node
+.endif
+
+# Use clock_nanosleep() in os_time.c
+.if ${OPSYS} == "FreeBSD" || ${OPSYS} == "DragonFly" || ${OPSYS} == "NetBSD"
+PKG_SUGGESTED_OPTIONS+= use_clock_nanosleep_os_time
+.endif
+
+# pthread_getcpuclockid only in NetBSD 8+
+.if ${OPSYS} == "FreeBSD" || ${OPSYS} == "DragonFly" || ${OPSYS} == "NetBSD"
+PKG_SUGGESTED_OPTIONS+= use_pthread_getcpuclockid
+.endif
+
+.if ${OPSYS} == "DragonFly"
+PKG_SUGGESTED_OPTIONS+= revert_i965_softpin
+PKG_SUGGESTED_OPTIONS+= revert_sdma_uploader
+.endif
+
+# Require Linux 3.6+ intel support for ge4+
+.if ${OPSYS} == "FreeBSD"
+PKG_SUGGESTED_OPTIONS+= require_36_gen4
+.endif
+
+.if ${OPSYS} == "NetBSD"
+PKG_SUGGESTED_OPTIONS+= physmem_netbsd
+.endif
+
+.if ${OPSYS} == "NetBSD"
+PKG_SUGGESTED_OPTIONS+= setaffinity_np_netbsd
+.endif
+
+.if ${OPSYS} == "NetBSD"
+PKG_SUGGESTED_OPTIONS+= no_initial_exec_nonnull
+.endif
+
.if ${OPSYS} == "NetBSD"
PKG_SUGGESTED_OPTIONS+= no_cs_queue
PKG_SUGGESTED_OPTIONS+= revert_threaded_context
PKG_SUGGESTED_OPTIONS+= revert_copy_clear
.endif
+# .if ${OPSYS} == "NetBSD"
+# PKG_SUGGESTED_OPTIONS+= no_getprogramname
+# .endif
+
+# .if ${OPSYS} == "NetBSD"
+# PKG_SUGGESTED_OPTIONS+= strict_xsrc_netbsd
+# .endif
+
+# OpenBSD xenocara tsd dispatch assembly for entry_x86_tsd.h
+.if ${OPSYS} == "OpenBSD"
+PKG_SUGGESTED_OPTIONS+= x86_tsd_openbsd
+.endif
+
+.if ${OPSYS} == "OpenBSD"
+PKG_SUGGESTED_OPTIONS+= no_linear_alloc_destructor
+.endif
+
.include "../../mk/bsd.options.mk"
# gallium
PLIST_VARS+= freedreno i915 i965 nouveau r300 r600 radeonsi \
- swrast svga vc4 virgl vulkan
+ swrast svga vc4 virgl vulkan iris
# classic DRI
PLIST_VARS+= dri swrast_dri nouveau_dri radeon_dri r200
# other features
@@ -75,58 +163,71 @@ PLIST_VARS+= glesv1 glesv2
.if !empty(PKG_OPTIONS:Mdri)
CONFIGURE_ARGS+= --enable-dri
+
# Having DRI3 and egl compiled in by default doesn't hurt, the X server
# will only use it if it is supported at run time.
CONFIGURE_ARGS+= --enable-dri3
-. if ${OPSYS} != "Darwin"
+MESON_ARGS+= -Ddri3=true
+.if ${OPSYS} != "Darwin"
CONFIGURE_ARGS+= --enable-egl
CONFIGURE_ARGS+= --enable-gbm
+MESON_ARGS+= -Degl=true
+MESON_ARGS+= -Dgbm=true
PLIST.egl= yes
PLIST.gbm= yes
-. else
+.else
CONFIGURE_ARGS+= --disable-egl
CONFIGURE_ARGS+= --disable-gbm
-. endif
+MESON_ARGS+= -Degl=false
+MESON_ARGS+= -Dgbm=false
+.endif
-. if !empty(PKG_OPTIONS:Mosmesa)
+.if !empty(PKG_OPTIONS:Mosmesa)
CONFIGURE_ARGS+= --enable-osmesa
+MESON_ARGS+= -Dosmesa=gallium
PLIST.osmesa= yes
-. endif
+.endif
-. if !empty(PKG_OPTIONS:Mglesv1)
+.if !empty(PKG_OPTIONS:Mglesv1)
CONFIGURE_ARGS+= --enable-gles1
+MESON_ARGS+= -Dgles1=true
PLIST.glesv1= yes
-. else
+.else
CONFIGURE_ARGS+= --disable-gles1
-. endif
+MESON_ARGS+= -Dgles1=false
+.endif
-. if !empty(PKG_OPTIONS:Mglesv2)
+.if !empty(PKG_OPTIONS:Mglesv2)
CONFIGURE_ARGS+= --enable-gles2
+MESON_ARGS+= -Dgles2=true
PLIST.glesv2= yes
-. else
+.else
CONFIGURE_ARGS+= --disable-gles2
-. endif
+MESON_ARGS+= -Dgles2=false
+.endif
-. if !empty(PKG_OPTIONS:Mglx-tls)
+.if !empty(PKG_OPTIONS:Mglx-tls)
# Recommended by
# http://www.freedesktop.org/wiki/Software/Glamor/
CONFIGURE_ARGS+= --enable-glx-tls
-. else
+MESON_ARGS+= -Dglx-tls=true
+.else
# (EE) Failed to load /usr/pkg/lib/xorg/modules/extensions/libglx.so:
# /usr/pkg/lib/libGL.so.1: Use of initialized Thread Local Storage with model
# initial-exec and dlopen is not supported
CONFIGURE_ARGS+= --disable-glx-tls
-. endif # glx-tls
+MESON_ARGS+= -Dglx-tls=false
+.endif # glx-tls
# DRI on Linux needs either sysfs or udev
CONFIGURE_ARGS.Linux+= --enable-sysfs
PLIST.dri= yes
-. if ${OPSYS} != "Darwin"
+.if ${OPSYS} != "Darwin"
BUILDLINK_DEPMETHOD.libpciaccess= full
.include "../../sysutils/libpciaccess/buildlink3.mk"
-. endif
+.endif
.include "../../graphics/MesaLib/dri.mk"
DRI_DRIVERS= #
@@ -134,20 +235,29 @@ GALLIUM_DRIVERS= #
VULKAN_DRIVERS= #
# Software rasterizer
+# From meson.build
+# if with_dri_swrast and (with_gallium_softpipe or with_gallium_swr)
+# error('Only one swrast provider can be built')
+# endif
PLIST.swrast_dri= yes
-DRI_DRIVERS+= swrast
-. if ${OPSYS} != "Darwin"
+.if ${OPSYS} != "Darwin"
PLIST.swrast= yes
GALLIUM_DRIVERS+= swrast
-. endif
+.else
+DRI_DRIVERS+= swrast
+.endif
# x86 only drivers
-. if (${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "x86_64") && ${OPSYS} != "Darwin"
+.if (${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "x86_64") && ${OPSYS} != "Darwin"
# svga / VMWare driver
PLIST.svga= yes
GALLIUM_DRIVERS+= svga
# Intel chipsets, x86 only
+# From meson.build:
+# if with_dri_i915 and with_gallium_i915
+# error('Only one i915 provider can be built')
+# endif
PLIST.i915= yes
# GALLIUM_DRIVERS+= i915
DRI_DRIVERS+= i915
@@ -155,17 +265,24 @@ DRI_DRIVERS+= i915
PLIST.i965= yes
DRI_DRIVERS+= i965
-. endif
+.endif
+
+# Intel Iris support
+.if !empty(PKG_OPTIONS:Miris)
+GALLIUM_DRIVERS+= iris
+PLIST.iris= yes
+.endif
# Vulkan support
-. if !empty(PKG_OPTIONS:Mvulkan)
-VULKAN_DRIVERS+= intel
-VULKAN_DRIVERS+= radeon
+.if !empty(PKG_OPTIONS:Mvulkan)
+# VULKAN_DRIVERS+= intel
+# VULKAN_DRIVERS+= radeon
+VULKAN_DRIVERS+= auto
PLIST.vulkan= yes
-. endif
+.endif
# ARM drivers
-. if !empty(MACHINE_PLATFORM:MNetBSD-*-*arm*)
+.if !empty(MACHINE_PLATFORM:MNetBSD-*-*arm*)
# Qualcomm SnapDragon, libdrm_freedreno.pc
#GALLIUM_DRIVERS+= freedreno
#PLIST.freedreno= yes
@@ -173,17 +290,17 @@ PLIST.vulkan= yes
# Broadcom VideoCore 4
GALLIUM_DRIVERS+= vc4
PLIST.vc4= yes
-. endif
+.endif
# qemu Linux guest driver
-. if !empty(MACHINE_PLATFORM:MLinux-*-x86_64)
+.if !empty(MACHINE_PLATFORM:MLinux-*-x86_64)
# XXX test this
#GALLIUM_DRIVERS+= virgl
#PLIST.virgl= yes
-. endif
+.endif
# theoretically cross platform PCI drivers
-. if ${OPSYS} != "Darwin" && empty(MACHINE_PLATFORM:MNetBSD-*-*arm*) && \
+.if ${OPSYS} != "Darwin" && empty(MACHINE_PLATFORM:MNetBSD-*-*arm*) && \
empty(MACHINE_PLATFORM:MNetBSD-*-mipsel)
# AMD Radeon r600
@@ -194,60 +311,72 @@ GALLIUM_DRIVERS+= r600
# FULL_OS_VERSION= ${FULL_OS_VERSION_CMD:sh}
# FreeBSD lacks nouveau support (there are official binaries from Nvidia)
-. if ${OPSYS} != "FreeBSD"
+.if ${OPSYS} != "FreeBSD"
# nVidia
PLIST.nouveau= yes
GALLIUM_DRIVERS+= nouveau
-. endif
+.endif
+# Meson build does not compile these correctly anymore.
# classic DRI radeon
-PLIST.radeon_dri= yes
-DRI_DRIVERS+= radeon
+# PLIST.radeon_dri= yes
+# DRI_DRIVERS+= radeon
# classic DRI r200
PLIST.r200= yes
DRI_DRIVERS+= r200
# FreeBSD lacks nouveau support (there are official binaries from Nvidia)
-. if ${OPSYS} != "FreeBSD"
+.if ${OPSYS} != "FreeBSD"
# classic DRI nouveau
PLIST.nouveau_dri= yes
DRI_DRIVERS+= nouveau
-. endif
-. endif # cross platform PCI drivers
+.endif
+.endif # cross platform PCI drivers
-. if ${OPSYS} == "Darwin"
+.if ${OPSYS} == "Darwin"
CONFIGURE_ARGS+= --with-platforms=x11
+MESON_ARGS+= -Dplatforms=x11
#.elif ${OPSYS} == "Linux"
#.include "../../wip/wayland/buildlink3.mk"
#CONFIGURE_ARGS+= --with-platforms=x11,drm,wayland
#PLIST.wayland= yes
-. else
+.else
CONFIGURE_ARGS+= --with-platforms=x11,drm
-. endif
+MESON_ARGS+= -Dplatforms=x11,drm
+.endif
-. if !empty(PKG_OPTIONS:Mllvm)
+.if !empty(PKG_OPTIONS:Mllvm)
# VA-API and VDPAU
-. if !empty(PKG_OPTIONS:Mvaapi)
+.if !empty(PKG_OPTIONS:Mvaapi)
.include "../../multimedia/libva/available.mk"
-. if ${VAAPI_AVAILABLE} == "yes"
+.if ${VAAPI_AVAILABLE} == "yes"
PLIST.vaapi= yes
.include "../../multimedia/libva/buildlink3.mk"
-. endif
-. endif # vaapi
-. if !empty(PKG_OPTIONS:Mvdpau)
+MESON_ARGS+= -Dgallium-va=true
+.else
+MESON_ARGS+= -Dgallium-va=false
+.endif
+.endif # vaapi
+.if !empty(PKG_OPTIONS:Mvdpau)
.include "../../multimedia/libvdpau/available.mk"
-. if ${VDPAU_AVAILABLE} == "yes"
+.if ${VDPAU_AVAILABLE} == "yes"
PLIST.vdpau= yes
.include "../../multimedia/libvdpau/buildlink3.mk"
-. endif
-. endif # vdpau
+MESON_ARGS+= -Dgallium-vdpau=true
+.else
+MESON_ARGS+= -Dgallium-vdpau=false
+.endif
+.endif # vdpau
# XA is useful for accelerating xf86-video-vmware
-. if !empty(PKG_OPTIONS:Mxa)
+.if !empty(PKG_OPTIONS:Mxa)
CONFIGURE_ARGS+= --enable-xa
+MESON_ARGS+= -Dgallium-xa=true
PLIST.xatracker= yes
-. endif
+.else
+MESON_ARGS+= -Dgallium-xa=false
+.endif
# AMD Radeon r300
PLIST.r300= yes
@@ -257,10 +386,12 @@ PLIST.radeonsi= yes
GALLIUM_DRIVERS+= radeonsi
CONFIGURE_ARGS+= --enable-llvm
CONFIGURE_ARGS+= --enable-llvm-shared-libs
+MESON_ARGS+= -Dllvm=true
+MESON_ARGS+= -Dshared-llvm=true
-. if !exists(/usr/include/libelf.h)
+.if !exists(/usr/include/libelf.h)
.include "../../devel/libelf/buildlink3.mk"
-. endif
+.endif
# XXX update libLLVM to use it instead
#BUILDLINK_API_DEPENDS.libLLVM+= libLLVM>=5.0
@@ -269,15 +400,21 @@ CONFIGURE_ARGS+= --enable-llvm-shared-libs
# BUILDLINK_API_DEPENDS.libLLVM+= libLLVM>=4.0
# .include "../../lang/libLLVM/buildlink3.mk"
CONFIGURE_ENV+= ac_cv_path_ac_pt_LLVM_CONFIG=${LLVM_CONFIG_PATH}
-. else # !llvm
+.else # !llvm
CONFIGURE_ARGS+= --disable-xa
CONFIGURE_ARGS+= --disable-llvm
CONFIGURE_ARGS+= --disable-llvm-shared-libs
-. endif # llvm
+MESON_ARGS+= -Dgallium-xa=false
+MESON_ARGS+= -Dllvm=false
+MESON_ARGS+= -Dshared-llvm=false
+.endif # llvm
CONFIGURE_ARGS+= --with-gallium-drivers=${GALLIUM_DRIVERS:ts,}
CONFIGURE_ARGS+= --with-dri-drivers=${DRI_DRIVERS:ts,}
CONFIGURE_ARGS+= --with-vulkan-drivers=${VULKAN_DRIVERS:ts,}
+MESON_ARGS+= -Dgallium-drivers=${GALLIUM_DRIVERS:ts,}
+MESON_ARGS+= -Ddri-drivers=${DRI_DRIVERS:ts,}
+MESON_ARGS+= -Dvulkan-drivers=${VULKAN_DRIVERS:ts,}
.else # !dri
CONFIGURE_ARGS+= --with-gallium-drivers=
@@ -291,26 +428,82 @@ CONFIGURE_ARGS+= --disable-gles1
CONFIGURE_ARGS+= --disable-gles2
CONFIGURE_ARGS+= --enable-xlib-glx
CONFIGURE_ARGS+= --with-platforms=x11
-# XXX configure looks for expat but doesn't actually need it in non-dri case
-CONFIGURE_ENV+= EXPAT_CFLAGS=" " EXPAT_LIBS=" "
-. if !empty(PKG_OPTIONS:Mllvm)
+MESON_ARGS+= -Dgallium-drivers=
+MESON_ARGS+= -Ddri-drivers=
+MESON_ARGS+= -Ddri3=false
+MESON_ARGS+= -Degl=false
+MESON_ARGS+= -Dgbm=false
+MESON_ARGS+= -Dgles1=false
+MESON_ARGS+= -Dgles2=false
+MESON_ARGS+= -Dglx=xlib
+MESON_ARGS+= -Dplatforms=x11
+.if !empty(PKG_OPTIONS:Mllvm)
PKG_FAIL_REASON+= "The llvm PKG_OPTION must also be disabled when dri is disabled"
-. endif
+.endif
.endif # dri
.if !empty(PKG_OPTIONS:Mdebug)
CONFIGURE_ARGS+= --enable-debug
+MESON_ARGS+= --buildtype=debug
+.endif
+
+.if !empty(PKG_OPTIONS:Masm)
+.else
+MESON_ARGS+= -Dasm=false
.endif
.if !empty(PKG_OPTIONS:Mxvmc)
.include "../../x11/libXvMC/buildlink3.mk"
PLIST.xvmc= yes
+MESON_ARGS+= -Dgallium-xvmc=true
+.else
+MESON_ARGS+= -Dgallium-xvmc=false
.endif
.if !empty(PKG_OPTIONS:Mnoatexit)
CPPFLAGS+= -DHAVE_NOATEXIT
.endif
+.if !empty(PKG_OPTIONS:Mtest_dri3_enable)
+CPPFLAGS+= -DTEST_DRI3_ENABLE
+.endif
+
+.if !empty(PKG_OPTIONS:Mno_render_node)
+CPPFLAGS+= -DNO_RENDER_NODE
+.endif
+
+.if !empty(PKG_OPTIONS:Muse_clock_nanosleep_os_time)
+CPPFLAGS+= -DUSE_CLOCK_NANOSLEEP_OS_TIME
+.endif
+
+.if !empty(PKG_OPTIONS:Muse_pthread_getcpuclockid)
+CPPFLAGS+= -DUSE_PTHREAD_GETCPUCLOCKID
+.endif
+
+.if !empty(PKG_OPTIONS:Mrevert_i965_softpin)
+CPPFLAGS+= -DREVERT_I965_SOFTPIN
+.endif
+
+.if !empty(PKG_OPTIONS:Mrevert_sdma_uploader)
+CPPFLAGS+= -DREVERT_SDMA_UPLOADER
+.endif
+
+.if !empty(PKG_OPTIONS:Mrequire_36_gen4)
+CPPFLAGS+= -DREQUIRE_36_GEN4
+.endif
+
+.if !empty(PKG_OPTIONS:Mphysmem_netbsd)
+CPPFLAGS+= -DPHYSMEM_NETBSD
+.endif
+
+.if !empty(PKG_OPTIONS:Msetaffinity_np_netbsd)
+CPPFLAGS+= -DSETAFFINITY_NP_NETBSD
+.endif
+
+.if !empty(PKG_OPTIONS:Mno_initial_exec_nonnull)
+CPPFLAGS+= -DNO_INITIAL_EXEC_NONNULL
+.endif
+
.if !empty(PKG_OPTIONS:Mno_cs_queue)
CPPFLAGS+= -DNO_CS_QUEUE
.endif
@@ -322,3 +515,19 @@ CPPFLAGS+= -DREVERT_THREADED_CONTEXT
.if !empty(PKG_OPTIONS:Mrevert_copy_clear)
CPPFLAGS+= -DREVERT_COPY_CLEAR
.endif
+
+.if !empty(PKG_OPTIONS:Mno_getprogramname)
+CPPFLAGS+= -DNO_GETPROGRAMNAME
+.endif
+
+.if !empty(PKG_OPTIONS:Mstrict_xsrc_netbsd)
+CPPFLAGS+= -DSTRICT_XSRC_NETBSD
+.endif
+
+.if !empty(PKG_OPTIONS:Mx86_tsd_openbsd)
+CPPFLAGS+= -DX86_TSD_OPENBSD
+.endif
+
+.if !empty(PKG_OPTIONS:Mno_linear_alloc_destructor)
+CPPFLAGS+= -DNO_LINEAR_ALLOC_DESTRUCTOR
+.endif
diff --git a/MesaLib-dfbsd/patches/patch-configure.ac b/MesaLib-dfbsd/patches/patch-configure.ac
deleted file mode 100644
index 5f64f7cb08..0000000000
--- a/MesaLib-dfbsd/patches/patch-configure.ac
+++ /dev/null
@@ -1,127 +0,0 @@
-$NetBSD: patch-configure.ac,v 1.5 2019/01/20 09:50:28 tnn Exp $
-
-Don't check for pthread stubs anywhere, as we don't provide it.
-
-From FreeBSD ports graphics/mesa-dri 18.0.0,
-DragonFly dports graphics/mesa-dri 17.3.1,
-files/patch-configure
-
-For FreeBSD 11.2-RELEASE
- CXXLD mesa_dri_drivers.la
-/usr/bin/ld: unrecognized option '--build-id=sha1'
-
-* But do NOT extend to FreeBSD, instead use binutils ld to link.
-osx: ld does not support --build-ld
-
-* For FreeBSD: Use monotonic clock for timeouts.
-
-* For FreeBSD: Implement futex_wake() and futex_wait() via _umtx_op()
-
-* dri3: Mon Apr 10 19:14:48 2017 UTC
-DRI3 remains enabled at compile time, but it is now disabled at
-runtime for stock FreeBSD. Set LIBGL_DRI3_ENABLE in the
-environment to enable DRI3.
-This change was made to work around a problem in libEGL,
-which fails to fall back to using DRI2 when run on a system
-without DRI3 support.
-
---- configure.ac.orig 2019-01-17 11:26:22.000000000 +0000
-+++ configure.ac
-@@ -726,7 +726,7 @@ dnl
- dnl OSX linker does not support build-id
- dnl
- case "$host_os" in
--darwin*)
-+darwin* | solaris*)
- LD_BUILD_ID=""
- ;;
- *)
-@@ -931,7 +931,7 @@ case "$host_os" in
- darwin*)
- ;;
- *)
-- AC_CHECK_FUNCS([clock_gettime], [CLOCK_LIB=],
-+ AC_CHECK_FUNCS([clock_gettime clock_nanosleep], [CLOCK_LIB=],
- [AC_CHECK_LIB([rt], [clock_gettime], [CLOCK_LIB=-lrt],
- [AC_MSG_ERROR([Could not find clock_gettime])])])
- AC_SUBST([CLOCK_LIB])
-@@ -941,6 +941,9 @@ esac
- dnl See if posix_memalign is available
- AC_CHECK_FUNC([posix_memalign], [DEFINES="$DEFINES -DHAVE_POSIX_MEMALIGN"])
-
-+dnl See if open_memstream is available
-+AC_CHECK_FUNC([open_memstream], [DEFINES="$DEFINES -DHAVE_OPEN_MEMSTREAM"])
-+
- dnl Check for zlib
- PKG_CHECK_MODULES([ZLIB], [zlib >= $ZLIB_REQUIRED])
- DEFINES="$DEFINES -DHAVE_ZLIB"
-@@ -966,7 +969,7 @@ PTHREAD_LIBS="$PTHREAD_LIBS -pthread"
- dnl pthread-stubs is mandatory on some BSD platforms, due to the nature of the
- dnl project. Even then there's a notable issue as described in the project README
- case "$host_os" in
--linux* | cygwin* | darwin* | solaris* | *-gnu* | gnu* | openbsd*)
-+*)
- pthread_stubs_possible="no"
- ;;
- * )
-@@ -982,8 +985,12 @@ save_LIBS="$LIBS"
- LIBS="$PTHREAD_LIBS"
- AC_MSG_CHECKING(whether pthread_setaffinity_np is supported)
- AC_LINK_IFELSE([AC_LANG_SOURCE([[
-+ #if defined(__DragonFly__) || defined(__FreeBSD__)
-+ #include <pthread_np.h>
-+ #else
- #define _GNU_SOURCE
- #include <pthread.h>
-+ #endif
- int main() {
- void *a = (void*) &pthread_setaffinity_np;
- long b = (long) a;
-@@ -995,7 +1002,10 @@ AC_LINK_IFELSE([AC_LANG_SOURCE([[
- LIBS="$save_LIBS"
-
- dnl Check for futex for fast inline simple_mtx_t.
--AC_CHECK_HEADER([linux/futex.h], [DEFINES="$DEFINES -DHAVE_LINUX_FUTEX_H"])
-+AC_CHECK_HEADERS([linux/futex.h sys/umtx.h],
-+ [DEFINES="$DEFINES -DHAVE_LINUX_FUTEX_H"],,
-+ [#include <errno.h>
-+ #include <sys/types.h>])
-
- dnl SELinux awareness.
- AC_ARG_ENABLE([selinux],
-@@ -1278,7 +1288,7 @@ fi
- AC_SUBST(LIBSENSORS_LIBS)
-
- case "$host_os" in
--linux*)
-+linux* | freebsd* | dragonfly*)
- dri3_default=yes
- ;;
- *)
-@@ -1908,7 +1918,7 @@ if test x"$enable_dri3" = xyes; then
- dri3_modifier_modules="xcb-dri3 >= $XCBDRI3_MODIFIERS_REQUIRED xcb-present >= $XCBPRESENT_MODIFIERS_REQUIRED"
- PKG_CHECK_MODULES([XCB_DRI3_MODIFIERS], [$dri3_modifier_modules], [have_dri3_modifiers=yes], [have_dri3_modifiers=no])
-
-- if test "x$have_dri3_modifiers" == xyes; then
-+ if test "x$have_dri3_modifiers" = xyes; then
- DEFINES="$DEFINES -DHAVE_DRI3_MODIFIERS"
- fi
- fi
-@@ -2505,8 +2515,6 @@ if test "x$enable_opencl" = xyes; then
- CLANG_LIBDIR=${LLVM_LIBDIR}
- fi
- CLANG_RESOURCE_DIR=$CLANG_LIBDIR/clang/${LLVM_VERSION}
-- AS_IF([test ! -f "$CLANG_RESOURCE_DIR/include/stddef.h"],
-- [AC_MSG_ERROR([Could not find clang internal header stddef.h in $CLANG_RESOURCE_DIR Use --with-clang-libdir to specify the correct path to the clang libraries.])])
- fi
- AM_CONDITIONAL(HAVE_CLOVER, test "x$enable_opencl" = xyes)
- AM_CONDITIONAL(HAVE_CLOVER_ICD, test "x$enable_opencl_icd" = xyes)
-@@ -2941,7 +2949,7 @@ if test "x$enable_llvm" = xyes; then
- dnl the LLVM library propagated in the Libs.private of the respective .pc
- dnl file which ensures complete dependency information when statically
- dnl linking.
-- if test "x$enable_glx" == xgallium-xlib; then
-+ if test "x$enable_glx" = xgallium-xlib; then
- GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $LLVM_LIBS"
- fi
- if test "x$enable_gallium_osmesa" = xyes; then
diff --git a/MesaLib-dfbsd/patches/patch-include_GL_internal_dri__interface.h b/MesaLib-dfbsd/patches/patch-include_GL_internal_dri__interface.h
index f1e6881180..11359697e9 100644
--- a/MesaLib-dfbsd/patches/patch-include_GL_internal_dri__interface.h
+++ b/MesaLib-dfbsd/patches/patch-include_GL_internal_dri__interface.h
@@ -5,9 +5,11 @@ From FreeBSD ports graphics/mesa-dri 17.2.4.
GCC on 9.x doesn't allow types to be overwritten, these types are defined
in drm.h also, which causes build issues in xorg-server.
---- include/GL/internal/dri_interface.h.orig 2017-11-20 14:25:47.000000000 +0000
+From NetBSD xsrc: prevent re-definitions from drm.h
+
+--- include/GL/internal/dri_interface.h.orig 2019-04-17 22:16:19.000000000 +0000
+++ include/GL/internal/dri_interface.h
-@@ -40,6 +40,9 @@
+@@ -40,13 +40,19 @@
#ifndef DRI_INTERFACE_H
#define DRI_INTERFACE_H
@@ -17,11 +19,13 @@ in drm.h also, which causes build issues in xorg-server.
#ifdef HAVE_LIBDRM
#include <drm.h>
#else
-@@ -47,6 +50,7 @@ typedef unsigned int drm_context_t;
++#if !defined(_DRM_H_) || !defined(STRICT_XSRC_NETBSD)
+ typedef unsigned int drm_context_t;
typedef unsigned int drm_drawable_t;
typedef struct drm_clip_rect drm_clip_rect_t;
#endif
++#endif
+#endif /* __FreeBSD__ || __DragonFly__ */
- #include <stdint.h>
+ #include <GL/gl.h>
diff --git a/MesaLib-dfbsd/patches/patch-meson.build b/MesaLib-dfbsd/patches/patch-meson.build
new file mode 100644
index 0000000000..9c28e59102
--- /dev/null
+++ b/MesaLib-dfbsd/patches/patch-meson.build
@@ -0,0 +1,63 @@
+$NetBSD$
+
+--- meson.build.orig 2019-03-15 01:02:19.000000000 +0000
++++ meson.build
+@@ -50,6 +50,7 @@ with_tests = get_option('build-tests')
+ with_valgrind = get_option('valgrind')
+ with_libunwind = get_option('libunwind')
+ with_asm = get_option('asm')
++with_glx_tls = get_option('glx-tls')
+ with_glx_read_only_text = get_option('glx-read-only-text')
+ with_glx_direct = get_option('glx-direct')
+ with_osmesa = get_option('osmesa')
+@@ -343,7 +344,10 @@ if with_egl and not (with_platform_drm o
+ endif
+ endif
+
+-pre_args += '-DGLX_USE_TLS'
++if with_glx_tls
++ pre_args += '-DGLX_USE_TLS'
++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')
+@@ -1011,7 +1015,7 @@ foreach h : ['xlocale.h', 'sys/sysctl.h'
+ endif
+ endforeach
+
+-foreach f : ['strtof', 'mkostemp', 'posix_memalign', 'timespec_get', 'memfd_create']
++foreach f : ['strtof', 'mkostemp', 'posix_memalign', 'timespec_get', 'memfd_create', 'open_memstream']
+ if cc.has_function(f)
+ pre_args += '-DHAVE_@0@'.format(f.to_upper())
+ endif
+@@ -1094,11 +1098,28 @@ else
+ dep_clock = cc.find_library('rt')
+ endif
+
++foreach g : ['clock_gettime', 'clock_nanotime']
++ if cc.has_function(
++ g,
++ dependencies : dep_clock,
++ prefix : '#include <time.h>')
++ pre_args += '-DHAVE_@0@'.format(g.to_upper())
++ endif
++endforeach
++
+ # TODO: some of these may be conditional
+ dep_zlib = dependency('zlib', version : '>= 1.2.3')
+ pre_args += '-DHAVE_ZLIB'
+ dep_thread = dependency('threads')
+-if dep_thread.found() and host_machine.system() != 'windows'
++if dep_thread.found() and ['freebsd', 'dragonfly'].contains(host_machine.system())
++ pre_args += '-DHAVE_PTHREAD'
++ if cc.has_function(
++ 'pthread_setaffinity_np',
++ dependencies : dep_thread,
++ prefix : '#include <pthread_np.h>')
++ pre_args += '-DHAVE_PTHREAD_SETAFFINITY'
++ endif
++elif dep_thread.found() and host_machine.system() != 'windows'
+ pre_args += '-DHAVE_PTHREAD'
+ if cc.has_function(
+ 'pthread_setaffinity_np',
diff --git a/MesaLib-dfbsd/patches/patch-meson__options.txt b/MesaLib-dfbsd/patches/patch-meson__options.txt
new file mode 100644
index 0000000000..c5b1045103
--- /dev/null
+++ b/MesaLib-dfbsd/patches/patch-meson__options.txt
@@ -0,0 +1,17 @@
+$NetBSD$
+
+--- meson_options.txt.orig 2019-03-06 23:05:20.000000000 +0000
++++ meson_options.txt
+@@ -212,6 +212,12 @@ option(
+ description : 'Build support for GLX platform'
+ )
+ option(
++ 'glx-tls',
++ type : 'boolean',
++ value : true,
++ description : 'Enable TLS (Thread Local Storage) support in GLX',
++)
++option(
+ 'egl',
+ type : 'combo',
+ value : 'auto',
diff --git a/MesaLib-dfbsd/patches/patch-src_amd_vulkan_radv__device.c b/MesaLib-dfbsd/patches/patch-src_amd_vulkan_radv__device.c
index 024fc9d848..f0ec6ea1be 100644
--- a/MesaLib-dfbsd/patches/patch-src_amd_vulkan_radv__device.c
+++ b/MesaLib-dfbsd/patches/patch-src_amd_vulkan_radv__device.c
@@ -4,11 +4,11 @@ From graphics/mesa-dri: update to 18.3.1
https://reviews.freebsd.org/D17872
---- src/amd/vulkan/radv_device.c.orig 2018-12-11 21:13:57.000000000 +0000
+--- src/amd/vulkan/radv_device.c.orig 2019-04-23 23:49:39.000000000 +0000
+++ src/amd/vulkan/radv_device.c
-@@ -50,6 +50,14 @@
- #include "util/debug.h"
- #include "util/mesa-sha1.h"
+@@ -51,6 +51,14 @@
+ #include "compiler/glsl_types.h"
+ #include "util/xmlpool.h"
+#ifndef CLOCK_MONOTONIC_RAW
+# ifdef CLOCK_MONOTONIC_FAST
diff --git a/MesaLib-dfbsd/patches/patch-src_compiler_builtin__type__macros.h b/MesaLib-dfbsd/patches/patch-src_compiler_builtin__type__macros.h
index 6e1063880a..b619541018 100644
--- a/MesaLib-dfbsd/patches/patch-src_compiler_builtin__type__macros.h
+++ b/MesaLib-dfbsd/patches/patch-src_compiler_builtin__type__macros.h
@@ -8,7 +8,7 @@ Workaround netbsd headers.
* language version or extension might provide them.
*/
-+#ifdef __NetBSD__ /* XXX https://mail-index.netbsd.org/tech-userlevel/2018/09/08/msg011381.html */
++#if defined(__NetBSD__) && !defined(STRICT_XSRC_NETBSD) /* XXX https://mail-index.netbsd.org/tech-userlevel/2018/09/08/msg011381.html */
+#undef uint8_t
+#undef uint16_t
+#undef uint32_t
diff --git a/MesaLib-dfbsd/patches/patch-src_egl_drivers_dri2_platform__x11.c b/MesaLib-dfbsd/patches/patch-src_egl_drivers_dri2_platform__x11.c
index 51335d375f..4d7c77b551 100644
--- a/MesaLib-dfbsd/patches/patch-src_egl_drivers_dri2_platform__x11.c
+++ b/MesaLib-dfbsd/patches/patch-src_egl_drivers_dri2_platform__x11.c
@@ -46,7 +46,7 @@ without DRI3 support.
if (!disp->Options.ForceSoftware) {
#ifdef HAVE_DRI3
- if (!env_var_as_boolean("LIBGL_DRI3_DISABLE", false))
-+#if ((defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) && !defined(__DRM_NEXT__)) || defined(__DragonFly__) || defined(__NetBSD__)
++#if ((defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) && !defined(__DRM_NEXT__)) || defined(TEST_DRI3_ENABLE)
+ if (env_var_as_boolean("LIBGL_DRI3_ENABLE", false))
+#endif
+ if (!env_var_as_boolean("LIBGL_DRI3_DISABLE", false)) {
diff --git a/MesaLib-dfbsd/patches/patch-src_egl_main_eglglobals.c b/MesaLib-dfbsd/patches/patch-src_egl_main_eglglobals.c
index 26495a9f2f..2c3a00bc34 100644
--- a/MesaLib-dfbsd/patches/patch-src_egl_main_eglglobals.c
+++ b/MesaLib-dfbsd/patches/patch-src_egl_main_eglglobals.c
@@ -5,9 +5,12 @@ atexit() is not a good idea in shared libraries.
FreeBSD reported atexit bug for 10.6:
https://bugs.freedesktop.org/show_bug.cgi?id=91869
---- src/egl/main/eglglobals.c.orig 2018-01-18 21:30:28.000000000 +0000
+From NetBSD xsrc:
+The third argument of mincore(2) is unsigned only on linux.
+
+--- src/egl/main/eglglobals.c.orig 2019-05-03 15:59:12.000000000 +0000
+++ src/egl/main/eglglobals.c
-@@ -85,11 +85,22 @@ struct _egl_global _eglGlobal =
+@@ -93,11 +93,22 @@ struct _egl_global _eglGlobal =
.debugTypesEnabled = _EGL_DEBUG_BIT_CRITICAL | _EGL_DEBUG_BIT_ERROR,
};
@@ -30,7 +33,7 @@ https://bugs.freedesktop.org/show_bug.cgi?id=91869
for (i = _eglGlobal.NumAtExitCalls - 1; i >= 0; i--)
_eglGlobal.AtExitCalls[i]();
}
-@@ -99,14 +110,20 @@ void
+@@ -107,14 +118,20 @@ void
_eglAddAtExitCall(void (*func)(void))
{
if (func) {
@@ -51,3 +54,15 @@ https://bugs.freedesktop.org/show_bug.cgi?id=91869
assert(_eglGlobal.NumAtExitCalls < ARRAY_SIZE(_eglGlobal.AtExitCalls));
_eglGlobal.AtExitCalls[_eglGlobal.NumAtExitCalls++] = func;
+@@ -162,7 +179,10 @@ _eglPointerIsDereferencable(void *p)
+ {
+ #ifdef HAVE_MINCORE
+ uintptr_t addr = (uintptr_t) p;
+- unsigned char valid = 0;
++#ifdef __linux__
++ unsigned
++#endif
++ char valid = 0;
+ const long page_size = getpagesize();
+
+ if (p == NULL)
diff --git a/MesaLib-dfbsd/patches/patch-src_gallium_auxiliary_pipe-loader_pipe__loader__drm.c b/MesaLib-dfbsd/patches/patch-src_gallium_auxiliary_pipe-loader_pipe__loader__drm.c
index d9d3b98897..49110fbb10 100644
--- a/MesaLib-dfbsd/patches/patch-src_gallium_auxiliary_pipe-loader_pipe__loader__drm.c
+++ b/MesaLib-dfbsd/patches/patch-src_gallium_auxiliary_pipe-loader_pipe__loader__drm.c
@@ -31,7 +31,7 @@ v2: Clarify the linking topic in the commit message.
return ret;
}
-+#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__) || defined(__NetBSD__)
++#if defined(NO_RENDER_NODE)
+static int
+open_drm_minor(int minor)
+{
@@ -48,7 +48,7 @@ v2: Clarify the linking topic in the commit message.
int
pipe_loader_drm_probe(struct pipe_loader_device **devs, int ndev)
{
-+#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__) || defined(__NetBSD__)
++#if defined(NO_RENDER_NODE)
+ int i, k, fd, num_render_node_devs;
+ int j = 0;
+
@@ -68,7 +68,7 @@ v2: Clarify the linking topic in the commit message.
continue;
}
-+#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__) || defined(__NetBSD__)
++#if defined(NO_RENDER_NODE)
+ render_node_devs[j].vendor_id = dev->u.pci.vendor_id;
+ render_node_devs[j].chip_id = dev->u.pci.chip_id;
+
@@ -80,7 +80,7 @@ v2: Clarify the linking topic in the commit message.
j++;
}
-+#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__) || defined(__NetBSD__)
++#if defined(NO_RENDER_NODE)
+ num_render_node_devs = j;
+
+ /* Next look for drm devices. */
diff --git a/MesaLib-dfbsd/patches/patch-src_gallium_drivers_freedreno_freedreno__screen.c b/MesaLib-dfbsd/patches/patch-src_gallium_drivers_freedreno_freedreno__screen.c
index 8732e9e5dc..29b0d5d436 100644
--- a/MesaLib-dfbsd/patches/patch-src_gallium_drivers_freedreno_freedreno__screen.c
+++ b/MesaLib-dfbsd/patches/patch-src_gallium_drivers_freedreno_freedreno__screen.c
@@ -4,7 +4,7 @@ From FreeBSD ports graphics/mesa-dri 18.1.4.
- Without sysinfo() fall back to sysconf()
---- src/gallium/drivers/freedreno/freedreno_screen.c.orig 2018-07-13 18:41:27.000000000 +0000
+--- src/gallium/drivers/freedreno/freedreno_screen.c.orig 2019-04-25 21:13:31.000000000 +0000
+++ src/gallium/drivers/freedreno/freedreno_screen.c
@@ -43,7 +43,11 @@
#include <errno.h>
@@ -18,8 +18,8 @@ From FreeBSD ports graphics/mesa-dri 18.1.4.
#include "freedreno_screen.h"
#include "freedreno_resource.h"
-@@ -837,9 +841,13 @@ fd_screen_create(struct fd_device *dev)
- screen->priority_mask = (1 << val) - 1;
+@@ -832,9 +836,13 @@ fd_screen_create(struct fd_device *dev,
+ screen->has_robustness = val;
}
+#ifdef __GLIBC__
diff --git a/MesaLib-dfbsd/patches/patch-src_gallium_drivers_iris_meson.build b/MesaLib-dfbsd/patches/patch-src_gallium_drivers_iris_meson.build
new file mode 100644
index 0000000000..77b553cd06
--- /dev/null
+++ b/MesaLib-dfbsd/patches/patch-src_gallium_drivers_iris_meson.build
@@ -0,0 +1,22 @@
+$NetBSD$
+
+--- src/gallium/drivers/iris/meson.build.orig 2019-04-23 07:24:08.000000000 +0000
++++ src/gallium/drivers/iris/meson.build
+@@ -62,7 +62,7 @@ iris_gen_libs = []
+ foreach v : ['80', '90', '100', '110']
+ iris_gen_libs += static_library(
+ 'libiris_gen@0@'.format(v),
+- ['iris_blorp.c', 'iris_state.c', gen_xml_pack],
++ ['iris_blorp.c', 'iris_state.c', gen_xml_pack, nir_opcodes_h, nir_builder_opcodes_h, nir_intrinsics_h],
+ include_directories : [inc_common, inc_intel, inc_nir],
+ c_args : [
+ c_vis_args, no_override_init_args, c_sse2_args,
+@@ -74,7 +74,7 @@ endforeach
+
+ libiris = static_library(
+ 'iris',
+- [files_libiris, gen_xml_pack, nir_opcodes_h, nir_builder_opcodes_h,
++ [files_libiris, gen_xml_pack, nir_opcodes_h, nir_builder_opcodes_h, nir_intrinsics_h,
+ iris_driinfo_h],
+ include_directories : [
+ inc_src, inc_include, inc_gallium, inc_gallium_aux, inc_intel, inc_nir,
diff --git a/MesaLib-dfbsd/patches/patch-src_gallium_drivers_nouveau_meson.build b/MesaLib-dfbsd/patches/patch-src_gallium_drivers_nouveau_meson.build
new file mode 100644
index 0000000000..609315ceb6
--- /dev/null
+++ b/MesaLib-dfbsd/patches/patch-src_gallium_drivers_nouveau_meson.build
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- src/gallium/drivers/nouveau/meson.build.orig 2019-03-21 00:58:06.000000000 +0000
++++ src/gallium/drivers/nouveau/meson.build
+@@ -211,7 +211,7 @@ files_libnouveau = files(
+
+ libnouveau = static_library(
+ 'nouveau',
+- [files_libnouveau, nir_opcodes_h],
++ [files_libnouveau, nir_opcodes_h, nir_intrinsics_h],
+ include_directories : [
+ inc_src, inc_include, inc_gallium, inc_gallium_aux, inc_common,
+ ],
diff --git a/MesaLib-dfbsd/patches/patch-src_gallium_drivers_radeonsi_si__buffer.c b/MesaLib-dfbsd/patches/patch-src_gallium_drivers_radeonsi_si__buffer.c
new file mode 100644
index 0000000000..fdbe253ae1
--- /dev/null
+++ b/MesaLib-dfbsd/patches/patch-src_gallium_drivers_radeonsi_si__buffer.c
@@ -0,0 +1,65 @@
+$NetBSD$
+
+Option to revert:
+2019-02-20
+radeonsi: use SDMA for uploading data through const_uploader
+
+https://cgit.freedesktop.org/mesa/mesa/commit/?id=edbd2c1ff559cde1d9e22a9fb9059747782a72a7
+
+--- src/gallium/drivers/radeonsi/si_buffer.c.orig 2019-02-21 02:04:29.000000000 +0000
++++ src/gallium/drivers/radeonsi/si_buffer.c
+@@ -440,6 +440,9 @@ static void *si_buffer_transfer_map(stru
+ }
+ }
+
++#if defined(REVERT_SDMA_UPLOADER)
++ if ((usage & PIPE_TRANSFER_DISCARD_RANGE) &&
++#else
+ if (usage & PIPE_TRANSFER_FLUSH_EXPLICIT &&
+ buf->b.b.flags & SI_RESOURCE_FLAG_UPLOAD_FLUSH_EXPLICIT_VIA_SDMA) {
+ usage &= ~(PIPE_TRANSFER_UNSYNCHRONIZED |
+@@ -449,6 +452,7 @@ static void *si_buffer_transfer_map(stru
+ }
+
+ if (usage & PIPE_TRANSFER_DISCARD_RANGE &&
++#endif
+ ((!(usage & (PIPE_TRANSFER_UNSYNCHRONIZED |
+ PIPE_TRANSFER_PERSISTENT))) ||
+ (buf->flags & RADEON_FLAG_SPARSE))) {
+@@ -461,6 +465,12 @@ static void *si_buffer_transfer_map(stru
+ si_rings_is_buffer_referenced(sctx, buf->buf, RADEON_USAGE_READWRITE) ||
+ !sctx->ws->buffer_wait(buf->buf, 0, RADEON_USAGE_READWRITE)) {
+ /* Do a wait-free write-only transfer using a temporary buffer. */
++#if defined(REVERT_SDMA_UPLOADER)
++ unsigned offset;
++ struct si_resource *staging = NULL;
++
++ u_upload_alloc(ctx->stream_uploader, 0,
++#else
+ struct u_upload_mgr *uploader;
+ struct si_resource *staging = NULL;
+ unsigned offset;
+@@ -475,6 +485,7 @@ static void *si_buffer_transfer_map(stru
+ uploader = sctx->b.stream_uploader;
+
+ u_upload_alloc(uploader, 0,
++#endif
+ box->width + (box->x % SI_MAP_BUFFER_ALIGNMENT),
+ sctx->screen->info.tcc_cache_line_size,
+ &offset, (struct pipe_resource**)&staging,
+@@ -548,6 +559,7 @@ static void si_buffer_do_flush_region(st
+ transfer->box.x % SI_MAP_BUFFER_ALIGNMENT +
+ (box->x - transfer->box.x);
+
++#if !defined(REVERT_SDMA_UPLOADER)
+ if (buf->b.b.flags & SI_RESOURCE_FLAG_UPLOAD_FLUSH_EXPLICIT_VIA_SDMA) {
+ /* This should be true for all uploaders. */
+ assert(transfer->box.x == 0);
+@@ -587,6 +599,7 @@ static void si_buffer_do_flush_region(st
+ up->size = box->width;
+ return;
+ }
++#endif
+
+ /* Copy the staging buffer into the original one. */
+ si_copy_buffer(sctx, transfer->resource, &stransfer->staging->b.b,
diff --git a/MesaLib-dfbsd/patches/patch-src_gallium_drivers_radeonsi_si__compute__blit.c b/MesaLib-dfbsd/patches/patch-src_gallium_drivers_radeonsi_si__compute__blit.c
index 641d124346..7368fde31e 100644
--- a/MesaLib-dfbsd/patches/patch-src_gallium_drivers_radeonsi_si__compute__blit.c
+++ b/MesaLib-dfbsd/patches/patch-src_gallium_drivers_radeonsi_si__compute__blit.c
@@ -5,9 +5,9 @@ Commit: 9b331e462e5021d994859756d46cd2519d9c9c6e
https://cgit.freedesktop.org/mesa/mesa/commit/?id=9b331e462e5021d994859756d46cd2519d9c9c6e
---- src/gallium/drivers/radeonsi/si_compute_blit.c.orig 2019-02-02 23:08:03.000000000 +0000
+--- src/gallium/drivers/radeonsi/si_compute_blit.c.orig 2019-04-23 07:24:08.000000000 +0000
+++ src/gallium/drivers/radeonsi/si_compute_blit.c
-@@ -33,10 +33,17 @@ static enum si_cache_policy get_cache_po
+@@ -34,10 +34,17 @@ static enum si_cache_policy get_cache_po
enum si_coherency coher,
uint64_t size)
{
@@ -25,9 +25,9 @@ https://cgit.freedesktop.org/mesa/mesa/commit/?id=9b331e462e5021d994859756d46cd2
return L2_BYPASS;
}
-@@ -179,6 +186,52 @@ void si_clear_buffer(struct si_context *
- uint64_t offset, uint64_t size, uint32_t *clear_value,
- uint32_t clear_value_size, enum si_coherency coher)
+@@ -189,6 +196,52 @@ void si_clear_buffer(struct si_context *
+ uint32_t clear_value_size, enum si_coherency coher,
+ bool force_cpdma)
{
+#if defined(REVERT_COPY_CLEAR)
+
@@ -78,7 +78,7 @@ https://cgit.freedesktop.org/mesa/mesa/commit/?id=9b331e462e5021d994859756d46cd2
if (!size)
return;
-@@ -257,6 +310,7 @@ void si_clear_buffer(struct si_context *
+@@ -268,6 +321,7 @@ void si_clear_buffer(struct si_context *
offset += aligned_size;
size -= aligned_size;
}
@@ -86,7 +86,7 @@ https://cgit.freedesktop.org/mesa/mesa/commit/?id=9b331e462e5021d994859756d46cd2
/* Handle non-dword alignment. */
if (size) {
-@@ -274,6 +328,58 @@ static void si_pipe_clear_buffer(struct
+@@ -285,8 +339,61 @@ static void si_pipe_clear_buffer(struct
const void *clear_value,
int clear_value_size)
{
@@ -140,20 +140,15 @@ https://cgit.freedesktop.org/mesa/mesa/commit/?id=9b331e462e5021d994859756d46cd2
+ }
+
+ si_clear_buffer(sctx, dst, offset, size, &dword_value,
-+ clear_value_size, SI_COHERENCY_SHADER);
++ clear_value_size, SI_COHERENCY_SHADER, false);
+#else
- enum si_coherency coher;
-
- if (dst->flags & SI_RESOURCE_FLAG_SO_FILLED_SIZE)
-@@ -283,6 +389,7 @@ static void si_pipe_clear_buffer(struct
-
si_clear_buffer((struct si_context*)ctx, dst, offset, size, (uint32_t*)clear_value,
- clear_value_size, coher);
+ clear_value_size, SI_COHERENCY_SHADER, false);
+#endif
}
void si_copy_buffer(struct si_context *sctx,
-@@ -295,6 +402,17 @@ void si_copy_buffer(struct si_context *s
+@@ -299,6 +406,17 @@ void si_copy_buffer(struct si_context *s
enum si_coherency coher = SI_COHERENCY_SHADER;
enum si_cache_policy cache_policy = get_cache_policy(sctx, coher, size);
@@ -171,7 +166,7 @@ https://cgit.freedesktop.org/mesa/mesa/commit/?id=9b331e462e5021d994859756d46cd2
/* Only use compute for VRAM copies on dGPUs. */
if (sctx->screen->info.has_dedicated_vram &&
si_resource(dst)->domains & RADEON_DOMAIN_VRAM &&
-@@ -307,6 +425,7 @@ void si_copy_buffer(struct si_context *s
+@@ -311,6 +429,7 @@ void si_copy_buffer(struct si_context *s
si_cp_dma_copy_buffer(sctx, dst, src, dst_offset, src_offset, size,
0, coher, cache_policy);
}
diff --git a/MesaLib-dfbsd/patches/patch-src_gallium_drivers_radeonsi_si__dma__cs.c b/MesaLib-dfbsd/patches/patch-src_gallium_drivers_radeonsi_si__dma__cs.c
new file mode 100644
index 0000000000..d28481f13d
--- /dev/null
+++ b/MesaLib-dfbsd/patches/patch-src_gallium_drivers_radeonsi_si__dma__cs.c
@@ -0,0 +1,22 @@
+$NetBSD$
+
+Option to revert:
+2019-02-20
+radeonsi: use SDMA for uploading data through const_uploader
+
+https://cgit.freedesktop.org/mesa/mesa/commit/?id=edbd2c1ff559cde1d9e22a9fb9059747782a72a7
+
+--- src/gallium/drivers/radeonsi/si_dma_cs.c.orig 2019-02-21 02:04:29.000000000 +0000
++++ src/gallium/drivers/radeonsi/si_dma_cs.c
+@@ -182,7 +182,11 @@ void si_need_dma_space(struct si_context
+ RADEON_USAGE_WRITE)))
+ si_dma_emit_wait_idle(ctx);
+
++#if defined(REVERT_SDMA_UPLOADER)
++ unsigned sync = 0;
++#else
+ unsigned sync = ctx->sdma_uploads_in_progress ? 0 : RADEON_USAGE_SYNCHRONIZED;
++#endif
+ if (dst) {
+ ws->cs_add_buffer(ctx->dma_cs, dst->buf, RADEON_USAGE_WRITE | sync,
+ dst->domains, 0);
diff --git a/MesaLib-dfbsd/patches/patch-src_gallium_drivers_radeonsi_si__gfx__cs.c b/MesaLib-dfbsd/patches/patch-src_gallium_drivers_radeonsi_si__gfx__cs.c
new file mode 100644
index 0000000000..0a475fe31b
--- /dev/null
+++ b/MesaLib-dfbsd/patches/patch-src_gallium_drivers_radeonsi_si__gfx__cs.c
@@ -0,0 +1,38 @@
+$NetBSD$
+
+Option to revert:
+2019-02-20
+radeonsi: use SDMA for uploading data through const_uploader
+
+https://cgit.freedesktop.org/mesa/mesa/commit/?id=edbd2c1ff559cde1d9e22a9fb9059747782a72a7
+
+--- src/gallium/drivers/radeonsi/si_gfx_cs.c.orig 2019-02-28 21:26:15.000000000 +0000
++++ src/gallium/drivers/radeonsi/si_gfx_cs.c
+@@ -108,6 +108,19 @@ void si_flush_gfx_cs(struct si_context *
+ if (ctx->screen->debug_flags & DBG(CHECK_VM))
+ flags &= ~PIPE_FLUSH_ASYNC;
+
++#if defined(REVERT_SDMA_UPLOADER)
++ /* If the state tracker is flushing the GFX IB, si_flush_from_st is
++ * responsible for flushing the DMA IB and merging the fences from both.
++ * This code is only needed when the driver flushes the GFX IB
++ * internally, and it never asks for a fence handle.
++ */
++ if (radeon_emitted(ctx->dma_cs, 0)) {
++ assert(fence == NULL); /* internal flushes only */
++ si_flush_dma_cs(ctx, flags, NULL);
++ }
++
++ ctx->gfx_flush_in_progress = true;
++#else
+ ctx->gfx_flush_in_progress = true;
+
+ /* If the state tracker is flushing the GFX IB, si_flush_from_st is
+@@ -139,6 +152,7 @@ void si_flush_gfx_cs(struct si_context *
+ /* Flush SDMA (preamble IB). */
+ if (radeon_emitted(ctx->dma_cs, 0))
+ si_flush_dma_cs(ctx, flags, NULL);
++#endif
+
+ if (ctx->has_graphics) {
+ if (!LIST_IS_EMPTY(&ctx->active_queries))
diff --git a/MesaLib-dfbsd/patches/patch-src_gallium_drivers_radeonsi_si__pipe.c b/MesaLib-dfbsd/patches/patch-src_gallium_drivers_radeonsi_si__pipe.c
index 7552001921..8f8c2e0273 100644
--- a/MesaLib-dfbsd/patches/patch-src_gallium_drivers_radeonsi_si__pipe.c
+++ b/MesaLib-dfbsd/patches/patch-src_gallium_drivers_radeonsi_si__pipe.c
@@ -12,9 +12,15 @@ Commit: 9b331e462e5021d994859756d46cd2519d9c9c6e
https://cgit.freedesktop.org/mesa/mesa/commit/?id=9b331e462e5021d994859756d46cd2519d9c9c6e
---- src/gallium/drivers/radeonsi/si_pipe.c.orig 2019-02-02 23:08:03.000000000 +0000
+Option to revert:
+2019-02-20
+radeonsi: use SDMA for uploading data through const_uploader
+
+https://cgit.freedesktop.org/mesa/mesa/commit/?id=edbd2c1ff559cde1d9e22a9fb9059747782a72a7
+
+--- src/gallium/drivers/radeonsi/si_pipe.c.orig 2019-04-25 21:13:31.000000000 +0000
+++ src/gallium/drivers/radeonsi/si_pipe.c
-@@ -197,10 +197,12 @@ static void si_destroy_context(struct pi
+@@ -200,10 +200,12 @@ static void si_destroy_context(struct pi
sctx->b.delete_vs_state(&sctx->b, sctx->vs_blit_color_layered);
if (sctx->vs_blit_texcoord)
sctx->b.delete_vs_state(&sctx->b, sctx->vs_blit_texcoord);
@@ -27,7 +33,7 @@ https://cgit.freedesktop.org/mesa/mesa/commit/?id=9b331e462e5021d994859756d46cd2
if (sctx->cs_copy_image)
sctx->b.delete_compute_state(&sctx->b, sctx->cs_copy_image);
if (sctx->cs_copy_image_1d_array)
-@@ -373,7 +375,11 @@ static void si_set_context_param(struct
+@@ -383,7 +385,11 @@ static void si_set_context_param(struct
}
static struct pipe_context *si_create_context(struct pipe_screen *screen,
@@ -39,7 +45,7 @@ https://cgit.freedesktop.org/mesa/mesa/commit/?id=9b331e462e5021d994859756d46cd2
{
struct si_context *sctx = CALLOC_STRUCT(si_context);
struct si_screen* sscreen = (struct si_screen *)screen;
-@@ -388,7 +394,11 @@ static struct pipe_context *si_create_co
+@@ -401,7 +407,11 @@ static struct pipe_context *si_create_co
sscreen->record_llvm_ir = true; /* racy but not critical */
sctx->b.screen = screen; /* this must be set first */
@@ -49,9 +55,23 @@ https://cgit.freedesktop.org/mesa/mesa/commit/?id=9b331e462e5021d994859756d46cd2
sctx->b.priv = NULL;
+#endif
sctx->b.destroy = si_destroy_context;
- sctx->b.emit_string_marker = si_emit_string_marker;
- sctx->b.set_debug_callback = si_set_debug_callback;
-@@ -622,6 +632,7 @@ fail:
+ sctx->screen = sscreen; /* Easy accessing of screen/winsys. */
+ sctx->is_debug = (flags & PIPE_CONTEXT_DEBUG) != 0;
+@@ -459,8 +469,13 @@ static struct pipe_context *si_create_co
+ sctx, stop_exec_on_failure);
+ }
+
++#if defined(REVERT_SDMA_UPLOADER)
++ bool use_sdma_upload = false;
++ sctx->b.const_uploader = u_upload_create(&sctx->b, 128 * 1024,
++#else
+ bool use_sdma_upload = sscreen->info.has_dedicated_vram && sctx->dma_cs;
+ sctx->b.const_uploader = u_upload_create(&sctx->b, 256 * 1024,
++#endif
+ 0, PIPE_USAGE_DEFAULT,
+ SI_RESOURCE_FLAG_32BIT |
+ (use_sdma_upload ?
+@@ -655,6 +670,7 @@ fail:
return NULL;
}
@@ -59,7 +79,7 @@ https://cgit.freedesktop.org/mesa/mesa/commit/?id=9b331e462e5021d994859756d46cd2
static struct pipe_context *si_pipe_create_context(struct pipe_screen *screen,
void *priv, unsigned flags)
{
-@@ -652,6 +663,7 @@ static struct pipe_context *si_pipe_crea
+@@ -685,6 +701,7 @@ static struct pipe_context *si_pipe_crea
sscreen->info.drm_major >= 3 ? si_create_fence : NULL,
&((struct si_context*)ctx)->tc);
}
@@ -67,8 +87,8 @@ https://cgit.freedesktop.org/mesa/mesa/commit/?id=9b331e462e5021d994859756d46cd2
/*
* pipe_screen
-@@ -847,7 +859,11 @@ struct pipe_screen *radeonsi_screen_crea
- debug_options, 0);
+@@ -920,7 +937,11 @@ struct pipe_screen *radeonsi_screen_crea
+ debug_options, 0);
/* Set functions first. */
+#if defined(REVERT_THREADED_CONTEXT)
@@ -77,17 +97,19 @@ https://cgit.freedesktop.org/mesa/mesa/commit/?id=9b331e462e5021d994859756d46cd2
sscreen->b.context_create = si_pipe_create_context;
+#endif
sscreen->b.destroy = si_destroy_screen;
-
- si_init_screen_get_functions(sscreen);
-@@ -1116,7 +1132,11 @@ struct pipe_screen *radeonsi_screen_crea
+ sscreen->b.set_max_shader_compiler_threads =
+ si_set_max_shader_compiler_threads;
+@@ -1200,8 +1221,13 @@ struct pipe_screen *radeonsi_screen_crea
si_init_compiler(sscreen, &sscreen->compiler_lowp[i]);
/* Create the auxiliary context. This must be done last. */
+#if defined(REVERT_THREADED_CONTEXT)
-+ sscreen->aux_context = sscreen->b.context_create(&sscreen->b, NULL, 0);
++ sscreen->aux_context = sscreen->b.context_create(
++ &sscreen->b, NULL, sscreen->options.aux_debug ? PIPE_CONTEXT_DEBUG : 0);
+#else
- sscreen->aux_context = si_create_context(&sscreen->b, 0);
+ sscreen->aux_context = si_create_context(
+ &sscreen->b, sscreen->options.aux_debug ? PIPE_CONTEXT_DEBUG : 0);
+#endif
-
- if (sscreen->debug_flags & DBG(TEST_DMA))
- si_test_dma(sscreen);
+ if (sscreen->options.aux_debug) {
+ struct u_log_context *log = CALLOC_STRUCT(u_log_context);
+ u_log_context_init(log);
diff --git a/MesaLib-dfbsd/patches/patch-src_gbm_Makefile.am b/MesaLib-dfbsd/patches/patch-src_gbm_Makefile.am
deleted file mode 100644
index bc09de51da..0000000000
--- a/MesaLib-dfbsd/patches/patch-src_gbm_Makefile.am
+++ /dev/null
@@ -1,12 +0,0 @@
-$NetBSD: patch-src_gbm_Makefile.am,v 1.1 2018/10/07 23:49:31 ryoon Exp $
-
---- src/gbm/Makefile.am.orig 2017-11-20 14:25:47.000000000 +0000
-+++ src/gbm/Makefile.am
-@@ -28,6 +28,7 @@ libgbm_la_LIBADD = \
- $(top_builddir)/src/loader/libloader.la \
- $(top_builddir)/src/util/libmesautil.la \
- $(top_builddir)/src/util/libxmlconfig.la \
-+ $(PTHREAD_LIBS) \
- $(DLOPEN_LIBS)
-
- if HAVE_PLATFORM_WAYLAND
diff --git a/MesaLib-dfbsd/patches/patch-src_glx_Makefile.am b/MesaLib-dfbsd/patches/patch-src_glx_Makefile.am
deleted file mode 100644
index 8b397f010e..0000000000
--- a/MesaLib-dfbsd/patches/patch-src_glx_Makefile.am
+++ /dev/null
@@ -1,49 +0,0 @@
-$NetBSD: patch-src_glx_Makefile.am,v 1.3 2019/01/19 23:21:43 tnn Exp $
-
-- We don't need libmesautil.la here. Those symbols seem to already be
- included in libmesa.la.
-- force libtool to use clang++ to link libGL on OSX.
- Otherwise we get:
- Undefined symbols for architecture x86_64:
- "std::terminate()", referenced from:
- ___clang_call_terminate in libglx.a(glsl_parser.o)
- ...
-
---- src/glx/Makefile.am.orig 2019-01-17 11:26:23.000000000 +0000
-+++ src/glx/Makefile.am
-@@ -89,10 +89,16 @@ libglx_la_SOURCES = \
- singlepix.c \
- vertarr.c
-
-+if HAVE_APPLEDRI
-+libglx_la_LIBADD = \
-+ $(top_builddir)/src/loader/libloader.la \
-+ $(top_builddir)/src/util/libxmlconfig.la
-+else
- libglx_la_LIBADD = \
- $(top_builddir)/src/loader/libloader.la \
- $(top_builddir)/src/util/libmesautil.la \
- $(top_builddir)/src/util/libxmlconfig.la
-+endif
-
- if HAVE_DRISW
- libglx_la_SOURCES += \
-@@ -136,6 +142,7 @@ libglx_la_SOURCES += \
-
- SUBDIRS += apple
- libglx_la_LIBADD += $(builddir)/apple/libappleglx.la
-+libglx_la_LIBADD += $(top_builddir)/src/mesa/libmesa.la
- endif
-
- if HAVE_WINDOWSDRI
-@@ -187,6 +194,10 @@ lib@GL_LIB@_la_SOURCES =
- lib@GL_LIB@_la_LIBADD = $(GL_LIBS)
- lib@GL_LIB@_la_LDFLAGS = $(GL_LDFLAGS)
-
-+if HAVE_APPLEDRI
-+lib@GL_LIB@_la_SOURCES += apple_dummy.cpp
-+endif
-+
- if HAVE_WINDOWSDRI
- lib@GL_LIB@_la_LDFLAGS += -lgdi32 -lopengl32 -Wl,--disable-stdcall-fixup
- endif
diff --git a/MesaLib-dfbsd/patches/patch-src_glx_glxclient.h b/MesaLib-dfbsd/patches/patch-src_glx_glxclient.h
index 0f308a50b0..55908db8b8 100644
--- a/MesaLib-dfbsd/patches/patch-src_glx_glxclient.h
+++ b/MesaLib-dfbsd/patches/patch-src_glx_glxclient.h
@@ -9,7 +9,7 @@ with dlopen(3) at the moment.
extern __thread void *__glX_tls_Context
__attribute__ ((tls_model("initial-exec")));
-+#if defined(__NetBSD__)
++#if defined(NO_INITIAL_EXEC_NONNULL)
+# define __glXGetCurrentContext() (likely(__glX_tls_Context) ? __glX_tls_Context : (void*)&dummyContext)
+#else
# define __glXGetCurrentContext() __glX_tls_Context
diff --git a/MesaLib-dfbsd/patches/patch-src_glx_glxcurrent.c b/MesaLib-dfbsd/patches/patch-src_glx_glxcurrent.c
index fcbe07312b..adaacdd206 100644
--- a/MesaLib-dfbsd/patches/patch-src_glx_glxcurrent.c
+++ b/MesaLib-dfbsd/patches/patch-src_glx_glxcurrent.c
@@ -15,7 +15,7 @@ with dlopen(3) at the moment.
+ * We need these to not be extern in libGL.so because of
+ * PR toolchain/50277
+ */
-+#if defined(GLX_USE_TLS) && defined(__NetBSD__)
++#if defined(GLX_USE_TLS) && defined(NO_INITIAL_EXEC_NONNULL)
+_X_EXPORT __thread struct _glapi_table * _glapi_tls_Dispatch
+ __attribute__((tls_model("initial-exec"))) = NULL;
+_X_EXPORT __thread void * _glapi_tls_Context
@@ -30,7 +30,7 @@ with dlopen(3) at the moment.
* \c __glXGetCurrentContext can be implemented as trivial macro.
*/
__thread void *__glX_tls_Context __attribute__ ((tls_model("initial-exec")))
-+#if defined(__NetBSD__)
++#if defined(NO_INITIAL_EXEC_NONNULL)
+ = NULL; /* non-zero initializers not supported with dlopen */
+#else
= &dummyContext;
diff --git a/MesaLib-dfbsd/patches/patch-src_intel_Makefile.tools.am b/MesaLib-dfbsd/patches/patch-src_intel_Makefile.tools.am
deleted file mode 100644
index cc2f67a2dc..0000000000
--- a/MesaLib-dfbsd/patches/patch-src_intel_Makefile.tools.am
+++ /dev/null
@@ -1,14 +0,0 @@
-$NetBSD: patch-src_intel_Makefile.tools.am,v 1.1 2018/10/07 23:49:31 ryoon Exp $
-
--lrt for shm_open in aubinator.c, a more portable alternative to memfd_create
-
---- src/intel/Makefile.tools.am.orig 2018-09-07 21:18:07.000000000 +0000
-+++ src/intel/Makefile.tools.am
-@@ -43,6 +43,7 @@ tools_aubinator_LDADD = \
- $(PTHREAD_LIBS) \
- $(DLOPEN_LIBS) \
- $(ZLIB_LIBS) \
-+ -lrt \
- -lm
-
-
diff --git a/MesaLib-dfbsd/patches/patch-src_intel_isl_isl__tiled__memcpy.c b/MesaLib-dfbsd/patches/patch-src_intel_isl_isl__tiled__memcpy.c
index 8d7843f8e5..0342ae9cac 100644
--- a/MesaLib-dfbsd/patches/patch-src_intel_isl_isl__tiled__memcpy.c
+++ b/MesaLib-dfbsd/patches/patch-src_intel_isl_isl__tiled__memcpy.c
@@ -2,17 +2,21 @@ $NetBSD: patch-src_mesa_drivers_dri_i965_intel__tiled__memcpy.c,v 1.1 2018/10/07
From wip/MesaLib 13.0.1.
---- src/intel/isl/isl_tiled_memcpy.c.orig 2019-01-22 16:42:57.000000000 +0000
+--- src/intel/isl/isl_tiled_memcpy.c.orig 2019-04-12 23:16:58.000000000 +0000
+++ src/intel/isl/isl_tiled_memcpy.c
-@@ -64,6 +64,7 @@ ror(uint32_t n, uint32_t d)
+@@ -64,6 +64,11 @@ ror(uint32_t n, uint32_t d)
return (n >> d) | (n << (32 - d));
}
-+#if !defined(__NetBSD__)
++#if defined(__NetBSD__)
++/* Handle conflicting declaration and conflicting macro in netbsd */
++#undef bswap32
++#define bswap32(n) __builtin_bswap32(n)
++#else /* !__NetBSD__ */
static inline uint32_t
bswap32(uint32_t n)
{
-@@ -76,6 +77,7 @@ bswap32(uint32_t n)
+@@ -76,6 +81,7 @@ bswap32(uint32_t n)
(n << 24);
#endif
}
diff --git a/MesaLib-dfbsd/patches/patch-src_intel_perf_gen__perf.h b/MesaLib-dfbsd/patches/patch-src_intel_perf_gen__perf.h
new file mode 100644
index 0000000000..b01d65e18f
--- /dev/null
+++ b/MesaLib-dfbsd/patches/patch-src_intel_perf_gen__perf.h
@@ -0,0 +1,14 @@
+$NetBSD$
+
+--- src/intel/perf/gen_perf.h.orig 2019-04-17 15:42:13.000000000 +0000
++++ src/intel/perf/gen_perf.h
+@@ -28,7 +28,9 @@
+ #include <stdint.h>
+ #include <string.h>
+
++#ifdef MAJOR_IN_SYSMACROS
+ #include <sys/sysmacros.h>
++#endif
+
+ #include "util/hash_table.h"
+ #include "util/ralloc.h"
diff --git a/MesaLib-dfbsd/patches/patch-src_intel_tools_aub__mem.c b/MesaLib-dfbsd/patches/patch-src_intel_tools_aub__mem.c
index c2f9287a58..eeac52b416 100644
--- a/MesaLib-dfbsd/patches/patch-src_intel_tools_aub__mem.c
+++ b/MesaLib-dfbsd/patches/patch-src_intel_tools_aub__mem.c
@@ -1,4 +1,4 @@
-$NetBSD: patch-src_intel_tools_aub__mem.c,v 1.1 2019/01/10 22:30:11 tnn Exp $
+$NetBSD: patch-src_intel_tools_aub__mem.c,v 1.2 2019/05/01 19:31:46 maya Exp $
* Partially implement memfd_create() via mkostemp()
@@ -15,7 +15,7 @@ $NetBSD: patch-src_intel_tools_aub__mem.c,v 1.1 2019/01/10 22:30:11 tnn Exp $
static inline int
memfd_create(const char *name, unsigned int flags)
{
-+#if defined(__linux__)
++#if defined(SYS_memfd_create)
return syscall(SYS_memfd_create, name, flags);
+#elif defined(__FreeBSD__)
+ return shm_open(SHM_ANON, flags | O_RDWR | O_CREAT, 0600);
diff --git a/MesaLib-dfbsd/patches/patch-src_intel_vulkan_anv__allocator.c b/MesaLib-dfbsd/patches/patch-src_intel_vulkan_anv__allocator.c
index 8f345bf651..c9702282c4 100644
--- a/MesaLib-dfbsd/patches/patch-src_intel_vulkan_anv__allocator.c
+++ b/MesaLib-dfbsd/patches/patch-src_intel_vulkan_anv__allocator.c
@@ -1,4 +1,4 @@
-$NetBSD: patch-src_intel_vulkan_anv__allocator.c,v 1.1 2018/10/07 23:49:31 ryoon Exp $
+$NetBSD: patch-src_intel_vulkan_anv__allocator.c,v 1.2 2019/05/01 19:31:46 maya Exp $
* Partially implement memfd_create() via mkostemp()
* Ignore MAP_POPULATE if unsupported
@@ -34,7 +34,7 @@ https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=225415
static inline int
memfd_create(const char *name, unsigned int flags)
{
-+#if defined(__linux__)
++#if defined(SYS_memfd_create)
return syscall(SYS_memfd_create, name, flags);
+#elif defined(__FreeBSD__)
+ return shm_open(SHM_ANON, flags | O_RDWR | O_CREAT, 0600);
diff --git a/MesaLib-dfbsd/patches/patch-src_intel_vulkan_anv__device.c b/MesaLib-dfbsd/patches/patch-src_intel_vulkan_anv__device.c
index c317e99e25..0a31d5c8d0 100644
--- a/MesaLib-dfbsd/patches/patch-src_intel_vulkan_anv__device.c
+++ b/MesaLib-dfbsd/patches/patch-src_intel_vulkan_anv__device.c
@@ -10,7 +10,7 @@ https://reviews.freebsd.org/D17872
* Define CLOCK_MONOTONIC_RAW if missing
---- src/intel/vulkan/anv_device.c.orig 2019-02-02 23:08:03.000000000 +0000
+--- src/intel/vulkan/anv_device.c.orig 2019-03-13 03:11:55.000000000 +0000
+++ src/intel/vulkan/anv_device.c
@@ -25,7 +25,9 @@
#include <stdbool.h>
@@ -22,9 +22,9 @@ https://reviews.freebsd.org/D17872
#include <unistd.h>
#include <fcntl.h>
#include <xf86drm.h>
-@@ -44,6 +46,17 @@
-
- #include "genxml/gen7_pack.h"
+@@ -49,6 +51,17 @@
+ */
+ #define MAX_DEBUG_MESSAGE_LENGTH 4096
+#ifndef ETIME
+#define ETIME ETIMEDOUT
@@ -39,8 +39,8 @@ https://reviews.freebsd.org/D17872
+
static void
compiler_debug_log(void *data, const char *fmt, ...)
- { }
-@@ -64,10 +77,18 @@ static uint64_t
+ {
+@@ -85,10 +98,18 @@ static uint64_t
anv_compute_heap_size(int fd, uint64_t gtt_size)
{
/* Query the total ram from the system */
@@ -50,7 +50,7 @@ https://reviews.freebsd.org/D17872
uint64_t total_ram = (uint64_t)info.totalram * (uint64_t)info.mem_unit;
+#else
-+#if defined(__FreeBSD__) || defined(__DragonFly__)
++#if defined(__FreeBSD__) || defined(__DragonFly__) || defined(__NetBSD__)
+ uint64_t total_ram = sysconf(_SC_PHYS_PAGES) * sysconf(_SC_PAGE_SIZE);
+#else
+ uint64_t total_ram = sysctlbyname(SYSCTL_MEMSIZE, &mem, &size, nullptr, 0);
diff --git a/MesaLib-dfbsd/patches/patch-src_intel_vulkan_anv__gem__stubs.c b/MesaLib-dfbsd/patches/patch-src_intel_vulkan_anv__gem__stubs.c
index 72ef0ef14f..8f57f1b9bc 100644
--- a/MesaLib-dfbsd/patches/patch-src_intel_vulkan_anv__gem__stubs.c
+++ b/MesaLib-dfbsd/patches/patch-src_intel_vulkan_anv__gem__stubs.c
@@ -1,4 +1,4 @@
-$NetBSD: patch-src_intel_vulkan_anv__gem__stubs.c,v 1.1 2019/01/10 22:30:11 tnn Exp $
+$NetBSD: patch-src_intel_vulkan_anv__gem__stubs.c,v 1.2 2019/05/01 19:31:46 maya Exp $
* Partially implement memfd_create() via mkostemp()
@@ -8,7 +8,7 @@ $NetBSD: patch-src_intel_vulkan_anv__gem__stubs.c,v 1.1 2019/01/10 22:30:11 tnn
static inline int
memfd_create(const char *name, unsigned int flags)
{
-+#if defined(__linux__)
++#if defined(SYS_memfd_create)
return syscall(SYS_memfd_create, name, flags);
+#elif defined(__FreeBSD__)
+ return shm_open(SHM_ANON, flags | O_RDWR | O_CREAT, 0600);
diff --git a/MesaLib-dfbsd/patches/patch-src_mapi_entry__x86-64__tls.h b/MesaLib-dfbsd/patches/patch-src_mapi_entry__x86-64__tls.h
index e97d2c480a..44ac37d49d 100644
--- a/MesaLib-dfbsd/patches/patch-src_mapi_entry__x86-64__tls.h
+++ b/MesaLib-dfbsd/patches/patch-src_mapi_entry__x86-64__tls.h
@@ -14,7 +14,7 @@ es1api and es2api are not going to be patched for NetBSD.
#ifndef __ILP32__
-+#if defined(__NetBSD__) && defined(MAPI_MODE_GLAPI)
++#if defined(NO_INITIAL_EXEC_NONNULL) && defined(MAPI_MODE_GLAPI)
#define STUB_ASM_CODE(slot) \
"movq " ENTRY_CURRENT_TABLE "@GOTTPOFF(%rip), %rax\n\t" \
"movq %fs:(%rax), %r11\n\t" \
diff --git a/MesaLib-dfbsd/patches/patch-src_mapi_entry__x86__tls.h b/MesaLib-dfbsd/patches/patch-src_mapi_entry__x86__tls.h
index d49dd05e30..4671b9e42d 100644
--- a/MesaLib-dfbsd/patches/patch-src_mapi_entry__x86__tls.h
+++ b/MesaLib-dfbsd/patches/patch-src_mapi_entry__x86__tls.h
@@ -14,7 +14,7 @@ es1api and es2api are not going to be patched for NetBSD.
".balign 16\n" \
func ":"
-+#if defined(__NetBSD__) && defined(MAPI_MODE_GLAPI)
++#if defined(NO_INITIAL_EXEC_NONNULL) && defined(MAPI_MODE_GLAPI)
+extern const mapi_func table_noop_array[];
#define STUB_ASM_CODE(slot) \
"call x86_current_tls\n\t" \
diff --git a/MesaLib-dfbsd/patches/patch-src_mapi_entry__x86__tsd.h b/MesaLib-dfbsd/patches/patch-src_mapi_entry__x86__tsd.h
new file mode 100644
index 0000000000..96e0232156
--- /dev/null
+++ b/MesaLib-dfbsd/patches/patch-src_mapi_entry__x86__tsd.h
@@ -0,0 +1,86 @@
+$NetBSD$
+
+From OpenBSD xenocara
+
+Make similiar changes to the i386 tsd dispatch assembly as libglvnd to
+avoid a text relocation fixing the build with lld.
+
+This time store the address of the GOT in ebx as required before calling
+the PLT stub and change .balign value to match X86_ENTRY_SIZE as suggested
+by naddy.
+
+--- src/mapi/entry_x86_tsd.h.orig 2019-03-06 23:05:20.000000000 +0000
++++ src/mapi/entry_x86_tsd.h
+@@ -31,18 +31,51 @@
+ #define HIDDEN
+ #endif
+
++#if defined(X86_TSD_OPENBSD)
++#define X86_ENTRY_SIZE 64
++#else
+ #define X86_ENTRY_SIZE 32
++#endif
+
+ __asm__(".text\n"
++#if defined(X86_TSD_OPENBSD)
++ ".balign " U_STRINGIFY(X86_ENTRY_SIZE) "\n"
++#else
+ ".balign 32\n"
++#endif
+ "x86_entry_start:");
+
++
++#if defined(X86_TSD_OPENBSD)
++#define STUB_ASM_ENTRY(func) \
++ ".globl " func "\n" \
++ ".type " func ", @function\n" \
++ ".balign " U_STRINGIFY(X86_ENTRY_SIZE) "\n" \
++ func ":"
++#else
+ #define STUB_ASM_ENTRY(func) \
+ ".globl " func "\n" \
+ ".type " func ", @function\n" \
+ ".balign 32\n" \
+ func ":"
++#endif
+
++#if defined(X86_TSD_OPENBSD)
++#define STUB_ASM_CODE(slot) \
++ "push %ebx\n\t" \
++ "call 1f\n" \
++ "1:\n\t" \
++ "popl %ebx\n\t" \
++ "addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %ebx\n\t" \
++ "movl " ENTRY_CURRENT_TABLE "@GOT(%ebx), %eax\n\t" \
++ "mov (%eax), %eax\n\t" \
++ "testl %eax, %eax\n\t" \
++ "jne 1f\n\t" \
++ "call " ENTRY_CURRENT_TABLE_GET "@PLT\n" \
++ "1:\n\t" \
++ "pop %ebx\n\t" \
++ "jmp *(4 * " slot ")(%eax)"
++#else
+ #define STUB_ASM_CODE(slot) \
+ "movl " ENTRY_CURRENT_TABLE ", %eax\n\t" \
+ "testl %eax, %eax\n\t" \
+@@ -51,14 +84,20 @@ __asm__(".text\n"
+ "1:\n\t" \
+ "call " ENTRY_CURRENT_TABLE_GET "\n\t" \
+ "jmp *(4 * " slot ")(%eax)"
++#endif
+
+ #define MAPI_TMP_STUB_ASM_GCC
+ #include "mapi_tmp.h"
+
+ #ifndef MAPI_MODE_BRIDGE
+
++#if defined(X86_TSD_OPENBSD)
++__asm__(".balign " U_STRINGIFY(X86_ENTRY_SIZE) "\n"
++ "x86_entry_end:");
++#else
+ __asm__(".balign 32\n"
+ "x86_entry_end:");
++#endif
+
+ #include <string.h>
+ #include "u_execmem.h"
diff --git a/MesaLib-dfbsd/patches/patch-src_mapi_u__current.c b/MesaLib-dfbsd/patches/patch-src_mapi_u__current.c
index b4fcb36097..27f505d9ad 100644
--- a/MesaLib-dfbsd/patches/patch-src_mapi_u__current.c
+++ b/MesaLib-dfbsd/patches/patch-src_mapi_u__current.c
@@ -9,7 +9,7 @@ with dlopen(3) at the moment.
__thread struct _glapi_table *u_current_table
__attribute__((tls_model("initial-exec")))
-+#if defined(__NetBSD__)
++#if defined(NO_INITIAL_EXEC_NONNULL)
+ = NULL; /* non-zero initializers not supported with dlopen */
+#else
= (struct _glapi_table *) table_noop_array;
@@ -21,7 +21,7 @@ with dlopen(3) at the moment.
u_current_get_table_internal(void)
{
#if defined(GLX_USE_TLS)
-+# if defined(__NetBSD__)
++# if defined(NO_INITIAL_EXEC_NONNULL)
+ return (likely(u_current_table) ? u_current_table : (struct _glapi_table *) table_noop_array);
+# else
return u_current_table;
diff --git a/MesaLib-dfbsd/patches/patch-src_mapi_u__current.h b/MesaLib-dfbsd/patches/patch-src_mapi_u__current.h
index 4e17195c30..8b393394a4 100644
--- a/MesaLib-dfbsd/patches/patch-src_mapi_u__current.h
+++ b/MesaLib-dfbsd/patches/patch-src_mapi_u__current.h
@@ -10,7 +10,7 @@ with dlopen(3) at the moment.
u_current_get_table(void)
{
-#ifdef GLX_USE_TLS
-+#if defined(GLX_USE_TLS) && !defined(__NetBSD__)
++#if defined(GLX_USE_TLS) && !defined(NO_INITIAL_EXEC_NONNULL)
return u_current_table;
#else
return (likely(u_current_table) ?
diff --git a/MesaLib-dfbsd/patches/patch-src_mesa_drivers_dri_i915_intel__screen.c b/MesaLib-dfbsd/patches/patch-src_mesa_drivers_dri_i915_intel__screen.c
index 50bd15a505..ebb4850734 100644
--- a/MesaLib-dfbsd/patches/patch-src_mesa_drivers_dri_i915_intel__screen.c
+++ b/MesaLib-dfbsd/patches/patch-src_mesa_drivers_dri_i915_intel__screen.c
@@ -13,7 +13,7 @@ Fix build on older NetBSD w/o _SC_PHYS_PAGES.
#include <time.h>
#include <unistd.h>
+
-+#if defined(HAVE_SYS_SYSCTL_H) && defined(__NetBSD__)
++#if defined(HAVE_SYS_SYSCTL_H) && defined(PHYSMEM_NETBSD)
+# include <sys/sysctl.h>
+#endif
+
@@ -24,7 +24,7 @@ Fix build on older NetBSD w/o _SC_PHYS_PAGES.
const unsigned gpu_mappable_megabytes =
(aper_size / (1024 * 1024)) * 3 / 4;
-+#if defined(HW_PHYSMEM64) && defined(__NetBSD__)
++#if defined(HW_PHYSMEM64) && defined(PHYSMEM_NETBSD)
+ int mib[2] = { CTL_HW, HW_PHYSMEM64 };
+ uint64_t system_memory_bytes;
+ size_t len = sizeof(system_memory_bytes);
diff --git a/MesaLib-dfbsd/patches/patch-src_mesa_drivers_dri_i965_brw__bufmgr.c b/MesaLib-dfbsd/patches/patch-src_mesa_drivers_dri_i965_brw__bufmgr.c
new file mode 100644
index 0000000000..d04c4ee68a
--- /dev/null
+++ b/MesaLib-dfbsd/patches/patch-src_mesa_drivers_dri_i965_brw__bufmgr.c
@@ -0,0 +1,31 @@
+$NetBSD$
+
+From Ravenports
+
+graphics/mesa-dri: Disable soft-spinning of all buffers (#169)
+
+* It is broken with current DragonFly 5.4 and 5.5 kernels
+
+* This patch is a revert of Mesa's
+commit: a363bb2cd0e2a141f2c60be005009703bffcbe4e
+"i965: Allocate VMA in userspace for full-PPGTT systems."
+Date: Tue Apr 10 01:18:25 2018 -0700
+
+Discussion in
+
+https://bugs.dragonflybsd.org/issues/3171
+
+--- src/mesa/drivers/dri/i965/brw_bufmgr.c.orig 2019-05-03 15:59:12.000000000 +0000
++++ src/mesa/drivers/dri/i965/brw_bufmgr.c
+@@ -1721,7 +1721,11 @@ brw_bufmgr_init(struct gen_device_info *
+ bufmgr->initial_kflags |= EXEC_OBJECT_SUPPORTS_48B_ADDRESS;
+
+ /* Allocate VMA in userspace if we have softpin and full PPGTT. */
++#if defined(REVERT_I965_SOFTPIN)
++ if (false && gem_param(fd, I915_PARAM_HAS_EXEC_SOFTPIN) > 0 &&
++#else
+ if (gem_param(fd, I915_PARAM_HAS_EXEC_SOFTPIN) > 0 &&
++#endif
+ gem_param(fd, I915_PARAM_HAS_ALIASING_PPGTT) > 1) {
+ bufmgr->initial_kflags |= EXEC_OBJECT_PINNED;
+
diff --git a/MesaLib-dfbsd/patches/patch-src_mesa_drivers_dri_i965_brw__performance__query.c b/MesaLib-dfbsd/patches/patch-src_mesa_drivers_dri_i965_brw__performance__query.c
deleted file mode 100644
index 2511b9da14..0000000000
--- a/MesaLib-dfbsd/patches/patch-src_mesa_drivers_dri_i965_brw__performance__query.c
+++ /dev/null
@@ -1,72 +0,0 @@
-$NetBSD: patch-src_mesa_drivers_dri_i965_brw__performance__query.c,v 1.2 2018/10/16 15:21:20 jperkin Exp $
-
-Prevents libdrm i915_drm.h header from being used.
-libdrm 2.4.88 does not have certain symbols defined in its i915_drm.h.
-
---- src/mesa/drivers/dri/i965/brw_performance_query.c.orig 2018-09-07 21:18:07.000000000 +0000
-+++ src/mesa/drivers/dri/i965/brw_performance_query.c
-@@ -56,7 +56,7 @@
- #include <sys/ioctl.h>
-
- #include <xf86drm.h>
--#include <i915_drm.h>
-+#include "drm-uapi/i915_drm.h"
-
- #include "main/hash.h"
- #include "main/macros.h"
-@@ -1796,6 +1796,9 @@ enumerate_sysfs_metrics(struct brw_conte
- DIR *metricsdir = NULL;
- struct dirent *metric_entry;
- int len;
-+#ifdef __sun
-+ struct stat s;
-+#endif
-
- len = snprintf(buf, sizeof(buf), "%s/metrics", brw->perfquery.sysfs_dev_dir);
- if (len < 0 || len >= sizeof(buf)) {
-@@ -1812,10 +1815,18 @@ enumerate_sysfs_metrics(struct brw_conte
- while ((metric_entry = readdir(metricsdir))) {
- struct hash_entry *entry;
-
-+#if defined(__sun)
-+ stat(metric_entry->d_name, &s);
-+ if ((s.st_mode != S_IFDIR &&
-+ s.st_mode != S_IFLNK) ||
-+ metric_entry->d_name[0] == '.')
-+ continue;
-+#else
- if ((metric_entry->d_type != DT_DIR &&
- metric_entry->d_type != DT_LNK) ||
- metric_entry->d_name[0] == '.')
- continue;
-+#endif
-
- DBG("metric set: %s\n", metric_entry->d_name);
- entry = _mesa_hash_table_search(brw->perfquery.oa_metrics_table,
-@@ -2057,6 +2068,9 @@ get_sysfs_dev_dir(struct brw_context *br
- DIR *drmdir;
- struct dirent *drm_entry;
- int len;
-+#ifdef __sun
-+ struct stat s;
-+#endif
-
- brw->perfquery.sysfs_dev_dir[0] = '\0';
-
-@@ -2088,9 +2102,16 @@ get_sysfs_dev_dir(struct brw_context *br
- }
-
- while ((drm_entry = readdir(drmdir))) {
-+#if defined(__sun)
-+ stat(drm_entry->d_name, &s);
-+ if ((s.st_mode == S_IFDIR ||
-+ s.st_mode == S_IFLNK) &&
-+ strncmp(drm_entry->d_name, "card", 4) == 0)
-+#else
- if ((drm_entry->d_type == DT_DIR ||
- drm_entry->d_type == DT_LNK) &&
- strncmp(drm_entry->d_name, "card", 4) == 0)
-+#endif
- {
- len = snprintf(brw->perfquery.sysfs_dev_dir,
- sizeof(brw->perfquery.sysfs_dev_dir),
diff --git a/MesaLib-dfbsd/patches/patch-src_mesa_drivers_dri_i965_intel__screen.c b/MesaLib-dfbsd/patches/patch-src_mesa_drivers_dri_i965_intel__screen.c
index d8f7aff9f4..4b9bb6484a 100644
--- a/MesaLib-dfbsd/patches/patch-src_mesa_drivers_dri_i965_intel__screen.c
+++ b/MesaLib-dfbsd/patches/patch-src_mesa_drivers_dri_i965_intel__screen.c
@@ -32,7 +32,7 @@ See kernel commit 172cf15d18889313bf2c3bfb81fcea08369274ef in 3.6+.
#include <time.h>
#include <unistd.h>
+
-+#if defined(HAVE_SYS_SYSCTL_H) && defined(__NetBSD__)
++#if defined(HAVE_SYS_SYSCTL_H) && defined(PHYSMEM_NETBSD)
+# include <sys/sysctl.h>
+#endif
+
@@ -43,7 +43,7 @@ See kernel commit 172cf15d18889313bf2c3bfb81fcea08369274ef in 3.6+.
const unsigned gpu_mappable_megabytes =
screen->aperture_threshold / (1024 * 1024);
-+#if defined(HW_PHYSMEM64) && defined(__NetBSD__)
++#if defined(HW_PHYSMEM64) && defined(PHYSMEM_NETBSD)
+ int mib[2] = { CTL_HW, HW_PHYSMEM64 };
+ const uint64_t system_memory_bytes;
+ size_t len = sizeof(system_memory_bytes);
@@ -65,7 +65,7 @@ See kernel commit 172cf15d18889313bf2c3bfb81fcea08369274ef in 3.6+.
return false;
}
-+#if defined(__FreeBSD__)
++#if defined(REQUIRE_36_GEN4)
+ if (!intel_get_boolean(screen, I915_PARAM_HAS_RELAXED_DELTA)) {
+ fprintf(stderr, "[%s: %u] Kernel 2.6.39 required.\n", __func__, __LINE__);
+ return false;
diff --git a/MesaLib-dfbsd/patches/patch-src_mesa_drivers_dri_swrast_swrast.c b/MesaLib-dfbsd/patches/patch-src_mesa_drivers_dri_swrast_swrast.c
index a355983d7b..997e89a030 100644
--- a/MesaLib-dfbsd/patches/patch-src_mesa_drivers_dri_swrast_swrast.c
+++ b/MesaLib-dfbsd/patches/patch-src_mesa_drivers_dri_swrast_swrast.c
@@ -8,7 +8,7 @@ Fix build on older NetBSD w/o _SC_PHYS_PAGES.
size_t len = sizeof(system_memory_bytes);
if (sysctl(mib, 2, &system_memory_bytes, &len, NULL, 0) != 0)
return -1;
-+#elif defined(HW_PHYSMEM64) && defined(__NetBSD__)
++#elif defined(HW_PHYSMEM64) && defined(PHYSMEM_NETBSD)
+ int mib[2] = { CTL_HW, HW_PHYSMEM64 };
+ uint64_t system_memory_bytes;
+ size_t len = sizeof(system_memory_bytes);
diff --git a/MesaLib-dfbsd/patches/patch-src_mesa_drivers_x11_Makefile.am b/MesaLib-dfbsd/patches/patch-src_mesa_drivers_x11_Makefile.am
deleted file mode 100644
index 6e9b38bd41..0000000000
--- a/MesaLib-dfbsd/patches/patch-src_mesa_drivers_x11_Makefile.am
+++ /dev/null
@@ -1,15 +0,0 @@
-$NetBSD: patch-src_mesa_drivers_x11_Makefile.am,v 1.1 2019/01/19 21:54:03 tnn Exp $
-
-We don't need libmesautil.la here. Those symbols seem to already be
-included in libmesa.la.
-
---- src/mesa/drivers/x11/Makefile.am.orig 2019-01-17 11:26:23.000000000 +0000
-+++ src/mesa/drivers/x11/Makefile.am
-@@ -68,7 +68,6 @@ GL_PATCH = 0
- lib@GL_LIB@_la_LIBADD = \
- $(top_builddir)/src/mesa/libmesa.la \
- $(top_builddir)/src/mapi/glapi/libglapi.la \
-- $(top_builddir)/src/util/libmesautil.la \
- $(SHARED_GLAPI_LIB) \
- $(GL_LIB_DEPS)
-
diff --git a/MesaLib-dfbsd/patches/patch-src_mesa_main_context.c b/MesaLib-dfbsd/patches/patch-src_mesa_main_context.c
index 255f0c83ca..7c32f870db 100644
--- a/MesaLib-dfbsd/patches/patch-src_mesa_main_context.c
+++ b/MesaLib-dfbsd/patches/patch-src_mesa_main_context.c
@@ -9,9 +9,9 @@ https://bugs.freedesktop.org/show_bug.cgi?id=82246
FreeBSD reported atexit bug for 10.6:
https://bugs.freedesktop.org/show_bug.cgi?id=91869
---- src/mesa/main/context.c.orig 2017-11-20 14:25:47.000000000 +0000
+--- src/mesa/main/context.c.orig 2019-05-03 15:59:12.000000000 +0000
+++ src/mesa/main/context.c
-@@ -354,11 +354,23 @@ mtx_t OneTimeLock = _MTX_INITIALIZER_NP;
+@@ -357,11 +357,23 @@ mtx_t OneTimeLock = _MTX_INITIALIZER_NP;
* Calls all the various one-time-fini functions in Mesa
*/
@@ -35,7 +35,7 @@ https://bugs.freedesktop.org/show_bug.cgi?id=91869
}
/**
-@@ -373,7 +385,9 @@ one_time_fini(void)
+@@ -376,7 +388,9 @@ one_time_fini(void)
static void
one_time_init( struct gl_context *ctx )
{
@@ -45,7 +45,7 @@ https://bugs.freedesktop.org/show_bug.cgi?id=91869
mtx_lock(&OneTimeLock);
-@@ -398,7 +412,9 @@ one_time_init( struct gl_context *ctx )
+@@ -401,7 +415,9 @@ one_time_init( struct gl_context *ctx )
_mesa_ubyte_to_float_color_tab[i] = (float) i / 255.0F;
}
diff --git a/MesaLib-dfbsd/patches/patch-src_util_Makefile.am b/MesaLib-dfbsd/patches/patch-src_util_Makefile.am
deleted file mode 100644
index 48facf1ec6..0000000000
--- a/MesaLib-dfbsd/patches/patch-src_util_Makefile.am
+++ /dev/null
@@ -1,15 +0,0 @@
-$NetBSD: patch-src_util_Makefile.am,v 1.1 2019/01/10 22:30:11 tnn Exp $
-
-handled with CONF_FILES
-
---- src/util/Makefile.am.orig 2018-12-11 21:13:57.000000000 +0000
-+++ src/util/Makefile.am
-@@ -75,7 +75,7 @@ libxmlconfig_la_CFLAGS = \
- libxmlconfig_la_LIBADD = $(EXPAT_LIBS) -lm
-
- drircdir = $(datadir)/drirc.d
--drirc_DATA = 00-mesa-defaults.conf
-+drirc_DATA = # 00-mesa-defaults.conf
-
- u_atomic_test_LDADD = libmesautil.la
- roundeven_test_LDADD = -lm
diff --git a/MesaLib-dfbsd/patches/patch-src_util_futex.h b/MesaLib-dfbsd/patches/patch-src_util_futex.h
deleted file mode 100644
index 5120686726..0000000000
--- a/MesaLib-dfbsd/patches/patch-src_util_futex.h
+++ /dev/null
@@ -1,53 +0,0 @@
-$NetBSD: patch-src_util_futex.h,v 1.1 2018/10/07 23:49:31 ryoon Exp $
-
-Implement futex_wake() and futex_wait() via _umtx_op()
-
-FreeBSD Bugzilla - Bug 225415: graphics/mesa-dri: update to 18.0.0
-https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=225415
-
---- src/util/futex.h.orig 2018-02-09 02:18:00.000000000 +0000
-+++ src/util/futex.h
-@@ -29,10 +29,35 @@
- #include <limits.h>
- #include <stdint.h>
- #include <unistd.h>
-+#if defined(__FreeBSD__)
-+#include <errno.h>
-+# if __FreeBSD__ < 11
-+# include <machine/atomic.h>
-+# endif
-+#include <sys/umtx.h>
-+#else
- #include <linux/futex.h>
- #include <sys/syscall.h>
-+#endif
- #include <sys/time.h>
-
-+#if defined(__FreeBSD__)
-+static inline int futex_wake(uint32_t *addr, int count)
-+{
-+ return _umtx_op(addr, UMTX_OP_WAKE, (uint32_t)count, NULL, NULL) == -1 ? errno : 0;
-+}
-+
-+static inline int futex_wait(uint32_t *addr, int32_t value, struct timespec *timeout)
-+{
-+ void *uaddr = NULL, *uaddr2 = NULL;
-+ if (timeout != NULL) {
-+ const struct _umtx_time tmo = { ._timeout = *timeout, ._flags = UMTX_ABSTIME, ._clockid = CLOCK_MONOTONIC };
-+ uaddr = (void *)(uintptr_t)sizeof(tmo);
-+ uaddr2 = (void *)&tmo;
-+ }
-+ return _umtx_op(addr, UMTX_OP_WAIT_UINT, (uint32_t)value, uaddr, uaddr2) == -1 ? errno : 0;
-+}
-+#else
- static inline long sys_futex(void *addr1, int op, int val1, const struct timespec *timeout, void *addr2, int val3)
- {
- return syscall(SYS_futex, addr1, op, val1, timeout, addr2, val3);
-@@ -50,6 +75,7 @@ static inline int futex_wait(uint32_t *a
- return sys_futex(addr, FUTEX_WAIT_BITSET, value, timeout, NULL,
- FUTEX_BITSET_MATCH_ANY);
- }
-+#endif
-
- #endif
-
diff --git a/MesaLib-dfbsd/patches/patch-src_util_os__time.c b/MesaLib-dfbsd/patches/patch-src_util_os__time.c
index 24699ad3d3..07a3d4cb03 100644
--- a/MesaLib-dfbsd/patches/patch-src_util_os__time.c
+++ b/MesaLib-dfbsd/patches/patch-src_util_os__time.c
@@ -12,7 +12,7 @@ https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=225415
os_time_sleep(int64_t usecs)
{
-#if defined(PIPE_OS_LINUX)
-+#if (defined(HAVE_CLOCK_NANOSLEEP) && (defined(__FreeBSD__) || defined(__DragonFly__))) || defined(PIPE_OS_LINUX)
++#if (defined(HAVE_CLOCK_NANOSLEEP) && defined(USE_CLOCK_NANOSLEEP_OS_TIME)) || defined(PIPE_OS_LINUX)
struct timespec time;
time.tv_sec = usecs / 1000000;
time.tv_nsec = (usecs % 1000000) * 1000;
diff --git a/MesaLib-dfbsd/patches/patch-src_util_ralloc.h b/MesaLib-dfbsd/patches/patch-src_util_ralloc.h
new file mode 100644
index 0000000000..12125d2ef1
--- /dev/null
+++ b/MesaLib-dfbsd/patches/patch-src_util_ralloc.h
@@ -0,0 +1,51 @@
+$NetBSD$
+
+--- src/util/ralloc.h.orig 2019-03-23 16:29:21.000000000 +0000
++++ src/util/ralloc.h
+@@ -426,7 +426,7 @@ bool ralloc_vasprintf_append(char **str,
+ *
+ * which is more idiomatic in C++ than calling ralloc.
+ */
+-#define DECLARE_ALLOC_CXX_OPERATORS_TEMPLATE(TYPE, ALLOC_FUNC) \
++#define DECLARE_ALLOC_CXX_OPERATORS_TEMPLATE(TYPE, ALLOC_FUNC, USE_DESTRUCTOR) \
+ private: \
+ static void _ralloc_destructor(void *p) \
+ { \
+@@ -437,7 +437,7 @@ public:
+ { \
+ void *p = ALLOC_FUNC(mem_ctx, size); \
+ assert(p != NULL); \
+- if (!HAS_TRIVIAL_DESTRUCTOR(TYPE)) \
++ if (USE_DESTRUCTOR && !HAS_TRIVIAL_DESTRUCTOR(TYPE)) \
+ ralloc_set_destructor(p, _ralloc_destructor); \
+ return p; \
+ } \
+@@ -454,16 +454,24 @@ public:
+ }
+
+ #define DECLARE_RALLOC_CXX_OPERATORS(type) \
+- DECLARE_ALLOC_CXX_OPERATORS_TEMPLATE(type, ralloc_size)
++ DECLARE_ALLOC_CXX_OPERATORS_TEMPLATE(type, ralloc_size, true)
+
+ #define DECLARE_RZALLOC_CXX_OPERATORS(type) \
+- DECLARE_ALLOC_CXX_OPERATORS_TEMPLATE(type, rzalloc_size)
++ DECLARE_ALLOC_CXX_OPERATORS_TEMPLATE(type, rzalloc_size, true)
+
++#if defined(NO_LINEAR_ALLOC_DESTRUCTOR)
+ #define DECLARE_LINEAR_ALLOC_CXX_OPERATORS(type) \
+- DECLARE_ALLOC_CXX_OPERATORS_TEMPLATE(type, linear_alloc_child)
++ DECLARE_ALLOC_CXX_OPERATORS_TEMPLATE(type, linear_alloc_child, false)
+
+ #define DECLARE_LINEAR_ZALLOC_CXX_OPERATORS(type) \
+- DECLARE_ALLOC_CXX_OPERATORS_TEMPLATE(type, linear_zalloc_child)
++ DECLARE_ALLOC_CXX_OPERATORS_TEMPLATE(type, linear_zalloc_child, false)
++#else
++#define DECLARE_LINEAR_ALLOC_CXX_OPERATORS(type) \
++ DECLARE_ALLOC_CXX_OPERATORS_TEMPLATE(type, linear_alloc_child, true)
++
++#define DECLARE_LINEAR_ZALLOC_CXX_OPERATORS(type) \
++ DECLARE_ALLOC_CXX_OPERATORS_TEMPLATE(type, linear_zalloc_child, true)
++#endif
+
+
+ /**
diff --git a/MesaLib-dfbsd/patches/patch-src_util_u__process.c b/MesaLib-dfbsd/patches/patch-src_util_u__process.c
new file mode 100644
index 0000000000..0b5b84eac3
--- /dev/null
+++ b/MesaLib-dfbsd/patches/patch-src_util_u__process.c
@@ -0,0 +1,13 @@
+$NetBSD$
+
+--- src/util/u_process.c.orig 2019-03-15 01:02:19.000000000 +0000
++++ src/util/u_process.c
+@@ -118,7 +118,7 @@ __getProgramName()
+ #endif
+
+ #if !defined(GET_PROGRAM_NAME)
+-# if defined(__OpenBSD__) || defined(NetBSD) || defined(__UCLIBC__) || defined(ANDROID)
++# if defined(__OpenBSD__) || defined(NetBSD) || defined(__UCLIBC__) || defined(ANDROID) || defined(NO_GETPROGRAMNAME)
+ /* This is a hack. It's said to work on OpenBSD, NetBSD and GNU.
+ * Rogelio M.Serrano Jr. reported it's also working with UCLIBC. It's
+ * used as a last resort, if there is no documented facility available. */
diff --git a/MesaLib-dfbsd/patches/patch-src_util_u__queue.c b/MesaLib-dfbsd/patches/patch-src_util_u__queue.c
index ccba44b511..d163b3ce6c 100644
--- a/MesaLib-dfbsd/patches/patch-src_util_u__queue.c
+++ b/MesaLib-dfbsd/patches/patch-src_util_u__queue.c
@@ -5,7 +5,9 @@ atexit() is not a good idea in shared libraries.
FreeBSD reported atexit bug for 10.6:
https://bugs.freedesktop.org/show_bug.cgi?id=91869
---- src/util/u_queue.c.orig 2018-12-11 21:13:57.000000000 +0000
+NetBSD option for pthread_setaffinity_np idiom.
+
+--- src/util/u_queue.c.orig 2019-03-15 01:02:19.000000000 +0000
+++ src/util/u_queue.c
@@ -46,11 +46,22 @@ static once_flag atexit_once_flag = ONCE
static struct list_head queue_list;
@@ -46,7 +48,7 @@ https://bugs.freedesktop.org/show_bug.cgi?id=91869
/* Don't inherit the thread affinity from the parent thread.
* Set the full mask.
*/
-+#if defined(__NetBSD__)
++#if defined(__NetBSD__) && defined(SETAFFINITY_NP_NETBSD)
+ cpuset_t *cpuset;
+ cpuset = cpuset_create();
+ if (cpuset != NULL) {
diff --git a/MesaLib-dfbsd/patches/patch-src_util_u__thread.h b/MesaLib-dfbsd/patches/patch-src_util_u__thread.h
index 115954f246..8f27f91a28 100644
--- a/MesaLib-dfbsd/patches/patch-src_util_u__thread.h
+++ b/MesaLib-dfbsd/patches/patch-src_util_u__thread.h
@@ -7,9 +7,7 @@ From FreeBSD ports / DragonFly dports
- Implement setting thread name
- Use monotonic clock for timeouts
-https://reviews.freebsd.org/D17872
-
---- src/util/u_thread.h.orig 2018-12-11 21:13:57.000000000 +0000
+--- src/util/u_thread.h.orig 2019-03-15 01:02:19.000000000 +0000
+++ src/util/u_thread.h
@@ -34,6 +34,13 @@
@@ -25,7 +23,7 @@ https://reviews.freebsd.org/D17872
#endif
static inline thrd_t u_thread_create(int (*routine)(void *), void *param)
-@@ -64,6 +71,8 @@ static inline void u_thread_setname( con
+@@ -65,6 +72,8 @@ static inline void u_thread_setname( con
(__GLIBC__ >= 3 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 12)) && \
defined(__linux__)
pthread_setname_np(pthread_self(), name);
@@ -34,11 +32,11 @@ https://reviews.freebsd.org/D17872
# endif
#endif
(void)name;
-@@ -83,6 +92,17 @@ static inline void
+@@ -84,6 +93,17 @@ static inline void
util_pin_thread_to_L3(thrd_t thread, unsigned L3_index, unsigned cores_per_L3)
{
#if defined(HAVE_PTHREAD_SETAFFINITY)
-+#if defined(__NetBSD__)
++#if defined(__NetBSD__) && defined(SETAFFINITY_NP_NETBSD)
+ cpuset_t *cpuset;
+ cpuset = cpuset_create();
+ if (cpuset == NULL)
@@ -52,7 +50,7 @@ https://reviews.freebsd.org/D17872
cpu_set_t cpuset;
CPU_ZERO(&cpuset);
-@@ -90,6 +110,7 @@ util_pin_thread_to_L3(thrd_t thread, uns
+@@ -91,6 +111,7 @@ util_pin_thread_to_L3(thrd_t thread, uns
CPU_SET(L3_index * cores_per_L3 + i, &cpuset);
pthread_setaffinity_np(thread, sizeof(cpuset), &cpuset);
#endif
@@ -60,11 +58,11 @@ https://reviews.freebsd.org/D17872
}
/**
-@@ -103,6 +124,35 @@ static inline int
+@@ -104,6 +125,35 @@ static inline int
util_get_L3_for_pinned_thread(thrd_t thread, unsigned cores_per_L3)
{
#if defined(HAVE_PTHREAD_SETAFFINITY)
-+#if defined(__NetBSD__)
++#if defined(__NetBSD__) && defined(SETAFFINITY_NP_NETBSD)
+ cpuset_t *cpuset;
+
+ cpuset = cpuset_create();
@@ -96,7 +94,7 @@ https://reviews.freebsd.org/D17872
cpu_set_t cpuset;
if (pthread_getaffinity_np(thread, sizeof(cpuset), &cpuset) == 0) {
-@@ -123,6 +173,7 @@ util_get_L3_for_pinned_thread(thrd_t thr
+@@ -124,6 +174,7 @@ util_get_L3_for_pinned_thread(thrd_t thr
return L3_index;
}
#endif
@@ -104,12 +102,12 @@ https://reviews.freebsd.org/D17872
return -1;
}
-@@ -134,7 +185,7 @@ util_get_L3_for_pinned_thread(thrd_t thr
+@@ -135,7 +186,7 @@ util_get_L3_for_pinned_thread(thrd_t thr
static inline int64_t
u_thread_get_time_nano(thrd_t thread)
{
-#if defined(__linux__) && defined(HAVE_PTHREAD)
-+#if (defined(__linux__) || defined(__DragonFly__) || defined(__FreeBSD__)) && defined(HAVE_PTHREAD)
++#if (defined(__linux__) || defined(USE_PTHREAD_GETCPUCLOCKID)) && defined(HAVE_PTHREAD)
struct timespec ts;
clockid_t cid;
diff --git a/MesaLib-dfbsd/patches/patch-src_util_xmlconfig.c b/MesaLib-dfbsd/patches/patch-src_util_xmlconfig.c
index b429692fea..87def19ed9 100644
--- a/MesaLib-dfbsd/patches/patch-src_util_xmlconfig.c
+++ b/MesaLib-dfbsd/patches/patch-src_util_xmlconfig.c
@@ -3,11 +3,11 @@ $NetBSD: patch-src_util_xmlconfig.c,v 1.1 2018/10/07 23:49:31 ryoon Exp $
PR pkg/50202.
Provide compat strndup for older Darwin.
---- src/util/xmlconfig.c.orig 2018-09-07 21:18:07.000000000 +0000
+--- src/util/xmlconfig.c.orig 2019-03-05 18:53:12.177053000 +0000
+++ src/util/xmlconfig.c
-@@ -39,6 +39,23 @@
- #include "xmlconfig.h"
- #include "u_process.h"
+@@ -47,6 +47,24 @@
+ #define PATH_MAX 4096
+ #endif
+#if (defined(__APPLE__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__-0 < 1070)
+static char *
@@ -26,6 +26,7 @@ Provide compat strndup for older Darwin.
+ return (copy);
+}
+#endif
-
++
/** \brief Find an option in an option cache with the name as key */
static uint32_t
+ findOption(const driOptionCache *cache, const char *name)
Home |
Main Index |
Thread Index |
Old Index