git: 29d855b6f775 - main - graphics/mesa: update to 23.1.8

From: Emmanuel Vadot <manu_at_FreeBSD.org>
Date: Tue, 21 Nov 2023 15:19:15 UTC
The branch main has been updated by manu:

URL: https://cgit.FreeBSD.org/ports/commit/?id=29d855b6f775be3f43aa5fb4b45c88ca9711dfd3

commit 29d855b6f775be3f43aa5fb4b45c88ca9711dfd3
Author:     gnikl <gnikl@justmail.de>
AuthorDate: 2023-09-14 23:16:00 +0000
Commit:     Emmanuel Vadot <manu@FreeBSD.org>
CommitDate: 2023-11-21 15:17:28 +0000

    graphics/mesa: update to 23.1.8
    
    While here:
    - Remove some unneeded dep in gallium-vdpau
    - Disable libelf from devel/elfutils (we will fallback on base libelf), PR 273803
    - Always disable libunwind, if you want stacktrace you will need to compile from
    upstream PR: 250306
    - enable vulkan haswell driver
    
    Co-authored-by: manu, vishwin
    PR: 273703, 273803, 250306
---
 graphics/libosmesa/Makefile                        |  12 +-
 graphics/mesa-dri/Makefile                         |  22 ++-
 graphics/mesa-dri/Makefile.common                  |  29 ++-
 graphics/mesa-dri/distinfo                         |  10 +-
 .../files/patch-include_drm-uapi_dma-buf.h         | 198 ---------------------
 .../patch-src_gallium_include_pipe_p__compiler.h   |  11 --
 graphics/mesa-dri/files/patch-src_util_macros.h    |  11 --
 graphics/mesa-dri/files/patch-src_util_u__memory.h |  18 +-
 .../files/patch-src_vulkan_wsi_wsi__common__drm.c  |  61 -------
 graphics/mesa-dri/files/patch-wayland-1.22         |  44 -----
 graphics/mesa-dri/pkg-plist                        |   2 +
 graphics/mesa-gallium-va/Makefile                  |   9 +-
 graphics/mesa-gallium-vdpau/Makefile               |  13 +-
 graphics/mesa-gallium-vdpau/pkg-plist              |   4 -
 graphics/mesa-gallium-xa/Makefile                  |  13 +-
 graphics/mesa-libs/Makefile                        |   6 +-
 lang/clover/Makefile                               |  16 +-
 17 files changed, 90 insertions(+), 389 deletions(-)

diff --git a/graphics/libosmesa/Makefile b/graphics/libosmesa/Makefile
index 0ec88684b280..17a3660608b2 100644
--- a/graphics/libosmesa/Makefile
+++ b/graphics/libosmesa/Makefile
@@ -8,10 +8,9 @@ WWW=		https://www.mesa3d.org/
 LICENSE=	MIT
 LICENSE_FILE=	${WRKSRC}/docs/license.rst
 
-LIB_DEPENDS+=	libLLVM-${LLVM_DEFAULT}.so:devel/llvm${LLVM_DEFAULT} \
-		libglapi.so:graphics/mesa-libs
+LIB_DEPENDS+=	libglapi.so:graphics/mesa-libs
 
-USES=		xorg
+USES=		llvm:lib,noexport xorg
 USE_XORG=	xorgproto
 USE_LDCONFIG=	yes
 
@@ -19,10 +18,10 @@ USE_LDCONFIG=	yes
 .include "${.CURDIR:H:H}/graphics/mesa-dri/Makefile.common"
 
 # Disable some options
-MESON_ARGS+=	-Ddri-drivers="" \
-		-Dgallium-drivers="swrast" \
+MESON_ARGS+=	-Dgallium-drivers="swrast" \
 		-Dvulkan-drivers="" \
 		-Dplatforms="" \
+		-Dandroid-libbacktrace=disabled \
 		-Dgallium-vdpau=disabled \
 		-Dgallium-omx=disabled \
 		-Dgallium-va=disabled \
@@ -31,12 +30,15 @@ MESON_ARGS+=	-Ddri-drivers="" \
 		-Dgallium-nine=false \
 		-Dgles1=disabled \
 		-Dgles2=disabled \
+		-Dlmsensors=disabled \
 		-Dmicrosoft-clc=disabled \
 		-Dopengl=true \
 		-Dglx=disabled \
 		-Degl=disabled \
 		-Dgbm=disabled \
 		-Dtools="" \
+		-Dvalgrind=disabled \
+		-Dxlib-lease=disabled \
 		-Dzstd=disabled
 LDFLAGS_i386=		-Wl,-znotext
 
diff --git a/graphics/mesa-dri/Makefile b/graphics/mesa-dri/Makefile
index 85b4c36cb7ff..40d00e2cb805 100644
--- a/graphics/mesa-dri/Makefile
+++ b/graphics/mesa-dri/Makefile
@@ -1,13 +1,13 @@
 PORTNAME=	mesa-dri
 PORTVERSION=	${MESAVERSION}
-PORTREVISION=	3
 CATEGORIES=	graphics
 
 COMMENT=	OpenGL hardware acceleration drivers for DRI2+
 WWW=		https://www.mesa3d.org/
 
-LIB_DEPENDS+=	libLLVM-${LLVM_DEFAULT}.so:devel/llvm${LLVM_DEFAULT} \
-		libglapi.so:graphics/mesa-libs
+LIB_DEPENDS+=	libglapi.so:graphics/mesa-libs
+
+USES+=		llvm:lib,noexport
 
 OPTIONS_GROUP=			PLATFORM
 OPTIONS_GROUP_PLATFORM=		PLATFORM_X11 PLATFORM_WAYLAND
@@ -33,7 +33,7 @@ ZSTD_MESON_ENABLED=	zstd
 
 ALL_GALLIUM_DRIVERS=	CROCUS I915 IRIS PANFROST R300 R600 RADEONSI SVGA \
 			SWRAST ZINK
