git: 823c5a85dffc - main - graphics/mesa-{dri,libs}: Update to 26.0.6
Date: Mon, 15 Jun 2026 15:56:36 UTC
The branch main has been updated by arrowd:
URL: https://cgit.FreeBSD.org/ports/commit/?id=823c5a85dffc3f6c3210a56ac5e890dc75d43b82
commit 823c5a85dffc3f6c3210a56ac5e890dc75d43b82
Author: Kenneth Raplee <kenrap@FreeBSD.org>
AuthorDate: 2026-05-25 13:53:19 +0000
Commit: Gleb Popov <arrowd@FreeBSD.org>
CommitDate: 2026-06-15 15:55:33 +0000
graphics/mesa-{dri,libs}: Update to 26.0.6
PR: 294957
Co-authored-by: Gleb Popov <arrowd@FreeBSD.org>
---
graphics/mesa-dri/Makefile | 20 ++---
graphics/mesa-dri/Makefile.common | 8 +-
graphics/mesa-dri/distinfo | 6 +-
...atch-src_gallium_winsys_amdgpu_drm_amdgpu__bo.c | 4 +-
.../files/patch-src_intel_common_xe_intel__gem.c | 9 +-
graphics/mesa-dri/files/patch-src_util_u__memory.h | 2 +-
...report-limit-layer_vram__report__limit__layer.c | 11 +++
.../patch-src_vulkan_wsi_wsi__common__wayland.c | 21 +++++
graphics/mesa-dri/files/patch-userptr | 100 +++++++++++++++++++++
graphics/mesa-dri/pkg-plist | 67 ++++++++++----
graphics/mesa-libs/Makefile | 2 +-
11 files changed, 206 insertions(+), 44 deletions(-)
diff --git a/graphics/mesa-dri/Makefile b/graphics/mesa-dri/Makefile
index 0cb50722fb12..35969b09f5e5 100644
--- a/graphics/mesa-dri/Makefile
+++ b/graphics/mesa-dri/Makefile
@@ -42,15 +42,11 @@ llvmpipe_DESC= Software Rasterizer
panfrost_DESC= ARM Midgard and Bifrost
r300_DESC= AMD/ATI R300, R400 and R500
r600_DESC= AMD/ATI R600, R700, Evergreen, Northern Islands
-r600_BUILD_DEPENDS= libva>=0:multimedia/libva \
- libvdpau>=0:multimedia/libvdpau
-r600_MESON_ON= -Dgallium-va=enabled \
- -Dgallium-vdpau=enabled
+r600_BUILD_DEPENDS= libva>=0:multimedia/libva
+r600_MESON_ON= -Dgallium-va=enabled
radeonsi_DESC= AMD/ATI Southern Islands and newer
-radeonsi_BUILD_DEPENDS= libva>=0:multimedia/libva \
- libvdpau>=0:multimedia/libvdpau
-radeonsi_MESON_ON= -Dgallium-va=enabled \
- -Dgallium-vdpau=enabled
+radeonsi_BUILD_DEPENDS= libva>=0:multimedia/libva
+radeonsi_MESON_ON= -Dgallium-va=enabled
svga_DESC= VMWare Virtual GPU
zink_DESC= OpenGL on top of Khronos’ Vulkan API
@@ -92,7 +88,8 @@ LDFLAGS_i386= -Wl,-znotext
.if ${PORT_OPTIONS:MX11}
MESA_PLATFORMS+= x11
-USE_XORG+= xcb xorgproto xrandr x11 xdamage xext xfixes xshmfence xv
+USE_XORG+= x11 xcb xdamage xext xfixes xorgproto xrandr xshmfence \
+ xv xxf86vm
.else
MESON_ARGS+= -Dxlib-lease=disabled
.endif
@@ -118,8 +115,7 @@ MESON_ARGS+= -Dandroid-libbacktrace=disabled \
-Dvalgrind=disabled
.if !${PORT_OPTIONS:Mr600} && !${PORT_OPTIONS:Mradeonsi}
-MESON_ARGS+= -Dgallium-va=disabled \
- -Dgallium-vdpau=disabled
+MESON_ARGS+= -Dgallium-va=disabled
.endif
.if ${ARCH} != amd64
@@ -134,7 +130,7 @@ PLIST_SUB+= ${_gd}="@comment "
. endif
.endfor
-PLIST_SUB += ARCH=${ARCH:S/amd/x86_/}
+PLIST_SUB+= ARCH=${ARCH:S/amd/x86_/}
.for _vd in ${OPTIONS_GROUP_VULKAN}
. if defined(VULKAN_DRIVERS) && ${VULKAN_DRIVERS:M${_vd}}
PLIST_SUB+= ${_vd}=""
diff --git a/graphics/mesa-dri/Makefile.common b/graphics/mesa-dri/Makefile.common
index 685026539c40..8b0d8c018ade 100644
--- a/graphics/mesa-dri/Makefile.common
+++ b/graphics/mesa-dri/Makefile.common
@@ -7,7 +7,7 @@
# - graphics/mesa-dri
# - graphics/mesa-libs
-MESAVERSION= 25.2.8
+MESAVERSION= 26.0.6
MASTER_SITES= https://mesa.freedesktop.org/archive/
@@ -29,8 +29,8 @@ USES+= xorg
.endif
.endif
-LIB_DEPENDS+= libdrm.so:graphics/libdrm
-LIB_DEPENDS+= libexpat.so:textproc/expat2
+LIB_DEPENDS+= libdrm.so:graphics/libdrm \
+ libexpat.so:textproc/expat2
USES+= compiler:c++11-lib bison meson pathfix pkgconfig \
python:build shebangfix tar:xz
@@ -49,6 +49,8 @@ PKGHELP= ${.CURDIR}/pkg-help
PKGINSTALL= ${.CURDIR}/pkg-install
PKGDEINSTALL= ${.CURDIR}/pkg-deinstall
+LTO_UNSAFE= Upstream recommends against LTO https://gitlab.freedesktop.org/mesa/mesa/-/commit/cb571550cc63f6bb22e0212dc681d8a2cd90926c
+
.include <bsd.port.pre.mk>
BINARY_ALIAS+= python3=${PYTHON_VERSION}
diff --git a/graphics/mesa-dri/distinfo b/graphics/mesa-dri/distinfo
index 39a69f4d89b2..d744da8c1a65 100644
--- a/graphics/mesa-dri/distinfo
+++ b/graphics/mesa-dri/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1777655135
-SHA256 (mesa-25.2.8.tar.xz) = 097842f3e49d996868b38688db87b006f7d4541e93ce86d2f341d8b3e7be7c93
-SIZE (mesa-25.2.8.tar.xz) = 43813260
+TIMESTAMP = 1777621283
+SHA256 (mesa-26.0.6.tar.xz) = 1d3c3b8a8363b8cc354175bb4a684ad8b035211cc1d6fa17aeb9b9623c513f89
+SIZE (mesa-26.0.6.tar.xz) = 43944196
diff --git a/graphics/mesa-dri/files/patch-src_gallium_winsys_amdgpu_drm_amdgpu__bo.c b/graphics/mesa-dri/files/patch-src_gallium_winsys_amdgpu_drm_amdgpu__bo.c
index 75994a00618e..75ef43aca99d 100644
--- a/graphics/mesa-dri/files/patch-src_gallium_winsys_amdgpu_drm_amdgpu__bo.c
+++ b/graphics/mesa-dri/files/patch-src_gallium_winsys_amdgpu_drm_amdgpu__bo.c
@@ -1,6 +1,6 @@
---- src/gallium/winsys/amdgpu/drm/amdgpu_bo.c.orig 2024-02-16 16:21:40 UTC
+--- src/gallium/winsys/amdgpu/drm/amdgpu_bo.c.orig 2026-04-15 14:20:41 UTC
+++ src/gallium/winsys/amdgpu/drm/amdgpu_bo.c
-@@ -709,7 +709,7 @@ struct pb_slab *amdgpu_bo_slab_alloc(void *priv, unsig
+@@ -861,7 +861,7 @@ struct pb_slab *amdgpu_bo_slab_alloc(void *priv, unsig
slab_bo->slab.group_index = group_index;
slab_bo->slab.entry_size = entry_size;
slab_bo->entries = os_malloc_aligned(slab_bo->slab.num_entries * sizeof(*slab_bo->entries),
diff --git a/graphics/mesa-dri/files/patch-src_intel_common_xe_intel__gem.c b/graphics/mesa-dri/files/patch-src_intel_common_xe_intel__gem.c
index dbaa9564c9c5..d2f9a0fe5596 100644
--- a/graphics/mesa-dri/files/patch-src_intel_common_xe_intel__gem.c
+++ b/graphics/mesa-dri/files/patch-src_intel_common_xe_intel__gem.c
@@ -1,13 +1,12 @@
---- src/intel/common/xe/intel_gem.c.orig 2024-05-22 09:48:39.000000000 -0700
-+++ src/intel/common/xe/intel_gem.c 2024-06-01 06:28:22.268439000 -0700
-@@ -69,8 +69,10 @@
+--- src/intel/common/xe/intel_gem.c.orig 2026-04-15 14:20:41 UTC
++++ src/intel/common/xe/intel_gem.c
+@@ -72,7 +72,9 @@ xe_gem_read_correlate_cpu_gpu_timestamp(int fd,
#endif
case CLOCK_REALTIME:
#ifdef CLOCK_BOOTTIME
+#if !(defined(CLOCK_BOOTTIME) && CLOCK_BOOTTIME == CLOCK_MONOTONIC)
case CLOCK_BOOTTIME:
- #endif
+#endif
+ #endif
#ifdef CLOCK_TAI
case CLOCK_TAI:
- #endif
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 fcaec0a4a2d2..4eb7c96c0c23 100644
--- a/graphics/mesa-dri/files/patch-src_util_u__memory.h
+++ b/graphics/mesa-dri/files/patch-src_util_u__memory.h
@@ -1,4 +1,4 @@
---- src/util/u_memory.h.orig 2023-11-29 19:30:57 UTC
+--- src/util/u_memory.h.orig 2026-04-15 14:20:41 UTC
+++ src/util/u_memory.h
@@ -84,7 +84,7 @@ mem_dup(const void *src, size_t size)
}
diff --git a/graphics/mesa-dri/files/patch-src_vulkan_vram-report-limit-layer_vram__report__limit__layer.c b/graphics/mesa-dri/files/patch-src_vulkan_vram-report-limit-layer_vram__report__limit__layer.c
new file mode 100644
index 000000000000..554601393c16
--- /dev/null
+++ b/graphics/mesa-dri/files/patch-src_vulkan_vram-report-limit-layer_vram__report__limit__layer.c
@@ -0,0 +1,11 @@
+--- src/vulkan/vram-report-limit-layer/vram_report_limit_layer.c.orig 2026-04-15 14:20:41 UTC
++++ src/vulkan/vram-report-limit-layer/vram_report_limit_layer.c
+@@ -447,7 +447,7 @@ vram_report_limit_CreateInstance(const VkInstanceCreat
+ struct vram_report_limit_instance_data *instance_data = os_malloc_aligned(
+ sizeof(*instance_data) + sizeof(instance_data->active_pdevices_array[0]) *
+ active_pdevices_count,
+- CACHE_LINE_SIZE);
++ MESA_CACHE_LINE_SIZE);
+ if (instance_data == NULL) {
+ result = VK_ERROR_OUT_OF_HOST_MEMORY;
+ goto err_free_is_pdevice_active_array;
diff --git a/graphics/mesa-dri/files/patch-src_vulkan_wsi_wsi__common__wayland.c b/graphics/mesa-dri/files/patch-src_vulkan_wsi_wsi__common__wayland.c
new file mode 100644
index 000000000000..caa289c7dac5
--- /dev/null
+++ b/graphics/mesa-dri/files/patch-src_vulkan_wsi_wsi__common__wayland.c
@@ -0,0 +1,21 @@
+../src/vulkan/wsi/wsi_common_wayland.c:1962:57: error: use of undeclared identifier 'CLOCK_MONOTONIC_RAW'
+ 1962 | if (clock_id != CLOCK_MONOTONIC && clock_id != CLOCK_MONOTONIC_RAW)
+ | ^
+../src/vulkan/wsi/wsi_common_wayland.c:3601:12: error: use of undeclared identifier 'CLOCK_MONOTONIC_RAW'
+ 3601 | case CLOCK_MONOTONIC_RAW:
+ | ^
+
+--- src/vulkan/wsi/wsi_common_wayland.c.orig 2026-04-15 14:20:41 UTC
++++ src/vulkan/wsi/wsi_common_wayland.c
+@@ -68,6 +68,11 @@
+ #include <sys/sysmacros.h>
+ #endif
+
++/* The "RAW" clocks on Linux are called "FAST" on FreeBSD */
++#if !defined(CLOCK_MONOTONIC_RAW) && defined(CLOCK_MONOTONIC_FAST)
++#define CLOCK_MONOTONIC_RAW CLOCK_MONOTONIC_FAST
++#endif
++
+ struct wsi_wayland;
+
+ struct wsi_wl_format {
diff --git a/graphics/mesa-dri/files/patch-userptr b/graphics/mesa-dri/files/patch-userptr
new file mode 100644
index 000000000000..f5d0cc388fda
--- /dev/null
+++ b/graphics/mesa-dri/files/patch-userptr
@@ -0,0 +1,100 @@
+Try unsynchronized userptr if regular one fails.
+https://github.com/FreeBSDDesktop/kms-drm/issues/197
+https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13162
+
+--- src/gallium/drivers/crocus/crocus_bufmgr.c.orig 2026-04-15 14:20:41 UTC
++++ src/gallium/drivers/crocus/crocus_bufmgr.c
+@@ -487,8 +487,20 @@ crocus_bo_create_userptr(struct crocus_bufmgr *bufmgr,
+ .user_ptr = (uintptr_t)ptr,
+ .user_size = size,
+ };
+- if (intel_ioctl(bufmgr->fd, DRM_IOCTL_I915_GEM_USERPTR, &arg))
++
++ int ret;
++retry:
++ ret = intel_ioctl(bufmgr->fd, DRM_IOCTL_I915_GEM_USERPTR, &arg);
++ if (ret) {
++ if (errno == ENODEV && arg.flags == 0) {
++ arg.flags = I915_USERPTR_UNSYNCHRONIZED;
++ goto retry;
++ }
++ if (geteuid() != 0) {
++ fprintf(stderr, "%s", "ioctl(I915_GEM_USERPTR) failed. Try running as root but expect poor stability.\n");
++ }
+ goto err_free;
++ }
+ bo->gem_handle = arg.handle;
+
+ /* Check the buffer for validity before we try and use it in a batch */
+--- src/gallium/drivers/iris/i915/iris_kmd_backend.c.orig 2026-04-15 14:20:41 UTC
++++ src/gallium/drivers/iris/i915/iris_kmd_backend.c
+@@ -443,8 +443,20 @@ i915_gem_create_userptr(struct iris_bufmgr *bufmgr, vo
+ .user_size = size,
+ .flags = devinfo->has_userptr_probe ? I915_USERPTR_PROBE : 0,
+ };
+- if (intel_ioctl(iris_bufmgr_get_fd(bufmgr), DRM_IOCTL_I915_GEM_USERPTR, &arg))
++
++ int ret;
++retry:
++ ret = intel_ioctl(iris_bufmgr_get_fd(bufmgr), DRM_IOCTL_I915_GEM_USERPTR, &arg);
++ if (ret) {
++ if (errno == ENODEV && arg.flags == 0) {
++ arg.flags = I915_USERPTR_UNSYNCHRONIZED;
++ goto retry;
++ }
++ if (geteuid() != 0) {
++ fprintf(stderr, "%s", "ioctl(I915_GEM_USERPTR) failed. Try running as root but expect poor stability.\n");
++ }
+ return 0;
++ }
+
+ if (!devinfo->has_userptr_probe) {
+ /* Check the buffer for validity before we try and use it in a batch */
+--- src/intel/vulkan_hasvk/anv_gem.c.orig 2026-04-15 14:20:41 UTC
++++ src/intel/vulkan_hasvk/anv_gem.c
+@@ -150,9 +150,19 @@ anv_gem_userptr(struct anv_device *device, void *mem,
+ if (device->physical->info.has_userptr_probe)
+ userptr.flags |= I915_USERPTR_PROBE;
+
+- int ret = intel_ioctl(device->fd, DRM_IOCTL_I915_GEM_USERPTR, &userptr);
+- if (ret == -1)
++ int ret;
++retry:
++ ret = intel_ioctl(device->fd, DRM_IOCTL_I915_GEM_USERPTR, &userptr);
++ if (ret == -1) {
++ if (errno == ENODEV && userptr.flags == 0) {
++ userptr.flags = I915_USERPTR_UNSYNCHRONIZED;
++ goto retry;
++ }
++ if (geteuid() != 0) {
++ fprintf(stderr, "%s", "ioctl(I915_GEM_USERPTR) failed. Try running as root but expect poor stability.\n");
++ }
+ return 0;
++ }
+
+ return userptr.handle;
+ }
+--- src/intel/vulkan/i915/anv_kmd_backend.c.orig 2026-04-15 14:20:41 UTC
++++ src/intel/vulkan/i915/anv_kmd_backend.c
+@@ -274,9 +274,19 @@ i915_gem_create_userptr(struct anv_device *device, voi
+ if (device->physical->info.has_userptr_probe)
+ userptr.flags |= I915_USERPTR_PROBE;
+
+- int ret = intel_ioctl(device->fd, DRM_IOCTL_I915_GEM_USERPTR, &userptr);
+- if (ret == -1)
++ int ret;
++retry:
++ ret = intel_ioctl(device->fd, DRM_IOCTL_I915_GEM_USERPTR, &userptr);
++ if (ret == -1) {
++ if (errno == ENODEV && userptr.flags == 0) {
++ userptr.flags = I915_USERPTR_UNSYNCHRONIZED;
++ goto retry;
++ }
++ if (geteuid() != 0) {
++ fprintf(stderr, "%s", "ioctl(I915_GEM_USERPTR) failed. Try running as root but expect poor stability.\n");
++ }
+ return 0;
++ }
+
+ return userptr.handle;
+ }
diff --git a/graphics/mesa-dri/pkg-plist b/graphics/mesa-dri/pkg-plist
index b5c8b5667342..49db8c12716e 100644
--- a/graphics/mesa-dri/pkg-plist
+++ b/graphics/mesa-dri/pkg-plist
@@ -1,44 +1,77 @@
-lib/dri/libdril_dri.so
+lib/dri/apple_dri.so
+lib/dri/armada-drm_dri.so
%%crocus%%lib/dri/crocus_dri.so
+lib/dri/exynos_dri.so
+lib/dri/gm12u320_dri.so
+lib/dri/hdlcd_dri.so
+lib/dri/hx8357d_dri.so
%%i915%%lib/dri/i915_dri.so
+lib/dri/ili9163_dri.so
+lib/dri/ili9225_dri.so
+lib/dri/ili9341_dri.so
+lib/dri/ili9486_dri.so
+lib/dri/imx-dcss_dri.so
+lib/dri/imx-drm_dri.so
+lib/dri/imx-lcdif_dri.so
+lib/dri/ingenic-drm_dri.so
%%iris%%lib/dri/iris_dri.so
+lib/dri/kirin_dri.so
+%%llvmpipe%%lib/dri/kms_swrast_dri.so
+lib/dri/komeda_dri.so
+lib/dri/libdril_dri.so
+lib/dri/mali-dp_dri.so
+lib/dri/mcde_dri.so
+lib/dri/mediatek_dri.so
+lib/dri/meson_dri.so
+lib/dri/mi0283qt_dri.so
+lib/dri/mxsfb-drm_dri.so
+lib/dri/panel-mipi-dbi_dri.so
%%panfrost%%lib/dri/panfrost_dri.so
-%%panfrost%%lib/dri/rockchip_dri.so
+lib/dri/pl111_dri.so
%%r300%%lib/dri/r300_dri.so
%%r600%%lib/dri/r600_dri.so
%%r600%%lib/dri/r600_drv_video.so
%%radeonsi%%lib/dri/radeonsi_dri.so
%%radeonsi%%lib/dri/radeonsi_drv_video.so
-%%svga%%lib/dri/vmwgfx_dri.so
-%%llvmpipe%%lib/dri/kms_swrast_dri.so
+lib/dri/rcar-du_dri.so
+lib/dri/repaper_dri.so
+%%panfrost%%lib/dri/rockchip_dri.so
+lib/dri/rzg2l-du_dri.so
+lib/dri/ssd130x_dri.so
+lib/dri/st7586_dri.so
+lib/dri/st7735r_dri.so
+lib/dri/sti_dri.so
+lib/dri/stm_dri.so
+lib/dri/sun4i-drm_dri.so
%%llvmpipe%%lib/dri/swrast_dri.so
+lib/dri/udl_dri.so
+lib/dri/vkms_dri.so
+%%svga%%lib/dri/vmwgfx_dri.so
%%zink%%lib/dri/zink_dri.so
+lib/dri/zynqmp-dpsub_dri.so
+@comment lib/gbm/dri_gbm.so
@comment lib/libEGL.so
@comment lib/libEGL.so.1
@comment lib/libEGL.so.1.0.0
-@comment lib/libgbm.so
-@comment lib/libgbm.so.1
-@comment lib/libgbm.so.1.0.0
+@comment lib/libEGL_mesa.so
+@comment lib/libEGL_mesa.so.0
+@comment lib/libEGL_mesa.so.0.0.0
@comment lib/libGLESv1_CM.so
@comment lib/libGLESv1_CM.so.1
@comment lib/libGLESv1_CM.so.1.1.0
@comment lib/libGLESv2.so
@comment lib/libGLESv2.so.2
@comment lib/libGLESv2.so.2.0.0
+@comment lib/libgallium-%%MESAVERSION%%.so
+@comment lib/libgbm.so
+@comment lib/libgbm.so.1
+@comment lib/libgbm.so.1.0.0
%%anv%%lib/libvulkan_intel.so
-%%radv%%lib/libvulkan_radeon.so
%%swrast_vk%%lib/libvulkan_lvp.so
-%%r600%%lib/vdpau/libvdpau_r600.so
-%%r600%%lib/vdpau/libvdpau_r600.so.1
-%%r600%%lib/vdpau/libvdpau_r600.so.1.0
-%%r600%%lib/vdpau/libvdpau_r600.so.1.0.0
-%%radeonsi%%lib/vdpau/libvdpau_radeonsi.so
-%%radeonsi%%lib/vdpau/libvdpau_radeonsi.so.1
-%%radeonsi%%lib/vdpau/libvdpau_radeonsi.so.1.0
-%%radeonsi%%lib/vdpau/libvdpau_radeonsi.so.1.0.0
+%%radv%%lib/libvulkan_radeon.so
share/drirc.d/00-mesa-defaults.conf
%%radv%%share/drirc.d/00-radv-defaults.conf
share/drirc.d/01-freebsd.conf
%%anv%%share/vulkan/icd.d/intel_icd.%%ARCH%%.json
-%%radv%%share/vulkan/icd.d/radeon_icd.%%ARCH%%.json
%%swrast_vk%%share/vulkan/icd.d/lvp_icd.%%ARCH%%.json
+%%radv%%share/vulkan/icd.d/radeon_icd.%%ARCH%%.json
diff --git a/graphics/mesa-libs/Makefile b/graphics/mesa-libs/Makefile
index d653b3b01348..1088b8295661 100644
--- a/graphics/mesa-libs/Makefile
+++ b/graphics/mesa-libs/Makefile
@@ -15,6 +15,7 @@ BUILD_DEPENDS= libglvnd>=0:graphics/libglvnd \
libclc-${LLVM_PORT:T}>0:devel/libclc@${LLVM_PORT:T} \
spirv-tools>0:graphics/spirv-tools \
spirv-llvm-translator-${LLVM_PORT:T}>0:devel/spirv-llvm-translator@${LLVM_PORT:T}
+LIB_DEPENDS= libdisplay-info.so:sysutils/libdisplay-info
RUN_DEPENDS= spirv-tools>0:graphics/spirv-tools \
spirv-llvm-translator-${LLVM_PORT:T}>0:devel/spirv-llvm-translator@${LLVM_PORT:T}
@@ -59,7 +60,6 @@ MESON_ARGS+= -Dgallium-drivers=${GALLIUM_DRIVERS:ts,}
MESON_ARGS+= -Dvulkan-drivers=""
MESON_ARGS+= -Dandroid-libbacktrace=disabled \
- -Dgallium-vdpau=disabled \
-Dgallium-va=disabled \
-Dlmsensors=disabled \
-Dmicrosoft-clc=disabled \