1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
|
PORTNAME= mesa-dri
PORTVERSION= ${MESAVERSION}
PORTREVISION= 6
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 <bsd.port.options.mk>
.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 <bsd.port.post.mk>
|