%dnl optionally do a minimal asahi specific build %bcond asahi_minimal %["%{_arch}" != "aarch64"] %if %{with asahi_minimal} %global with_hardware 1 %global with_vulkan_hw 1 %global with_asahi 1 %ifarch x86_64 %{ix86} %global with_asahi_fex_emu_overlay 1 %endif %global asahi_platform_vulkan %{?with_vulkan_hw:,asahi}%{!?with_vulkan_hw:%{nil}} %global with_opencl 1 %dnl keep kmsro to package all unconditionally created dri driver symlinks %global with_kmsro 1 %dnl build va/vdpau/xa/teflon/nine to avoid issues with vanished packages %global with_vdpau 1 %global with_va 1 %global with_nine 1 %ifnarch %{ix86} %global with_teflon 1 %endif %else %dnl START upstream fedora %ifnarch s390x %global with_hardware 1 %global with_radeonsi 1 %global with_vmware 1 %global with_vulkan_hw 1 %global with_vdpau 1 %global with_va 1 %if !0%{?rhel} %global with_r300 1 %global with_r600 1 %global with_nine 1 %global with_nouveau 1 %if 0%{?with_vulkan_hw} %global with_nvk %{with_vulkan_hw} %endif %global with_opencl 1 %endif %global with_base_vulkan 1 %global base_vulkan %{?with_vulkan_hw:,amd}%{!?with_vulkan_hw:%{nil}} %endif %ifnarch %{ix86} %if !0%{?rhel} %global with_teflon 1 %endif %endif %ifarch %{ix86} x86_64 %global with_crocus 1 %global with_i915 1 %global with_iris 1 %global with_xa 1 %global with_intel_clc 1 %global intel_platform_vulkan %{?with_vulkan_hw:,intel,intel_hasvk}%{!?with_vulkan_hw:%{nil}} %endif %ifarch x86_64 %if !0%{?with_vulkan_hw} %global with_intel_vk_rt 1 %endif %endif %ifarch aarch64 x86_64 %{ix86} %global with_kmsro 1 %if !0%{?rhel} %global with_lima 1 %global with_vc4 1 %global with_etnaviv 1 %global with_tegra 1 %endif %global with_asahi 1 %global with_freedreno 1 %global with_panfrost 1 %global with_v3d 1 %global with_xa 1 %if 0%{?with_asahi} %ifarch x86_64 %{ix86} %global with_asahi_fex_emu_overlay 1 %endif %global asahi_platform_vulkan %{?with_vulkan_hw:,asahi}%{!?with_vulkan_hw:%{nil}} %endif %global extra_platform_vulkan %{?with_vulkan_hw:,broadcom,freedreno,panfrost,imagination-experimental}%{!?with_vulkan_hw:%{nil}} %endif %endif %dnl END upstream fedora %if !0%{?rhel} %global with_libunwind 1 %global with_lmsensors 1 %endif %ifarch %{valgrind_arches} %bcond_without valgrind %else %bcond_with valgrind %endif %global vulkan_drivers swrast,virtio%{?base_vulkan}%{?intel_platform_vulkan}%{?asahi_platform_vulkan}%{?extra_platform_vulkan}%{?with_nvk:,nouveau} Name: mesa Summary: Mesa graphics libraries Version: 25.2.0~20250508^b7d2cdd2b42 Release: 1%{?dist} License: MIT AND BSD-3-Clause AND SGI-B-2.0 URL: http://www.mesa3d.org # update rpkg.conf as well with the download URL path Source0: mesa-nightly.tar.gz # src/gallium/auxiliary/postprocess/pp_mlaa* have an ... interestingly worded license. # Source1 contains email correspondence clarifying the license terms. # Fedora opts to ignore the optional part of clause 2 and treat that code as 2 clause BSD. Source1: Mesa-MLAA-License-Clarification-Email.txt Patch10: gnome-shell-glthread-disable.patch Patch101: 0001-asahi-fix-various-issues-with-virtgpu.patch Patch102: 0002-asahi-enable-virtgpu.patch BuildRequires: meson >= 1.3.0 BuildRequires: gcc BuildRequires: gcc-c++ BuildRequires: gettext %if 0%{?with_hardware} BuildRequires: kernel-headers %endif # We only check for the minimum version of pkgconfig(libdrm) needed so that the # SRPMs for each arch still have the same build dependencies. See: # https://bugzilla.redhat.com/show_bug.cgi?id=1859515 BuildRequires: pkgconfig(libdrm) >= 2.4.122 %if 0%{?with_libunwind} BuildRequires: pkgconfig(libunwind) %endif BuildRequires: pkgconfig(expat) BuildRequires: pkgconfig(zlib) >= 1.2.3 BuildRequires: pkgconfig(libzstd) BuildRequires: pkgconfig(libselinux) BuildRequires: pkgconfig(wayland-scanner) BuildRequires: pkgconfig(wayland-protocols) >= 1.41 BuildRequires: pkgconfig(wayland-client) >= 1.11 BuildRequires: pkgconfig(wayland-server) >= 1.11 BuildRequires: pkgconfig(wayland-egl-backend) >= 3 BuildRequires: pkgconfig(x11) BuildRequires: pkgconfig(xext) BuildRequires: pkgconfig(xdamage) >= 1.1 BuildRequires: pkgconfig(xfixes) BuildRequires: pkgconfig(xcb-glx) >= 1.8.1 BuildRequires: pkgconfig(xxf86vm) BuildRequires: pkgconfig(xcb) BuildRequires: pkgconfig(x11-xcb) BuildRequires: pkgconfig(xcb-dri2) >= 1.8 BuildRequires: pkgconfig(xcb-dri3) BuildRequires: pkgconfig(xcb-present) BuildRequires: pkgconfig(xcb-sync) BuildRequires: pkgconfig(xshmfence) >= 1.1 BuildRequires: pkgconfig(dri2proto) >= 2.8 BuildRequires: pkgconfig(glproto) >= 1.4.14 BuildRequires: pkgconfig(xcb-xfixes) BuildRequires: pkgconfig(xcb-randr) BuildRequires: pkgconfig(xrandr) >= 1.3 BuildRequires: bison BuildRequires: flex %if 0%{?with_lmsensors} BuildRequires: lm_sensors-devel %endif %if 0%{?with_vdpau} BuildRequires: pkgconfig(vdpau) >= 1.1 %endif %if 0%{?with_va} BuildRequires: pkgconfig(libva) >= 0.38.0 %endif BuildRequires: pkgconfig(libelf) BuildRequires: pkgconfig(libglvnd) >= 1.3.2 BuildRequires: llvm-devel >= 7.0.0 %if 0%{?with_teflon} BuildRequires: flatbuffers-devel BuildRequires: flatbuffers-compiler BuildRequires: xtensor-devel %endif %if 0%{?with_opencl} || 0%{?with_nvk} || 0%{?with_intel_clc} || 0%{?with_asahi} BuildRequires: clang-devel BuildRequires: pkgconfig(libclc) BuildRequires: pkgconfig(SPIRV-Tools) BuildRequires: pkgconfig(LLVMSPIRVLib) %endif %if 0%{?with_opencl} || 0%{?with_nvk} BuildRequires: bindgen BuildRequires: rust-packaging %endif %if 0%{?with_nvk} BuildRequires: cbindgen BuildRequires: rustfmt BuildRequires: (crate(paste) >= 1.0.14 with crate(paste) < 2) BuildRequires: (crate(proc-macro2) >= 1.0.86 with crate(proc-macro2) < 2) BuildRequires: (crate(quote) >= 1.0.33 with crate(quote) < 2) BuildRequires: (crate(syn/clone-impls) >= 2.0.86 with crate(syn/clone-impls) < 3) BuildRequires: (crate(unicode-ident) >= 1.0.12 with crate(unicode-ident) < 2) %endif %if %{with valgrind} BuildRequires: pkgconfig(valgrind) %endif BuildRequires: python3-devel BuildRequires: python3-mako %if 0%{?with_intel_clc} BuildRequires: python3-ply %endif BuildRequires: python3-pycparser BuildRequires: python3-pyyaml BuildRequires: vulkan-headers BuildRequires: glslang %if 0%{?with_vulkan_hw} BuildRequires: pkgconfig(vulkan) %endif %description %{summary}. %package filesystem Summary: Mesa driver filesystem Provides: mesa-dri-filesystem = %{?epoch:%{epoch}:}%{version}-%{release} Obsoletes: mesa-omx-drivers < %{?epoch:%{epoch}:}%{version}-%{release} %description filesystem %{summary}. %package libGL Summary: Mesa libGL runtime libraries Requires: libglvnd-glx%{?_isa} >= 1:1.3.2 Requires: %{name}-dri-drivers%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} %description libGL %{summary}. %package libGL-devel Summary: Mesa libGL development package Requires: (%{name}-libGL%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} if %{name}-libGL%{?_isa}) Requires: libglvnd-devel%{?_isa} >= 1:1.3.2 Provides: libGL-devel Provides: libGL-devel%{?_isa} Recommends: gl-manpages %description libGL-devel %{summary}. %package libEGL Summary: Mesa libEGL runtime libraries Requires: libglvnd-egl%{?_isa} >= 1:1.3.2 Requires: %{name}-libgbm%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} Requires: %{name}-dri-drivers%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} %description libEGL %{summary}. %package libEGL-devel Summary: Mesa libEGL development package Requires: (%{name}-libEGL%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} if %{name}-libEGL%{?_isa}) Requires: libglvnd-devel%{?_isa} >= 1:1.3.2 Requires: %{name}-khr-devel%{?_isa} Provides: libEGL-devel Provides: libEGL-devel%{?_isa} %description libEGL-devel %{summary}. %package dri-drivers Summary: Mesa-based DRI drivers Requires: %{name}-filesystem%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} %if 0%{?with_va} Recommends: %{name}-va-drivers%{?_isa} %endif Obsoletes: %{name}-libglapi < 25.0.0~rc2-1 %description dri-drivers %{summary}. %if 0%{?with_va} %package va-drivers Summary: Mesa-based VA-API video acceleration drivers Requires: %{name}-filesystem%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} Obsoletes: %{name}-vaapi-drivers < 22.2.0-5 %description va-drivers %{summary}. %endif %if 0%{?with_vdpau} %package vdpau-drivers Summary: Mesa-based VDPAU drivers Requires: %{name}-filesystem%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} %description vdpau-drivers %{summary}. %endif %package libgbm Summary: Mesa gbm runtime library Provides: libgbm Provides: libgbm%{?_isa} Recommends: %{name}-dri-drivers%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} # If mesa-dri-drivers are installed, they must match in version. This is here to prevent using # older mesa-dri-drivers together with a newer mesa-libgbm and its dependants. # See https://bugzilla.redhat.com/show_bug.cgi?id=2193135 . Requires: (%{name}-dri-drivers%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} if %{name}-dri-drivers%{?_isa}) %description libgbm %{summary}. %package libgbm-devel Summary: Mesa libgbm development package Requires: %{name}-libgbm%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} Provides: libgbm-devel Provides: libgbm-devel%{?_isa} %description libgbm-devel %{summary}. %if 0%{?with_xa} %package libxatracker Summary: Mesa XA state tracker Provides: libxatracker Provides: libxatracker%{?_isa} %description libxatracker %{summary}. %package libxatracker-devel Summary: Mesa XA state tracker development package Requires: %{name}-libxatracker%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} Provides: libxatracker-devel Provides: libxatracker-devel%{?_isa} %description libxatracker-devel %{summary}. %endif %if 0%{?with_opencl} %package libOpenCL Summary: Mesa OpenCL runtime library Requires: (ocl-icd%{?_isa} or OpenCL-ICD-Loader%{?_isa}) Requires: libclc%{?_isa} Requires: %{name}-libgbm%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} Requires: opencl-filesystem %description libOpenCL %{summary}. %package libOpenCL-devel Summary: Mesa OpenCL development package Requires: %{name}-libOpenCL%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} %description libOpenCL-devel %{summary}. %endif %if 0%{?with_teflon} %package libTeflon Summary: Mesa TensorFlow Lite delegate %description libTeflon %{summary}. %endif %if 0%{?with_nine} %package libd3d Summary: Mesa Direct3D9 state tracker %description libd3d %{summary}. %package libd3d-devel Summary: Mesa Direct3D9 state tracker development package Requires: %{name}-libd3d%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} %description libd3d-devel %{summary}. %endif %package vulkan-drivers Summary: Mesa Vulkan drivers Requires: vulkan%{_isa} Requires: %{name}-filesystem%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} Obsoletes: mesa-vulkan-devel < %{?epoch:%{epoch}:}%{version}-%{release} %description vulkan-drivers The drivers with support for the Vulkan API. %if 0%{?with_asahi_fex_emu_overlay} %package fex-emu-overlay-%{_arch} Summary: Mesa driver overlay for FEX-emu BuildArch: noarch BuildRequires: erofs-utils BuildRequires: patchelf Requires: fex-emu Supplements: fex-emu-rootfs-fedora Provides: fex-emu-overlay(%{_arch})(mesa) = %{version}-%{release} Provides: bundled(mesa) = %{version}-%{release} %description fex-emu-overlay-%{_arch} Mesa EGL/GL libraries and Gallium/OpenCL/Vulkan drivers for FEX-emu roots file system images. %endif %prep %autosetup -n mesa -p1 cp %{SOURCE1} docs/ # patch VERSION to contain the package version echo %{version} > VERSIOn %build # ensure standard Rust compiler flags are set export RUSTFLAGS="%build_rustflags" %if 0%{?with_nvk} export MESON_PACKAGE_CACHE_DIR="%{cargo_registry}/" # So... Meson can't actually find them without tweaks %define inst_crate_nameversion() %(basename %{cargo_registry}/%{1}-*) %define rewrite_wrap_file() sed -e "/source.*/d" -e "s/%{1}-.*/%{inst_crate_nameversion %{1}}/" -i subprojects/%{1}.wrap %rewrite_wrap_file proc-macro2 %rewrite_wrap_file quote %rewrite_wrap_file syn %rewrite_wrap_file unicode-ident %rewrite_wrap_file paste %endif # We've gotten a report that enabling LTO for mesa breaks some games. See # https://bugzilla.redhat.com/show_bug.cgi?id=1862771 for details. # Disable LTO for now %define _lto_cflags %{nil} %meson \ -Dplatforms=x11,wayland \ %if 0%{?with_hardware} -Dgallium-drivers=llvmpipe,virgl%{?with_nouveau:,nouveau}%{?with_r300:,r300}%{?with_crocus:,crocus}%{?with_i915:,i915}%{?with_iris:,iris}%{?with_vmware:,svga}%{?with_radeonsi:,radeonsi}%{?with_r600:,r600}%{?with_freedreno:,freedreno}%{?with_etnaviv:,etnaviv}%{?with_tegra:,tegra}%{?with_vc4:,vc4}%{?with_v3d:,v3d}%{?with_lima:,lima}%{?with_panfrost:,panfrost}%{?with_vulkan_hw:,zink}%{?with_asahi:,asahi} \ %else -Dgallium-drivers=llvmpipe,virgl \ %endif -Dgallium-vdpau=%{?with_vdpau:enabled}%{!?with_vdpau:disabled} \ -Dgallium-va=%{?with_va:enabled}%{!?with_va:disabled} \ -Dgallium-xa=%{?with_xa:enabled}%{!?with_xa:disabled} \ -Dgallium-nine=%{?with_nine:true}%{!?with_nine:false} \ -Dteflon=%{?with_teflon:true}%{!?with_teflon:false} \ %if 0%{?with_opencl} -Dgallium-rusticl=true \ %endif -Dvulkan-drivers=%{?vulkan_drivers} \ -Dvulkan-layers=device-select \ -Dshared-glapi=enabled \ -Dgles1=enabled \ -Dgles2=enabled \ -Dopengl=true \ -Dgbm=enabled \ -Dglx=dri \ -Degl=enabled \ -Dglvnd=enabled \ %if 0%{?with_intel_clc} -Dintel-clc=enabled \ %endif -Dintel-rt=%{?with_intel_vk_rt:enabled}%{!?with_intel_vk_rt:disabled} \ -Dmicrosoft-clc=disabled \ -Dllvm=enabled \ -Dshared-llvm=enabled \ -Dvalgrind=%{?with_valgrind:enabled}%{!?with_valgrind:disabled} \ -Dbuild-tests=false \ -Dselinux=true \ %if !0%{?with_libunwind} -Dlibunwind=disabled \ %endif %if !0%{?with_lmsensors} -Dlmsensors=disabled \ %endif -Dandroid-libbacktrace=disabled \ %ifarch %{ix86} -Dglx-read-only-text=true \ %endif %{nil} %meson_build %install %meson_install # libvdpau opens the versioned name, don't bother including the unversioned rm -vf %{buildroot}%{_libdir}/vdpau/*.so # likewise glvnd rm -vf %{buildroot}%{_libdir}/libGLX_mesa.so rm -vf %{buildroot}%{_libdir}/libEGL_mesa.so # XXX can we just not build this rm -vf %{buildroot}%{_libdir}/libGLES* # glvnd needs a default provider for indirect rendering where it cannot # determine the vendor ln -s libGLX_mesa.so.0 %{buildroot}%{_libdir}/libGLX_system.so.0 # this keeps breaking, check it early. note that the exit from eu-ftr is odd. pushd %{buildroot}%{_libdir} for i in libGL.so ; do eu-findtextrel $i && exit 1 done popd %if 0%{?with_asahi_fex_emu_overlay} mkdir -p fexov # Note: In order to effectively white-out the underlying RootFS Mesa's # drivers, we install files into alternately named sub-directories and # then symlink them to the original name. This hides the entire original # directory in the underlying RootFS. %dnl dri ---------------------------- install -Dpm0755 -s -t "fexov/%{_libdir}/" \ %{buildroot}%{_libdir}/libgallium-*.so install -Dpm0755 -s -t "fexov/%{_libdir}/ovl_dri/" \ %{buildroot}%{_libdir}/dri/libdril_dri.so ln -s libdril_dri.so "fexov/%{_libdir}/ovl_dri/apple_dri.so" ln -s libdril_dri.so "fexov/%{_libdir}/ovl_dri/asahi_dri.so" ln -s ovl_dri "fexov/%{_libdir}/dri" %dnl GL/EGL ---------------------------- install -Dpm0755 -s -t "fexov/%{_libdir}/" \ %{buildroot}%{_libdir}/libEGL_mesa.so.0.0.0 \ %{buildroot}%{_libdir}/libGLX_mesa.so.0.0.0 ln -s libEGL_mesa.so.0.0.0 "fexov/%{_libdir}/libEGL_mesa.so.0" ln -s libGLX_mesa.so.0.0.0 "fexov/%{_libdir}/libGLX_mesa.so.0" ln -s libGLX_mesa.so.0 "fexov/%{_libdir}/libGLX_system.so.0" %dnl OpenCL ---------------------------- %if 0%{?with_opencl} install -Dpm0755 -s -t "fexov/%{_libdir}/" \ %{buildroot}%{_libdir}/libRusticlOpenCL.so.1.0.0 ln -s libRusticlOpenCL.so.1.0.0 fexov/%{_libdir}/libRusticlOpenCL.so.1 install -Dpm0644 -t "fexov/%{_sysconfdir}/OpenCL/ovl_vendors/" \ %{buildroot}%{_sysconfdir}/OpenCL/vendors/rusticl.icd ln -s ovl_vendors "fexov/%{_sysconfdir}/OpenCL/vendors" %endif %dnl vulkan ---------------------------- %if "%{?asahi_platform_vulkan}" != "" install -Dpm0755 -s -t "fexov/%{_libdir}/" \ %{buildroot}%{_libdir}/libvulkan_asahi.so \ %{buildroot}%{_libdir}/libVkLayer_MESA_device_select.so install -Dpm0644 -t "fexov/%{_datadir}/vulkan/ovl_icd.d/" \ %{buildroot}%{_datadir}/vulkan/icd.d/asahi_icd.*.json install -Dpm0644 -t "fexov/%{_datadir}/vulkan/implicit_layer.d/" \ %{buildroot}%{_datadir}/vulkan/implicit_layer.d/VkLayer_MESA_device_select.json ln -s ovl_icd.d "fexov/%{_datadir}/vulkan/icd.d" %endif %dnl gbm ---------------------------- install -Dpm0755 -s -t "fexov/%{_libdir}/" \ %{buildroot}%{_libdir}/libgbm.so.1.0.0 install -Dpm0755 -s -t "fexov/%{_libdir}/gbm/" \ %{buildroot}%{_libdir}/gbm/dri_gbm.so %dnl glvnd ---------------------------- install -Dpm0644 -t "fexov/%{_datadir}/glvnd/ovl_egl_vendor.d/" \ %{buildroot}%{_datadir}/glvnd/egl_vendor.d/50_mesa.json ln -s ovl_egl_vendor.d "fexov/%{_datadir}/glvnd/egl_vendor.d" # Hack to work around libcapsule bug: # https://github.com/ValveSoftware/steam-runtime/issues/704 # # The FEX overlays do not update ld.so.cache, so ld.so falls back # to the system library paths. This works fine for ld.so since # the dependencies are indeed in /usr/lib[64], but libcapsule # has the fallback harcoded to /lib:/usr/lib, which fails on # x86_64 systems. patchelf --add-rpath %{_libdir} "fexov/%{_libdir}/gbm/dri_gbm.so" patchelf --add-rpath %{_libdir} "fexov/%{_libdir}/libGLX_mesa.so.0.0.0" patchelf --add-rpath %{_libdir} "fexov/%{_libdir}/libEGL_mesa.so.0.0.0" patchelf --add-rpath %{_libdir} "fexov/%{_libdir}/libRusticlOpenCL.so.1.0.0" #dnl erofs ---------------------------- mkfs.erofs -z lz4 mesa-%{_arch}.erofs fexov install -Dpm0644 -t %{buildroot}%{_datadir}/fex-emu/overlays/ mesa-%{_arch}.erofs %endif %files filesystem %doc docs/Mesa-MLAA-License-Clarification-Email.txt %dir %{_libdir}/dri %dir %{_datadir}/drirc.d %files libGL %{_libdir}/libGLX_mesa.so.0* %{_libdir}/libGLX_system.so.0* %files libGL-devel %dir %{_includedir}/GL %dir %{_includedir}/GL/internal %{_includedir}/GL/internal/dri_interface.h %{_libdir}/pkgconfig/dri.pc %files libEGL %{_datadir}/glvnd/egl_vendor.d/50_mesa.json %{_libdir}/libEGL_mesa.so.0* %files libEGL-devel %dir %{_includedir}/EGL %{_includedir}/EGL/eglext_angle.h %{_includedir}/EGL/eglmesaext.h %files libgbm %{_libdir}/libgbm.so.1 %{_libdir}/libgbm.so.1.* %files libgbm-devel %{_libdir}/libgbm.so %{_includedir}/gbm.h %{_includedir}/gbm_backend_abi.h %{_libdir}/pkgconfig/gbm.pc %if 0%{?with_xa} %files libxatracker %if 0%{?with_hardware} %{_libdir}/libxatracker.so.2 %{_libdir}/libxatracker.so.2.* %endif %files libxatracker-devel %if 0%{?with_hardware} %{_libdir}/libxatracker.so %{_includedir}/xa_tracker.h %{_includedir}/xa_composite.h %{_includedir}/xa_context.h %{_libdir}/pkgconfig/xatracker.pc %endif %endif %if 0%{?with_teflon} %files libTeflon %{_libdir}/libteflon.so %endif %if 0%{?with_opencl} %files libOpenCL %{_libdir}/libRusticlOpenCL.so.* %{_sysconfdir}/OpenCL/vendors/rusticl.icd %files libOpenCL-devel %{_libdir}/libRusticlOpenCL.so %endif %if 0%{?with_nine} %files libd3d %dir %{_libdir}/d3d/ %{_libdir}/d3d/*.so.* %files libd3d-devel %{_libdir}/pkgconfig/d3d.pc %{_includedir}/d3dadapter/ %{_libdir}/d3d/*.so %endif %files dri-drivers %{_datadir}/drirc.d/00-mesa-defaults.conf %{_libdir}/libgallium-*.so %{_libdir}/gbm/dri_gbm.so %{_libdir}/dri/kms_swrast_dri.so %{_libdir}/dri/libdril_dri.so %{_libdir}/dri/swrast_dri.so %{_libdir}/dri/virtio_gpu_dri.so %if 0%{?with_hardware} %if 0%{?with_r300} %{_libdir}/dri/r300_dri.so %endif %if 0%{?with_radeonsi} %if 0%{?with_r600} %{_libdir}/dri/r600_dri.so %endif %{_libdir}/dri/radeonsi_dri.so %endif %ifarch %{ix86} x86_64 aarch64 %if 0%{?with_asahi} %{_libdir}/dri/apple_dri.so %{_libdir}/dri/asahi_dri.so %endif %endif %ifarch %{ix86} x86_64 %if 0%{?with_crocus} %{_libdir}/dri/crocus_dri.so %endif %if 0%{?with_i915} %{_libdir}/dri/i915_dri.so %endif %if 0%{?with_iris} %{_libdir}/dri/iris_dri.so %endif %endif %ifarch aarch64 x86_64 %{ix86} %{_libdir}/dri/ingenic-drm_dri.so %{_libdir}/dri/imx-drm_dri.so %{_libdir}/dri/imx-lcdif_dri.so %{_libdir}/dri/kirin_dri.so %{_libdir}/dri/komeda_dri.so %{_libdir}/dri/mali-dp_dri.so %{_libdir}/dri/mcde_dri.so %{_libdir}/dri/mxsfb-drm_dri.so %{_libdir}/dri/rcar-du_dri.so %{_libdir}/dri/stm_dri.so %endif %if 0%{?with_vc4} %{_libdir}/dri/vc4_dri.so %endif %if 0%{?with_v3d} %{_libdir}/dri/v3d_dri.so %endif %if 0%{?with_freedreno} %{_libdir}/dri/kgsl_dri.so %{_libdir}/dri/msm_dri.so %endif %if 0%{?with_etnaviv} %{_libdir}/dri/etnaviv_dri.so %endif %if 0%{?with_tegra} %{_libdir}/dri/tegra_dri.so %endif %if 0%{?with_lima} %{_libdir}/dri/lima_dri.so %endif %if 0%{?with_panfrost} %{_libdir}/dri/panfrost_dri.so %{_libdir}/dri/panthor_dri.so %endif %if 0%{?with_nouveau} %{_libdir}/dri/nouveau_dri.so %endif %if 0%{?with_vmware} %{_libdir}/dri/vmwgfx_dri.so %endif %endif %if 0%{?with_kmsro} %{_libdir}/dri/armada-drm_dri.so %{_libdir}/dri/exynos_dri.so %{_libdir}/dri/gm12u320_dri.so %{_libdir}/dri/hdlcd_dri.so %{_libdir}/dri/hx8357d_dri.so %{_libdir}/dri/ili9163_dri.so %{_libdir}/dri/ili9225_dri.so %{_libdir}/dri/ili9341_dri.so %{_libdir}/dri/ili9486_dri.so %{_libdir}/dri/imx-dcss_dri.so %{_libdir}/dri/mediatek_dri.so %{_libdir}/dri/meson_dri.so %{_libdir}/dri/mi0283qt_dri.so %{_libdir}/dri/panel-mipi-dbi_dri.so %{_libdir}/dri/pl111_dri.so %{_libdir}/dri/repaper_dri.so %{_libdir}/dri/rockchip_dri.so %{_libdir}/dri/rzg2l-du_dri.so %{_libdir}/dri/ssd130x_dri.so %{_libdir}/dri/st7586_dri.so %{_libdir}/dri/st7735r_dri.so %{_libdir}/dri/sti_dri.so %{_libdir}/dri/sun4i-drm_dri.so %{_libdir}/dri/udl_dri.so %{_libdir}/dri/vkms_dri.so %{_libdir}/dri/zynqmp-dpsub_dri.so %endif %if 0%{?with_vulkan_hw} %{_libdir}/dri/zink_dri.so %endif %if 0%{?with_va} %files va-drivers %if 0%{?with_nouveau} %{_libdir}/dri/nouveau_drv_video.so %endif %if 0%{?with_r600} %{_libdir}/dri/r600_drv_video.so %endif %if 0%{?with_radeonsi} %{_libdir}/dri/radeonsi_drv_video.so %endif %{_libdir}/dri/virtio_gpu_drv_video.so %endif %if 0%{?with_vdpau} %files vdpau-drivers %dir %{_libdir}/vdpau %if 0%{?with_nouveau} %{_libdir}/vdpau/libvdpau_nouveau.so.1* %endif %if 0%{?with_r600} %{_libdir}/vdpau/libvdpau_r600.so.1* %endif %if 0%{?with_radeonsi} %{_libdir}/vdpau/libvdpau_radeonsi.so.1* %endif %{_libdir}/vdpau/libvdpau_virtio_gpu.so.1* %endif %files vulkan-drivers %{_libdir}/libvulkan_lvp.so %{_datadir}/vulkan/icd.d/lvp_icd.*.json %{_libdir}/libvulkan_virtio.so %{_datadir}/vulkan/icd.d/virtio_icd.*.json %{_libdir}/libVkLayer_MESA_device_select.so %{_datadir}/vulkan/implicit_layer.d/VkLayer_MESA_device_select.json %if 0%{?with_vulkan_hw} %if "%{?base_vulkan}" != "" %{_libdir}/libvulkan_radeon.so %{_datadir}/drirc.d/00-radv-defaults.conf %{_datadir}/vulkan/icd.d/radeon_icd.*.json %endif %if 0%{?with_nvk} %{_libdir}/libvulkan_nouveau.so %{_datadir}/vulkan/icd.d/nouveau_icd.*.json %endif %ifarch %{ix86} x86_64 %if "%{?intel_platform_vulkan}" != "" %{_libdir}/libvulkan_intel.so %{_datadir}/vulkan/icd.d/intel_icd.*.json %{_libdir}/libvulkan_intel_hasvk.so %{_datadir}/vulkan/icd.d/intel_hasvk_icd.*.json %endif %endif %ifarch aarch64 x86_64 %{ix86} %if "%{?asahi_platform_vulkan}" != "" %{_libdir}/libvulkan_asahi.so %{_datadir}/vulkan/icd.d/asahi_icd.*.json %endif %if "%{?extra_platform_vulkan}" != "" %{_libdir}/libvulkan_broadcom.so %{_datadir}/vulkan/icd.d/broadcom_icd.*.json %{_libdir}/libvulkan_freedreno.so %{_datadir}/vulkan/icd.d/freedreno_icd.*.json %{_libdir}/libvulkan_panfrost.so %{_datadir}/vulkan/icd.d/panfrost_icd.*.json %{_libdir}/libpowervr_rogue.so %{_libdir}/libvulkan_powervr_mesa.so %{_datadir}/vulkan/icd.d/powervr_mesa_icd.*.json %endif %endif %endif %if 0%{?with_asahi_fex_emu_overlay} %files fex-emu-overlay-%{_arch} %{_datadir}/fex-emu/overlays/mesa-%{_arch}.erofs %doc docs/Mesa-MLAA-License-Clarification-Email.txt %endif %changelog * Thu May 08 2025 packit - 25.2.0~20250508^b7d2cdd2b42-1 - radv: ignore radv_disable_dcc_stores on GFX12 (Samuel Pitoiset) - d3d12: Add missing offset to encode slice metadata in the get_feedback function (Sil Vilerino) - d3d12: Add fallback to ID3D12VideoEncodeCommandList2 if ID3D12VideoEncodeCommandList4 not available in underlying OS (Sil Vilerino) - d3d12: Add missing D3D12_VIDEO_USE_NEW_ENCODECMDLIST4_INTERFACE guards (Sil Vilerino) - d3d12: Set HEVC slice mode state before calling d3d12_video_encoder_negotiate_requested_features_and_d3d12_driver_caps (Sil Vilerino) - d3d12: fix configuration flag for D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_DISABLE_LOOP_FILTER_ACROSS_SLICES (Pohsiang (John) Hsu) - d3d12: Remove more nir dependencies when with_gallium_d3d12_graphics disabled (Sil Vilerino) - d3d12: Do not build microsoft/compiler when graphics, gl or vk disabled (Sil Vilerino) - d3d12: Report pipe_enc_cap_dirty_info.supports_require_sao/loop_filter_disabled (Sil Vilerino) - pipe: Add pipe_enc_cap_dirty_info.supports_require_sao/loop_filter_disabled (Sil Vilerino) - d3d12: Implement H264/HEVC PIPE_VIDEO_SLICE_MODE_AUTO for gallium driver auto-partition (Sil Vilerino) - pipe: Add PIPE_VIDEO_SLICE_MODE_AUTO for gallium driver auto-partition (Sil Vilerino) - d3d12: Reports pipe_enc_cap_dirty_info.supports_require_auto_slice_mode (Sil Vilerino) - pipe: Add pipe_enc_cap_dirty_info.supports_require_auto_slice_mode (Sil Vilerino) - d3d12: Implement GPU Input Motion vectors (Sil Vilerino) - d3d12: Make d3d12_video_encode_support_caps in/out param capEncoderSupportData1 pointer members an external allocation to outlive the stack of the method call (Sil Vilerino) - pipe: Add support for (GPU Input) motion maps (Sil Vilerino) - d3d12: Implement PIPE_VIDEO_CAP_ENC_QP_MAPS and CPU/GPU input QPMaps (Sil Vilerino) - pipe: Add (GPU input) PIPE_VIDEO_CAP_ENC_QP_MAPS and input_gpu_qpmap GPU input support (Sil Vilerino) - d3d12: Add GPU input dirty rect support (Sil Vilerino) - pipe: Add (GPU input) PIPE_VIDEO_CAP_ENC_DIRTY_MAPS and pipe_enc_move_rects GPU input support (Sil Vilerino) - d3d12: deduplicate code with helpers: get_dirty_rects_support, get_move_rects_support, get_gpu_output_stats_support, get_sliced_encode_support (Sil Vilerino) - d3d12: Support slice NAL prefixes on slice notifications mode (Sil Vilerino) - d3d12: Implement multi-slice notifications (Sil Vilerino) - d3d12: Prepare d3d12_video_encoder_encode_bitstream for sliced encoding. Checked working with single slice buffer at this point (Sil Vilerino) - pipe: Add sliced encoding API and caps (Sil Vilerino) - d3d12: Add support for QP, SATD and RC bits output stats (Sil Vilerino) - pipe: Add PIPE_VIDEO_CAP_ENC_GPU_STATS_* and pipe_resource textures in H264/H265 encode pic params (Sil Vilerino) - d3d12: Add support for pipe_enc_move_rects for H264/H265 encode (Sil Vilerino) - pipe: Add PIPE_VIDEO_CAP_ENC_MOVE_RECTS and pipe_enc_move_rects for H264/H265 encode (Sil Vilerino) - d3d12: Add support for pipe_enc_dirty_rects for H264/H265 encode (Sil Vilerino) - pipe: Add PIPE_VIDEO_CAP_ENC_DIRTY_RECTS and pipe_enc_dirty_rects for H264/H265 encode (Sil Vilerino) - d3d12: Use D3D12_FEATURE_VIDEO_ENCODER_SUPPORT2 when D3D12_VIDEO_USE_NEW_ENCODECMDLIST4_INTERFACE is set (Sil Vilerino) - d3d12: Add #if guards for using new ID3D12VideoEncodeCommandList4 (Sil Vilerino) - d3d12: Fix reporting for PIPE_VIDEO_CAP_ENC_MAX_DPB_CAPACITY (Sil Vilerino) - d3d12: Report pipe_enc_cap_roi.log2_roi_min_block_pixel_size (Sil Vilerino) - pipe: Add pipe_enc_cap_roi.log2_roi_min_block_pixel_size (Sil Vilerino) - d3d12: enable D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_ENABLE_LONG_TERM_REFERENCES when max_num_ltr_frames > 0 (Pohsiang (John) Hsu) - d3d12: Add support for retreiving PIPE_VIDEO_CAP_ENC_MAX_DPB_CAPACITY for H264/H265 encode (Pohsiang (John) Hsu) - pipe: add PIPE_VIDEO_CAP_ENC_MAX_DPB_CAPACITY for H264/H265 encode (Pohsiang (John) Hsu) - d3d12: Add support for retrieving PIPE_VIDEO_CAP_ENC_MAX_LONG_TERM_REFERENCES_PER_FRAME for H264/H265 encode (Pohsiang (John) Hsu) - pipe: add PIPE_VIDEO_CAP_ENC_MAX_LONG_TERM_REFERENCES_PER_FRAME for H264/H265 encode (Pohsiang (John) Hsu) - radv: perform nir_opt_access before the first radv_optimize_nir (Rhys Perry) - aco: don't check dst_bitsize in apply_load_extract (Rhys Perry) - aco: support sign extension in apply_load_extract (Rhys Perry) - aco: support more opcodes in apply_ds_extract (Rhys Perry) - ac/nir: allow 8/16-bit smem loads (Rhys Perry) - ac/nir: allow vectorization of unsupported 8/16-bit loads (Rhys Perry) - ac/nir: allow less than one register of overfetch (Rhys Perry) - ac/nir: round components when lowering 8/16-bit loads to 32-bit (Rhys Perry) - nir/algebraic: optimize ior(unpack_4x8, unpack_4x8<<8) to unpack_32_2x16 (Rhys Perry) - nir/search: extend swizzle_y (Rhys Perry) - aco/gfx12: allow 8/16-bit smem loads (Rhys Perry) - aco: support 8/16-bit loads in smem_combine() (Rhys Perry) - radv/gfx12: use dword3 smem loads for push constants (Rhys Perry) - aco/gfx12: select dwordx3 smem loads (Rhys Perry) - aco: prepare for dwordx3 smem loads (Rhys Perry) - aco/gfx12: use s_load_dwordx3 to load ray launch sizes (Rhys Perry) - aco: add smem opcode helper (Rhys Perry) - ci/panfrost: Really document T860 array flakes (Daniel Stone) - vulkan/runtime: add a multialloc variant for pipeline create (Lionel Landwerlin) - vulkan/runtime: fixup assert with link_geom_stages (Lionel Landwerlin) - vulkan/runtime: track dynamics descriptor in a set layout (Lionel Landwerlin) - vulkan/runtime: store index of the push descriptor in pipeline layout (Lionel Landwerlin) - ir3: allow asm roundtrip testing of compiled shader variants (Zan Dobersek) - ir3: fix parsing of texture prefetch headers (Zan Dobersek) - ir3: fix display of dot-product instructions (Zan Dobersek) - v3d/v3dv/ci: update expected results (Juan A. Suarez Romero) - tu: scalarize IO before linking (Job Noorman) - nir/lower_io_to_vector: remove can_read_output assert (Job Noorman) - panvk/ci: add more flaky tests (Lionel Landwerlin) - anv/brw: handle pipeline libraries with mesh (Lionel Landwerlin) - intel: introduce new VUE layout for separate compiled shader with mesh (Lionel Landwerlin) - intel: prepare VUE layout for more than 2 layouts (Lionel Landwerlin) - brw: add documentation pointers to FS attribute layout (Lionel Landwerlin) - brw/nir: add intrinsics to read attribute payload register indirectly (Lionel Landwerlin) - anv/brw: use separate_shader to deduced MUE compaction (Lionel Landwerlin) - brw: fix brw_nir_move_interpolation_to_top (Lionel Landwerlin) - brw: document some brw_wm_prog_data fields (Lionel Landwerlin) - brw: use VARYING_BIT_* macros more (Lionel Landwerlin) - anv: tidy up (CLIP|SBE)_MESH emission (Lionel Landwerlin) - anv/brw: shrink FS varying payload (Lionel Landwerlin) - brw/nir: use a new intrinsic for fs_msaa_flag (Lionel Landwerlin) - brw: use newer NIR constructs (Lionel Landwerlin) - brw: move helper to brw_nir.c (Lionel Landwerlin) - brw: add new helper to print out FS URB setup (Lionel Landwerlin) - brw: improve VUE printout (Lionel Landwerlin) - anv: switch to brw helpers to figure out if a fragment is dynamic (Lionel Landwerlin) - anv: switch to use the tcs_prog_data for dynamic input vertices (Lionel Landwerlin) - brw: store input_vertices on tcs_prog_data (Lionel Landwerlin) - brw: add helpers to check if a fragment shader execution is dynamic (Lionel Landwerlin) - anv: lower input vertices for TCS unconditionally (Lionel Landwerlin) - anv: remove tbimr workaround check (Lionel Landwerlin) - compiler: add VARYING_BIT_PRIMITIVE_INDICES (Lionel Landwerlin) - compiler: add VARYING_BIT_CULL_PRIMITIVE (Lionel Landwerlin) - v3d/compiler: remove requirement for format information for fbfetch (Ella Stanforth) - v3d/compiler: use mask for 16bit and 32bit return values (Ella Stanforth) - v3d/compiler: remove num_samplers_used from shader key (Ella Stanforth) - v3d/compiler: remove unused texture swizzle (Ella Stanforth) - v3d/compiler: remove return_channels from the shader key (Ella Stanforth) - v3d/compiler: remove int/uint tracking (Ella Stanforth) - winsys/amdgpu: Add support for queue priority in Mesa (Jesse.Zhang) - ac: adjust maximum HS workgroup size (Marek Olšák) - aco: remove unused aco_shader_info::tcs_offchip_layout (Marek Olšák) - radeonsi: remove dead gfx12 tess code from a gfx6-11 function (Marek Olšák) - ac/nir/tess: don't pass nir_intrinsic_instr to hs_output_lds_offset (Marek Olšák) - ac/nir/tess: don't pass nir_intrinsic_instr to VMEM IO calc helpers (Marek Olšák) - ac/nir/tess: remove unused variables (Marek Olšák) - nir: split *_accessed_indirectly* bitmasks into *_read/written_indirectly* (Marek Olšák) - nir: add shader_info::tess::tcs_cross_invocation_outputs_written (Marek Olšák) - tu/perfetto: Forward VkDebugUtilsObjectNameInfoEXT to perfetto. (Emma Anholt) - tu/perfetto: Move "have we already sent initial state?" into the helper. (Emma Anholt) - tu/perfetto: Attach VkCommandBuffer handles to the GPU events. (Emma Anholt) - intel/ds: Fix formatting of stage index. (Emma Anholt) - anv/ds: Forward VkDebugUtilsObjectNameInfoEXT to perfetto. (Emma Anholt) - perfetto: Add helpers for passing VkDebugUtilsObjectNameInfoEXT to perfetto. (Emma Anholt) - anv/ds: Associate the VkCommandBuffer some anv-only renderstage events. (Emma Anholt) - perfetto: Allow tracepoint args to map to native perfetto fields. (Emma Anholt) - intel/ds: Move "have we already sent initial state?" into the helper. (Emma Anholt) - perfetto: Move the debug_markers to the incremental state. (Emma Anholt) - perfetto: Create a common MesaRenderpassIncrementalState. (Emma Anholt) - zink: Add debug names to our command buffers. (Emma Anholt) - wsi: Label the WSI blit command buffer with a name. (Emma Anholt) - mesa: fix color material tracking (Timothy Arceri) - vtn: remove spurious texel buffer warning (Alyssa Rosenzweig) - panfrost/ci: document new t860 flakes (Martin Roukala (né Peres)) - ci/ci-tron: uprev b2c to 0.9.15.1 (Eric Engestrom) - radv/ci: rename .test-radv to .ci-tron-test-radv (Eric Engestrom) - ci: rename all the .b2c- jobs into .ci-tron- (Martin Roukala (né Peres)) - radv/ci: set swap size for all amd jobs to 16g (Eric Engestrom) - radv/ci: increase swap size on kabini to 16g (Eric Engestrom) - ci/build: stop uploading python-artifacts to gitlab artifacts (Eric Engestrom) - ci/ci-tron: print all the variables (Eric Engestrom) - ci/ci-tron: add check that the required variables are set (Eric Engestrom) - ci/ci-tron: switch to the upstream ci-tron template (Martin Roukala (né Peres)) - zink+turnip/ci: fix inheritance/override order (Eric Engestrom) - radv/ci: fix inheritance/override order (Eric Engestrom) - radv/ci: drop redundant renoir timeouts (Martin Roukala (né Peres)) - radv/ci: move the vangogh timeouts to the jobs (Martin Roukala (né Peres)) - radv/ci: inline .vkcts-test-valve (Eric Engestrom) - amd/ci: simplify radeonsi-vangogh-glcts jobs definition (Eric Engestrom) - ci/ci-tron: deduplicate setting the runner tags for most jobs (Eric Engestrom) - etnaviv/ci: introduce common .austriancoder-ci-tron (Eric Engestrom) - etnaviv/ci: split model and revision tags (Eric Engestrom) - ci/vkd3d: stop supressing vulkaninfo errors (Eric Engestrom) - ci/b2c: drop dead /runner-before-script.sh code (Eric Engestrom) - anv: Fix untyped data port cache pipe control dump output (Sagar Ghuge)