-ALL_VULKAN_DRIVERS=	INTEL AMD SWRAST
+ALL_VULKAN_DRIVERS=	INTEL INTEL_HASVK AMD SWRAST
 
 GALLIUM_DRIVERS+=	SWRAST \
 			ZINK
@@ -51,7 +51,7 @@ BUILD_DEPENDS+=		glslangValidator:graphics/glslang
 .endif
 .if ${ARCH} == amd64 || ${ARCH} == i386
 GALLIUM_DRIVERS+=	CROCUS I915 IRIS SVGA
-VULKAN_DRIVERS+=	INTEL
+VULKAN_DRIVERS+=	INTEL INTEL_HASVK
 .endif
 
 LDFLAGS_i386=		-Wl,-znotext
@@ -73,14 +73,18 @@ MESON_ARGS+=	-Dgallium-drivers="${GALLIUM_DRIVERS:ts,:tl}" \
 		-Dplatforms="${MESA_PLATFORMS:ts,:tl}"
 
 # Disable some options
-MESON_ARGS+=	-Dgallium-xa=disabled \
+MESON_ARGS+=	-Dandroid-libbacktrace=disabled \
+		-Dgallium-xa=disabled \
 		-Dgallium-vdpau=disabled \
 		-Dgallium-va=disabled \
-		-Dgles1=disabled \
-		-Dgles2=disabled \
+		-Dgles1=enabled \
+		-Dgles2=enabled \
 		-Dglx=disabled \
+		-Degl=enabled \
+		-Dlmsensors=disabled \
 		-Dmicrosoft-clc=disabled \
-		-Dosmesa=false
+		-Dosmesa=false \
+		-Dvalgrind=disabled
 
 .for _gd in ${ALL_GALLIUM_DRIVERS}
 . if defined(GALLIUM_DRIVERS) && ${GALLIUM_DRIVERS:M${_gd}}
diff --git a/graphics/mesa-dri/Makefile.common b/graphics/mesa-dri/Makefile.common
index 2b2e8e7e9a37..4767a0854f9f 100644
--- a/graphics/mesa-dri/Makefile.common
+++ b/graphics/mesa-dri/Makefile.common
@@ -12,7 +12,7 @@
 MESAVERSION=	${MESABASEVERSION}${MESASUBVERSION:C/^(.)/.\1/}
 MESADISTVERSION=${MESABASEVERSION}${MESASUBVERSION:C/^(.)/-\1/}
 
-MESABASEVERSION=	22.3.7
+MESABASEVERSION=	23.1.8
 # if there is a subversion, don't include the '-' between 7.11-rc2.
 MESASUBVERSION=
 
@@ -23,6 +23,10 @@ MASTER_SITES=	https://mesa.freedesktop.org/archive/ \
 
 DISTFILES=	mesa-${MESADISTVERSION}${EXTRACT_SUFX}
 
+PATCH_SITES=	https://gitlab.freedesktop.org/mesa/mesa/-/commit/
+PATCHFILES+=	9ba416cdc67073cdda9a73fe9d37304b82bdd526.patch:-p1 # https://gitlab.freedesktop.org/mesa/mesa/-/issues/8671
+PATCHFILES+=	4a253aae7ca437201d2a31d2a11a1a5434fe41f1.patch:-p1 # https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26284
+
 MAINTAINER=	x11@FreeBSD.org
 
 LICENSE=	MIT
@@ -40,14 +44,8 @@ USES+=	xorg
 .if ${COMPONENT} != osmesa
 LIB_DEPENDS+=	libdrm.so:graphics/libdrm
 .endif
-.if ${ARCH} == aarch64 || ${ARCH} == amd64 || ${ARCH} == armv7 || ${ARCH} == i386 || ${ARCH} == powerpc || ${ARCH} == powerpc64 || ${ARCH} == powerpc64le
-LIB_DEPENDS+=	libunwind.so:devel/libunwind
-.endif
-.if ${OPSYS} == DragonFly
-LIB_DEPENDS+=	libelf.so:devel/libelf
-.endif
 
-USES+=		compiler:c++11-lib bison meson pathfix pkgconfig \
+USES+=		compiler:c++11-lib bison llvm:noexport meson pathfix pkgconfig \
 		python:build shebangfix tar:xz
 
 .if ${/usr/bin/ld:L:tA} != /usr/bin/ld.lld
@@ -82,14 +80,9 @@ PKGDEINSTALL=	${.CURDIR}/pkg-deinstall
 
 BINARY_ALIAS+=	python3=${PYTHON_VERSION}
 
-LLVM_DEFAULT=	15
-BUILD_DEPENDS+=	llvm-config${LLVM_DEFAULT}:devel/llvm${LLVM_DEFAULT}
-CONFIGURE_ENV+=	LLVM_CONFIG=llvm-config${LLVM_DEFAULT}
-
-LDFLAGS+=	-Wl,-rpath=${LOCALBASE}/llvm${LLVM_DEFAULT}/lib
-MESON_ARGS+=	-Dllvm=enabled
+CONFIGURE_ENV+=	LLVM_CONFIG=${LLVM_CONFIG}
 
