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