aboutsummaryrefslogtreecommitdiff
path: root/graphics/mesa-dri/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'graphics/mesa-dri/Makefile')
-rw-r--r--graphics/mesa-dri/Makefile130
1 files changed, 79 insertions, 51 deletions
diff --git a/graphics/mesa-dri/Makefile b/graphics/mesa-dri/Makefile
index f9ba777266c4..7d2f4ca6c254 100644
--- a/graphics/mesa-dri/Makefile
+++ b/graphics/mesa-dri/Makefile
@@ -5,72 +5,95 @@ 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_GROUP= PLATFORM
-OPTIONS_GROUP_PLATFORM= PLATFORM_X11 PLATFORM_WAYLAND
-PLATFORM_X11_DESC= Enable X11 support for GBM/EGL
-PLATFORM_WAYLAND_DESC= Enable Wayland support for GBM/EGL
-PLATFORM_WAYLAND_IMPLIES= WAYLAND
-
-OPTIONS_DEFINE= WAYLAND ZSTD
-OPTIONS_DEFAULT= WAYLAND PLATFORM_X11 PLATFORM_WAYLAND ZSTD
+OPTIONS_DEFINE= ZSTD
+OPTIONS_GROUP= GALLIUM PLATFORM VULKAN
+OPTIONS_DEFAULT= WAYLAND X11 ZSTD
OPTIONS_SUB= yes
-WAYLAND_DESC= Enable support for the Wayland platform in Vulkan drivers
-WAYLAND_BUILD_DEPENDS= wayland-protocols>=1.8:graphics/wayland-protocols
-WAYLAND_LIB_DEPENDS= libwayland-client.so:graphics/wayland
-WAYLAND_IMPLIES= PLATFORM_WAYLAND
-
ZSTD_DESC= Use ZSTD for shader cache
ZSTD_LIB_DEPENDS= libzstd.so:archivers/zstd
ZSTD_MESON_ENABLED= zstd
-.include <bsd.port.options.mk>
-.include "${.CURDIR:H:H}/graphics/mesa-dri/Makefile.common"
-
-ALL_GALLIUM_DRIVERS= CROCUS I915 IRIS PANFROST R300 R600 RADEONSI SVGA \
- SWRAST ZINK
-ALL_VULKAN_DRIVERS= INTEL AMD SWRAST
-
-GALLIUM_DRIVERS+= SWRAST \
- ZINK
-VULKAN_DRIVERS+= SWRAST # lavapipe
+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
-.if ${ARCH} == aarch64
-GALLIUM_DRIVERS+= PANFROST
-.endif
+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
-.if ${ARCH} == aarch64 || ${ARCH} == amd64 || ${ARCH} == i386 \
- || ${ARCH:Mpowerpc*} || ${ARCH} == riscv64
-GALLIUM_DRIVERS+= R300 R600 RADEONSI
-VULKAN_DRIVERS+= AMD
-BUILD_DEPENDS+= glslangValidator:graphics/glslang
-.endif
-.if ${ARCH} == amd64 || ${ARCH} == i386
-GALLIUM_DRIVERS+= CROCUS I915 IRIS SVGA
-VULKAN_DRIVERS+= INTEL
-.endif
+.include <bsd.port.options.mk>
+.include "${.CURDIR:H:H}/graphics/mesa-dri/Makefile.common"
LDFLAGS_i386= -Wl,-znotext
-.if ${PORT_OPTIONS:MPLATFORM_X11}
+.if ${PORT_OPTIONS:MX11}
MESA_PLATFORMS+= x11
-USE_XORG+= xorgproto x11 xdamage xext xfixes xshmfence xv
-.if defined(VULKAN_DRIVERS)
-USE_XORG+= xcb xrandr
-.endif
+USE_XORG+= xcb xorgproto xrandr x11 xdamage xext xfixes xshmfence xv
+.else
+MESON_ARGS+= -Dxlib-lease=disabled
.endif
-.if ${PORT_OPTIONS:MPLATFORM_WAYLAND}
+.if ${PORT_OPTIONS:MWAYLAND}
MESA_PLATFORMS+= wayland
.endif
-MESON_ARGS+= -Dgallium-drivers="${GALLIUM_DRIVERS:ts,:tl}" \
- -Dvulkan-drivers="${VULKAN_DRIVERS:ts,:tl}" \
- -Dplatforms="${MESA_PLATFORMS:ts,:tl}"
+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"
@@ -82,6 +105,7 @@ MESON_ARGS+= -Dandroid-libbacktrace=disabled \
-Dgallium-va=disabled \
-Dgles1=enabled \
-Dgles2=enabled \
+ -Dglvnd=disabled \
-Dglx=disabled \
-Degl=enabled \
-Dlmsensors=disabled \
@@ -89,20 +113,24 @@ MESON_ARGS+= -Dandroid-libbacktrace=disabled \
-Dosmesa=false \
-Dvalgrind=disabled
-.for _gd in ${ALL_GALLIUM_DRIVERS}
+.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}_GDRIVER=""
+PLIST_SUB+= ${_gd}=""
. else
-PLIST_SUB+= ${_gd}_GDRIVER="@comment "
+PLIST_SUB+= ${_gd}="@comment "
. endif
.endfor
PLIST_SUB += ARCH=${ARCH:S/amd/x86_/}
-.for _vd in ${ALL_VULKAN_DRIVERS}
+.for _vd in ${OPTIONS_GROUP_VULKAN}
. if defined(VULKAN_DRIVERS) && ${VULKAN_DRIVERS:M${_vd}}
-PLIST_SUB+= ${_vd}_VDRIVER=""
+PLIST_SUB+= ${_vd}=""
. else
-PLIST_SUB+= ${_vd}_VDRIVER="@comment "
+PLIST_SUB+= ${_vd}="@comment "
. endif
.endfor