mesa: 24.3.4 -> 25.0.0 (#383432)
This commit is contained in:
@@ -98,7 +98,7 @@ lib.optionalAttrs (buildScript != null) { builder = buildScript; }
|
||||
++ lib.optionals gtkSupport [ pkgs.gtk3 pkgs.glib ]
|
||||
++ lib.optionals openclSupport [ pkgs.opencl-headers pkgs.ocl-icd ]
|
||||
++ lib.optionals tlsSupport [ pkgs.openssl pkgs.gnutls ]
|
||||
++ lib.optionals (openglSupport && !stdenv.hostPlatform.isDarwin) [ pkgs.libGLU pkgs.libGL pkgs.mesa.osmesa pkgs.libdrm ]
|
||||
++ lib.optionals (openglSupport && !stdenv.hostPlatform.isDarwin) [ pkgs.libGLU pkgs.libGL pkgs.libdrm ]
|
||||
++ lib.optionals stdenv.hostPlatform.isDarwin darwinFrameworks
|
||||
++ lib.optionals (x11Support) (with pkgs.xorg; [
|
||||
libX11 libXcomposite libXcursor libXext libXfixes libXi libXrandr libXrender libXxf86vm
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
, libcrossguid, libmicrohttpd
|
||||
, bluez, doxygen, giflib, glib, harfbuzz, lcms2, libidn2, libpthreadstubs, libtasn1
|
||||
, libplist, p11-kit, zlib, flatbuffers, fstrcmp, rapidjson
|
||||
, lirc, mesa
|
||||
, lirc, mesa-gl-headers
|
||||
, x11Support ? true, libX11, xorgproto, libXt, libXmu, libXext, libXinerama, libXrandr, libXtst, libXfixes, xdpyinfo, libXdmcp
|
||||
, dbusSupport ? true, dbus
|
||||
, joystickSupport ? true, cwiid
|
||||
@@ -122,7 +122,7 @@ in stdenv.mkDerivation (finalAttrs: {
|
||||
bluez giflib glib harfbuzz lcms2 libpthreadstubs
|
||||
ffmpeg flatbuffers fstrcmp rapidjson
|
||||
lirc
|
||||
mesa # uses eglext_angle.h, which is not provided by glvnd
|
||||
mesa-gl-headers
|
||||
]
|
||||
++ lib.optionals x11Support [
|
||||
libX11 xorgproto libXt libXmu libXext.dev libXdmcp
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
wrapGAppsHook3,
|
||||
writeScript,
|
||||
atk,
|
||||
mesa,
|
||||
libgbm,
|
||||
cups,
|
||||
systemd,
|
||||
alsa-lib,
|
||||
@@ -53,7 +53,7 @@ let
|
||||
libxkbcommon
|
||||
libGL
|
||||
atk
|
||||
mesa
|
||||
libgbm
|
||||
cups
|
||||
systemd
|
||||
alsa-lib
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
libXtst,
|
||||
libinput,
|
||||
libdrm,
|
||||
libgbm,
|
||||
gsettings-desktop-schemas,
|
||||
glib,
|
||||
gtk3,
|
||||
@@ -32,7 +33,7 @@
|
||||
pipewire,
|
||||
libgudev,
|
||||
libwacom,
|
||||
mesa,
|
||||
mesa-gl-headers,
|
||||
meson,
|
||||
nix-update-script,
|
||||
validatePkgConfig,
|
||||
@@ -86,7 +87,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
libXtst
|
||||
libcap_ng
|
||||
graphene
|
||||
mesa # actually uses eglmesaext
|
||||
mesa-gl-headers
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
@@ -114,6 +115,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
gtk3
|
||||
libcanberra
|
||||
libdrm
|
||||
libgbm
|
||||
libgudev
|
||||
libinput
|
||||
libstartup_notification
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
json-glib,
|
||||
libcanberra,
|
||||
libdrm,
|
||||
libgbm,
|
||||
libgnomekbd,
|
||||
libgudev,
|
||||
libinput,
|
||||
@@ -24,7 +25,7 @@
|
||||
libXdamage,
|
||||
libxkbcommon,
|
||||
libXtst,
|
||||
mesa,
|
||||
mesa-gl-headers,
|
||||
meson,
|
||||
ninja,
|
||||
pipewire,
|
||||
@@ -84,6 +85,7 @@ stdenv.mkDerivation rec {
|
||||
gtk3
|
||||
libcanberra
|
||||
libdrm
|
||||
libgbm
|
||||
libgnomekbd
|
||||
libgudev
|
||||
libinput
|
||||
@@ -104,7 +106,7 @@ stdenv.mkDerivation rec {
|
||||
json-glib
|
||||
libXtst
|
||||
graphene
|
||||
mesa # actually uses eglmesaext
|
||||
mesa-gl-headers
|
||||
];
|
||||
|
||||
mesonFlags = [
|
||||
|
||||
@@ -36,6 +36,7 @@
|
||||
libXau,
|
||||
libinput,
|
||||
libdrm,
|
||||
libgbm,
|
||||
libei,
|
||||
libdisplay-info,
|
||||
gsettings-desktop-schemas,
|
||||
@@ -50,7 +51,7 @@
|
||||
libwacom,
|
||||
libSM,
|
||||
xwayland,
|
||||
mesa,
|
||||
mesa-gl-headers,
|
||||
meson,
|
||||
gnome-settings-daemon,
|
||||
xorgserver,
|
||||
@@ -101,7 +102,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
propagatedBuildInputs = [
|
||||
# required for pkg-config to detect mutter-mtk
|
||||
graphene
|
||||
mesa # actually uses eglmesaext
|
||||
mesa-gl-headers
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
@@ -133,6 +134,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
harfbuzz
|
||||
libcanberra
|
||||
libdrm
|
||||
libgbm
|
||||
libei
|
||||
libdisplay-info
|
||||
libGL
|
||||
|
||||
@@ -34,6 +34,7 @@
|
||||
libXau,
|
||||
libinput,
|
||||
libdrm,
|
||||
libgbm,
|
||||
libei,
|
||||
libdisplay-info,
|
||||
gsettings-desktop-schemas,
|
||||
@@ -48,7 +49,7 @@
|
||||
libwacom,
|
||||
libSM,
|
||||
xwayland,
|
||||
mesa,
|
||||
mesa-gl-headers,
|
||||
meson,
|
||||
gnome-settings-daemon,
|
||||
xorgserver,
|
||||
@@ -97,7 +98,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
propagatedBuildInputs = [
|
||||
# required for pkg-config to detect mutter-mtk
|
||||
graphene
|
||||
mesa # actually uses eglmesaext
|
||||
mesa-gl-headers
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
@@ -128,6 +129,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
harfbuzz
|
||||
libcanberra
|
||||
libdrm
|
||||
libgbm
|
||||
libei
|
||||
libdisplay-info
|
||||
libgudev
|
||||
|
||||
@@ -27,7 +27,6 @@
|
||||
hicolor-icon-theme,
|
||||
ilmbase,
|
||||
libpng,
|
||||
mesa,
|
||||
mpfr,
|
||||
nlopt,
|
||||
opencascade-occt_7_6,
|
||||
@@ -107,9 +106,6 @@ stdenv.mkDerivation rec {
|
||||
hicolor-icon-theme
|
||||
ilmbase
|
||||
libpng
|
||||
mesa
|
||||
mesa.osmesa
|
||||
mesa.drivers
|
||||
mpfr
|
||||
nlopt
|
||||
opencascade-occt_7_6
|
||||
@@ -129,6 +125,8 @@ stdenv.mkDerivation rec {
|
||||
./patches/0001-not-for-upstream-CMakeLists-Link-against-webkit2gtk-.patch
|
||||
# Link opencv_core and opencv_imgproc instead of opencv_world
|
||||
./patches/dont-link-opencv-world-orca.patch
|
||||
# Don't link osmesa
|
||||
./patches/no-osmesa.patch
|
||||
# The changeset from https://github.com/SoftFever/OrcaSlicer/pull/7650, can be removed when that PR gets merged
|
||||
# Allows disabling the update nag screen
|
||||
(fetchpatch {
|
||||
@@ -169,8 +167,6 @@ stdenv.mkDerivation rec {
|
||||
|
||||
NIX_LDFLAGS = toString [
|
||||
(lib.optionalString withSystemd "-ludev")
|
||||
"-L${mesa.osmesa}/lib"
|
||||
"-L${mesa.drivers}/lib"
|
||||
"-L${boost186}/lib"
|
||||
"-lboost_log"
|
||||
"-lboost_log_setup"
|
||||
@@ -194,7 +190,6 @@ stdenv.mkDerivation rec {
|
||||
"-DBOOST_LOG_NO_LIB=OFF"
|
||||
"-DCMAKE_CXX_FLAGS=-DGL_SILENCE_DEPRECATION"
|
||||
"-DCMAKE_EXE_LINKER_FLAGS=-Wl,--no-as-needed"
|
||||
"-DCMAKE_EXE_LINKER_FLAGS=-Wl,-rpath,${mesa.drivers}/lib -Wl,-rpath,${mesa.osmesa}/lib"
|
||||
"-DORCA_VERSION_CHECK_DEFAULT=OFF"
|
||||
];
|
||||
|
||||
@@ -202,12 +197,9 @@ stdenv.mkDerivation rec {
|
||||
gappsWrapperArgs+=(
|
||||
--prefix LD_LIBRARY_PATH : "$out/lib:${
|
||||
lib.makeLibraryPath [
|
||||
mesa.drivers
|
||||
mesa.osmesa
|
||||
glew
|
||||
]
|
||||
}"
|
||||
--prefix LIBGL_DRIVERS_PATH : "${mesa.drivers}/lib/dri"
|
||||
--set WEBKIT_DISABLE_COMPOSITING_MODE 1
|
||||
)
|
||||
'';
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
diff --git a/src/slic3r/CMakeLists.txt b/src/slic3r/CMakeLists.txt
|
||||
index e695acd48..174e233e6 100644
|
||||
--- a/src/slic3r/CMakeLists.txt
|
||||
+++ b/src/slic3r/CMakeLists.txt
|
||||
@@ -587,7 +587,7 @@ elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||
FIND_LIBRARY(WAYLAND_EGL_LIBRARIES NAMES wayland-egl)
|
||||
FIND_LIBRARY(WAYLAND_CLIENT_LIBRARIES NAMES wayland-client)
|
||||
find_package(CURL REQUIRED)
|
||||
- target_link_libraries(libslic3r_gui ${DBUS_LIBRARIES} OSMesa)
|
||||
+ target_link_libraries(libslic3r_gui ${DBUS_LIBRARIES})
|
||||
target_link_libraries(libslic3r_gui
|
||||
OpenGL::EGL
|
||||
${WAYLAND_SERVER_LIBRARIES}
|
||||
@@ -21,7 +21,6 @@
|
||||
libdbusmenu,
|
||||
libglvnd,
|
||||
libpulseaudio,
|
||||
mesa,
|
||||
nspr,
|
||||
nss,
|
||||
pango,
|
||||
@@ -62,7 +61,6 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
libdbusmenu
|
||||
libglvnd
|
||||
libpulseaudio
|
||||
mesa
|
||||
nspr
|
||||
nss
|
||||
pango
|
||||
|
||||
@@ -27,6 +27,7 @@
|
||||
jbig2dec,
|
||||
libGL,
|
||||
libdrm,
|
||||
libgbm,
|
||||
libinput,
|
||||
libjpeg,
|
||||
libpng,
|
||||
@@ -40,7 +41,7 @@
|
||||
libxkbcommon,
|
||||
lua,
|
||||
lz4,
|
||||
mesa,
|
||||
mesa-gl-headers,
|
||||
mint-x-icons,
|
||||
openjpeg,
|
||||
openssl,
|
||||
@@ -91,7 +92,7 @@ stdenv.mkDerivation rec {
|
||||
libsndfile
|
||||
libtiff
|
||||
lz4
|
||||
mesa # actually uses eglmesaext
|
||||
mesa-gl-headers
|
||||
openssl
|
||||
systemd
|
||||
udev
|
||||
@@ -118,6 +119,7 @@ stdenv.mkDerivation rec {
|
||||
hicolor-icon-theme # for the icon theme
|
||||
jbig2dec
|
||||
libdrm
|
||||
libgbm
|
||||
libinput
|
||||
libjpeg
|
||||
libraw
|
||||
|
||||
@@ -245,5 +245,6 @@ stdenv.mkDerivation rec {
|
||||
chessai
|
||||
twesterhout
|
||||
];
|
||||
broken = true;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -14,7 +14,8 @@
|
||||
gobject-introspection,
|
||||
wayland,
|
||||
gnome,
|
||||
mesa,
|
||||
libgbm,
|
||||
mesa-gl-headers,
|
||||
automake,
|
||||
autoconf,
|
||||
gstreamerSupport ? false,
|
||||
@@ -86,7 +87,8 @@ stdenv.mkDerivation rec {
|
||||
]
|
||||
++ lib.optionals stdenv.hostPlatform.isLinux [
|
||||
wayland
|
||||
mesa # actually uses eglmesaext
|
||||
libgbm
|
||||
mesa-gl-headers
|
||||
libGL
|
||||
xorg.libXrandr
|
||||
xorg.libXfixes
|
||||
|
||||
@@ -5,14 +5,14 @@
|
||||
# nix build .#legacyPackages.x86_64-darwin.mesa .#legacyPackages.aarch64-darwin.mesa
|
||||
rec {
|
||||
pname = "mesa";
|
||||
version = "24.3.4";
|
||||
version = "25.0.1";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
domain = "gitlab.freedesktop.org";
|
||||
owner = "mesa";
|
||||
repo = "mesa";
|
||||
rev = "mesa-${version}";
|
||||
hash = "sha256-1RUHbTgcCxdDrWjqB0EG4Ny/nwdjQHHpyPauiW/yogU=";
|
||||
hash = "sha256-9D4d7EEdZysvXDRcmpbyt85Lo64sldNRomp6/HUVORo=";
|
||||
};
|
||||
|
||||
meta = {
|
||||
|
||||
@@ -1,90 +0,0 @@
|
||||
commit f063e9f74b45f34e4ac570a90901253bf8e64efd
|
||||
Author: Mary Guillemard <mary.guillemard@collabora.com>
|
||||
Date: 2024-12-02 09:11:35 +0100
|
||||
|
||||
meson: Add mesa-clc and install-mesa-clc options
|
||||
|
||||
Due to the cross build issues in current meson, we adds new options to
|
||||
allow mesa_clc and vtn_bindgen to be installed or searched on the
|
||||
system.
|
||||
|
||||
Signed-off-by: Mary Guillemard <mary.guillemard@collabora.com>
|
||||
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
|
||||
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
|
||||
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32719>
|
||||
|
||||
diff --git a/meson.build b/meson.build
|
||||
index de9c9af53a1..e37325ec176 100644
|
||||
--- a/meson.build
|
||||
+++ b/meson.build
|
||||
@@ -808,7 +808,7 @@ if with_gallium_rusticl or with_nouveau_vk or with_tools.contains('etnaviv')
|
||||
endif
|
||||
|
||||
with_clover_spirv = with_gallium_clover and get_option('opencl-spirv')
|
||||
-with_clc = with_microsoft_clc or with_intel_clc or with_gallium_asahi or with_asahi_vk or with_gallium_rusticl or with_clover_spirv
|
||||
+with_clc = get_option('mesa-clc') != 'auto' or with_microsoft_clc or with_intel_clc or with_gallium_asahi or with_asahi_vk or with_gallium_rusticl
|
||||
|
||||
dep_clc = null_dep
|
||||
if with_gallium_clover or with_clc
|
||||
diff --git a/meson_options.txt b/meson_options.txt
|
||||
index 79ee65e6094..8f22b36e5fb 100644
|
||||
--- a/meson_options.txt
|
||||
+++ b/meson_options.txt
|
||||
@@ -744,3 +744,20 @@ option(
|
||||
'none', 'dri2'
|
||||
],
|
||||
)
|
||||
+
|
||||
+option(
|
||||
+ 'mesa-clc',
|
||||
+ type : 'combo',
|
||||
+ value : 'auto',
|
||||
+ choices : [
|
||||
+ 'enabled', 'system', 'auto'
|
||||
+ ],
|
||||
+ description : 'Build the mesa-clc compiler or use a system version.'
|
||||
+)
|
||||
+
|
||||
+option(
|
||||
+ 'install-mesa-clc',
|
||||
+ type : 'boolean',
|
||||
+ value : false,
|
||||
+ description : 'Install the mesa-clc compiler (if needed for cross builds).'
|
||||
+)
|
||||
diff --git a/src/compiler/clc/meson.build b/src/compiler/clc/meson.build
|
||||
index 74767d08de2..4875d71ca21 100644
|
||||
--- a/src/compiler/clc/meson.build
|
||||
+++ b/src/compiler/clc/meson.build
|
||||
@@ -117,15 +117,20 @@ idep_mesaclc = declare_dependency(
|
||||
link_args : _idep_mesaclc_link_args,
|
||||
)
|
||||
|
||||
-prog_mesa_clc = executable(
|
||||
- 'mesa_clc',
|
||||
- ['mesa_clc.c'],
|
||||
- include_directories : [inc_include, inc_src],
|
||||
- c_args : [pre_args, no_override_init_args],
|
||||
- link_args : [ld_args_build_id],
|
||||
- dependencies : [idep_mesaclc, dep_llvm, dep_spirv_tools, idep_getopt],
|
||||
- # If we can run host binaries directly, just build mesa_clc for the host.
|
||||
- # Most commonly this happens when doing a cross compile from an x86_64 build
|
||||
- # machine to an x86 host
|
||||
- native : not meson.can_run_host_binaries(),
|
||||
-)
|
||||
+if get_option('mesa-clc') == 'system'
|
||||
+ prog_mesa_clc = find_program('mesa_clc', native : true)
|
||||
+else
|
||||
+ prog_mesa_clc = executable(
|
||||
+ 'mesa_clc',
|
||||
+ ['mesa_clc.c'],
|
||||
+ include_directories : [inc_include, inc_src],
|
||||
+ c_args : [pre_args, no_override_init_args],
|
||||
+ link_args : [ld_args_build_id],
|
||||
+ dependencies : [idep_mesaclc, dep_llvm, dep_spirv_tools, idep_getopt],
|
||||
+ # If we can run host binaries directly, just build mesa_clc for the host.
|
||||
+ # Most commonly this happens when doing a cross compile from an x86_64 build
|
||||
+ # machine to an x86 host
|
||||
+ native : not meson.can_run_host_binaries(),
|
||||
+ install : get_option('install-mesa-clc'),
|
||||
+ )
|
||||
+endif
|
||||
@@ -27,18 +27,6 @@ stdenv.mkDerivation {
|
||||
meta
|
||||
;
|
||||
|
||||
# Darwin build fixes. FIXME: remove in 25.1.
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
url = "https://gitlab.freedesktop.org/mesa/mesa/-/commit/e89eba0796b3469f1d2cdbb600309f6231a8169d.patch";
|
||||
hash = "sha256-0EP0JsYy+UTQ+eGd3sMfoLf1R+2e8n1flmQAHq3rCR4=";
|
||||
})
|
||||
(fetchpatch {
|
||||
url = "https://gitlab.freedesktop.org/mesa/mesa/-/commit/568a4ca899762fe96fc9b34d2288d07e6656af87.patch";
|
||||
hash = "sha256-uLxa5vA3/cYAIJT9h7eBQ1EBu4MnMg9R5uGAHzTb5Fc=";
|
||||
})
|
||||
];
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
"dev"
|
||||
|
||||
@@ -91,6 +91,7 @@
|
||||
"intel-nullhw"
|
||||
]
|
||||
, mesa
|
||||
, mesa-gl-headers
|
||||
, makeSetupHook
|
||||
}:
|
||||
|
||||
@@ -138,9 +139,6 @@ in stdenv.mkDerivation {
|
||||
|
||||
patches = [
|
||||
./opencl.patch
|
||||
# cherry-picked from https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32719
|
||||
# safe to remove for versions > 24.3.2
|
||||
./cross_clc.patch
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
@@ -154,15 +152,28 @@ in stdenv.mkDerivation {
|
||||
substituteInPlace src/amd/vulkan/meson.build --replace \
|
||||
"get_option('datadir')" "'${placeholder "out"}/share'"
|
||||
|
||||
for header in ${toString mesa-gl-headers.headers}; do
|
||||
if ! diff -q $header ${mesa-gl-headers}/$header; then
|
||||
echo "File $header does not match between mesa and mesa-gl-headers, please update mesa-gl-headers first!"
|
||||
exit 42
|
||||
fi
|
||||
done
|
||||
|
||||
${copyRustDeps}
|
||||
'';
|
||||
|
||||
outputs = [
|
||||
"out" "dev" "drivers" "driversdev" "opencl" "teflon" "osmesa"
|
||||
"out" "dev"
|
||||
"drivers"
|
||||
# OpenCL drivers pull in ~1G of extra LLVM stuff, so don't install them
|
||||
# if the user didn't explicitly ask for it
|
||||
"opencl"
|
||||
# the Dozen drivers depend on libspirv2dxil, but link it statically, and
|
||||
# libspirv2dxil itself is pretty chonky, so relocate it to its own output in
|
||||
# case anything wants to use it at some point
|
||||
"spirv2dxil"
|
||||
# tools for the host platform to be used when cross-compiling
|
||||
"cross_tools"
|
||||
];
|
||||
|
||||
# Keep build-ids so drivers can use them for caching, etc.
|
||||
@@ -196,8 +207,10 @@ in stdenv.mkDerivation {
|
||||
# Enable glvnd for dynamic libGL dispatch
|
||||
(lib.mesonEnable "glvnd" true)
|
||||
|
||||
(lib.mesonBool "gallium-nine" true) # Direct3D in Wine
|
||||
(lib.mesonBool "osmesa" true) # used by wine
|
||||
(lib.mesonBool "gallium-nine" false) # Direct3D9 in Wine, largely supplanted by DXVK
|
||||
(lib.mesonBool "osmesa" false) # deprecated upstream
|
||||
(lib.mesonEnable "gallium-xa" false) # old and mostly dead
|
||||
|
||||
(lib.mesonBool "teflon" true) # TensorFlow frontend
|
||||
|
||||
# Enable all freedreno kernel mode drivers. (For example, virtio can be
|
||||
@@ -206,14 +219,13 @@ in stdenv.mkDerivation {
|
||||
(lib.mesonOption "freedreno-kmds" "msm,kgsl,virtio,wsl")
|
||||
|
||||
# Enable Intel RT stuff when available
|
||||
(lib.mesonBool "install-intel-clc" true)
|
||||
(lib.mesonBool "install-mesa-clc" true)
|
||||
(lib.mesonEnable "intel-rt" stdenv.hostPlatform.isx86_64)
|
||||
|
||||
# Required for OpenCL
|
||||
(lib.mesonOption "clang-libdir" "${lib.getLib llvmPackages.clang-unwrapped}/lib")
|
||||
|
||||
# Clover, old OpenCL frontend
|
||||
(lib.mesonOption "gallium-opencl" "icd")
|
||||
(lib.mesonBool "opencl-spirv" true)
|
||||
|
||||
# Rusticl, new OpenCL frontend
|
||||
(lib.mesonBool "gallium-rusticl" true)
|
||||
@@ -221,12 +233,18 @@ in stdenv.mkDerivation {
|
||||
# meson auto_features enables this, but we do not want it
|
||||
(lib.mesonEnable "android-libbacktrace" false)
|
||||
(lib.mesonEnable "microsoft-clc" false) # Only relevant on Windows (OpenCL 1.2 API on top of D3D12)
|
||||
|
||||
# Build and install extra tools for cross
|
||||
(lib.mesonBool "install-mesa-clc" true)
|
||||
(lib.mesonBool "install-precomp-compiler" true)
|
||||
|
||||
# Disable valgrind on targets where it's not available
|
||||
(lib.mesonEnable "valgrind" withValgrind)
|
||||
] ++ lib.optionals enablePatentEncumberedCodecs [
|
||||
(lib.mesonOption "video-codecs" "all")
|
||||
] ++ lib.optionals needNativeCLC [
|
||||
(lib.mesonOption "intel-clc" "system")
|
||||
(lib.mesonOption "mesa-clc" "system")
|
||||
(lib.mesonOption "precomp-compiler" "system")
|
||||
];
|
||||
|
||||
strictDeps = true;
|
||||
@@ -295,11 +313,11 @@ in stdenv.mkDerivation {
|
||||
wayland-scanner
|
||||
] ++ lib.optionals needNativeCLC [
|
||||
# `or null` to not break eval with `attribute missing` on darwin to linux cross
|
||||
(buildPackages.mesa.driversdev or null)
|
||||
(buildPackages.mesa.cross_tools or null)
|
||||
];
|
||||
|
||||
disallowedRequisites = lib.optionals needNativeCLC [
|
||||
(buildPackages.mesa.driversdev or null)
|
||||
(buildPackages.mesa.cross_tools or null)
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [ libdrm ];
|
||||
@@ -308,13 +326,14 @@ in stdenv.mkDerivation {
|
||||
|
||||
postInstall = ''
|
||||
# Move driver-related bits to $drivers
|
||||
moveToOutput "lib/gallium-pipe" $drivers
|
||||
moveToOutput "lib/gbm" $drivers
|
||||
moveToOutput "lib/lib*_mesa*" $drivers
|
||||
moveToOutput "lib/libgallium*" $drivers
|
||||
moveToOutput "lib/libglapi*" $drivers
|
||||
moveToOutput "lib/libpowervr_rogue*" $drivers
|
||||
moveToOutput "lib/libvulkan_*" $drivers
|
||||
moveToOutput "lib/libxatracker*" $drivers
|
||||
moveToOutput "lib/libteflon.so" $drivers
|
||||
|
||||
# Update search path used by glvnd (it's pointing to $out but drivers are in $drivers)
|
||||
for js in $drivers/share/glvnd/egl_vendor.d/*.json; do
|
||||
@@ -337,14 +356,14 @@ in stdenv.mkDerivation {
|
||||
echo $opencl/lib/libMesaOpenCL.so > $opencl/etc/OpenCL/vendors/mesa.icd
|
||||
echo $opencl/lib/libRusticlOpenCL.so > $opencl/etc/OpenCL/vendors/rusticl.icd
|
||||
|
||||
moveToOutput bin/intel_clc $driversdev
|
||||
moveToOutput bin/mesa_clc $driversdev
|
||||
moveToOutput lib/gallium-pipe $opencl
|
||||
moveToOutput bin/intel_clc $cross_tools
|
||||
moveToOutput bin/mesa_clc $cross_tools
|
||||
moveToOutput bin/vtn_bindgen $cross_tools
|
||||
|
||||
moveToOutput "lib/lib*OpenCL*" $opencl
|
||||
moveToOutput "lib/libOSMesa*" $osmesa
|
||||
|
||||
moveToOutput bin/spirv2dxil $spirv2dxil
|
||||
moveToOutput "lib/libspirv_to_dxil*" $spirv2dxil
|
||||
moveToOutput lib/libteflon.so $teflon
|
||||
'';
|
||||
|
||||
postFixup = ''
|
||||
@@ -356,15 +375,9 @@ in stdenv.mkDerivation {
|
||||
# remove pkgconfig files for GL/EGL; they are provided by libGL.
|
||||
rm -f $dev/lib/pkgconfig/{gl,egl}.pc
|
||||
|
||||
# Move development files for libraries in $drivers to $driversdev
|
||||
mkdir -p $driversdev/include
|
||||
mv $dev/include/xa_* $dev/include/d3d* -t $driversdev/include || true
|
||||
mkdir -p $driversdev/lib/pkgconfig
|
||||
for pc in lib/pkgconfig/{xatracker,d3d}.pc; do
|
||||
if [ -f "$dev/$pc" ]; then
|
||||
substituteInPlace "$dev/$pc" --replace $out $drivers
|
||||
mv $dev/$pc $driversdev/$pc
|
||||
fi
|
||||
# remove headers moved to mesa-gl-headers
|
||||
for header in ${toString mesa-gl-headers.headers}; do
|
||||
rm -f $dev/$header
|
||||
done
|
||||
|
||||
# update symlinks pointing to libgallium in $out
|
||||
@@ -392,7 +405,7 @@ in stdenv.mkDerivation {
|
||||
|
||||
env.NIX_CFLAGS_COMPILE = toString ([
|
||||
"-UPIPE_SEARCH_DIR"
|
||||
"-DPIPE_SEARCH_DIR=\"${placeholder "opencl"}/lib/gallium-pipe\""
|
||||
"-DPIPE_SEARCH_DIR=\"${placeholder "drivers"}/lib/gallium-pipe\""
|
||||
]);
|
||||
|
||||
passthru = {
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitLab,
|
||||
}:
|
||||
|
||||
let
|
||||
common = import ./common.nix { inherit lib fetchFromGitLab; };
|
||||
headers = [
|
||||
"include/EGL/eglext_angle.h"
|
||||
"include/EGL/eglmesaext.h"
|
||||
];
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "mesa-gl-headers";
|
||||
|
||||
# These are a bigger rebuild and don't change often, so keep them separate.
|
||||
version = "25.0.1";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
domain = "gitlab.freedesktop.org";
|
||||
owner = "mesa";
|
||||
repo = "mesa";
|
||||
rev = "mesa-${version}";
|
||||
hash = "sha256-9D4d7EEdZysvXDRcmpbyt85Lo64sldNRomp6/HUVORo=";
|
||||
};
|
||||
|
||||
dontBuild = true;
|
||||
|
||||
installPhase = ''
|
||||
for header in ${toString headers}; do
|
||||
install -Dm444 $header $out/$header
|
||||
done
|
||||
'';
|
||||
|
||||
passthru = { inherit headers; };
|
||||
|
||||
inherit (common) meta;
|
||||
}
|
||||
@@ -1,7 +1,6 @@
|
||||
{
|
||||
buildPythonPackage,
|
||||
horizon-eda,
|
||||
mesa,
|
||||
pycairo,
|
||||
python,
|
||||
pythonOlder,
|
||||
@@ -24,8 +23,6 @@ buildPythonPackage {
|
||||
disabled = pythonOlder "3.9";
|
||||
|
||||
buildInputs = base.buildInputs ++ [
|
||||
mesa
|
||||
mesa.osmesa
|
||||
python
|
||||
];
|
||||
|
||||
|
||||
@@ -604,7 +604,6 @@ self: super:
|
||||
});
|
||||
|
||||
xf86videovmware = super.xf86videovmware.overrideAttrs (attrs: {
|
||||
buildInputs = attrs.buildInputs ++ [ mesa mesa.driversdev llvm ]; # for libxatracker
|
||||
env.NIX_CFLAGS_COMPILE = toString [ "-Wno-error=address" ]; # gcc12
|
||||
meta = attrs.meta // {
|
||||
platforms = ["i686-linux" "x86_64-linux"];
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
fetchpatch,
|
||||
libX11,
|
||||
libGL,
|
||||
mesa,
|
||||
nvidia_x11 ? null,
|
||||
libglvnd,
|
||||
}:
|
||||
@@ -48,7 +47,6 @@ stdenv.mkDerivation {
|
||||
"LIBDIR=$(out)/lib"
|
||||
"PRIMUS_libGLa=${aPackage}/lib/libGL.so"
|
||||
"PRIMUS_libGLd=${libGL}/lib/libGL.so"
|
||||
"PRIMUS_LOAD_GLOBAL=${mesa}/lib/libglapi.so"
|
||||
];
|
||||
|
||||
installPhase = ''
|
||||
|
||||
@@ -9905,6 +9905,7 @@ with pkgs;
|
||||
mesa_i686 = pkgsi686Linux.mesa; # make it build on Hydra
|
||||
|
||||
libgbm = callPackage ../development/libraries/mesa/gbm.nix {};
|
||||
mesa-gl-headers = callPackage ../development/libraries/mesa/headers.nix {};
|
||||
|
||||
## End libGL/libGLU/Mesa stuff
|
||||
|
||||
|
||||
@@ -6099,7 +6099,7 @@ self: super: with self; {
|
||||
hopcroftkarp = callPackage ../development/python-modules/hopcroftkarp { };
|
||||
|
||||
horizon-eda = callPackage ../development/python-modules/horizon-eda {
|
||||
inherit (pkgs) horizon-eda mesa;
|
||||
inherit (pkgs) horizon-eda;
|
||||
};
|
||||
|
||||
howdoi = callPackage ../development/python-modules/howdoi { };
|
||||
|
||||
Reference in New Issue
Block a user