diff --git a/graphics/mesa-dri/Makefile b/graphics/mesa-dri/Makefile index dec8ac255477..5b25c863ed67 100644 --- a/graphics/mesa-dri/Makefile +++ b/graphics/mesa-dri/Makefile @@ -1,143 +1,143 @@ PORTNAME= mesa-dri PORTVERSION= ${MESAVERSION} -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= graphics COMMENT= OpenGL hardware acceleration drivers for DRI2+ WWW= https://www.mesa3d.org/ BUILD_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}ply>0:devel/py-ply@${PY_FLAVOR} LIB_DEPENDS+= libglapi.so:graphics/mesa-libs USES+= llvm:lib,noexport OPTIONS_DEFINE= ZSTD OPTIONS_GROUP= GALLIUM PLATFORM VULKAN OPTIONS_DEFAULT= WAYLAND X11 ZSTD OPTIONS_SUB= yes ZSTD_DESC= Use ZSTD for shader cache ZSTD_LIB_DEPENDS= libzstd.so:archivers/zstd ZSTD_MESON_ENABLED= zstd OPTIONS_GROUP_PLATFORM= X11 WAYLAND X11_DESC= Enable X11 support for GBM/EGL WAYLAND_DESC= Enable Wayland support for GBM/EGL and Vulkan WAYLAND_BUILD_DEPENDS= wayland-protocols>=1.8:graphics/wayland-protocols WAYLAND_LIB_DEPENDS= libwayland-client.so:graphics/wayland OPTIONS_GROUP_GALLIUM= crocus i915 iris panfrost r300 r600 radeonsi svga swrast zink GALLIUM_DESC= Unified OpenGL drivers crocus_DESC= Intel GPU Gen4 (Broadwater) to Gen7 (Haswell) i915_DESC= Intel GPU Gen3 (Grantsdale to Pineview) iris_DESC= Intel GPU Gen8 (Broadwell) and newer iris_BUILD_DEPENDS= 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} iris_RUN_DEPENDS= spirv-tools>0:graphics/spirv-tools \ spirv-llvm-translator-${LLVM_PORT:T}>0:devel/spirv-llvm-translator@${LLVM_PORT:T} iris_CONFIGURE_ENV= PKG_CONFIG_PATH="${LLVM_PREFIX}/libdata/pkgconfig" iris_IMPLIES= SPIRV panfrost_DESC= ARM Midgard and Bifrost r300_DESC= AMD/ATI R300, R400 and R500 r600_DESC= AMD/ATI R600, R700, Evergreen, Northern Islands radeonsi_DESC= AMD/ATI Southern Islands and newer svga_DESC= VMWare Virtual GPU swrast_DESC= Software Rasterizer zink_DESC= OpenGL on top of Khronos’ Vulkan API OPTIONS_EXCLUDE+= ${ARCH:Marmv7:C/.+/crocus i915 iris panfrost r300 r600 radeonsi svga zink/} OPTIONS_EXCLUDE+= ${ARCH:Naarch64:C/.+/panfrost/} OPTIONS_EXCLUDE+= ${ARCH:Namd64:Ni386:Nx86_64:C/.+/crocus i915 iris svga/} MESON_ARGS+= -Dgallium-drivers=${GALLIUM_DRIVERS:ts,} . for _gd in ${OPTIONS_GROUP_GALLIUM} OPTIONS_DEFAULT+= ${_gd} ${_gd}_VARS+= GALLIUM_DRIVERS+=${_gd} . endfor OPTIONS_GROUP_VULKAN= anv radv swrast_vk VULKAN_DESC= Vulkan drivers anv_DESC= Intel GPU Gen9 and newer Vulkan support anv_BUILD_DEPENDS= glslangValidator:graphics/glslang \ 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} anv_RUN_DEPENDS= spirv-tools>0:graphics/spirv-tools \ spirv-llvm-translator-${LLVM_PORT:T}>0:devel/spirv-llvm-translator@${LLVM_PORT:T} anv_CONFIGURE_ENV= PKG_CONFIG_PATH="${LLVM_PREFIX}/libdata/pkgconfig" radv_DESC= AMD/ATI Southern Islands and newer Vulkan support radv_BUILD_DEPENDS= glslangValidator:graphics/glslang swrast_vk_DESC= Software Rasterizer Vulkan support OPTIONS_EXCLUDE+= ${ARCH:Marmv7:C/.+/anv radv/} OPTIONS_EXCLUDE+= ${ARCH:Namd64:Ni386:Nx86_64:C/.+/anv/} MESON_ARGS+= -Dvulkan-drivers=${VULKAN_DRIVERS:ts,} . for _vd in ${OPTIONS_GROUP_VULKAN} OPTIONS_DEFAULT+= ${_vd} ${_vd}_VARS+= VULKAN_DRIVERS+=${_vd:S/anv/intel/:S/radv/amd/:S/swrast_vk/swrast/} . endfor .include .include "${.CURDIR:H:H}/graphics/mesa-dri/Makefile.common" LDFLAGS_i386= -Wl,-znotext .if ${PORT_OPTIONS:MX11} MESA_PLATFORMS+= x11 USE_XORG+= xcb xorgproto xrandr x11 xdamage xext xfixes xshmfence xv .else MESON_ARGS+= -Dxlib-lease=disabled .endif .if ${PORT_OPTIONS:MWAYLAND} MESA_PLATFORMS+= wayland .endif MESON_ARGS+= -Dplatforms="${MESA_PLATFORMS:ts,:tl}" # Vulkan Video extensions (keep in sync with mesa-gallium-va) MESON_ARGS+= -Dvideo-codecs="vc1dec,h264dec,h264enc,h265dec,h265enc,av1dec,av1enc,vp9dec" # Disable some options MESON_ARGS+= -Dandroid-libbacktrace=disabled \ -Dgallium-xa=disabled \ -Dgallium-vdpau=disabled \ -Dgallium-va=disabled \ -Dgles1=enabled \ -Dgles2=enabled \ -Dglvnd=disabled \ -Dglx=disabled \ -Degl=enabled \ -Dlmsensors=disabled \ -Dmicrosoft-clc=disabled \ -Dosmesa=false \ -Dvalgrind=disabled .if ${ARCH} != amd64 MESON_ARGS+= -Dintel-rt=disabled # https://gitlab.freedesktop.org/mesa/mesa/-/issues/10629 .endif .for _gd in ${OPTIONS_GROUP_GALLIUM} . if defined(GALLIUM_DRIVERS) && ${GALLIUM_DRIVERS:M${_gd}} PLIST_SUB+= ${_gd}="" . else PLIST_SUB+= ${_gd}="@comment " . endif .endfor PLIST_SUB += ARCH=${ARCH:S/amd/x86_/} .for _vd in ${OPTIONS_GROUP_VULKAN} . if defined(VULKAN_DRIVERS) && ${VULKAN_DRIVERS:M${_vd}} PLIST_SUB+= ${_vd}="" . else PLIST_SUB+= ${_vd}="@comment " . endif .endfor post-install: @${RM} -r ${STAGEDIR}/etc/OpenCL ${INSTALL_DATA} ${FILESDIR}/01-freebsd.conf \ ${STAGEDIR}${PREFIX}/share/drirc.d .include diff --git a/graphics/mesa-dri/files/patch-llvmpipe-159fb9691d792594b91e0fbc4c7823e1a191620d.patch b/graphics/mesa-dri/files/patch-llvmpipe-159fb9691d792594b91e0fbc4c7823e1a191620d.patch new file mode 100644 index 000000000000..c3c250a8b8df --- /dev/null +++ b/graphics/mesa-dri/files/patch-llvmpipe-159fb9691d792594b91e0fbc4c7823e1a191620d.patch @@ -0,0 +1,50 @@ +From 159fb9691d792594b91e0fbc4c7823e1a191620d Mon Sep 17 00:00:00 2001 +From: Lucas Fryzek +Date: Mon, 28 Oct 2024 13:02:26 -0400 +Subject: [PATCH] lp: Only close udmabuf handle if its valid + +Also change ifdef's from just `HAVE_LIBDRM` to check for both LIBDRM +and for UDMABUF HEADER. preventing unbalanced guards preventing part of +the code from being included if you just have LIBDRM or just have the +udmabuf headers. + +Fixes: 4cfaf10c ("llvmpipe: Only use udmabuf with libdrm") +Reviewed-by: Konstantin Seurer +Part-of: +--- + src/gallium/drivers/llvmpipe/lp_screen.c | 5 +++-- + src/gallium/drivers/llvmpipe/lp_screen.h | 2 +- + 2 files changed, 4 insertions(+), 3 deletions(-) + +diff --git a/src/gallium/drivers/llvmpipe/lp_screen.c b/src/gallium/drivers/llvmpipe/lp_screen.c +index 8ede54a1fdf20..f85911b4703ac 100644 +--- src/gallium/drivers/llvmpipe/lp_screen.c ++++ src/gallium/drivers/llvmpipe/lp_screen.c +@@ -939,8 +939,9 @@ llvmpipe_destroy_screen(struct pipe_screen *_screen) + + glsl_type_singleton_decref(); + +-#ifdef HAVE_LIBDRM +- close(screen->udmabuf_fd); ++#if defined(HAVE_LIBDRM) && defined(HAVE_LINUX_UDMABUF_H) ++ if (screen->udmabuf_fd != -1) ++ close(screen->udmabuf_fd); + #endif + + #if DETECT_OS_LINUX +diff --git a/src/gallium/drivers/llvmpipe/lp_screen.h b/src/gallium/drivers/llvmpipe/lp_screen.h +index f36628340b3af..63ce25d56d1d3 100644 +--- src/gallium/drivers/llvmpipe/lp_screen.h ++++ src/gallium/drivers/llvmpipe/lp_screen.h +@@ -75,7 +75,7 @@ struct llvmpipe_screen + + struct disk_cache *disk_shader_cache; + +-#ifdef HAVE_LIBDRM ++#if defined(HAVE_LIBDRM) && defined(HAVE_LINUX_UDMABUF_H) + int udmabuf_fd; + #endif + +-- +GitLab +