+# TODO: libtizonia >= 0.10.0 as an alternative for bellagio?
#
# Conditional build:
%bcond_without gallium # gallium drivers
+%bcond_with gallium_i915 # gallium i915 driver instead of dri i915 driver
%bcond_without gallium_nouveau # gallium nouveau driver
%bcond_without gallium_radeon # gallium radeon drivers
%bcond_without egl # EGL libraries
%bcond_without gbm # Graphics Buffer Manager
%bcond_without nine # Nine Direct3D 9+ state tracker (for Wine)
%bcond_without opencl # OpenCL support
-%bcond_without ocl_icd # OpenCL as ICD (installable client driver)
+%bcond_without ocl_icd # OpenCL as ICD (installable client driver)
%bcond_with glvnd # OpenGL vendor neutral dispatcher support
%bcond_without omx # OpenMAX (Bellagio OMXIL) support
%bcond_without va # VA library
# (until they start to be somehow versioned themselves)
%define glapi_ver 7.1.0
# other packages
-%define libdrm_ver 2.4.95
+%define libdrm_ver 2.4.99
%define dri2proto_ver 2.8
%define glproto_ver 1.4.14
%define zlib_ver 1.2.8
%define wayland_ver 1.11
-%define llvm_ver 6.0.0
+%define llvm_ver 7.0.0
%define gcc_ver 6:4.8.0
%if %{without gallium}
+%undefine with_gallium_i915
%undefine with_gallium_nouveau
%undefine with_gallium_radeon
%undefine with_nine
Summary: Free OpenGL implementation
Summary(pl.UTF-8): Wolnodostępna implementacja standardu OpenGL
Name: Mesa
-Version: 18.3.3
+Version: 19.2.3
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: 62f3225cbe07d838ae0a842736d43f11
+# Source0-md5: 08662d84b92067784fbcf1e1f762add2
Patch0: nouveau_no_rtti.patch
+Patch1: i9x5-tex-ignore-the-diff-between-GL_TEXTURE_2D-and-GL_TEXTURE_RECTANGLE.patch
URL: http://www.mesa3d.org/
-BuildRequires: meson >= 0.45
-BuildRequires: ninja
%{?with_opencl:BuildRequires: clang-devel >= %{llvm_ver}}
BuildRequires: elfutils-devel
BuildRequires: expat-devel >= 1.95
%{?with_radv:BuildRequires: llvm-devel >= %{llvm_ver}}
%{?with_opencl:BuildRequires: llvm-libclc}
%{?with_omx:BuildRequires: libomxil-bellagio-devel}
+BuildRequires: meson >= 0.46
+BuildRequires: ninja >= 1.5
BuildRequires: pkgconfig
BuildRequires: pkgconfig(talloc) >= 2.0.1
BuildRequires: pkgconfig(xcb-dri2) >= 1.8
BuildRequires: pkgconfig(xcb-glx) >= 1.8.1
BuildRequires: pkgconfig(xcb-present) >= 1.13
BuildRequires: pkgconfig(xcb-randr) >= 1.12
-BuildRequires: python3
+BuildRequires: python3 >= 1:3.2
BuildRequires: python3-Mako >= 0.8.0
BuildRequires: rpmbuild(macros) >= 1.470
BuildRequires: sed >= 4.0
BuildRequires: xorg-lib-libXdamage-devel >= 1.1
BuildRequires: xorg-lib-libXext-devel >= 1.0.5
BuildRequires: xorg-lib-libXfixes-devel
+BuildRequires: xorg-lib-libXrandr-devel >= 1.3
+BuildRequires: xorg-lib-libXv-devel
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}
BuildRequires: xorg-proto-glproto-devel >= %{glproto_ver}
%if %{with gallium}
-%{?with_lm_sensors:BuildRequires: lm_sensors-devel >= 4.0}
+%{?with_lm_sensors:BuildRequires: lm_sensors-devel}
%endif
BuildRequires: zlib-devel >= %{zlib_ver}
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
Requires: xorg-proto-glproto-devel >= %{glproto_ver}
Suggests: OpenGL-doc-man
Provides: OpenGL-GLX-devel = 1.4
-Provides: OpenGL-devel = 4.5
+Provides: OpenGL-devel = 4.6
Obsoletes: Mesa-devel
Obsoletes: X11-OpenGL-devel < 1:7.0.0
Obsoletes: X11-OpenGL-devel-base < 1:7.0.0
X.org Gallium DRI driver for ATI Southern Islands card family (Radeon
HD 7700-8000, R9, APU). It supports TAHITI, PITCAIRN, VERDE, OLAND,
HAINAN, BONAIRE, KABINI, MULLINS, KAVERI, HAWAII, ICELAND, TONGA,
-CARRIZO, FIJI, POLARIS, STONEY chips.
+CARRIZO, FIJI, POLARIS, STONEY, VEGA, RAVEN chips.
%description dri-driver-ati-radeon-SI -l pl.UTF-8
Sterownik X.org DRI Gallium dla rodziny kart ATI Southern Islands
(Radeon HD 7700-8000, R9, APU). Obsługuje układy TAHITI, PITCAIRN,
VERDE, OLAND, HAINAN, BONAIRE, KABINI, MULLINS, KAVERI, HAWAII,
-ICELAND, TONGA, CARRIZO, FIJI, POLARIS, STONEY.
+ICELAND, TONGA, CARRIZO, FIJI, POLARIS, STONEY, VEGA, RAVEN.
%package dri-driver-etnaviv
Summary: X.org DRI driver for Vivante 3D chips
Requires: zlib >= %{zlib_ver}
%description dri-driver-etnaviv
-X.org DRI driver for Vivante 3D chips.
+X.org Gallium DRI driver for Vivante 3D chips.
%description dri-driver-etnaviv -l pl.UTF-8
-Sterownik X.org DRI dla układów Vivante 3D.
+Sterownik X.org DRI Gallium dla układów Vivante 3D.
%package dri-driver-freedreno
Summary: X.org DRI driver for Adreno chips
Requires: zlib >= %{zlib_ver}
%description dri-driver-freedreno
-X.org DRI driver for Adreno chips.
+X.org Gallium DRI driver for Adreno chips.
%description dri-driver-freedreno -l pl.UTF-8
-Sterownik X.org DRI dla układów Adreno.
+Sterownik X.org DRI Gallium dla układów Adreno.
%package dri-driver-intel-i915
Summary: X.org DRI driver for Intel i915 card family
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, Geminilake);
+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, Geminilake);
+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
+Requires: xorg-xserver-libglx(glapi) = %{glapi_ver}
+Requires: xorg-xserver-server >= %{xserver_ver}
+Requires: zlib >= %{zlib_ver}
+
+%description dri-driver-intel-iris
+X.org Gallium DRI driver for Intel Iris (Gen8+) card family
+(Broadwell, Skylake, Broxton, Kabylake, Coffeelake, Geminilake,
+Whiskey Lake, Comet Lake, Cannonlake, Ice Lake, Elkhart Lake).
+
+%description dri-driver-intel-iris -l pl.UTF-8
+Sterownik X.org DRI Gallium dla rodziny kart Intel Iris (Gen8+:
+Broadwell, Skylake, Broxton, Kabylake, Coffeelake, Geminilake,
+Whiskey Lake, Comet Lake, Cannonlake, Ice Lake, Elkhart Lake).
+
+%package dri-driver-kmsro
+Summary: X.org Gallium DRI driver using KMS Render-Only architecture
+Summary(pl.UTF-8): Sterownik X.org DRI Gallium wykorzystujący architekturę KMS Render-Only
+License: MIT
+Group: X11/Libraries
+#Requires: xorg-driver-video-?
+Requires: xorg-xserver-libglx(glapi) = %{glapi_ver}
+Requires: xorg-xserver-server >= %{xserver_ver}
+Requires: zlib >= %{zlib_ver}
+
+%description dri-driver-kmsro
+X.org Gallium DRI driver using KMS Render-Only architecture.
+
+%description dri-driver-kmsro -l pl.UTF-8
+Sterownik X.org DRI Gallium wykorzystujący architekturę KMS
+Render-Only.
+
+%package dri-driver-lima
+Summary: X.org DRI driver for Mali Utgard chips
+Summary(pl.UTF-8): Sterownik X.org DRI dla układów Mali Utgard
+License: MIT
+Group: X11/Libraries
+#Requires: xorg-driver-video-???
+Requires: xorg-xserver-libglx(glapi) = %{glapi_ver}
+Requires: xorg-xserver-server >= %{xserver_ver}
+Requires: zlib >= %{zlib_ver}
+
+%description dri-driver-lima
+X.org Gallium DRI driver for Mali Utgard chips.
+
+%description dri-driver-lima -l pl.UTF-8
+Sterownik X.org DRI Gallium dla układów Mali Utgard.
%package dri-driver-nouveau
Summary: X.org DRI driver for NVIDIA card family
%description dri-driver-nouveau -l pl.UTF-8
Sterowniki X.org DRI dla rodziny kart NVIDIA.
+%package dri-driver-panfrost
+Summary: X.org DRI driver for Mali Midgard/Bifrost chips
+Summary(pl.UTF-8): Sterownik X.org DRI dla układów Mali Midgard/Bifrost
+License: MIT
+Group: X11/Libraries
+#Requires: xorg-driver-video-???
+Requires: xorg-xserver-libglx(glapi) = %{glapi_ver}
+Requires: xorg-xserver-server >= %{xserver_ver}
+Requires: zlib >= %{zlib_ver}
+
+%description dri-driver-panfrost
+X.org Gallium DRI driver for Mali Midgard/Bifrost chips.
+
+%description dri-driver-panfrost -l pl.UTF-8
+Sterownik X.org DRI Gallium dla układów Mali Midgard/Bifrost.
+
%package dri-driver-swrast
Summary: X.org DRI software rasterizer driver
Summary(pl.UTF-8): Sterownik X.org DRI obsługujący rysowanie programowe
%description dri-driver-swrast -l pl.UTF-8
Sterownik X.org DRI obsługujący rysowanie programowe.
+%package dri-driver-tegra
+Summary: X.org DRI driver for Tegra SoC chips
+Summary(pl.UTF-8): Sterownik X.org DRI dla układów SoC Tegra
+License: MIT
+Group: X11/Libraries
+#Requires: xorg-driver-video-???
+Requires: xorg-xserver-libglx(glapi) = %{glapi_ver}
+Requires: xorg-xserver-server >= %{xserver_ver}
+Requires: zlib >= %{zlib_ver}
+
+%description dri-driver-tegra
+X.org Gallium DRI driver for Tegra SoC chips.
+
+%description dri-driver-tegra -l pl.UTF-8
+Sterownik X.org DRI Gallium dla układów Tegra SoC.
+
+%package dri-driver-v3d
+Summary: X.org DRI driver for Broadcom VC5 chips
+Summary(pl.UTF-8): Sterownik X.org DRI dla układów Broadcom VC5
+License: MIT
+Group: X11/Libraries
+Requires: xorg-driver-video-modesetting
+Requires: xorg-xserver-libglx(glapi) = %{glapi_ver}
+Requires: xorg-xserver-server >= %{xserver_ver}
+Requires: zlib >= %{zlib_ver}
+
+%description dri-driver-v3d
+X.org Gallium DRI driver for Broadcom VC5 chips.
+
+%description dri-driver-v3d -l pl.UTF-8
+Sterownik X.org DRI Gallium dla układów Broadcom VC5.
+
%package dri-driver-vc4
Summary: X.org DRI driver for Broadcom VC4 chips
Summary(pl.UTF-8): Sterownik X.org DRI dla układów Broadcom VC4
Requires: zlib >= %{zlib_ver}
%description dri-driver-vc4
-X.org DRI driver for Broadcom VC4 chips.
+X.org Gallium DRI driver for Broadcom VC4 chips.
%description dri-driver-vc4 -l pl.UTF-8
-Sterownik X.org DRI dla układów Broadcom VC4.
+Sterownik X.org DRI Gallium dla układów Broadcom VC4.
%package dri-driver-virgl
Summary: X.org DRI driver for QEMU VirGL
%description dri-driver-vmwgfx -l pl.UTF-8
Sterownik X.org DRI dla VMware.
+%package pipe-driver-i915
+Summary: i915 driver for Mesa Gallium dynamic pipe loader
+Summary(pl.UTF-8): Sterownik i915 dla dynamicznego systemu potoków szkieletu Mesa Gallium
+Group: Libraries
+Requires: zlib >= %{zlib_ver}
+Obsoletes: Mesa-gbm-driver-i915
+Obsoletes: Mesa-opencl-driver-i915
+
+%description pipe-driver-i915
+i915 driver for Mesa Gallium dynamic pipe loader. It supports Intel
+915/945/G33/Q33/Q35/Pineview chips.
+
+%description pipe-driver-i915 -l pl.UTF-8
+Sterownik i915 dla dynamicznego systemu potoków szkieletu Mesa
+Gallium. Obsługuje układy Intela z serii 915/945/G33/Q33/Q35/Pineview.
+
%package pipe-driver-msm
Summary: msm (freedreno) driver for Mesa Gallium dynamic pipe loader
Summary(pl.UTF-8): Sterownik msm (freedreno) dla dynamicznego systemu potoków szkieletu Mesa Gallium
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}
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}
%prep
%setup -q -n mesa-mesa-%{version}
-
%patch0 -p1
+%patch1 -p1
%build
-
%if %{with opencl}
if [ "$(llvm-config --has-rtti)" != "YES" ] ; then
echo "Clover (gallium OpenCL) requires LLVM with RTTI!"
swrast
%endif
%ifarch %{ix86} %{x8664} x32
-i965 i915 \
+i965 %{!?with_gallium_i915:i915} \
%endif
"
dri_drivers=$(echo $dri_drivers | xargs | tr ' ' ',')
-gallium_drivers="svga virgl \
-swrast
+gallium_drivers="virgl swrast \
+%ifarch %{ix86} %{x8664} x32
+svga iris swr %{?with_gallium_i915:i915} \
+%endif
%if %{with gallium_radeon}
r300 r600 radeonsi \
%endif
%if %{with gallium_nouveau}
nouveau
%endif
-%ifarch %{arm}
+%ifarch %{arm} aarch64
etnaviv \
freedreno \
-imx \
+kmsro \
+lima \
+panfrost \
+tegra \
+v3d \
vc4 \
%endif
"
vulkan_drivers=$(echo $vulkan_drivers | xargs | tr ' ' ',')
%meson build \
- -Dplatforms=x11,drm,%{?with_wayland:,wayland},surfaceless \
+ -Dplatforms=x11,drm%{?with_wayland:,wayland},surfaceless \
-Ddri3=true \
-Ddri-drivers=${dri_drivers} \
-Ddri-drivers-path=%{_libdir}/xorg/modules/dri \
+ -Degl=%{?with_egl:true}%{!?with_egl:false} \
-Dgallium-drivers=${gallium_drivers} \
%{?with_hud_extra:-Dgallium-extra-hud=true} \
- -Dgallium-vdpau=true \
- -Dgallium-xvmc=true \
- -Dgallium-omx=%{?with_omx:bellagio}%{?!with_omx:disabled} \
- -Dgallium-va=%{?with_va:true}%{?!with_va:false} \
- -Dva-libs-path=%{_libdir}/libva/dri \
- -Dgallium-xa=%{?with_xa:true}%{?!with_xa:false} \
- -Dgallium-nine=%{?with_nine:true}%{?!with_nine:false} \
+ -Dgallium-nine=%{?with_nine:true}%{!?with_nine:false} \
+ -Dgallium-omx=%{?with_omx:bellagio}%{!?with_omx:disabled} \
%if %{with opencl}
%if %{with ocl_icd}
-Dgallium-opencl=icd \
%else
-Dgallium-opencl=disabled \
%endif
- -Dvulkan-drivers=${vulkan_drivers} \
- -Dvulkan-icd-dir=/usr/share/vulkan/icd.d \
- -Dgbm=%{?with_gbm:true}%{?!with_gbm:false} \
- -Degl=%{?with_egl:true}%{?!with_egl:false} \
- -Dglvnd=%{?with_glvnd:true}%{?!with_glvnd:false} \
+ -Dgallium-va=%{?with_va:true}%{!?with_va:false} \
+ -Dgallium-vdpau=true \
+ -Dgallium-xvmc=true \
+ -Dgallium-xa=%{?with_xa:true}%{!?with_xa:false} \
+ -Dgbm=%{?with_gbm:true}%{!?with_gbm:false} \
+ -Dglvnd=%{?with_glvnd:true}%{!?with_glvnd:false} \
-Dlibunwind=true \
- -Dlmsensors=%{?with_lm_sensors:true}%{?!with_lm_sensors:false} \
+ -Dlmsensors=%{?with_lm_sensors:true}%{!?with_lm_sensors:false} \
+ -Dosmesa=%{?with_gallium:gallium}%{!?with_gallium:classic} \
-Dselinux=true \
- -Dosmesa=%{?with_gallium:gallium}%{?!with_gallium:classic}
+ -Dva-libs-path=%{_libdir}/libva/dri \
+ -Dvulkan-drivers=${vulkan_drivers} \
+ -Dvulkan-icd-dir=/usr/share/vulkan/icd.d
%meson_build -C build
%{_includedir}/GL/gl.h
%{_includedir}/GL/glcorearb.h
%{_includedir}/GL/glext.h
-%{_includedir}/GL/gl_mangle.h
%{_includedir}/GL/glx.h
%{_includedir}/GL/glxext.h
-%{_includedir}/GL/glx_mangle.h
%dir %{_includedir}/GL/internal
%{_includedir}/GL/internal/dri_interface.h
%{_pkgconfigdir}/dri.pc
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/xorg/modules/dri/i965_dri.so
+%if %{with gallium}
+%files dri-driver-intel-iris
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/xorg/modules/dri/iris_dri.so
+%endif
+
%files dri-driver-nouveau
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/xorg/modules/dri/nouveau_vieux_dri.so
%attr(755,root,root) %{_libdir}/xorg/modules/dri/kgsl_dri.so
%attr(755,root,root) %{_libdir}/xorg/modules/dri/msm_dri.so
+%files dri-driver-kmsro
+%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/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
+%attr(755,root,root) %{_libdir}/xorg/modules/dri/imx-drm_dri.so
+%attr(755,root,root) %{_libdir}/xorg/modules/dri/meson_dri.so
+%attr(755,root,root) %{_libdir}/xorg/modules/dri/mi0283qt_dri.so
+%attr(755,root,root) %{_libdir}/xorg/modules/dri/pl111_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}/xorg/modules/dri/st7735r_dri.so
+%attr(755,root,root) %{_libdir}/xorg/modules/dri/sun4i-drm_dri.so
+
+%files dri-driver-lima
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/xorg/modules/dri/lima_dri.so
+
+%files dri-driver-panfrost
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/xorg/modules/dri/panfrost_dri.so
+
+%files dri-driver-tegra
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/xorg/modules/dri/tegra_dri.so
+
+%files dri-driver-v3d
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/xorg/modules/dri/v3d_dri.so
+
%files dri-driver-vc4
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/xorg/modules/dri/vc4_dri.so
%if %{with gallium}
%if %{with opencl}
+%ifarch %{ix86} %{x8664} x32
+%if %{with gallium_i915}
+%attr(755,root,root) %{_libdir}/gallium-pipe/pipe_i915.so
+%endif
+%endif
+
%ifarch %{arm}
%files pipe-driver-msm
%defattr(644,root,root,755)
%endif
# currently disabled as cannot be built with swrast
-%if 0
-%ifarch %{x8664}
+%ifarch %{ix86} %{x8664} x32
%files swr
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libswrAVX.so
-%attr(755,root,root) %{_libdir}/libswrAVX2.so
-%endif
+%attr(755,root,root) %{_libdir}/libswrAVX.so*
+%attr(755,root,root) %{_libdir}/libswrAVX2.so*
%endif
%endif