%bcond_without gallium_i915 # gallium i915 driver
%bcond_without gallium_nouveau # gallium nouveau driver
%bcond_without gallium_radeon # gallium radeon drivers
+%bcond_without gallium_rusticl # gallium OpenCL frontend
%bcond_without gallium_zink # gallium zink driver (based on vulkan)
%bcond_without egl # EGL libraries
%bcond_without gbm # Graphics Buffer Manager
%bcond_without va # VA library
%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_without nvk # nvidia Vulkan driver
+%bcond_without radv # radeon Vulkan driver
%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
%define zlib_ver 1.2.8
%define wayland_ver 1.18
%define libglvnd_ver 1.3.4-2
-%define llvm_ver 11.0.0
-%define gcc_ver 6:4.8.0
+%define llvm_ver 15.0.0
+%define gcc_ver 6:8
%if %{without gallium}
%undefine with_gallium_i915
%undefine with_gallium_nouveau
%undefine with_gallium_radeon
+%undefine with_gallium_rusticl
%undefine with_nine
%undefine with_omx
%undefine with_opencl
%endif
%if %{without opencl}
+%undefine with_gallium_rusticl
%undefine with_ocl_icd
%endif
-%if %{with gallium_radeon} || %{with gallium_nouveau}
+%if %{with gallium}
%define with_vdpau 1
-%define with_xvmc 1
%endif
%ifarch %{x86_with_sse2}
%define with_sse2 1
%endif
+%ifarch %{ix86} %{x8664} x32
+%define with_intel_vk 1
+%endif
+
Summary: Free OpenGL implementation
Summary(pl.UTF-8): Wolnodostępna implementacja standardu OpenGL
Name: Mesa
-Version: 22.2.1
+Version: 23.3.2
Release: 2
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://archive.mesa3d.org/mesa-%{version}.tar.xz
-# Source0-md5: 5ff97bb6bf82af6f81b41ff9dacbcc0a
+# Source0-md5: 3cd40c998ae1ad51e5aec5381072bcae
+Patch0: no-rust-proc-macro-link.patch
URL: https://www.mesa3d.org/
-%{?with_opencl_spirv:BuildRequires: SPIRV-LLVM-Translator-devel >= 8.0.1.3}
+%if %{with opencl_spirv} || %{with gallium_rusticl}
+BuildRequires: SPIRV-LLVM-Translator-devel >= 8.0.1.3
+%endif
%{?with_gallium_zink:BuildRequires: Vulkan-Loader-devel}
-BuildRequires: bison > 2.3
+BuildRequires: bison >= 2.4.1
%{?with_opencl:BuildRequires: clang-devel >= %{llvm_ver}}
BuildRequires: elfutils-devel
BuildRequires: expat-devel >= 1.95
-BuildRequires: flex
+BuildRequires: flex >= 2.5.35
BuildRequires: gcc >= %{gcc_ver}
+%if %{with radv} || %{with intel_vk}
+BuildRequires: glslang
+%endif
%ifarch %{armv6}
BuildRequires: libatomic-devel
%endif
BuildRequires: libxcb-devel >= 1.13
%{?with_gallium:BuildRequires: llvm-devel >= %{llvm_ver}}
%{?with_radv:BuildRequires: llvm-devel >= %{llvm_ver}}
-%{?with_opencl:BuildRequires: llvm-libclc}
+%if %{with opencl} || %{with gallium_rusticl}
+BuildRequires: llvm-libclc
+%endif
%{?with_omx:BuildRequires: libomxil-bellagio-devel}
-BuildRequires: meson >= 0.53
+BuildRequires: meson >= 1.2.0
BuildRequires: ninja >= 1.5
BuildRequires: pkgconfig
BuildRequires: pkgconfig(talloc) >= 2.0.1
BuildRequires: python3 >= 1:3.2
BuildRequires: python3-Mako >= 0.8.0
BuildRequires: rpmbuild(macros) >= 2.007
+%{?with_gallium_rusticl:BuildRequires: rust >= 1.66}
+%{?with_gallium_rusticl:BuildRequires: rust-bindgen >= 0.62.0}
BuildRequires: sed >= 4.0
-%{?with_opencl_spirv:BuildRequires: spirv-tools-devel >= 2018.0}
+%if %{with opencl_spirv} || %{with gallium_rusticl}
+BuildRequires: spirv-tools-devel >= 2018.0
+%endif
BuildRequires: tar >= 1:1.22
BuildRequires: udev-devel
# wayland-{client,server}
%{?with_wayland:BuildRequires: wayland-devel >= %{wayland_ver}}
-%{?with_wayland:BuildRequires: wayland-protocols >= 1.24}
+%{?with_wayland:BuildRequires: wayland-protocols >= 1.30}
%{?with_wayland:BuildRequires: wayland-egl-devel >= %{wayland_ver}}
+BuildRequires: xcb-util-keysyms-devel
BuildRequires: xorg-lib-libX11-devel
BuildRequires: xorg-lib-libXext-devel >= 1.0.5
BuildRequires: xorg-lib-libXfixes-devel >= 2.0
BuildRequires: xorg-lib-libXrandr-devel >= 1.3
-BuildRequires: xorg-lib-libXv-devel
-%{?with_xvmc:BuildRequires: xorg-lib-libXvMC-devel >= 1.0.6}
BuildRequires: xorg-lib-libXxf86vm-devel
BuildRequires: xorg-lib-libxshmfence-devel >= 1.1
BuildRequires: xorg-proto-dri2proto-devel >= %{dri2proto_ver}
%description libOpenCL-devel -l pl.UTF-8
Pliki nagłówkowe biblioteki Mesa OpenCL.
+%package Rusticl-icd
+Summary: Rusticl implementation of OpenCL (Compuing Language) API ICD
+Summary(pl.UTF-8): Implementacja Rusticl API OpenCL (języka obliczeń) ICD
+License: MIT
+Group: Libraries
+Requires: filesystem >= 4.0-29
+Requires: libdrm >= %{libdrm_ver}
+Requires: llvm-libclc
+Requires: zlib >= %{zlib_ver}
+Provides: OpenCL = 3.0
+Provides: ocl-icd-driver
+
+%description Rusticl-icd
+This package contains Rusticl implementation of OpenCL - standard for
+cross-platform, parallel programming of modern processors found in
+personal computers, servers and handheld/embedded devices. OpenCL
+specification can be found on Khronos Group site:
+<http://www.khronos.org/opencl/>. Rusticl implements OpenCL 3.0.
+
+The implementation is provided as an installable client driver (ICD)
+for use with the ocl-icd loader.
+
+%description Rusticl-icd -l pl.UTF-8
+Ten pakiet zawiera implementację Rusticl standardu OpenCL - standardu
+wieloplatformowego, równoległego programowania nowoczesnych
+procesorów, jakie znajdują się w komputerach osobistych, serwerach
+oraz urządzeniach przenośnych/wbudowanych. Specyfikację OpenCL można
+znaleźć na stronie Khronos Group: <http://www.khronos.org/opencl/>.
+Rusticl zawiera implementację OpenCL w wersji 3.0.
+
+Implementacja dostarczona jest w postaci instalowalnego sterownika
+klienta (ICD), który może być użyty z loaderem ocl-icd.
+
%package libgbm
Summary: Mesa Graphics Buffer Manager library
Summary(pl.UTF-8): Biblioteka Mesa Graphics Buffer Manager
%description dri-devel -l pl.UTF-8
Plik nagłówkowy interfejsu DRI (Direct Rendering Infrastructure).
-%package libXvMC-nouveau
-Summary: Mesa implementation of XvMC API for NVidia adapters
-Summary(pl.UTF-8): Implementacja Mesa API XvMC dla kart NVidia
-License: MIT
-Group: Libraries
-Requires: libdrm >= %{libdrm_ver}
-Requires: xorg-lib-libXvMC >= 1.0.6
-Requires: zlib >= %{zlib_ver}
-Conflicts: Mesa-libXvMC
-
-%description libXvMC-nouveau
-Mesa implementation of XvMC API for NVidia adapters (NV40-NV96, NVa0).
-
-%description libXvMC-nouveau -l pl.UTF-8
-Implementacja Mesa API XvMC dla kart NVidia (NV40-NV96, NVa0).
-
-%package libXvMC-r600
-Summary: Mesa implementation of XvMC API for ATI Radeon R600 series adapters
-Summary(pl.UTF-8): Implementacja Mesa API XvMC dla kart ATI Radeon z serii R600
-License: MIT
-Group: Libraries
-Requires: libdrm >= %{libdrm_ver}
-Requires: xorg-lib-libXvMC >= 1.0.6
-Requires: zlib >= %{zlib_ver}
-Conflicts: Mesa-libXvMC
-
-%description libXvMC-r600
-Mesa implementation of XvMC API for ATI Radeon adapters based on
-R600/R700 chips.
-
-%description libXvMC-r600 -l pl.UTF-8
-Implementacja Mesa API XvMC dla kart ATI Radeon opartych na układach
-R600/R700.
-
%package d3d
Summary: Nine Direct3D9 driver (for Wine)
Summary(pl.UTF-8): Sterownik Direct3D9 Nine (dla Wine)
Suggests: xorg-driver-video-amdgpu
Suggests: xorg-driver-video-ati
Obsoletes: X11-driver-radeon-dri < 1:7.0.0
+Conflicts: %{name}-libEGL > %{version}
+Conflicts: %{name}-libEGL < %{version}
+Conflicts: %{name}-libGL > %{version}
+Conflicts: %{name}-libGL < %{version}
+Conflicts: %{name}-libgbm > %{version}
+Conflicts: %{name}-libgbm < %{version}
Conflicts: xorg-xserver-libglx(glapi) > %{glapi_ver}
Conflicts: xorg-xserver-libglx(glapi) < %{glapi_ver}
Requires: zlib >= %{zlib_ver}
Suggests: xorg-driver-video-amdgpu
Suggests: xorg-driver-video-ati
+Conflicts: %{name}-libEGL > %{version}
+Conflicts: %{name}-libEGL < %{version}
+Conflicts: %{name}-libGL > %{version}
+Conflicts: %{name}-libGL < %{version}
+Conflicts: %{name}-libgbm > %{version}
+Conflicts: %{name}-libgbm < %{version}
Conflicts: xorg-xserver-libglx(glapi) > %{glapi_ver}
Conflicts: xorg-xserver-libglx(glapi) < %{glapi_ver}
Requires: zlib >= %{zlib_ver}
Suggests: xorg-driver-video-amdgpu
Suggests: xorg-driver-video-ati
+Conflicts: %{name}-libEGL > %{version}
+Conflicts: %{name}-libEGL < %{version}
+Conflicts: %{name}-libGL > %{version}
+Conflicts: %{name}-libGL < %{version}
+Conflicts: %{name}-libgbm > %{version}
+Conflicts: %{name}-libgbm < %{version}
Conflicts: xorg-xserver-libglx(glapi) > %{glapi_ver}
Conflicts: xorg-xserver-libglx(glapi) < %{glapi_ver}
Group: X11/Libraries
Requires: zlib >= %{zlib_ver}
#Suggests: xorg-driver-video-?
+Conflicts: %{name}-libEGL > %{version}
+Conflicts: %{name}-libEGL < %{version}
+Conflicts: %{name}-libGL > %{version}
+Conflicts: %{name}-libGL < %{version}
+Conflicts: %{name}-libgbm > %{version}
+Conflicts: %{name}-libgbm < %{version}
Conflicts: xorg-xserver-libglx(glapi) > %{glapi_ver}
Conflicts: xorg-xserver-libglx(glapi) < %{glapi_ver}
Group: X11/Libraries
Requires: zlib >= %{zlib_ver}
Suggests: xorg-driver-video-freedreno
+Conflicts: %{name}-libEGL > %{version}
+Conflicts: %{name}-libEGL < %{version}
+Conflicts: %{name}-libGL > %{version}
+Conflicts: %{name}-libGL < %{version}
+Conflicts: %{name}-libgbm > %{version}
+Conflicts: %{name}-libgbm < %{version}
Conflicts: xorg-xserver-libglx(glapi) > %{glapi_ver}
Conflicts: xorg-xserver-libglx(glapi) < %{glapi_ver}
Group: X11/Libraries
Requires: zlib >= %{zlib_ver}
Obsoletes: Mesa-dri-driver-intel-i965 < 22.0.0
+Conflicts: %{name}-libEGL > %{version}
+Conflicts: %{name}-libEGL < %{version}
+Conflicts: %{name}-libGL > %{version}
+Conflicts: %{name}-libGL < %{version}
+Conflicts: %{name}-libgbm > %{version}
+Conflicts: %{name}-libgbm < %{version}
Conflicts: xorg-xserver-libglx(glapi) > %{glapi_ver}
Conflicts: xorg-xserver-libglx(glapi) < %{glapi_ver}
Requires: zlib >= %{zlib_ver}
Obsoletes: Mesa-dri-driver-intel-i830 < 6.5
Obsoletes: X11-driver-i810-dri < 1:7.0.0
+Conflicts: %{name}-libEGL > %{version}
+Conflicts: %{name}-libEGL < %{version}
+Conflicts: %{name}-libGL > %{version}
+Conflicts: %{name}-libGL < %{version}
+Conflicts: %{name}-libgbm > %{version}
+Conflicts: %{name}-libgbm < %{version}
Conflicts: xorg-xserver-libglx(glapi) > %{glapi_ver}
Conflicts: xorg-xserver-libglx(glapi) < %{glapi_ver}
License: MIT
Group: X11/Libraries
Requires: zlib >= %{zlib_ver}
+Conflicts: %{name}-libEGL > %{version}
+Conflicts: %{name}-libEGL < %{version}
+Conflicts: %{name}-libGL > %{version}
+Conflicts: %{name}-libGL < %{version}
+Conflicts: %{name}-libgbm > %{version}
+Conflicts: %{name}-libgbm < %{version}
Conflicts: xorg-xserver-libglx(glapi) > %{glapi_ver}
Conflicts: xorg-xserver-libglx(glapi) < %{glapi_ver}
Group: X11/Libraries
Requires: zlib >= %{zlib_ver}
#Suggests: xorg-driver-video-?
+Conflicts: %{name}-libEGL > %{version}
+Conflicts: %{name}-libEGL < %{version}
+Conflicts: %{name}-libGL > %{version}
+Conflicts: %{name}-libGL < %{version}
+Conflicts: %{name}-libgbm > %{version}
+Conflicts: %{name}-libgbm < %{version}
Conflicts: xorg-xserver-libglx(glapi) > %{glapi_ver}
Conflicts: xorg-xserver-libglx(glapi) < %{glapi_ver}
Group: X11/Libraries
Requires: zlib >= %{zlib_ver}
#Suggests: xorg-driver-video-???
+Conflicts: %{name}-libEGL > %{version}
+Conflicts: %{name}-libEGL < %{version}
+Conflicts: %{name}-libGL > %{version}
+Conflicts: %{name}-libGL < %{version}
+Conflicts: %{name}-libgbm > %{version}
+Conflicts: %{name}-libgbm < %{version}
Conflicts: xorg-xserver-libglx(glapi) > %{glapi_ver}
Conflicts: xorg-xserver-libglx(glapi) < %{glapi_ver}
Group: X11/Libraries
Requires: zlib >= %{zlib_ver}
Suggests: xorg-driver-video-nouveau
+Conflicts: %{name}-libEGL > %{version}
+Conflicts: %{name}-libEGL < %{version}
+Conflicts: %{name}-libGL > %{version}
+Conflicts: %{name}-libGL < %{version}
+Conflicts: %{name}-libgbm > %{version}
+Conflicts: %{name}-libgbm < %{version}
Conflicts: xorg-xserver-libglx(glapi) > %{glapi_ver}
Conflicts: xorg-xserver-libglx(glapi) < %{glapi_ver}
Group: X11/Libraries
Requires: zlib >= %{zlib_ver}
#Suggests: xorg-driver-video-???
+Conflicts: %{name}-libEGL > %{version}
+Conflicts: %{name}-libEGL < %{version}
+Conflicts: %{name}-libGL > %{version}
+Conflicts: %{name}-libGL < %{version}
+Conflicts: %{name}-libgbm > %{version}
+Conflicts: %{name}-libgbm < %{version}
Conflicts: xorg-xserver-libglx(glapi) > %{glapi_ver}
Conflicts: xorg-xserver-libglx(glapi) < %{glapi_ver}
License: MIT
Group: X11/Libraries
Requires: zlib >= %{zlib_ver}
+Conflicts: %{name}-libEGL > %{version}
+Conflicts: %{name}-libEGL < %{version}
+Conflicts: %{name}-libGL > %{version}
+Conflicts: %{name}-libGL < %{version}
+Conflicts: %{name}-libgbm > %{version}
+Conflicts: %{name}-libgbm < %{version}
Conflicts: xorg-xserver-libglx(glapi) > %{glapi_ver}
Conflicts: xorg-xserver-libglx(glapi) < %{glapi_ver}
Group: X11/Libraries
Requires: zlib >= %{zlib_ver}
#Suggests: xorg-driver-video-???
+Conflicts: %{name}-libEGL > %{version}
+Conflicts: %{name}-libEGL < %{version}
+Conflicts: %{name}-libGL > %{version}
+Conflicts: %{name}-libGL < %{version}
+Conflicts: %{name}-libgbm > %{version}
+Conflicts: %{name}-libgbm < %{version}
Conflicts: xorg-xserver-libglx(glapi) > %{glapi_ver}
Conflicts: xorg-xserver-libglx(glapi) < %{glapi_ver}
Group: X11/Libraries
Requires: zlib >= %{zlib_ver}
Suggests: xorg-driver-video-modesetting
+Conflicts: %{name}-libEGL > %{version}
+Conflicts: %{name}-libEGL < %{version}
+Conflicts: %{name}-libGL > %{version}
+Conflicts: %{name}-libGL < %{version}
+Conflicts: %{name}-libgbm > %{version}
+Conflicts: %{name}-libgbm < %{version}
Conflicts: xorg-xserver-libglx(glapi) > %{glapi_ver}
Conflicts: xorg-xserver-libglx(glapi) < %{glapi_ver}
Group: X11/Libraries
Requires: zlib >= %{zlib_ver}
Suggests: xorg-driver-video-modesetting
+Conflicts: %{name}-libEGL > %{version}
+Conflicts: %{name}-libEGL < %{version}
+Conflicts: %{name}-libGL > %{version}
+Conflicts: %{name}-libGL < %{version}
+Conflicts: %{name}-libgbm > %{version}
+Conflicts: %{name}-libgbm < %{version}
Conflicts: xorg-xserver-libglx(glapi) > %{glapi_ver}
Conflicts: xorg-xserver-libglx(glapi) < %{glapi_ver}
License: MIT
Group: X11/Libraries
Requires: zlib >= %{zlib_ver}
+Conflicts: %{name}-libEGL > %{version}
+Conflicts: %{name}-libEGL < %{version}
+Conflicts: %{name}-libGL > %{version}
+Conflicts: %{name}-libGL < %{version}
+Conflicts: %{name}-libgbm > %{version}
+Conflicts: %{name}-libgbm < %{version}
Conflicts: xorg-xserver-libglx(glapi) > %{glapi_ver}
Conflicts: xorg-xserver-libglx(glapi) < %{glapi_ver}
Group: X11/Libraries
Requires: zlib >= %{zlib_ver}
Suggests: xorg-driver-video-vmware
+Conflicts: %{name}-libEGL > %{version}
+Conflicts: %{name}-libEGL < %{version}
+Conflicts: %{name}-libGL > %{version}
+Conflicts: %{name}-libGL < %{version}
+Conflicts: %{name}-libgbm > %{version}
+Conflicts: %{name}-libgbm < %{version}
Conflicts: xorg-xserver-libglx(glapi) > %{glapi_ver}
Conflicts: xorg-xserver-libglx(glapi) < %{glapi_ver}
License: MIT
Group: X11/Libraries
Requires: zlib >= %{zlib_ver}
+Conflicts: %{name}-libEGL > %{version}
+Conflicts: %{name}-libEGL < %{version}
+Conflicts: %{name}-libGL > %{version}
+Conflicts: %{name}-libGL < %{version}
+Conflicts: %{name}-libgbm > %{version}
+Conflicts: %{name}-libgbm < %{version}
Conflicts: xorg-xserver-libglx(glapi) > %{glapi_ver}
Conflicts: xorg-xserver-libglx(glapi) < %{glapi_ver}
%description -n libva-driver-nouveau -l pl.UTF-8
Sterownik VA dla kart NVidia.
+%package -n libva-driver-virtio
+Summary: VA driver for VirtIO adapters
+Summary(pl.UTF-8): Sterownik VA dla kart VirtIO
+Group: Libraries
+Requires: libva >= 1.8.0
+Requires: zlib >= %{zlib_ver}
+
+%description -n libva-driver-virtio
+VA driver for VirtIO adapters.
+
+%description -n libva-driver-virtio -l pl.UTF-8
+Sterownik VA dla kart VirtIO.
+
%package -n libvdpau-driver-mesa-nouveau
Summary: Mesa nouveau driver for the vdpau API
Summary(pl.UTF-8): Sterownik Mesa nouveau dla API vdpau
Sterownik Mesa nouveau dla API vdpau. Obsługuje karty NVidia
(NV40-NV96, NVa0).
-%package -n libvdpau-driver-mesa-r300
-Summary: Mesa r300 driver for the vdpau API
-Summary(pl.UTF-8): Sterownik Mesa r300 dla API vdpau
-License: MIT
-Group: X11/Libraries
-Requires: libdrm >= %{libdrm_ver}
-Requires: libvdpau >= 1.1
-Requires: zlib >= %{zlib_ver}
-Conflicts: libvdpau-driver-mesa
-
-%description -n libvdpau-driver-mesa-r300
-Mesa r300 driver for the vdpau API. It supports ATI Radeon adapters
-based on R300 chips.
-
-%description -n libvdpau-driver-mesa-r300 -l pl.UTF-8
-Sterownik Mesa r300 dla API vdpau. Obsługuje karty ATI Radeon oparte
-na układach R300.
-
%package -n libvdpau-driver-mesa-r600
Summary: Mesa r600 driver for the vdpau API
Summary(pl.UTF-8): Sterownik Mesa r600 dla API vdpau
Sterownik Mesa radeonsi dla API vdpau. Obsługuje karty ATI Radeon
oparte na układach Southern Islands.
+%package -n libvdpau-driver-mesa-virtio
+Summary: Mesa virtio driver for the vdpau API
+Summary(pl.UTF-8): Sterownik Mesa virtio dla API vdpau
+License: MIT
+Group: X11/Libraries
+Requires: libdrm >= %{libdrm_ver}
+Requires: libvdpau >= 1.1
+Requires: zlib >= %{zlib_ver}
+
+%description -n libvdpau-driver-mesa-virtio
+Mesa virtio driver for the vdpau API.
+
+%description -n libvdpau-driver-mesa-virtio -l pl.UTF-8
+Sterownik Mesa virtio dla API vdpau.
+
%package -n omxil-mesa
Summary: Mesa driver for Bellagio OpenMAX IL API
Summary(pl.UTF-8): Sterownik Mesa nouveau dla API Bellagio OpenMAX IL
Requires: wayland >= %{wayland_ver}
Requires: zlib >= %{zlib_ver}
Suggests: vulkan(loader)
-Provides: vulkan(icd) = 1.1.204
+Provides: vulkan(icd) = 1.2.267
%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.1.204
+Provides: vulkan(icd) = 1.1.267
%description vulkan-icd-freedreno
turnip - Mesa Vulkan driver for Adreno chips.
%description vulkan-icd-freedreno -l pl.UTF-8
turnip - sterownik Vulkan dla układów Adreno.
+%package vulkan-icd-panfrost
+Summary: panfrost - Mesa Vulkan driver for Mali Midgard and Bifrost GPUs
+Summary(pl.UTF-8): panfrost - sterownik Vulkan dla układów Mali Midgard i Bifrost
+License: MIT
+Group: Libraries
+Requires: libdrm >= %{libdrm_ver}
+Requires: libxcb >= 1.13
+Requires: xorg-lib-libXrandr >= 1.3
+Requires: xorg-lib-libxshmfence >= 1.1
+# wayland-client
+Requires: wayland >= %{wayland_ver}
+Requires: zlib >= %{zlib_ver}
+Suggests: vulkan(loader)
+Provides: vulkan(icd) = 1.0.267
+
+%description vulkan-icd-panfrost
+panfrost - Mesa Vulkan driver for Mali Midgard and Bifrost GPUs.
+
+%description vulkan-icd-panfrost -l pl.UTF-8
+panfrost - sterownik Vulkan dla układów Mali Midgard i Bifrost.
+
%package vulkan-icd-powervr
Summary: powervr - Mesa Vulkan driver for Imagination Technologies Rogue GPUs
Summary(pl.UTF-8): powervr - sterownik Vulkan dla układów Imagination Technologies Rogue
Requires: wayland >= %{wayland_ver}
Requires: zlib >= %{zlib_ver}
Suggests: vulkan(loader)
-Provides: vulkan(icd) = 1.1.204
+Provides: vulkan(icd) = 1.1.267
%description vulkan-icd-powervr
powervr - Mesa Vulkan driver for Imagination Technologies Rogue GPUs.
Group: Libraries
Requires: libdrm >= %{libdrm_ver}
Requires: libxcb >= 1.13
-Requires: xorg-lib-libXrandr >= 1.3
Requires: xorg-lib-libxshmfence >= 1.1
# wayland-client
Requires: wayland >= %{wayland_ver}
Requires: zlib >= %{zlib_ver}
Suggests: vulkan(loader)
-Provides: vulkan(icd) = 1.3.204
+Provides: vulkan(icd) = 1.3.267
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.1.204
+Provides: vulkan(icd) = 1.1.267
%description vulkan-icd-lavapipe
lavapipe - Mesa software Vulkan driver.
%description vulkan-icd-lavapipe -l pl.UTF-8
lavapipe - programowy sterownik Vulkan.
-%package vulkan-icd-panfrost
-Summary: panfrost - Mesa Vulkan driver for Mali Midgard and Bifrost GPUs
-Summary(pl.UTF-8): panfrost - sterownik Vulkan dla układów Mali Midgard i Bifrost
+%package vulkan-icd-nouveau
+Summary: nvk - experimental Mesa Vulkan driver for NVIDIA GPUs
+Summary(pl.UTF-8): nvk - eksperymentalny sterownik Vulkan dla GPU firmy NVIDIA
License: MIT
Group: Libraries
Requires: libdrm >= %{libdrm_ver}
Requires: libxcb >= 1.13
-Requires: xorg-lib-libXrandr >= 1.3
Requires: xorg-lib-libxshmfence >= 1.1
# wayland-client
Requires: wayland >= %{wayland_ver}
Requires: zlib >= %{zlib_ver}
Suggests: vulkan(loader)
-Provides: vulkan(icd) = 1.1.204
+Provides: vulkan(icd) = 1.3.267
-%description vulkan-icd-panfrost
-panfrost - Mesa Vulkan driver for Mali Midgard and Bifrost GPUs.
+%description vulkan-icd-nouveau
+nvk - experimental Mesa Vulkan driver for NVIDIA GPUs.
-%description vulkan-icd-panfrost -l pl.UTF-8
-panfrost - sterownik Vulkan dla układów Mali Midgard i Bifrost.
+%description vulkan-icd-nouveau -l pl.UTF-8
+nvk - eksperymentalny sterownik Vulkan dla GPU firmy NVIDIA.
%package vulkan-icd-radeon
-Summary: radv - experimental Mesa Vulkan driver for AMD Radeon GPUs
-Summary(pl.UTF-8): radv - eksperymentalny sterownik Vulkan dla GPU firmy AMD
+Summary: radv - Mesa Vulkan driver for AMD Radeon GPUs
+Summary(pl.UTF-8): radv - sterownik Vulkan dla GPU firmy AMD
License: MIT
Group: Libraries
Requires: libdrm >= %{libdrm_ver}
Requires: libxcb >= 1.13
-Requires: xorg-lib-libXrandr >= 1.3
Requires: xorg-lib-libxshmfence >= 1.1
# wayland-client
Requires: wayland >= %{wayland_ver}
Requires: zlib >= %{zlib_ver}
Suggests: vulkan(loader)
-Provides: vulkan(icd) = 1.3.204
+Provides: vulkan(icd) = 1.3.267
%description vulkan-icd-radeon
-radv - experimental Mesa Vulkan driver for AMD Radeon GPUs.
+radv - Mesa Vulkan driver for AMD Radeon GPUs.
%description vulkan-icd-radeon -l pl.UTF-8
-radv - eksperymentalny sterownik Vulkan dla GPU firmy AMD.
+radv - sterownik Vulkan dla GPU firmy AMD.
+
+%package vulkan-icd-virtio
+Summary: Mesa Vulkan driver for VirtIO adapters
+Summary(pl.UTF-8): Sterownik Vulkan dla kart VirtIO
+License: MIT
+Group: Libraries
+Requires: libdrm >= %{libdrm_ver}
+Requires: libxcb >= 1.13
+Requires: xorg-lib-libxshmfence >= 1.1
+# wayland-client
+Requires: wayland >= %{wayland_ver}
+Requires: zlib >= %{zlib_ver}
+Suggests: vulkan(loader)
+Provides: vulkan(icd) = 1.3.267
+
+%description vulkan-icd-virtio
+Mesa Vulkan driver for VirtIO adapters.
+
+%description vulkan-icd-virtio -l pl.UTF-8
+Sterownik Vulkan dla kart VirtIO.
%prep
%setup -q -n mesa-%{version}
+%patch0 -p1
%build
%if %{with opencl}
gallium_drivers=$(echo $gallium_drivers | xargs | tr ' ' ',')
-vulkan_drivers="swrast %{?with_radv:amd} \
-%ifarch %{ix86} %{x8664} x32
-intel \
-%endif
+vulkan_drivers="swrast virtio %{?with_radv:amd} %{?with_intel_vk:intel intel_hasvk} %{?with_nvk:nouveau-experimental} \
%ifarch %{arm} aarch64
-freedreno broadcom imagination-experimental panfrost \
+broadcom freedreno imagination-experimental panfrost \
%endif
"
vulkan_drivers=$(echo $vulkan_drivers | xargs | tr ' ' ',')
+%if %{with gallium_rusticl}
+%ifarch %{arm32_with_hf}
+export BINDGEN_EXTRA_CLANG_ARGS="-mfloat-abi=hard"
+%endif
+%endif
+
%meson build \
-Dplatforms=x11%{?with_wayland:,wayland} \
-Ddri3=enabled \
%else
-Dgallium-opencl=standalone \
%endif
+ %{?with_gallium_rusticl:-Dgallium-rusticl=true -Drust_std=2021} \
%else
-Dgallium-opencl=disabled \
%endif
-Dgallium-va=%{?with_va:enabled}%{!?with_va:disabled} \
%{?with_vdpau:-Dgallium-vdpau=enabled} \
- %{?with_xvmc:-Dgallium-xvmc=enabled} \
-Dgallium-xa=%{?with_xa:enabled}%{!?with_xa:disabled} \
-Dgbm=%{?with_gbm:enabled}%{!?with_gbm:disabled} \
-Dglvnd=%{?with_glvnd:true}%{!?with_glvnd:false} \
-Dvulkan-drivers=${vulkan_drivers} \
-Dvulkan-icd-dir=/usr/share/vulkan/icd.d \
%ifarch %{arm} aarch64
- -Dfreedreno-virtio=true \
+ -Dfreedreno-kmds=msm,virtio \
-Dimagination-srv=true
%endif
%post OpenCL-icd -p /sbin/ldconfig
%postun OpenCL-icd -p /sbin/ldconfig
+%post Rusticl-icd -p /sbin/ldconfig
+%postun Rusticl-icd -p /sbin/ldconfig
+
%post libOpenCL -p /sbin/ldconfig
%postun libOpenCL -p /sbin/ldconfig
%post libxatracker -p /sbin/ldconfig
%postun libxatracker -p /sbin/ldconfig
-%post libXvMC-nouveau -p /sbin/ldconfig
-%postun libXvMC-nouveau -p /sbin/ldconfig
-%post libXvMC-r600 -p /sbin/ldconfig
-%postun libXvMC-r600 -p /sbin/ldconfig
-
-### libraries
-
%if %{with egl}
%files libEGL
%defattr(644,root,root,755)
%{_includedir}/EGL/eglplatform.h
%{_pkgconfigdir}/egl.pc
%endif
-%{_includedir}/EGL/eglextchromium.h
+%{_includedir}/EGL/eglext_angle.h
%{_includedir}/EGL/eglmesaext.h
%endif
%files libGL-devel
%defattr(644,root,root,755)
-%doc docs/_extra/specs/*
+%doc docs/_static/specs/*
%if %{without glvnd}
%dir %{_includedir}/GL
%{_includedir}/GL/gl.h
%{_pkgconfigdir}/osmesa.pc
%if %{with opencl}
+%if %{with gallium_rusticl}
+%files Rusticl-icd
+%defattr(644,root,root,755)
+/etc/OpenCL/vendors/rusticl.icd
+%attr(755,root,root) %{_libdir}/libRusticlOpenCL.so
+%attr(755,root,root) %{_libdir}/libRusticlOpenCL.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libRusticlOpenCL.so.1
+%endif
%if %{with ocl_icd}
%files OpenCL-icd
%defattr(644,root,root,755)
%{_includedir}/GL/internal/dri_interface.h
%{_pkgconfigdir}/dri.pc
-### drivers: XvMC
-
-%if %{with gallium_nouveau}
-%files libXvMC-nouveau
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libXvMCnouveau.so.1.*.*
-%attr(755,root,root) %ghost %{_libdir}/libXvMCnouveau.so.1
-%attr(755,root,root) %{_libdir}/libXvMCnouveau.so
-%endif
-
-%if %{with gallium_radeon}
-%files libXvMC-r600
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libXvMCr600.so.1.*.*
-%attr(755,root,root) %ghost %{_libdir}/libXvMCr600.so.1
-%attr(755,root,root) %{_libdir}/libXvMCr600.so
-%endif
-
### drivers: d3d
%if %{with nine}
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/xorg/modules/dri/armada-drm_dri.so
%attr(755,root,root) %{_libdir}/xorg/modules/dri/exynos_dri.so
+%attr(755,root,root) %{_libdir}/xorg/modules/dri/hdlcd_dri.so
%attr(755,root,root) %{_libdir}/xorg/modules/dri/hx8357d_dri.so
%attr(755,root,root) %{_libdir}/xorg/modules/dri/ili9225_dri.so
%attr(755,root,root) %{_libdir}/xorg/modules/dri/ili9341_dri.so
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libva/dri/nouveau_drv_video.so
%endif
+
+%files -n libva-driver-virtio
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libva/dri/virtio_gpu_drv_video.so
%endif
### drivers: vdpau
%endif
%if %{with gallium_radeon}
-%files -n libvdpau-driver-mesa-r300
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/vdpau/libvdpau_r300.so.1.0.0
-%attr(755,root,root) %{_libdir}/vdpau/libvdpau_r300.so.1.0
-%attr(755,root,root) %{_libdir}/vdpau/libvdpau_r300.so.1
-%attr(755,root,root) %{_libdir}/vdpau/libvdpau_r300.so
-
%files -n libvdpau-driver-mesa-r600
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/vdpau/libvdpau_r600.so.1.0.0
%attr(755,root,root) %{_libdir}/vdpau/libvdpau_radeonsi.so.1
%attr(755,root,root) %{_libdir}/vdpau/libvdpau_radeonsi.so
%endif
+
+%files -n libvdpau-driver-mesa-virtio
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/vdpau/libvdpau_virtio_gpu.so.1.0.0
+%attr(755,root,root) %{_libdir}/vdpau/libvdpau_virtio_gpu.so.1.0
+%attr(755,root,root) %{_libdir}/vdpau/libvdpau_virtio_gpu.so.1
+%attr(755,root,root) %{_libdir}/vdpau/libvdpau_virtio_gpu.so
%endif
### drivers: omxil
%attr(755,root,root) %{_libdir}/libvulkan_freedreno.so
%{_datadir}/vulkan/icd.d/freedreno_icd.*.json
+%files vulkan-icd-panfrost
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libvulkan_panfrost.so
+%{_datadir}/vulkan/icd.d/panfrost_icd.*.json
+
%files vulkan-icd-powervr
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libpowervr_rogue.so
%attr(755,root,root) %{_libdir}/libvulkan_powervr_mesa.so
%{_datadir}/vulkan/icd.d/powervr_mesa_icd.*.json
-
-%files vulkan-icd-panfrost
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libvulkan_panfrost.so
-%{_datadir}/vulkan/icd.d/panfrost_icd.*.json
%endif
%ifarch %{ix86} %{x8664} x32
%files vulkan-icd-intel
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libvulkan_intel.so
+%attr(755,root,root) %{_libdir}/libvulkan_intel_hasvk.so
%{_datadir}/vulkan/icd.d/intel_icd.*.json
+%{_datadir}/vulkan/icd.d/intel_hasvk_icd.*.json
%endif
%files vulkan-icd-lavapipe
%attr(755,root,root) %{_libdir}/libvulkan_lvp.so
%{_datadir}/vulkan/icd.d/lvp_icd.*.json
+%if %{with nvk}
+%files vulkan-icd-nouveau
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libvulkan_nouveau.so
+%{_datadir}/vulkan/icd.d/nouveau_icd.*.json
+%endif
+
%if %{with radv}
%files vulkan-icd-radeon
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libvulkan_radeon.so
%{_datadir}/vulkan/icd.d/radeon_icd.*.json
%endif
+
+%files vulkan-icd-virtio
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libvulkan_virtio.so
+%{_datadir}/vulkan/icd.d/virtio_icd.*.json