-# TODO: libtizonia >= 0.10.0 as an alternative for bellagio?
+# TODO:
+# - libtizonia >= 0.10.0 as an alternative for bellagio?
+# - bcond for perfetto peformance analysis? (BR: perfetto)
#
# Conditional build:
%bcond_without gallium # gallium drivers
-%bcond_with gallium_i915 # gallium i915 driver instead of dri i915 driver
+%bcond_without gallium_i915 # gallium i915 driver
%bcond_without gallium_nouveau # gallium nouveau driver
%bcond_without gallium_radeon # gallium radeon drivers
%bcond_without gallium_zink # gallium zink driver (based on vulkan)
%bcond_without wayland # Wayland EGL
%bcond_without xa # XA state tracker (for vmwgfx xorg driver)
%bcond_without radv # disable build of the radeon Vulkan driver
-%bcond_with swr # OpenSWR software rasterizer (x86 SIMD only; due to broken design
- # propagates AVX code over Gallium DRI megadriver, swrast pipe driver and libOSMesa)
+%bcond_with sse2 # SSE2 instructions
%bcond_with hud_extra # HUD block/NIC I/O HUD stats support
%bcond_with lm_sensors # HUD lm_sensors support
%bcond_with tests # tests
# (until they start to be somehow versioned themselves)
%define glapi_ver 7.1.0
# other packages
-%define libdrm_ver 2.4.107
+%define libdrm_ver 2.4.109
%define dri2proto_ver 2.8
%define glproto_ver 1.4.14
%define zlib_ver 1.2.8
%undefine with_nine
%undefine with_omx
%undefine with_opencl
-%undefine with_swr
%undefine with_va
%undefine with_xa
%endif
%undefine with_ocl_icd
%endif
-%ifnarch %{ix86} %{x8664} x32
-%undefine with_swr
-%endif
-
%if %{with gallium_radeon} || %{with gallium_nouveau}
%define with_vdpau 1
%define with_xvmc 1
%endif
+%ifarch %{x86_with_sse2}
+%define with_sse2 1
+%endif
+
Summary: Free OpenGL implementation
Summary(pl.UTF-8): Wolnodostępna implementacja standardu OpenGL
Name: Mesa
-Version: 21.3.1
-Release: 2
+Version: 22.0.0
+Release: 1
License: MIT (core) and others - see license.html file
Group: X11/Libraries
#Source0: ftp://ftp.freedesktop.org/pub/mesa/mesa-%{version}.tar.xz
## Source0-md5: 7c61a801311fb8d2f7b3cceb7b5cf308
Source0: https://gitlab.freedesktop.org/mesa/mesa/-/archive/mesa-%{version}/mesa-mesa-%{version}.tar.bz2
-# Source0-md5: cc749bf46a05c88bdb7ba03dc53da6fd
+# Source0-md5: 0efeea580ac9f0040d5054b1c74846dd
Patch0: zink_x32.patch
URL: https://www.mesa3d.org/
%{?with_opencl_spirv:BuildRequires: SPIRV-LLVM-Translator-devel >= 8.0.1.3}
%{?with_radv:BuildRequires: llvm-devel >= %{llvm_ver}}
%{?with_opencl:BuildRequires: llvm-libclc}
%{?with_omx:BuildRequires: libomxil-bellagio-devel}
-BuildRequires: meson >= 0.52
+BuildRequires: meson >= 0.53
BuildRequires: ninja >= 1.5
BuildRequires: pkgconfig
BuildRequires: pkgconfig(talloc) >= 2.0.1
BuildRequires: pkgconfig(xcb-randr) >= 1.12
BuildRequires: python3 >= 1:3.2
BuildRequires: python3-Mako >= 0.8.0
-BuildRequires: rpmbuild(macros) >= 1.736
+BuildRequires: rpmbuild(macros) >= 2.007
BuildRequires: sed >= 4.0
%{?with_opencl_spirv:BuildRequires: spirv-tools-devel >= 2018.0}
+BuildRequires: udev-devel
# wayland-{client,server}
%{?with_wayland:BuildRequires: wayland-devel >= %{wayland_ver}}
-%{?with_wayland:BuildRequires: wayland-protocols >= 1.8}
+%{?with_wayland:BuildRequires: wayland-protocols >= 1.24}
%{?with_wayland:BuildRequires: wayland-egl-devel >= %{wayland_ver}}
BuildRequires: xorg-lib-libX11-devel
BuildRequires: xorg-lib-libXext-devel >= 1.0.5
Summary(pl.UTF-8): Biblioteka OSMesa (renderująca bitmapy w pamięci)
License: MIT
Group: Libraries
-%{?with_swr:Requires: cpuinfo(avx)}
Requires: zlib >= %{zlib_ver}
%description libOSMesa
# <GL/gl.h>
%if %{with glvnd}
Requires: libglvnd-libGL-devel >= %{libglvnd_ver}
-Conflicts: Mesa-libGL-devel < 22.1.0-2
+Conflicts: Mesa-libGL-devel < 21.1.0-2
%else
Requires: Mesa-libGL-devel = %{version}-%{release}
%endif
%description d3d-devel -l pl.UTF-8
API sterownika Direct3D9 Nine.
-%package dri-driver-ati-radeon-R100
-Summary: X.org DRI driver for ATI R100 card family
-Summary(pl.UTF-8): Sterownik X.org DRI dla rodziny kart ATI R100
-License: MIT
-Group: X11/Libraries
-Requires: zlib >= %{zlib_ver}
-Suggests: xorg-driver-video-amdgpu
-Suggests: xorg-driver-video-ati
-Obsoletes: X11-driver-radeon-dri < 1:7.0.0
-Conflicts: xorg-xserver-libglx(glapi) > %{glapi_ver}
-Conflicts: xorg-xserver-libglx(glapi) < %{glapi_ver}
-
-%description dri-driver-ati-radeon-R100
-X.org DRI driver for ATI R100 card family (Radeon 7000-7500). It
-supports R100, RV100, RS100, RV200, RS200, RS250.
-
-%description dri-driver-ati-radeon-R100 -l pl.UTF-8
-Sterownik X.org DRI dla rodziny kart ATI R100 (Radeon 7000-7500).
-Obsługuje układy R100, RV100, RS100, RV200, RS200, RS250.
-
-%package dri-driver-ati-radeon-R200
-Summary: X.org DRI driver for ATI R200 card family
-Summary(pl.UTF-8): Sterownik X.org DRI dla rodziny kart ATI R200
-License: MIT
-Group: X11/Libraries
-Requires: zlib >= %{zlib_ver}
-Suggests: xorg-driver-video-amdgpu
-Suggests: xorg-driver-video-ati
-Obsoletes: X11-driver-radeon-dri < 1:7.0.0
-Conflicts: xorg-xserver-libglx(glapi) > %{glapi_ver}
-Conflicts: xorg-xserver-libglx(glapi) < %{glapi_ver}
-
-%description dri-driver-ati-radeon-R200
-X.org DRI driver for ATI R200 card family (Radeon 8500-92xx). It
-supports R200, RV250, RV280, RS300, RS350 chips.
-
-%description dri-driver-ati-radeon-R200 -l pl.UTF-8
-Sterownik X.org DRI dla rodziny kart ATI R200 (Radeon 8500-92xx).
-Obsługuje układy R200, RV250, RV280, RS300, RS350.
-
%package dri-driver-ati-radeon-R300
Summary: X.org DRI driver for ATI R300 card family
Summary(pl.UTF-8): Sterownik X.org DRI dla rodziny kart ATI R300
License: MIT
Group: X11/Libraries
-%{?with_swr:Requires: cpuinfo(avx)}
Requires: zlib >= %{zlib_ver}
Suggests: xorg-driver-video-amdgpu
Suggests: xorg-driver-video-ati
Summary(pl.UTF-8): Sterownik X.org DRI dla rodziny kart ATI R600
License: MIT
Group: X11/Libraries
-%{?with_swr:Requires: cpuinfo(avx)}
Requires: radeon-ucode
Requires: zlib >= %{zlib_ver}
Suggests: xorg-driver-video-amdgpu
Summary(pl.UTF-8): Sterownik X.org DRI dla rodziny kart ATI Southern Islands
License: MIT
Group: X11/Libraries
-%{?with_swr:Requires: cpuinfo(avx)}
Requires: radeon-ucode
Requires: zlib >= %{zlib_ver}
Suggests: xorg-driver-video-amdgpu
Summary(pl.UTF-8): Sterownik X.org DRI dla układów Vivante 3D
License: MIT
Group: X11/Libraries
-%{?with_swr:Requires: cpuinfo(avx)}
Requires: zlib >= %{zlib_ver}
#Suggests: xorg-driver-video-?
Conflicts: xorg-xserver-libglx(glapi) > %{glapi_ver}
Summary(pl.UTF-8): Sterownik X.org DRI dla układów Adreno
License: MIT
Group: X11/Libraries
-%{?with_swr:Requires: cpuinfo(avx)}
Requires: zlib >= %{zlib_ver}
Suggests: xorg-driver-video-freedreno
Conflicts: xorg-xserver-libglx(glapi) > %{glapi_ver}
Summary(pl.UTF-8): Sterownik X.org DRI dla układów Intel Gen4-Gen7
License: MIT
Group: X11/Libraries
-%{?with_swr:Requires: cpuinfo(avx)}
Requires: zlib >= %{zlib_ver}
+Obsoletes: Mesa-dri-driver-intel-i965 < 22.0.0
Conflicts: xorg-xserver-libglx(glapi) > %{glapi_ver}
Conflicts: xorg-xserver-libglx(glapi) < %{glapi_ver}
Summary(pl.UTF-8): Sterownik X.org DRI dla rodziny kart Intel i915
License: MIT
Group: X11/Libraries
-%if %{with gallium_i915}
-%{?with_swr:Requires: cpuinfo(avx)}
-%endif
Requires: zlib >= %{zlib_ver}
Obsoletes: Mesa-dri-driver-intel-i830 < 6.5
Obsoletes: X11-driver-i810-dri < 1:7.0.0
Sterownik X.org DRI dla rodziny kart Intel i915 (830, 845, 852/855,
865, 915, 945, G33, Q33, Q35, Pineview).
-%package dri-driver-intel-i965
-Summary: X.org DRI driver for Intel i965 card family
-Summary(pl.UTF-8): Sterownik X.org DRI dla rodziny kart Intel i965
-License: MIT
-Group: X11/Libraries
-Requires: zlib >= %{zlib_ver}
-Obsoletes: Mesa-dri-driver-intel-i830 < 6.5
-Obsoletes: X11-driver-i810-dri < 1:7.0.0
-Conflicts: xorg-xserver-libglx(glapi) > %{glapi_ver}
-Conflicts: xorg-xserver-libglx(glapi) < %{glapi_ver}
-
-%description dri-driver-intel-i965
-X.org (non-Gallium) DRI driver for Intel i965 card family (946GZ,
-965G, 965Q, 965GM, 965GME, GM45, G41, B43, Q45/Q43, G45/G43, Ironlake,
-Sandybridge, Ivybridge, Haswell, Ray Trail, Broadwell, Cherrytrail,
-Braswell, Cherryview, Skylake, Broxton, Kabylake, Coffeelake,
-Geminilake, Whiskey Lake, Comet Lake, Cannonlake, Ice Lake, Elkhart
-Lake).
-
-%description dri-driver-intel-i965 -l pl.UTF-8
-Sterownik X.org DRI (nie Gallium) dla rodziny kart Intel i965 (946GZ,
-965G, 965Q, 965GM, 965GME, GM45, G41, B43, Q45/Q43, G45/G43, Ironlake,
-Sandybridge, Ivybridge, Haswell, Ray Trail, Broadwell, Cherrytrail,
-Braswell, Cherryview, Skylake, Broxton, Kabylake, Coffeelake,
-Geminilake, Whiskey Lake, Comet Lake, Cannonlake, Ice Lake, Elkhart
-Lake).
-
%package dri-driver-intel-iris
Summary: X.org DRI driver for Intel Iris (Gen8+) card family
Summary(pl.UTF-8): Sterownik X.org DRI dla rodziny kart Intel Iris (Gen8+)
License: MIT
Group: X11/Libraries
-%{?with_swr:Requires: cpuinfo(avx)}
Requires: zlib >= %{zlib_ver}
Conflicts: xorg-xserver-libglx(glapi) > %{glapi_ver}
Conflicts: xorg-xserver-libglx(glapi) < %{glapi_ver}
Summary(pl.UTF-8): Sterownik X.org DRI Gallium wykorzystujący architekturę KMS Render-Only
License: MIT
Group: X11/Libraries
-%{?with_swr:Requires: cpuinfo(avx)}
Requires: zlib >= %{zlib_ver}
#Suggests: xorg-driver-video-?
Conflicts: xorg-xserver-libglx(glapi) > %{glapi_ver}
Summary(pl.UTF-8): Sterownik X.org DRI dla układów Mali Utgard
License: MIT
Group: X11/Libraries
-%{?with_swr:Requires: cpuinfo(avx)}
Requires: zlib >= %{zlib_ver}
#Suggests: xorg-driver-video-???
Conflicts: xorg-xserver-libglx(glapi) > %{glapi_ver}
Summary(pl.UTF-8): Sterownik X.org DRI dla rodziny kart NVIDIA
License: MIT
Group: X11/Libraries
-%if %{with gallium_nouveau}
-%{?with_swr:Requires: cpuinfo(avx)}
-%endif
Requires: zlib >= %{zlib_ver}
Suggests: xorg-driver-video-nouveau
Conflicts: xorg-xserver-libglx(glapi) > %{glapi_ver}
Summary(pl.UTF-8): Sterownik X.org DRI dla układów Mali Midgard/Bifrost
License: MIT
Group: X11/Libraries
-%{?with_swr:Requires: cpuinfo(avx)}
Requires: zlib >= %{zlib_ver}
#Suggests: xorg-driver-video-???
Conflicts: xorg-xserver-libglx(glapi) > %{glapi_ver}
Summary(pl.UTF-8): Sterownik X.org DRI obsługujący rysowanie programowe
License: MIT
Group: X11/Libraries
-%{?with_swr:Requires: cpuinfo(avx)}
Requires: zlib >= %{zlib_ver}
Conflicts: xorg-xserver-libglx(glapi) > %{glapi_ver}
Conflicts: xorg-xserver-libglx(glapi) < %{glapi_ver}
Summary(pl.UTF-8): Sterownik X.org DRI dla układów SoC Tegra
License: MIT
Group: X11/Libraries
-%{?with_swr:Requires: cpuinfo(avx)}
Requires: zlib >= %{zlib_ver}
#Suggests: xorg-driver-video-???
Conflicts: xorg-xserver-libglx(glapi) > %{glapi_ver}
Summary(pl.UTF-8): Sterownik X.org DRI dla układów Broadcom VC5
License: MIT
Group: X11/Libraries
-%{?with_swr:Requires: cpuinfo(avx)}
Requires: zlib >= %{zlib_ver}
Suggests: xorg-driver-video-modesetting
Conflicts: xorg-xserver-libglx(glapi) > %{glapi_ver}
Summary(pl.UTF-8): Sterownik X.org DRI dla układów Broadcom VC4
License: MIT
Group: X11/Libraries
-%{?with_swr:Requires: cpuinfo(avx)}
Requires: zlib >= %{zlib_ver}
Suggests: xorg-driver-video-modesetting
Conflicts: xorg-xserver-libglx(glapi) > %{glapi_ver}
Summary(pl.UTF-8): Sterownik X.org DRI dla QEMU VirGL
License: MIT
Group: X11/Libraries
-%{?with_swr:Requires: cpuinfo(avx)}
Requires: zlib >= %{zlib_ver}
Conflicts: xorg-xserver-libglx(glapi) > %{glapi_ver}
Conflicts: xorg-xserver-libglx(glapi) < %{glapi_ver}
Summary(pl.UTF-8): Sterownik X.org DRI dla VMware
License: MIT
Group: X11/Libraries
-%{?with_swr:Requires: cpuinfo(avx)}
Requires: zlib >= %{zlib_ver}
Suggests: xorg-driver-video-vmware
Conflicts: xorg-xserver-libglx(glapi) > %{glapi_ver}
Summary: Software (swrast) driver for Mesa Gallium dynamic pipe loader
Summary(pl.UTF-8): Sterownik programowy (swrast) dla dynamicznego systemu potoków szkieletu Mesa Gallium
Group: Libraries
-%{?with_swr:Requires: cpuinfo(avx)}
Requires: zlib >= %{zlib_ver}
Obsoletes: Mesa-gbm-driver-swrast < 11.1.1
Obsoletes: Mesa-opencl-driver-swrast < 9.1
Sterownik vmwgfx dla dynamicznego systemu potoków szkieletu Mesa
Gallium. Obsługuje wirtualną kartę graficzną VMware.
-%package swr
-Summary: OpenSWR software rasterizer modules for Mesa
-Summary(pl.UTF-8): Moduły programowego rasteryzera OpenSWR dla Mesy
-Group: Libraries
-Requires: cpuinfo(avx)
-Requires: zlib >= %{zlib_ver}
-
-%description swr
-OpenSWR software rasterizer modules for Mesa, utilizing x86 AVX or
-VX2 instruction sets. They can be loaded by swrast pipe driver or
-OSMesa library.
-
-%description swr -l pl.UTF-8
-Moduły programowego rasteryzera OpenSWR dla Mesy, wykorzystujące
-zestawy instrukcji x86 AVX lub AVX2. Mogą być wczytywane przez
-sterownik potoków swrast lub bibliotekę OSMesa.
-
%package -n libva-driver-gallium
Summary: VA driver for Gallium State Tracker
Summary(pl.UTF-8): Sterowniki VA do Gallium
Requires: wayland >= %{wayland_ver}
Requires: zlib >= %{zlib_ver}
Suggests: vulkan(loader)
-Provides: vulkan(icd) = 1.0.3
+Provides: vulkan(icd) = 1.1.204
%description vulkan-icd-broadcom
v3dv - Mesa Vulkan driver for Raspberry Pi 4.
Requires: wayland >= %{wayland_ver}
Requires: zlib >= %{zlib_ver}
Suggests: vulkan(loader)
-Provides: vulkan(icd) = 1.0.3
+Provides: vulkan(icd) = 1.1.204
%description vulkan-icd-freedreno
turnip - Mesa Vulkan driver for Adreno chips.
Requires: wayland >= %{wayland_ver}
Requires: zlib >= %{zlib_ver}
Suggests: vulkan(loader)
-Provides: vulkan(icd) = 1.0.3
+Provides: vulkan(icd) = 1.3.204
Obsoletes: Mesa-vulkan-icd-intel-devel < 21.1.0
%description vulkan-icd-intel
Requires: wayland >= %{wayland_ver}
Requires: zlib >= %{zlib_ver}
Suggests: vulkan(loader)
-Provides: vulkan(icd) = 1.0.3
+Provides: vulkan(icd) = 1.1.204
%description vulkan-icd-lavapipe
lavapipe - Mesa software Vulkan driver.
Requires: wayland >= %{wayland_ver}
Requires: zlib >= %{zlib_ver}
Suggests: vulkan(loader)
-Provides: vulkan(icd) = 1.0.3
+Provides: vulkan(icd) = 1.1.204
%description vulkan-icd-panfrost
panfrost - Mesa Vulkan driver for Mali Midgard and Bifrost GPUs.
Requires: wayland >= %{wayland_ver}
Requires: zlib >= %{zlib_ver}
Suggests: vulkan(loader)
-Provides: vulkan(icd) = 1.0.3
+Provides: vulkan(icd) = 1.3.204
%description vulkan-icd-radeon
radv - experimental Mesa Vulkan driver for AMD Radeon GPUs.
fi
%endif
-dri_drivers="nouveau r100 r200 \
-%if %{without gallium}
-swrast
-%endif
-%ifarch %{ix86} %{x8664} x32
-i965 %{!?with_gallium_i915:i915} \
-%endif
-"
-
-dri_drivers=$(echo $dri_drivers | xargs | tr ' ' ',')
gallium_drivers="virgl swrast %{?with_gallium_zink:zink} \
%ifarch %{ix86} %{x8664} x32
-svga iris %{?with_swr:swr} %{?with_gallium_i915:i915} crocus \
+svga iris %{?with_gallium_i915:i915} crocus \
%endif
%if %{with gallium_radeon}
r300 r600 radeonsi \
vc4 \
%endif
"
+# TODO: asahi (Apple Silicon) - arm/aarch64?
gallium_drivers=$(echo $gallium_drivers | xargs | tr ' ' ',')
%meson build \
-Dplatforms=x11%{?with_wayland:,wayland} \
-Ddri3=enabled \
- -Ddri-drivers=${dri_drivers} \
-Ddri-drivers-path=%{_libdir}/xorg/modules/dri \
-Degl=%{?with_egl:enabled}%{!?with_egl:disabled} \
-Dgallium-drivers=${gallium_drivers} \
%{?with_opencl_spirv:-Dopencl-spirv=true} \
-Dosmesa=true \
-Dselinux=true \
+ -Dsse2=%{__true_false sse2} \
-Dva-libs-path=%{_libdir}/libva/dri \
-Dvulkan-drivers=${vulkan_drivers} \
-Dvulkan-icd-dir=/usr/share/vulkan/icd.d
### drivers: dri
-%files dri-driver-ati-radeon-R100
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/xorg/modules/dri/radeon_dri.so
-
-%files dri-driver-ati-radeon-R200
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/xorg/modules/dri/r200_dri.so
-
%if %{with gallium_radeon}
%files dri-driver-ati-radeon-R300
%defattr(644,root,root,755)
%ifarch %{ix86} %{x8664} x32
%files dri-driver-intel-i915
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/xorg/modules/dri/i830_dri.so
%attr(755,root,root) %{_libdir}/xorg/modules/dri/i915_dri.so
-%files dri-driver-intel-i965
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/xorg/modules/dri/i965_dri.so
-
%if %{with gallium}
%files dri-driver-intel-crocus
%defattr(644,root,root,755)
%files dri-driver-nouveau
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/xorg/modules/dri/nouveau_vieux_dri.so
%if %{with gallium_nouveau}
%attr(755,root,root) %{_libdir}/xorg/modules/dri/nouveau_dri.so
%endif
%attr(755,root,root) %{_libdir}/xorg/modules/dri/imx-drm_dri.so
%attr(755,root,root) %{_libdir}/xorg/modules/dri/ingenic-drm_dri.so
%attr(755,root,root) %{_libdir}/xorg/modules/dri/kirin_dri.so
+%attr(755,root,root) %{_libdir}/xorg/modules/dri/komeda_dri.so
%attr(755,root,root) %{_libdir}/xorg/modules/dri/mali-dp_dri.so
%attr(755,root,root) %{_libdir}/xorg/modules/dri/mcde_dri.so
%attr(755,root,root) %{_libdir}/xorg/modules/dri/mediatek_dri.so
%attr(755,root,root) %{_libdir}/xorg/modules/dri/mi0283qt_dri.so
%attr(755,root,root) %{_libdir}/xorg/modules/dri/mxsfb-drm_dri.so
%attr(755,root,root) %{_libdir}/xorg/modules/dri/pl111_dri.so
+%attr(755,root,root) %{_libdir}/xorg/modules/dri/rcar-du_dri.so
%attr(755,root,root) %{_libdir}/xorg/modules/dri/repaper_dri.so
%attr(755,root,root) %{_libdir}/xorg/modules/dri/rockchip_dri.so
%attr(755,root,root) %{_libdir}/xorg/modules/dri/st7586_dri.so
%attr(755,root,root) %{_libdir}/gallium-pipe/pipe_vmwgfx.so
%endif
%endif
-
-# currently disabled as cannot be built with swrast
-%if %{with swr}
-%files swr
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libswrAVX.so*
-%attr(755,root,root) %{_libdir}/libswrAVX2.so*
-%endif
%endif
### drivers: va