summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>2025-10-10 14:59:51 +0300
committerRichard Purdie <richard.purdie@linuxfoundation.org>2025-10-13 18:01:04 +0100
commitc4c27366f52e9c08dc48bde1521dcaff9d4f2f14 (patch)
tree37354da4b466899ad61952263fcb8402796f2f79
parentc3f66e88e298ad4b9ec6cbc145676dc78f5592f2 (diff)
downloadpoky-c4c27366f52e9c08dc48bde1521dcaff9d4f2f14.tar.gz
mesa: sort out driver lists
Sort the lists of VUKAN_DRIVERS, GALLIUMDRIVERS and driver-related PACAKGECONFIG entries, making it easier to add new drivers or to find out the correct dependencies for the driver. (From OE-Core rev: 64108679ada885b74fcc6ac49f9e5e983f34e663) Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/recipes-graphics/mesa/mesa.inc135
1 files changed, 69 insertions, 66 deletions
diff --git a/meta/recipes-graphics/mesa/mesa.inc b/meta/recipes-graphics/mesa/mesa.inc
index 30bb512fec..ee00214111 100644
--- a/meta/recipes-graphics/mesa/mesa.inc
+++ b/meta/recipes-graphics/mesa/mesa.inc
@@ -73,39 +73,79 @@ def strip_comma(s):
73# skip all Rust dependencies if we are not building OpenCL" 73# skip all Rust dependencies if we are not building OpenCL"
74INHIBIT_DEFAULT_RUST_DEPS = "${@bb.utils.contains('PACKAGECONFIG', 'opencl', '', '1', d)}" 74INHIBIT_DEFAULT_RUST_DEPS = "${@bb.utils.contains('PACKAGECONFIG', 'opencl', '', '1', d)}"
75 75
76# "egl" requires "opengl"
77PACKAGECONFIG[egl] = "-Degl=enabled, -Degl=disabled"
78
76# "gbm" requires "opengl" 79# "gbm" requires "opengl"
77PACKAGECONFIG[gbm] = "-Dgbm=enabled,-Dgbm=disabled" 80PACKAGECONFIG[gbm] = "-Dgbm=enabled,-Dgbm=disabled"
78 81
82# "gles" requires "opengl"
83PACKAGECONFIG[gles] = "-Dgles1=enabled -Dgles2=enabled, -Dgles1=disabled -Dgles2=disabled"
84
85PACKAGECONFIG[glvnd] = "-Dglvnd=enabled, -Dglvnd=disabled, libglvnd"
86
87PACKAGECONFIG[opengl] = "-Dopengl=true, -Dopengl=false"
88
89# "opencl" also requires libclc and gallium-llvm to be present in PKGCONFIG!
90# Be sure to enable them both for the target and for the native build.
91PACKAGECONFIG[opencl] = "-Dgallium-rusticl=true -Dmesa-clc-bundle-headers=enabled, -Dgallium-rusticl=false, bindgen-cli-native clang"
92
79X11_DEPS = "xorgproto virtual/libx11 libxext libxxf86vm libxdamage libxfixes xrandr xorgproto libxshmfence" 93X11_DEPS = "xorgproto virtual/libx11 libxext libxxf86vm libxdamage libxfixes xrandr xorgproto libxshmfence"
80# "x11" requires "opengl" 94# "x11" requires "opengl"
81PACKAGECONFIG[x11] = ",-Dglx=disabled,${X11_DEPS}" 95PACKAGECONFIG[x11] = ",-Dglx=disabled,${X11_DEPS}"
82PACKAGECONFIG[wayland] = ",,wayland-native wayland libdrm wayland-protocols" 96PACKAGECONFIG[wayland] = ",,wayland-native wayland libdrm wayland-protocols"
83 97
98# Entries for GPU vendors.
99# Some of the drivers might have extra dependencies (libclc, gallium-llvm).
100# Check them in the individual driver settings in VULKAN_DRIVERS and
101# GALLIUMDRIVERS.
102PACKAGECONFIG[amd] = ""
103PACKAGECONFIG[asahi] = ""
104PACKAGECONFIG[broadcom] = ""
105PACKAGECONFIG[etnaviv] = ",,python3-pycparser-native"
106PACKAGECONFIG[freedreno] = ""
107PACKAGECONFIG[imagination] = "-Dimagination-srv=true,-Dimagination-srv=false"
108PACKAGECONFIG[intel] = ""
109PACKAGECONFIG[lima] = ""
110PACKAGECONFIG[nouveau] = ""
111PACKAGECONFIG[panfrost] = ""
112PACKAGECONFIG[svga] = ""
113PACKAGECONFIG[tegra] = ""
114PACKAGECONFIG[v3d] = ""
115PACKAGECONFIG[vc4] = ""
116PACKAGECONFIG[virgl] = ""
117PACKAGECONFIG[zink] = ""
118
84VULKAN_DRIVERS = "" 119VULKAN_DRIVERS = ""
85 120
86VULKAN_DRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'amd gallium-llvm', ',amd', '', d)}"
87VULKAN_DRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'asahi libclc gallium-llvm', ',asahi', '', d)}"
88VULKAN_DRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'intel libclc gallium-llvm', ',intel', '', d)}"
89VULKAN_DRIVERS_SWRAST = ",swrast" 121VULKAN_DRIVERS_SWRAST = ",swrast"
90# Crashes on x32 122# Crashes on x32
91VULKAN_DRIVERS_SWRAST:x86-x32 = "" 123VULKAN_DRIVERS_SWRAST:x86-x32 = ""
92VULKAN_DRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'gallium-llvm', '${VULKAN_DRIVERS_SWRAST}', '', d)}"
93 124
94VULKAN_DRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'freedreno', ',freedreno', '', d)}" 125# keep sorted by the driver name (rather than PKGCONFIG)
126VULKAN_DRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'amd gallium-llvm', ',amd', '', d)}"
127VULKAN_DRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'asahi libclc gallium-llvm', ',asahi', '', d)}"
95VULKAN_DRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'broadcom', ',broadcom', '', d)}" 128VULKAN_DRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'broadcom', ',broadcom', '', d)}"
129VULKAN_DRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'freedreno', ',freedreno', '', d)}"
96VULKAN_DRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'imagination', ',imagination-experimental', '', d)}" 130VULKAN_DRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'imagination', ',imagination-experimental', '', d)}"
131VULKAN_DRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'intel libclc gallium-llvm', ',intel', '', d)}"
132VULKAN_DRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'gallium-llvm', '${VULKAN_DRIVERS_SWRAST}', '', d)}"
97VULKAN_DRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'panfrost libclc', ',panfrost', '', d)}" 133VULKAN_DRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'panfrost libclc', ',panfrost', '', d)}"
134
98PACKAGECONFIG[vulkan] = "-Dvulkan-drivers=${@strip_comma('${VULKAN_DRIVERS}')}, -Dvulkan-drivers='',glslang-native vulkan-loader vulkan-headers" 135PACKAGECONFIG[vulkan] = "-Dvulkan-drivers=${@strip_comma('${VULKAN_DRIVERS}')}, -Dvulkan-drivers='',glslang-native vulkan-loader vulkan-headers"
136PACKAGECONFIG[vulkan-beta] = "-Dvulkan-beta=true,-Dvulkan-beta=false"
99 137
100# mesa development and testing tools support, per driver 138# mesa development and testing tools support, per driver
101TOOLS = "" 139TOOLS = ""
102TOOLS_DEPS = "" 140TOOLS_DEPS = ""
141
142# keep sorted by the driver name (rather than PKGCONFIG)
103TOOLS:append = "${@bb.utils.contains('PACKAGECONFIG', 'asahi', ',asahi', '', d)}" 143TOOLS:append = "${@bb.utils.contains('PACKAGECONFIG', 'asahi', ',asahi', '', d)}"
104TOOLS:append = "${@bb.utils.contains('PACKAGECONFIG', 'etnaviv', ',etnaviv', '', d)}" 144TOOLS:append = "${@bb.utils.contains('PACKAGECONFIG', 'etnaviv', ',etnaviv', '', d)}"
105TOOLS:append = "${@bb.utils.contains('PACKAGECONFIG', 'freedreno', ',freedreno', '', d)}" 145TOOLS:append = "${@bb.utils.contains('PACKAGECONFIG', 'freedreno', ',freedreno', '', d)}"
146TOOLS:append = "${@bb.utils.contains('PACKAGECONFIG', 'imagination', ',imagination', '', d)}"
106TOOLS:append = "${@bb.utils.contains('PACKAGECONFIG', 'lima', ',lima', '', d)}" 147TOOLS:append = "${@bb.utils.contains('PACKAGECONFIG', 'lima', ',lima', '', d)}"
107TOOLS:append = "${@bb.utils.contains('PACKAGECONFIG', 'panfrost', ',panfrost', '', d)}" 148TOOLS:append = "${@bb.utils.contains('PACKAGECONFIG', 'panfrost', ',panfrost', '', d)}"
108TOOLS:append = "${@bb.utils.contains('PACKAGECONFIG', 'imagination', ',imagination', '', d)}"
109 149
110# dependencies for tools. 150# dependencies for tools.
111TOOLS_DEPS:append = "${@bb.utils.contains('PACKAGECONFIG', 'freedreno', ' ncurses libxml2 ', '', d)}" 151TOOLS_DEPS:append = "${@bb.utils.contains('PACKAGECONFIG', 'freedreno', ' ncurses libxml2 ', '', d)}"
@@ -117,54 +157,37 @@ PACKAGECONFIG[freedreno-fdperf] = ",,libconfig"
117PACKAGECONFIG[tools] = "-Dtools=${@strip_comma('${TOOLS}')}, -Dtools='', ${TOOLS_DEPS}" 157PACKAGECONFIG[tools] = "-Dtools=${@strip_comma('${TOOLS}')}, -Dtools='', ${TOOLS_DEPS}"
118PACKAGECONFIG[xmlconfig] = "-Dxmlconfig=enabled, -Dxmlconfig=disabled, expat" 158PACKAGECONFIG[xmlconfig] = "-Dxmlconfig=enabled, -Dxmlconfig=disabled, expat"
119 159
120PACKAGECONFIG[opengl] = "-Dopengl=true, -Dopengl=false" 160GALLIUMDRIVERS = ""
121PACKAGECONFIG[glvnd] = "-Dglvnd=enabled, -Dglvnd=disabled, libglvnd" 161GALLIUMDRIVERS_LLVMPIPE = ",llvmpipe"
122 162GALLIUMDRIVERS_SOFTPIPE = ",softpipe"
123# "gles" requires "opengl" 163# gallium softpipe and llvmpipe was found to crash Xorg on startup in x32 qemu
124PACKAGECONFIG[gles] = "-Dgles1=enabled -Dgles2=enabled, -Dgles1=disabled -Dgles2=disabled" 164GALLIUMDRIVERS_LLVMPIPE:x86-x32 = ""
125 165GALLIUMDRIVERS_SOFTPIPE:x86-x32 = ""
126# "egl" requires "opengl"
127PACKAGECONFIG[egl] = "-Degl=enabled, -Degl=disabled"
128
129# "opencl" also requires libclc and gallium-llvm to be present in PKGCONFIG!
130# Be sure to enable them both for the target and for the native build.
131PACKAGECONFIG[opencl] = "-Dgallium-rusticl=true -Dmesa-clc-bundle-headers=enabled, -Dgallium-rusticl=false, bindgen-cli-native clang"
132
133PACKAGECONFIG[broadcom] = ""
134PACKAGECONFIG[etnaviv] = ",,python3-pycparser-native"
135PACKAGECONFIG[freedreno] = ""
136PACKAGECONFIG[vc4] = ""
137PACKAGECONFIG[v3d] = ""
138PACKAGECONFIG[zink] = ""
139
140GALLIUMDRIVERS = "softpipe"
141# gallium swrast was found to crash Xorg on startup in x32 qemu
142GALLIUMDRIVERS:x86-x32 = ""
143 166
167# keep sorted by the driver name (rather than PKGCONFIG)
168GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'asahi libclc gallium-llvm', ',asahi', '', d)}"
169GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'intel', ',crocus', '', d)}"
144GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'etnaviv', ',etnaviv', '', d)}" 170GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'etnaviv', ',etnaviv', '', d)}"
145GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'freedreno', ',freedreno', '', d)}" 171GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'freedreno', ',freedreno', '', d)}"
146GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'vc4', ',vc4', '', d)}" 172GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'intel', ',i915', '', d)}"
147GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'v3d', ',v3d', '', d)}"
148GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'zink', ',zink', '', d)}"
149
150GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'asahi libclc gallium-llvm', ',asahi', '', d)}"
151GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'amd gallium-llvm', ',r300', '', d)}"
152GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'intel libclc gallium-llvm', ',iris', '', d)}" 173GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'intel libclc gallium-llvm', ',iris', '', d)}"
174GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'lima', ',lima', '', d)}"
175GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'gallium-llvm', '${GALLIUMDRIVERS_LLVMPIPE}', '', d)}"
153GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'nouveau gallium-llvm', ',nouveau', '', d)}" 176GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'nouveau gallium-llvm', ',nouveau', '', d)}"
177GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'panfrost libclc', ',panfrost', '', d)}"
178GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'amd gallium-llvm', ',r300', '', d)}"
179GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'amd', ',r600', '', d)}"
154GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'amd gallium-llvm', ',radeonsi', '', d)}" 180GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'amd gallium-llvm', ',radeonsi', '', d)}"
155GALLIUMDRIVERS_LLVMPIPE = ",llvmpipe" 181GALLIUMDRIVERS:append = "${GALLIUMDRIVERS_SOFTPIPE}"
156# llvmpipe crashes on x32
157GALLIUMDRIVERS_LLVMPIPE:x86-x32 = ""
158GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'gallium-llvm', '${GALLIUMDRIVERS_LLVMPIPE}', '', d)}"
159GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'svga gallium-llvm', ',svga', '', d)}" 182GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'svga gallium-llvm', ',svga', '', d)}"
160 183GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'tegra', ',tegra', '', d)}"
161PACKAGECONFIG[amd] = ""
162PACKAGECONFIG[nouveau] = ""
163PACKAGECONFIG[svga] = ""
164PACKAGECONFIG[virgl] = ""
165
166GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'amd', ',r600', '', d)}"
167GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'virgl', ',virgl', '', d)}" 184GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'virgl', ',virgl', '', d)}"
185GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'vc4', ',vc4', '', d)}"
186GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'v3d', ',v3d', '', d)}"
187GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'zink', ',zink', '', d)}"
188
189PACKAGECONFIG[gallium] = "-Dgallium-drivers=${@strip_comma('${GALLIUMDRIVERS}')}, -Dgallium-drivers='', libdrm"
190PACKAGECONFIG[gallium-llvm] = "-Dllvm=enabled -Dshared-llvm=enabled, -Dllvm=disabled, llvm llvm-native elfutils"
168 191
169MESA_CLC = "system" 192MESA_CLC = "system"
170MESA_CLC:class-native = "enabled" 193MESA_CLC:class-native = "enabled"
@@ -173,30 +196,10 @@ INSTALL_MESA_CLC:class-native = "true"
173MESA_NATIVE = "mesa-native" 196MESA_NATIVE = "mesa-native"
174MESA_NATIVE:class-native = "" 197MESA_NATIVE:class-native = ""
175 198
176PACKAGECONFIG[gallium] = "-Dgallium-drivers=${@strip_comma('${GALLIUMDRIVERS}')}, -Dgallium-drivers='', libdrm"
177PACKAGECONFIG[gallium-llvm] = "-Dllvm=enabled -Dshared-llvm=enabled, -Dllvm=disabled, llvm llvm-native elfutils"
178PACKAGECONFIG[libclc] = "-Dmesa-clc=${MESA_CLC} -Dinstall-mesa-clc=${INSTALL_MESA_CLC} -Dmesa-clc-bundle-headers=enabled,,libclc spirv-tools spirv-llvm-translator ${MESA_NATIVE}" 199PACKAGECONFIG[libclc] = "-Dmesa-clc=${MESA_CLC} -Dinstall-mesa-clc=${INSTALL_MESA_CLC} -Dmesa-clc-bundle-headers=enabled,,libclc spirv-tools spirv-llvm-translator ${MESA_NATIVE}"
179PACKAGECONFIG[va] = "-Dgallium-va=enabled,-Dgallium-va=disabled,libva-initial" 200PACKAGECONFIG[va] = "-Dgallium-va=enabled,-Dgallium-va=disabled,libva-initial"
180PACKAGECONFIG[vdpau] = "-Dgallium-vdpau=enabled,-Dgallium-vdpau=disabled,libvdpau" 201PACKAGECONFIG[vdpau] = "-Dgallium-vdpau=enabled,-Dgallium-vdpau=disabled,libvdpau"
181 202
182PACKAGECONFIG[imagination] = "-Dimagination-srv=true,-Dimagination-srv=false"
183
184PACKAGECONFIG[asahi] = ""
185
186PACKAGECONFIG[intel] = ""
187GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'intel', ',i915,crocus', '', d)}"
188
189PACKAGECONFIG[lima] = ""
190GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'lima', ',lima', '', d)}"
191
192PACKAGECONFIG[panfrost] = ""
193GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'panfrost libclc', ',panfrost', '', d)}"
194
195PACKAGECONFIG[tegra] = ""
196GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'tegra', ',tegra,nouveau', '', d)}"
197
198PACKAGECONFIG[vulkan-beta] = "-Dvulkan-beta=true,-Dvulkan-beta=false"
199
200PACKAGECONFIG[perfetto] = "-Dperfetto=true,-Dperfetto=false,libperfetto" 203PACKAGECONFIG[perfetto] = "-Dperfetto=true,-Dperfetto=false,libperfetto"
201 204
202PACKAGECONFIG[unwind] = "-Dlibunwind=enabled,-Dlibunwind=disabled,libunwind" 205PACKAGECONFIG[unwind] = "-Dlibunwind=enabled,-Dlibunwind=disabled,libunwind"