-# Some symbols in mesa's linker version scripts are not always defined,
-# depending on configuration options. Suppress errors with lld >= 17 due to
-# these undefined symbols.
-LDFLAGS+=	-Wl,--undefined-version
+LDFLAGS+=	-Wl,-rpath=${LOCALBASE}/llvm${LLVM_VERSION}/lib
+MESON_ARGS+=	-Dllvm=enabled \
+		-Dlibunwind=disabled \
+		-Dlibelf=disabled
diff --git a/graphics/mesa-dri/distinfo b/graphics/mesa-dri/distinfo
index ca2765427652..de765e7b28f9 100644
--- a/graphics/mesa-dri/distinfo
+++ b/graphics/mesa-dri/distinfo
@@ -1,3 +1,7 @@
-TIMESTAMP = 1678348804
-SHA256 (mesa-22.3.7.tar.xz) = 894ce2f4a1c2e76177cdd2284620192d0da3066b243eec2fbb1d7cf37f13042c
-SIZE (mesa-22.3.7.tar.xz) = 17136476
+TIMESTAMP = 1700484156
+SHA256 (mesa-23.1.8.tar.xz) = 45434ff91a709844130a3174d9c0ef39c6b50725b2bb0c13e736f36134db14ad
+SIZE (mesa-23.1.8.tar.xz) = 18566724
+SHA256 (9ba416cdc67073cdda9a73fe9d37304b82bdd526.patch) = aac0f0bc9454d177729109103e4e851ee4bc894ba7cc28ea1712ed87b4660e85
+SIZE (9ba416cdc67073cdda9a73fe9d37304b82bdd526.patch) = 1511
+SHA256 (4a253aae7ca437201d2a31d2a11a1a5434fe41f1.patch) = 84f18f14788bd8f387e2fc754b945bf30f84b517dd917785ed5d8ef1d594e24a
+SIZE (4a253aae7ca437201d2a31d2a11a1a5434fe41f1.patch) = 1626
diff --git a/graphics/mesa-dri/files/patch-include_drm-uapi_dma-buf.h b/graphics/mesa-dri/files/patch-include_drm-uapi_dma-buf.h
deleted file mode 100644
index 19a87cf264aa..000000000000
--- a/graphics/mesa-dri/files/patch-include_drm-uapi_dma-buf.h
+++ /dev/null
@@ -1,198 +0,0 @@
---- include/drm-uapi/dma-buf.h.orig	2022-10-14 14:21:26 UTC
-+++ include/drm-uapi/dma-buf.h
-@@ -0,0 +1,195 @@
-+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-+/*
-+ * Framework for buffer objects that can be shared across devices/subsystems.
-+ *
-+ * Copyright(C) 2015 Intel Ltd
-+ *
-+ * This program is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU General Public License version 2 as published by
-+ * the Free Software Foundation.
-+ *
-+ * This program is distributed in the hope that it will be useful, but WITHOUT
-+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
-+ * more details.
-+ *
-+ * You should have received a copy of the GNU General Public License along with
-+ * this program.  If not, see <http://www.gnu.org/licenses/>.
-+ */
-+
-+#ifndef _DMA_BUF_UAPI_H_
-+#define _DMA_BUF_UAPI_H_
-+
-+#ifdef __linux__
-+#include <linux/types.h>
-+#else
-+#include <sys/types.h>
-+
-+typedef int8_t   __s8;
-+typedef uint8_t  __u8;
-+typedef int16_t  __s16;
-+typedef uint16_t __u16;
-+typedef int32_t  __s32;
-+typedef uint32_t __u32;
-+typedef int64_t  __s64;
-+typedef uint64_t __u64;
-+#endif
-+
-+/**
-+ * struct dma_buf_sync - Synchronize with CPU access.
-+ *
-+ * When a DMA buffer is accessed from the CPU via mmap, it is not always
-+ * possible to guarantee coherency between the CPU-visible map and underlying
-+ * memory.  To manage coherency, DMA_BUF_IOCTL_SYNC must be used to bracket
-+ * any CPU access to give the kernel the chance to shuffle memory around if
-+ * needed.
-+ *
-+ * Prior to accessing the map, the client must call DMA_BUF_IOCTL_SYNC
-+ * with DMA_BUF_SYNC_START and the appropriate read/write flags.  Once the
-+ * access is complete, the client should call DMA_BUF_IOCTL_SYNC with
-+ * DMA_BUF_SYNC_END and the same read/write flags.
-+ *
-+ * The synchronization provided via DMA_BUF_IOCTL_SYNC only provides cache
-+ * coherency.  It does not prevent other processes or devices from
-+ * accessing the memory at the same time.  If synchronization with a GPU or
-+ * other device driver is required, it is the client's responsibility to
-+ * wait for buffer to be ready for reading or writing before calling this
-+ * ioctl with DMA_BUF_SYNC_START.  Likewise, the client must ensure that
-+ * follow-up work is not submitted to GPU or other device driver until
-+ * after this ioctl has been called with DMA_BUF_SYNC_END?
-+ *
-+ * If the driver or API with which the client is interacting uses implicit
-+ * synchronization, waiting for prior work to complete can be done via
-+ * poll() on the DMA buffer file descriptor.  If the driver or API requires
-+ * explicit synchronization, the client may have to wait on a sync_file or
-+ * other synchronization primitive outside the scope of the DMA buffer API.
-+ */
-+struct dma_buf_sync {
-+	/**
-+	 * @flags: Set of access flags
-+	 *
-+	 * DMA_BUF_SYNC_START:
-+	 *     Indicates the start of a map access session.
-+	 *
-+	 * DMA_BUF_SYNC_END:
-+	 *     Indicates the end of a map access session.
-+	 *
-+	 * DMA_BUF_SYNC_READ:
-+	 *     Indicates that the mapped DMA buffer will be read by the
-+	 *     client via the CPU map.
-+	 *
-+	 * DMA_BUF_SYNC_WRITE:
-+	 *     Indicates that the mapped DMA buffer will be written by the
-+	 *     client via the CPU map.
-+	 *
-+	 * DMA_BUF_SYNC_RW:
-+	 *     An alias for DMA_BUF_SYNC_READ | DMA_BUF_SYNC_WRITE.
-+	 */
-+	__u64 flags;
-+};
-+
-+#define DMA_BUF_SYNC_READ      (1 << 0)
-+#define DMA_BUF_SYNC_WRITE     (2 << 0)
-+#define DMA_BUF_SYNC_RW        (DMA_BUF_SYNC_READ | DMA_BUF_SYNC_WRITE)
-+#define DMA_BUF_SYNC_START     (0 << 2)
-+#define DMA_BUF_SYNC_END       (1 << 2)
-+#define DMA_BUF_SYNC_VALID_FLAGS_MASK \
-+	(DMA_BUF_SYNC_RW | DMA_BUF_SYNC_END)
-+
-+#define DMA_BUF_NAME_LEN	32
-+
-+/**
-+ * struct dma_buf_export_sync_file - Get a sync_file from a dma-buf
-+ *
-+ * Userspace can perform a DMA_BUF_IOCTL_EXPORT_SYNC_FILE to retrieve the
-+ * current set of fences on a dma-buf file descriptor as a sync_file.  CPU
-+ * waits via poll() or other driver-specific mechanisms typically wait on
-+ * whatever fences are on the dma-buf at the time the wait begins.  This
-+ * is similar except that it takes a snapshot of the current fences on the
-+ * dma-buf for waiting later instead of waiting immediately.  This is
-+ * useful for modern graphics APIs such as Vulkan which assume an explicit
-+ * synchronization model but still need to inter-operate with dma-buf.
-+ *
-+ * The intended usage pattern is the following:
-+ *
-+ *  1. Export a sync_file with flags corresponding to the expected GPU usage
-+ *     via DMA_BUF_IOCTL_EXPORT_SYNC_FILE.
-+ *
-+ *  2. Submit rendering work which uses the dma-buf.  The work should wait on
-+ *     the exported sync file before rendering and produce another sync_file
-+ *     when complete.
-+ *
-+ *  3. Import the rendering-complete sync_file into the dma-buf with flags
-+ *     corresponding to the GPU usage via DMA_BUF_IOCTL_IMPORT_SYNC_FILE.
-+ *
-+ * Unlike doing implicit synchronization via a GPU kernel driver's exec ioctl,
-+ * the above is not a single atomic operation.  If userspace wants to ensure
-+ * ordering via these fences, it is the respnosibility of userspace to use
-+ * locks or other mechanisms to ensure that no other context adds fences or
-+ * submits work between steps 1 and 3 above.
-+ */
-+struct dma_buf_export_sync_file {
-+	/**
-+	 * @flags: Read/write flags
-+	 *
-+	 * Must be DMA_BUF_SYNC_READ, DMA_BUF_SYNC_WRITE, or both.
-+	 *
-+	 * If DMA_BUF_SYNC_READ is set and DMA_BUF_SYNC_WRITE is not set,
-+	 * the returned sync file waits on any writers of the dma-buf to
-+	 * complete.  Waiting on the returned sync file is equivalent to
-+	 * poll() with POLLIN.
-+	 *
-+	 * If DMA_BUF_SYNC_WRITE is set, the returned sync file waits on
-+	 * any users of the dma-buf (read or write) to complete.  Waiting
-+	 * on the returned sync file is equivalent to poll() with POLLOUT.
-+	 * If both DMA_BUF_SYNC_WRITE and DMA_BUF_SYNC_READ are set, this
-+	 * is equivalent to just DMA_BUF_SYNC_WRITE.
-+	 */
-+	__u32 flags;
-+	/** @fd: Returned sync file descriptor */
-+	__s32 fd;
-+};
-+
-+/**
-+ * struct dma_buf_import_sync_file - Insert a sync_file into a dma-buf
-+ *
-+ * Userspace can perform a DMA_BUF_IOCTL_IMPORT_SYNC_FILE to insert a
-+ * sync_file into a dma-buf for the purposes of implicit synchronization
-+ * with other dma-buf consumers.  This allows clients using explicitly
-+ * synchronized APIs such as Vulkan to inter-op with dma-buf consumers
-+ * which expect implicit synchronization such as OpenGL or most media
-+ * drivers/video.
-+ */
-+struct dma_buf_import_sync_file {
-+	/**
-+	 * @flags: Read/write flags
-+	 *
-+	 * Must be DMA_BUF_SYNC_READ, DMA_BUF_SYNC_WRITE, or both.
-+	 *
-+	 * If DMA_BUF_SYNC_READ is set and DMA_BUF_SYNC_WRITE is not set,
-+	 * this inserts the sync_file as a read-only fence.  Any subsequent
-+	 * implicitly synchronized writes to this dma-buf will wait on this
-+	 * fence but reads will not.
-+	 *
-+	 * If DMA_BUF_SYNC_WRITE is set, this inserts the sync_file as a
-+	 * write fence.  All subsequent implicitly synchronized access to
-+	 * this dma-buf will wait on this fence.
-+	 */
-+	__u32 flags;
-+	/** @fd: Sync file descriptor */
-+	__s32 fd;
-+};
-+
-+#define DMA_BUF_BASE		'b'
-+#define DMA_BUF_IOCTL_SYNC	_IOW(DMA_BUF_BASE, 0, struct dma_buf_sync)
-+
-+/* 32/64bitness of this uapi was botched in android, there's no difference
-+ * between them in actual uapi, they're just different numbers.
-+ */
-+#define DMA_BUF_SET_NAME	_IOW(DMA_BUF_BASE, 1, const char *)
-+#define DMA_BUF_SET_NAME_A	_IOW(DMA_BUF_BASE, 1, u32)
-+#define DMA_BUF_SET_NAME_B	_IOW(DMA_BUF_BASE, 1, u64)
-+#define DMA_BUF_IOCTL_EXPORT_SYNC_FILE	_IOWR(DMA_BUF_BASE, 2, struct dma_buf_export_sync_file)
-+#define DMA_BUF_IOCTL_IMPORT_SYNC_FILE	_IOW(DMA_BUF_BASE, 3, struct dma_buf_import_sync_file)
-+
-+#endif
diff --git a/graphics/mesa-dri/files/patch-src_gallium_include_pipe_p__compiler.h b/graphics/mesa-dri/files/patch-src_gallium_include_pipe_p__compiler.h
deleted file mode 100644
index 83c71dca4e11..000000000000
--- a/graphics/mesa-dri/files/patch-src_gallium_include_pipe_p__compiler.h
+++ /dev/null
@@ -1,11 +0,0 @@
---- src/gallium/include/pipe/p_compiler.h.orig	2022-10-11 18:53:31 UTC
-+++ src/gallium/include/pipe/p_compiler.h
-@@ -125,7 +125,7 @@ typedef unsigned char boolean;
-  *       aligned, but we only want to align the field.
-  */
- #define EXCLUSIVE_CACHELINE(decl) \
--   union { char __cl_space[CACHE_LINE_SIZE]; \
-+   union { char __cl_space[MESA_CACHE_LINE_SIZE]; \
-            decl; }
- 
- #if defined(__cplusplus)
diff --git a/graphics/mesa-dri/files/patch-src_util_macros.h b/graphics/mesa-dri/files/patch-src_util_macros.h
deleted file mode 100644
index 42256544782b..000000000000
--- a/graphics/mesa-dri/files/patch-src_util_macros.h
+++ /dev/null
@@ -1,11 +0,0 @@
---- src/util/macros.h.orig	2022-10-11 18:53:31 UTC
-+++ src/util/macros.h
-@@ -448,7 +448,7 @@ typedef int lock_cap_t;
- #endif
- 
- /* TODO: this could be different on non-x86 architectures. */
--#define CACHE_LINE_SIZE 64
-+#define MESA_CACHE_LINE_SIZE 64
- 
- #define DO_PRAGMA(X) _Pragma (#X)
- 
diff --git a/graphics/mesa-dri/files/patch-src_util_u__memory.h b/graphics/mesa-dri/files/patch-src_util_u__memory.h
index 41d696f9d69b..27c553b712a7 100644
--- a/graphics/mesa-dri/files/patch-src_util_u__memory.h
+++ b/graphics/mesa-dri/files/patch-src_util_u__memory.h
@@ -1,7 +1,21 @@
---- src/util/u_memory.h.orig	2022-12-01 11:58:25 UTC
+--- src/util/u_memory.h.orig	2023-09-06 23:29:52 UTC
 +++ src/util/u_memory.h
-@@ -91,8 +91,8 @@ mem_dup(const void *src, size_t size)
+@@ -90,7 +90,7 @@ mem_dup(const void *src, size_t size)
+ #define Offset(TYPE, MEMBER) ((uintptr_t)&(((TYPE *)NULL)->MEMBER))
  
+ /* TODO: this could be different on non-x86 architectures. */
+-#define CACHE_LINE_SIZE 64
++#define MESA_CACHE_LINE_SIZE 64
+ 
+ /**
+  * Declare a variable on its own cache line.
+@@ -107,12 +107,12 @@ mem_dup(const void *src, size_t size)
+  *       aligned, but we only want to align the field.
+  */
+ #define EXCLUSIVE_CACHELINE(decl) \
+-   union { char __cl_space[CACHE_LINE_SIZE]; \
++   union { char __cl_space[MESA_CACHE_LINE_SIZE]; \
+            decl; }
  
  /* Allocate a structure aligned to a cache line. (used to make atomic ops faster) */
 -#define MALLOC_STRUCT_CL(T) (struct T *)align_malloc(sizeof(struct T), CACHE_LINE_SIZE)
diff --git a/graphics/mesa-dri/files/patch-src_vulkan_wsi_wsi__common__drm.c b/graphics/mesa-dri/files/patch-src_vulkan_wsi_wsi__common__drm.c
deleted file mode 100644
index de0063f6b60c..000000000000
--- a/graphics/mesa-dri/files/patch-src_vulkan_wsi_wsi__common__drm.c
+++ /dev/null
@@ -1,61 +0,0 @@
---- src/vulkan/wsi/wsi_common_drm.c.orig	2022-10-11 18:53:31 UTC
-+++ src/vulkan/wsi/wsi_common_drm.c
-@@ -30,29 +30,15 @@
- #include "vk_physical_device.h"
- #include "vk_util.h"
- #include "drm-uapi/drm_fourcc.h"
-+#include "drm-uapi/dma-buf.h"
- 
- #include <errno.h>
--#include <linux/dma-buf.h>
--#include <linux/sync_file.h>
- #include <time.h>
- #include <unistd.h>
- #include <stdlib.h>
- #include <stdio.h>
- #include <xf86drm.h>
- 
--struct dma_buf_export_sync_file_wsi {
--   __u32 flags;
--   __s32 fd;
--};
--
--struct dma_buf_import_sync_file_wsi {
--   __u32 flags;
--   __s32 fd;
--};
--
--#define DMA_BUF_IOCTL_EXPORT_SYNC_FILE_WSI   _IOWR(DMA_BUF_BASE, 2, struct dma_buf_export_sync_file_wsi)
--#define DMA_BUF_IOCTL_IMPORT_SYNC_FILE_WSI   _IOW(DMA_BUF_BASE, 3, struct dma_buf_import_sync_file_wsi)
--
- static VkResult
- wsi_dma_buf_export_sync_file(int dma_buf_fd, int *sync_file_fd)
- {
-@@ -61,11 +47,11 @@ wsi_dma_buf_export_sync_file(int dma_buf_fd, int *sync
-    if (no_dma_buf_sync_file)
-       return VK_ERROR_FEATURE_NOT_PRESENT;
- 
--   struct dma_buf_export_sync_file_wsi export = {
-+   struct dma_buf_export_sync_file export = {
-       .flags = DMA_BUF_SYNC_RW,
-       .fd = -1,
-    };
--   int ret = drmIoctl(dma_buf_fd, DMA_BUF_IOCTL_EXPORT_SYNC_FILE_WSI, &export);
-+   int ret = drmIoctl(dma_buf_fd, DMA_BUF_IOCTL_EXPORT_SYNC_FILE, &export);
-    if (ret) {
-       if (errno == ENOTTY || errno == EBADF || errno == ENOSYS) {
-          no_dma_buf_sync_file = true;
-@@ -88,11 +74,11 @@ wsi_dma_buf_import_sync_file(int dma_buf_fd, int sync_
-    if (no_dma_buf_sync_file)
-       return VK_ERROR_FEATURE_NOT_PRESENT;
- 
--   struct dma_buf_import_sync_file_wsi import = {
-+   struct dma_buf_import_sync_file import = {
-       .flags = DMA_BUF_SYNC_RW,
-       .fd = sync_file_fd,
-    };
--   int ret = drmIoctl(dma_buf_fd, DMA_BUF_IOCTL_IMPORT_SYNC_FILE_WSI, &import);
-+   int ret = drmIoctl(dma_buf_fd, DMA_BUF_IOCTL_IMPORT_SYNC_FILE, &import);
-    if (ret) {
-       if (errno == ENOTTY || errno == EBADF || errno == ENOSYS) {
-          no_dma_buf_sync_file = true;
diff --git a/graphics/mesa-dri/files/patch-wayland-1.22 b/graphics/mesa-dri/files/patch-wayland-1.22
deleted file mode 100644
index b02fed65996b..000000000000
--- a/graphics/mesa-dri/files/patch-wayland-1.22
+++ /dev/null
@@ -1,44 +0,0 @@
-https://gitlab.freedesktop.org/mesa/mesa/-/commit/ee5d2250fd15
-https://gitlab.freedesktop.org/mesa/mesa/-/commit/689ce66a4332
-
---- src/egl/drivers/dri2/platform_wayland.c.orig	2023-03-08 18:37:09 UTC
-+++ src/egl/drivers/dri2/platform_wayland.c
-@@ -2789,10 +2789,10 @@ dri2_teardown_wayland(struct dri2_egl_display *dri2_dp
-       wl_shm_destroy(dri2_dpy->wl_shm);
-    if (dri2_dpy->wl_registry)
-       wl_registry_destroy(dri2_dpy->wl_registry);
--   if (dri2_dpy->wl_queue)
--      wl_event_queue_destroy(dri2_dpy->wl_queue);
-    if (dri2_dpy->wl_dpy_wrapper)
-       wl_proxy_wrapper_destroy(dri2_dpy->wl_dpy_wrapper);
-+   if (dri2_dpy->wl_queue)
-+      wl_event_queue_destroy(dri2_dpy->wl_queue);
- 
-    if (dri2_dpy->own_device)
-       wl_display_disconnect(dri2_dpy->wl_dpy);
---- src/vulkan/wsi/wsi_common_wayland.c.orig	2023-03-08 18:37:09 UTC
-+++ src/vulkan/wsi/wsi_common_wayland.c
-@@ -1156,17 +1156,17 @@ wsi_wl_surface_destroy(VkIcdSurfaceBase *icd_surface, 
-    struct wsi_wl_surface *wsi_wl_surface =
-       wl_container_of((VkIcdSurfaceWayland *)icd_surface, wsi_wl_surface, base);
- 
--   if (wsi_wl_surface->surface)
--      wl_proxy_wrapper_destroy(wsi_wl_surface->surface);
--
--   if (wsi_wl_surface->display)
--      wsi_wl_display_destroy(wsi_wl_surface->display);
--
-    if (wsi_wl_surface->wl_dmabuf_feedback) {
-       zwp_linux_dmabuf_feedback_v1_destroy(wsi_wl_surface->wl_dmabuf_feedback);
-       dmabuf_feedback_fini(&wsi_wl_surface->dmabuf_feedback);
-       dmabuf_feedback_fini(&wsi_wl_surface->pending_dmabuf_feedback);
-    }
-+
-+   if (wsi_wl_surface->surface)
-+      wl_proxy_wrapper_destroy(wsi_wl_surface->surface);
-+
-+   if (wsi_wl_surface->display)
-+      wsi_wl_display_destroy(wsi_wl_surface->display);
- 
-    vk_free2(&instance->alloc, pAllocator, wsi_wl_surface);
- }
diff --git a/graphics/mesa-dri/pkg-plist b/graphics/mesa-dri/pkg-plist
index 81d0d52662c5..cd7f2d263fb1 100644
--- a/graphics/mesa-dri/pkg-plist
+++ b/graphics/mesa-dri/pkg-plist
@@ -31,6 +31,7 @@ include/GL/internal/dri_interface.h
 @comment lib/libglapi.so.0
 @comment lib/libglapi.so.0.0.0
 %%INTEL_VDRIVER%%lib/libvulkan_intel.so
+%%INTEL_VDRIVER%%lib/libvulkan_intel_hasvk.so
 %%AMD_VDRIVER%%lib/libvulkan_radeon.so
 %%SWRAST_VDRIVER%%lib/libvulkan_lvp.so
 libdata/pkgconfig/dri.pc
@@ -40,5 +41,6 @@ share/drirc.d/00-mesa-defaults.conf
 %%AMD_VDRIVER%%share/drirc.d/00-radv-defaults.conf
 share/drirc.d/01-freebsd.conf
 %%INTEL_VDRIVER%%share/vulkan/icd.d/intel_icd.%%ARCH%%.json
+%%INTEL_VDRIVER%%share/vulkan/icd.d/intel_hasvk_icd.%%ARCH%%.json
 %%AMD_VDRIVER%%share/vulkan/icd.d/radeon_icd.%%ARCH%%.json
 %%SWRAST_VDRIVER%%share/vulkan/icd.d/lvp_icd.%%ARCH%%.json
diff --git a/graphics/mesa-gallium-va/Makefile b/graphics/mesa-gallium-va/Makefile
index 52414df84e4a..250d943c2f56 100644
--- a/graphics/mesa-gallium-va/Makefile
+++ b/graphics/mesa-gallium-va/Makefile
@@ -12,9 +12,10 @@ ONLY_FOR_ARCHS=		aarch64 amd64 i386 powerpc64 powerpc64le
 ONLY_FOR_ARCHS_REASON=	used only by AMD/Radeon hardware
 
 LIB_DEPENDS=	libva.so:multimedia/libva \
-		libLLVM-${LLVM_DEFAULT}.so:devel/llvm${LLVM_DEFAULT} \
 		libzstd.so:archivers/zstd
 
+USES=		llvm:lib,noexport
+
 OPTIONS_DEFINE=		X11
 OPTIONS_DEFAULT=	X11
 X11_DESC=		Enable X11 support
@@ -24,10 +25,10 @@ X11_USE=		xorg=xorgproto,x11,xcb,xdamage,xext,xfixes,xshmfence,xxf86vm,xrandr
 .include <bsd.port.options.mk>
 .include "${.CURDIR:H:H}/graphics/mesa-dri/Makefile.common"
 
-MESON_ARGS+=	-Ddri-drivers="" \
-		-Dvideo-codecs="vc1dec,h264dec,h264enc,h265dec,h265enc" \
+MESON_ARGS+=	-Dvideo-codecs="vc1dec,h264dec,h264enc,h265dec,h265enc" \
 		-Dgallium-drivers="radeonsi,r600" \
 		-Dvulkan-drivers="" \
+		-Dandroid-libbacktrace=disabled \
 		-Dgallium-vdpau=disabled \
 		-Dgallium-omx=disabled \
 		-Dgallium-xa=disabled \
@@ -36,8 +37,10 @@ MESON_ARGS+=	-Ddri-drivers="" \
 		-Dgbm=disabled \
 		-Dgles1=disabled \
 		-Dgles2=disabled \
+		-Dlmsensors=disabled \
 		-Dmicrosoft-clc=disabled \
 		-Dosmesa=false \
+		-Dvalgrind=disabled \
 		-Dglx=disabled \
 		-Ddri3=enabled
 
diff --git a/graphics/mesa-gallium-vdpau/Makefile b/graphics/mesa-gallium-vdpau/Makefile
index ef21e77563af..1eb13a37791f 100644
--- a/graphics/mesa-gallium-vdpau/Makefile
+++ b/graphics/mesa-gallium-vdpau/Makefile
@@ -11,10 +11,9 @@ LICENSE_FILE=	${WRKSRC}/docs/license.rst
 ONLY_FOR_ARCHS=		aarch64 amd64 i386 powerpc64 powerpc64le
 ONLY_FOR_ARCHS_REASON=	used only by AMD/Radeon hardware
 
-LIB_DEPENDS=	libva.so:multimedia/libva \
-		libLLVM-${LLVM_DEFAULT}.so:devel/llvm${LLVM_DEFAULT} \
-		libvdpau.so:multimedia/libvdpau \
-		libzstd.so:archivers/zstd
+LIB_DEPENDS=	libzstd.so:archivers/zstd
+
+USES=		llvm:lib,noexport
 
 OPTIONS_DEFINE=		X11
 OPTIONS_DEFAULT=	X11
@@ -25,9 +24,9 @@ X11_USE=		xorg=xorgproto,x11,xcb,xdamage,xext,xfixes,xshmfence,xxf86vm,xrandr
 .include <bsd.port.options.mk>
 .include "${.CURDIR:H:H}/graphics/mesa-dri/Makefile.common"
 
-MESON_ARGS+=	-Ddri-drivers="" \
-		-Dgallium-drivers="r300,r600,radeonsi" \
+MESON_ARGS+=	-Dgallium-drivers="r600,radeonsi" \
 		-Dvulkan-drivers="" \
+		-Dandroid-libbacktrace=disabled \
 		-Dgallium-va=disabled \
 		-Dgallium-omx=disabled \
 		-Dgallium-xa=disabled \
@@ -36,8 +35,10 @@ MESON_ARGS+=	-Ddri-drivers="" \
 		-Dgbm=disabled \
 		-Dgles1=disabled \
 		-Dgles2=disabled \
+		-Dlmsensors=disabled \
 		-Dmicrosoft-clc=disabled \
 		-Dosmesa=false \
+		-Dvalgrind=disabled \
 		-Dglx=disabled \
 		-Ddri3=enabled
 
diff --git a/graphics/mesa-gallium-vdpau/pkg-plist b/graphics/mesa-gallium-vdpau/pkg-plist
index 4dde828473ba..4d88ba1194b7 100644
--- a/graphics/mesa-gallium-vdpau/pkg-plist
+++ b/graphics/mesa-gallium-vdpau/pkg-plist
@@ -19,10 +19,6 @@
 @comment lib/libglapi.so
 @comment lib/libglapi.so.0
 @comment lib/libglapi.so.0.0.0
-lib/vdpau/libvdpau_r300.so
-lib/vdpau/libvdpau_r300.so.1
-lib/vdpau/libvdpau_r300.so.1.0
-lib/vdpau/libvdpau_r300.so.1.0.0
 lib/vdpau/libvdpau_r600.so
 lib/vdpau/libvdpau_r600.so.1
 lib/vdpau/libvdpau_r600.so.1.0
diff --git a/graphics/mesa-gallium-xa/Makefile b/graphics/mesa-gallium-xa/Makefile
index 7a670a3c21c9..72d13b41fa26 100644
--- a/graphics/mesa-gallium-xa/Makefile
+++ b/graphics/mesa-gallium-xa/Makefile
@@ -11,18 +11,16 @@ LICENSE_FILE=	${WRKSRC}/docs/license.rst
 ONLY_FOR_ARCHS=		amd64 i386
 ONLY_FOR_ARCHS_REASON=	used only by VMware supported architectures
 
-LIB_DEPENDS=	libLLVM-${LLVM_DEFAULT}.so:devel/llvm${LLVM_DEFAULT}
-
-USES=		xorg
+USES=		llvm:lib,noexport xorg
 USE_XORG=	xorgproto
 
 .include <bsd.port.options.mk>
 .include "${.CURDIR:H:H}/graphics/mesa-dri/Makefile.common"
 
-MESON_ARGS+=	-Ddri-drivers="" \
-		-Dgallium-drivers="svga" \
+MESON_ARGS+=	-Dgallium-drivers="svga" \
 		-Dvulkan-drivers="" \
 		-Dplatforms="" \
+		-Dandroid-libbacktrace=disabled \
 		-Dgallium-vdpau=disabled \
 		-Dgallium-omx=disabled \
 		-Dgallium-va=disabled \
@@ -33,10 +31,13 @@ MESON_ARGS+=	-Ddri-drivers="" \
 		-Dgles1=disabled \
 		-Dgles2=disabled \
 		-Dglx=disabled \
+		-Dlmsensors=disabled \
 		-Dmicrosoft-clc=disabled \
 		-Dopengl=false \
 		-Dshared-glapi=disabled \
-		-Dosmesa=false
+		-Dosmesa=false \
+		-Dvalgrind=disabled \
+		-Dxlib-lease=disabled
 
 LDFLAGS_i386=		-Wl,-znotext
 
diff --git a/graphics/mesa-libs/Makefile b/graphics/mesa-libs/Makefile
index a32d819d6c45..12490b1a70fc 100644
--- a/graphics/mesa-libs/Makefile
+++ b/graphics/mesa-libs/Makefile
@@ -1,6 +1,5 @@
 PORTNAME=	mesa-libs
 PORTVERSION=	${MESAVERSION}
-PORTREVISION=	2
 CATEGORIES=	graphics
 
 COMMENT=	OpenGL libraries that support GLX and EGL clients
@@ -35,14 +34,17 @@ USE_LDCONFIG=		yes
 .include <bsd.port.options.mk>
 .include "${.CURDIR:H:H}/graphics/mesa-dri/Makefile.common"
 
-MESON_ARGS+=	-Dgallium-vdpau=disabled \
+MESON_ARGS+=	-Dandroid-libbacktrace=disabled \
+		-Dgallium-vdpau=disabled \
 		-Dgallium-omx=disabled \
 		-Dgallium-va=disabled \
 		-Dgallium-xa=disabled \
 		-Dgallium-nine=false \
+		-Dlmsensors=disabled \
 		-Dmicrosoft-clc=disabled \
 		-Dosmesa=false \
 		-Dtools="" \
+		-Dvalgrind=disabled \
 		-Degl=enabled \
 		-Dgbm=enabled \
 		-Dvulkan-drivers="" \
diff --git a/lang/clover/Makefile b/lang/clover/Makefile
index 629e9a1123c8..6c3c00ef1ad5 100644
--- a/lang/clover/Makefile
+++ b/lang/clover/Makefile
@@ -14,17 +14,18 @@ ONLY_FOR_ARCHS_REASON=	needs a GPU supported by the Radeon KMS driver
 BUILD_DEPENDS=	libclc>=0.3.0:devel/libclc \
 		opencl>=0:devel/opencl
 LIB_DEPENDS=	libOpenCL.so:devel/ocl-icd \
-		libLLVM-${LLVM_DEFAULT}.so:devel/llvm${LLVM_DEFAULT} \
 		libzstd.so:archivers/zstd
 RUN_DEPENDS=	libclc>=0.3.0:devel/libclc \
 		opencl>=0:devel/opencl
 
+USES=		llvm:lib,noexport
+
 .include <bsd.port.options.mk>
 .include "${.CURDIR:H:H}/graphics/mesa-dri/Makefile.common"
 
-MESON_ARGS+=	-Ddri-drivers="" \
-		-Dplatforms="" \
+MESON_ARGS+=	-Dplatforms="" \
 		-Dvulkan-drivers="" \
+		-Dandroid-libbacktrace=disabled \
 		-Dgallium-nine=false \
 		-Dgallium-omx=disabled \
 		-Dgallium-opencl=disabled \
@@ -39,6 +40,9 @@ MESON_ARGS+=	-Ddri-drivers="" \
 		-Degl=disabled \
 		-Dgbm=disabled \
 		-Dtools="" \
+		-Dxlib-lease=disabled \
+		-Dlmsensors=disabled \
+		-Dvalgrind=disabled \
 		-Dgallium-opencl=icd \
 		-Dgallium-drivers=r600,radeonsi
 
@@ -47,9 +51,9 @@ LDFLAGS_i386=		-Wl,-znotext
 .include "${MASTERDIR}/Makefile.targets"
 
 pre-patch:
-	@if [ -e ${LOCALBASE}/bin/llvm-config${LLVM_DEFAULT} ] && \
-		! [ -e ${LOCALBASE}/bin/clang${LLVM_DEFAULT} ]; then \
-		${ECHO_MSG} "Your llvm${LLVM_DEFAULT} is not built with clang support, which is required."; \
+	@if [ -e ${LOCALBASE}/bin/llvm-config${LLVM_VERSION} ] && \
+		! [ -e ${LOCALBASE}/bin/clang${LLVM_VERSION} ]; then \
+		${ECHO_MSG} "Your llvm${LLVM_VERSION} is not built with clang support, which is required."; \
 		${FALSE}; \
 	fi