1PORTNAME= mesa-dri 2PORTVERSION= ${MESAVERSION} 3PORTREVISION= 1 4CATEGORIES= graphics 5 6COMMENT= OpenGL hardware acceleration drivers for DRI2+ 7WWW= https://www.mesa3d.org/ 8 9BUILD_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}ply>0:devel/py-ply@${PY_FLAVOR} 10RUN_DEPENDS+= gcc14:lang/gcc14 11 12LIB_DEPENDS+= libglapi.so:graphics/mesa-libs 13 14USES+= llvm:lib,noexport 15 16OPTIONS_DEFINE= ZSTD 17OPTIONS_GROUP= GALLIUM PLATFORM VULKAN 18OPTIONS_DEFAULT= WAYLAND X11 ZSTD 19OPTIONS_SUB= yes 20 21ZSTD_DESC= Use ZSTD for shader cache 22ZSTD_LIB_DEPENDS= libzstd.so:archivers/zstd 23ZSTD_MESON_ENABLED= zstd 24 25OPTIONS_GROUP_PLATFORM= X11 WAYLAND 26X11_DESC= Enable X11 support for GBM/EGL 27WAYLAND_DESC= Enable Wayland support for GBM/EGL and Vulkan 28WAYLAND_BUILD_DEPENDS= wayland-protocols>=1.8:graphics/wayland-protocols 29WAYLAND_LIB_DEPENDS= libwayland-client.so:graphics/wayland 30 31OPTIONS_GROUP_GALLIUM= crocus i915 iris panfrost r300 r600 radeonsi svga swrast zink 32GALLIUM_DESC= Unified OpenGL drivers 33crocus_DESC= Intel GPU Gen4 (Broadwater) to Gen7 (Haswell) 34i915_DESC= Intel GPU Gen3 (Grantsdale to Pineview) 35iris_DESC= Intel GPU Gen8 (Broadwell) and newer 36iris_BUILD_DEPENDS= libclc-${LLVM_PORT:T}>0:devel/libclc@${LLVM_PORT:T} \ 37 spirv-tools>0:graphics/spirv-tools \ 38 spirv-llvm-translator-${LLVM_PORT:T}>0:devel/spirv-llvm-translator@${LLVM_PORT:T} 39iris_RUN_DEPENDS= spirv-tools>0:graphics/spirv-tools \ 40 spirv-llvm-translator-${LLVM_PORT:T}>0:devel/spirv-llvm-translator@${LLVM_PORT:T} 41iris_CONFIGURE_ENV= PKG_CONFIG_PATH="${LLVM_PREFIX}/libdata/pkgconfig" 42iris_IMPLIES= SPIRV 43panfrost_DESC= ARM Midgard and Bifrost 44r300_DESC= AMD/ATI R300, R400 and R500 45r600_DESC= AMD/ATI R600, R700, Evergreen, Northern Islands 46radeonsi_DESC= AMD/ATI Southern Islands and newer 47svga_DESC= VMWare Virtual GPU 48swrast_DESC= Software Rasterizer 49zink_DESC= OpenGL on top of Khronos’ Vulkan API 50 51OPTIONS_EXCLUDE+= ${ARCH:Marmv7:C/.+/crocus i915 iris panfrost r300 r600 radeonsi svga zink/} 52OPTIONS_EXCLUDE+= ${ARCH:Naarch64:C/.+/panfrost/} 53OPTIONS_EXCLUDE+= ${ARCH:Namd64:Ni386:Nx86_64:C/.+/crocus i915 iris svga/} 54MESON_ARGS+= -Dgallium-drivers=${GALLIUM_DRIVERS:ts,} 55. for _gd in ${OPTIONS_GROUP_GALLIUM} 56OPTIONS_DEFAULT+= ${_gd} 57${_gd}_VARS+= GALLIUM_DRIVERS+=${_gd} 58. endfor 59 60OPTIONS_GROUP_VULKAN= anv radv swrast_vk 61VULKAN_DESC= Vulkan drivers 62anv_DESC= Intel GPU Gen9 and newer Vulkan support 63anv_BUILD_DEPENDS= glslangValidator:graphics/glslang \ 64 libclc-${LLVM_PORT:T}>0:devel/libclc@${LLVM_PORT:T} \ 65 spirv-tools>0:graphics/spirv-tools \ 66 spirv-llvm-translator-${LLVM_PORT:T}>0:devel/spirv-llvm-translator@${LLVM_PORT:T} 67anv_RUN_DEPENDS= spirv-tools>0:graphics/spirv-tools \ 68 spirv-llvm-translator-${LLVM_PORT:T}>0:devel/spirv-llvm-translator@${LLVM_PORT:T} 69anv_CONFIGURE_ENV= PKG_CONFIG_PATH="${LLVM_PREFIX}/libdata/pkgconfig" 70radv_DESC= AMD/ATI Southern Islands and newer Vulkan support 71radv_BUILD_DEPENDS= glslangValidator:graphics/glslang 72swrast_vk_DESC= Software Rasterizer Vulkan support 73 74OPTIONS_EXCLUDE+= ${ARCH:Marmv7:C/.+/anv radv/} 75OPTIONS_EXCLUDE+= ${ARCH:Namd64:Ni386:Nx86_64:C/.+/anv/} 76MESON_ARGS+= -Dvulkan-drivers=${VULKAN_DRIVERS:ts,} 77. for _vd in ${OPTIONS_GROUP_VULKAN} 78OPTIONS_DEFAULT+= ${_vd} 79${_vd}_VARS+= VULKAN_DRIVERS+=${_vd:S/anv/intel/:S/radv/amd/:S/swrast_vk/swrast/} 80. endfor 81 82.include <bsd.mport.options.mk> 83.include "${.CURDIR:H:H}/graphics/mesa-dri/Makefile.common" 84 85LDFLAGS_i386= -Wl,-znotext 86 87.if ${PORT_OPTIONS:MX11} 88MESA_PLATFORMS+= x11 89USE_XORG+= xcb xorgproto xrandr x11 xdamage xext xfixes xshmfence xv 90.else 91MESON_ARGS+= -Dxlib-lease=disabled 92.endif 93 94.if ${PORT_OPTIONS:MWAYLAND} 95MESA_PLATFORMS+= wayland 96.endif 97 98MESON_ARGS+= -Dplatforms="${MESA_PLATFORMS:ts,:tl}" 99 100# Vulkan Video extensions (keep in sync with mesa-gallium-va) 101MESON_ARGS+= -Dvideo-codecs="vc1dec,h264dec,h264enc,h265dec,h265enc,av1dec,av1enc,vp9dec" 102 103# Disable some options 104MESON_ARGS+= -Dandroid-libbacktrace=disabled \ 105 -Dgallium-xa=disabled \ 106 -Dgallium-vdpau=disabled \ 107 -Dgallium-va=disabled \ 108 -Dgles1=enabled \ 109 -Dgles2=enabled \ 110 -Dglvnd=disabled \ 111 -Dglx=disabled \ 112 -Degl=enabled \ 113 -Dlmsensors=disabled \ 114 -Dmicrosoft-clc=disabled \ 115 -Dosmesa=false \ 116 -Dvalgrind=disabled 117 118.if ${ARCH} != amd64 119MESON_ARGS+= -Dintel-rt=disabled # https://gitlab.freedesktop.org/mesa/mesa/-/issues/10629 120.endif 121 122.for _gd in ${OPTIONS_GROUP_GALLIUM} 123. if defined(GALLIUM_DRIVERS) && ${GALLIUM_DRIVERS:M${_gd}} 124PLIST_SUB+= ${_gd}="" 125. else 126PLIST_SUB+= ${_gd}="@comment " 127. endif 128.endfor 129 130PLIST_SUB += ARCH=${ARCH:S/amd/x86_/} 131.for _vd in ${OPTIONS_GROUP_VULKAN} 132. if defined(VULKAN_DRIVERS) && ${VULKAN_DRIVERS:M${_vd}} 133PLIST_SUB+= ${_vd}="" 134. else 135PLIST_SUB+= ${_vd}="@comment " 136. endif 137.endfor 138 139post-install: 140 -${RM} -r ${FAKE_DESTDIR}/etc/OpenCL 141 ${INSTALL_DATA} ${FILESDIR}/01-freebsd.conf \ 142 ${PREFIX}/share/drirc.d 143 144.include <bsd.port.post.mk> 145