diff --git a/graphics/mesa-dri/Makefile.common b/graphics/mesa-dri/Makefile.common index 914e8af03458..93038091c94d 100644 --- a/graphics/mesa-dri/Makefile.common +++ b/graphics/mesa-dri/Makefile.common @@ -1,76 +1,76 @@ # Makefile.common - shared code between MesaLib ports. # # !!! Here be dragons !!! (they seem to be everywhere these days) # # Remember to upgrade the following ports everytime you bump MESAVERSION: # # - graphics/mesa-dri # - graphics/mesa-libs -MESAVERSION= 26.1.3 +MESAVERSION= 26.1.4 MASTER_SITES= https://mesa.freedesktop.org/archive/ DISTFILES= mesa-${MESAVERSION}${EXTRACT_SUFX} MAINTAINER= x11@FreeBSD.org LICENSE= MIT LICENSE_FILE= ${WRKSRC}/docs/license.rst COMPONENT= ${PORTNAME:tl:C/^lib//:C/mesa-//} BUILD_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}mako>0:textproc/py-mako@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}packaging>0:devel/py-packaging@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}pyyaml>0:devel/py-pyyaml@${PY_FLAVOR} LIB_DEPENDS+= libdrm.so:graphics/libdrm \ libexpat.so:textproc/expat2 USES+= compiler:c++11-lib bison meson pathfix pkgconfig \ python:build shebangfix tar:xz .if ${PORT_OPTIONS:MX11} USES+= xorg .endif # only have one port to check with portscout. .if ${PORTNAME} != mesa-dri PORTSCOUT= ignore:1 .endif MASTERDIR= ${.CURDIR:H:H}/graphics/mesa-dri PATCHDIR= ${MASTERDIR}/files WRKSRC= ${WRKDIR}/mesa-${MESAVERSION} DESCR= ${.CURDIR}/pkg-descr PLIST= ${.CURDIR}/pkg-plist 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 BINARY_ALIAS+= python3=${PYTHON_VERSION} CONFIGURE_ENV+= LLVM_CONFIG=${LLVM_CONFIG} # Needed to locate libclc CONFIGURE_ENV+= PKG_CONFIG_PATH="${LLVM_PREFIX}/libdata/pkgconfig" # mesa 25.x removed the -Dlibelf option; libelf is now auto-detected. # If the user has elfutils installed in LOCALBASE, propagate it as a # proper LIB_DEPENDS so the dependency is recorded. .if exists(${LOCALBASE}/include/libelf.h) LIB_DEPENDS+= libelf.so:devel/elfutils .endif # 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 \ -Dgallium-mediafoundation=disabled diff --git a/graphics/mesa-dri/distinfo b/graphics/mesa-dri/distinfo index 1e686ef52c56..a730e49e0167 100644 --- a/graphics/mesa-dri/distinfo +++ b/graphics/mesa-dri/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1782066605 -SHA256 (mesa-26.1.3.tar.xz) = 7725004e724b34c6d4fbaf5c48fc6c6223aa9f2741d6d7782c699b049356fc45 -SIZE (mesa-26.1.3.tar.xz) = 77608344 +TIMESTAMP = 1783481027 +SHA256 (mesa-26.1.4.tar.xz) = 072705caa9adf4740f1489194b13e278ad959166863b5271fe423a86353c9ab6 +SIZE (mesa-26.1.4.tar.xz) = 77677128 diff --git a/graphics/mesa-dri/files/patch-include_renderdoc__app.h b/graphics/mesa-dri/files/patch-include_renderdoc__app.h index 7334da88f9f2..75a7032989f7 100644 --- a/graphics/mesa-dri/files/patch-include_renderdoc__app.h +++ b/graphics/mesa-dri/files/patch-include_renderdoc__app.h @@ -1,11 +1,11 @@ ---- include/renderdoc_app.h.orig 2026-05-01 23:38:47 UTC +--- include/renderdoc_app.h.orig 2026-07-01 14:16:13 UTC +++ include/renderdoc_app.h @@ -35,7 +35,7 @@ - #if defined(WIN32) + #if defined(WIN32) || defined(__WIN32__) || defined(_WIN32) || defined(_MSC_VER) #define RENDERDOC_CC __cdecl -#elif defined(__linux__) +#elif defined(__linux__) || defined(__FreeBSD__) || defined(__DragonFly__) #define RENDERDOC_CC #elif defined(__APPLE__) #define RENDERDOC_CC diff --git a/graphics/mesa-dri/files/patch-meson.build b/graphics/mesa-dri/files/patch-meson.build index dee5fd0ef099..a6fc7ef9beba 100644 --- a/graphics/mesa-dri/files/patch-meson.build +++ b/graphics/mesa-dri/files/patch-meson.build @@ -1,11 +1,11 @@ ---- meson.build.orig 2026-05-01 17:13:34 UTC +--- meson.build.orig 2026-07-01 14:16:13 UTC +++ meson.build -@@ -734,7 +734,7 @@ if host_machine.cpu_family() == 'ppc64' and host_machi +@@ -799,7 +799,7 @@ if host_machine.cpu_family() == 'ppc64' and host_machi int main() { vector unsigned char r; vector unsigned int v = vec_splat_u32 (1); - r = __builtin_vec_vgbbd ((vector unsigned char) v); + r = __builtin_altivec_vgbbd ((vector unsigned char) v); return 0; }''', name : 'POWER8 intrinsics') diff --git a/graphics/mesa-dri/files/patch-userptr b/graphics/mesa-dri/files/patch-userptr index f5d0cc388fda..3a01c9bcc08d 100644 --- a/graphics/mesa-dri/files/patch-userptr +++ b/graphics/mesa-dri/files/patch-userptr @@ -1,100 +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.orig 2026-07-01 14:16:13 UTC +++ src/gallium/drivers/crocus/crocus_bufmgr.c -@@ -487,8 +487,20 @@ crocus_bo_create_userptr(struct crocus_bufmgr *bufmgr, +@@ -488,8 +488,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.orig 2026-07-01 14:16:13 UTC +++ src/gallium/drivers/iris/i915/iris_kmd_backend.c -@@ -443,8 +443,20 @@ i915_gem_create_userptr(struct iris_bufmgr *bufmgr, vo +@@ -449,8 +449,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.orig 2026-07-01 14:16:13 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.orig 2026-07-01 14:16:13 UTC +++ src/intel/vulkan/i915/anv_kmd_backend.c -@@ -274,9 +274,19 @@ i915_gem_create_userptr(struct anv_device *device, voi +@@ -313,9 +313,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; }