File amdvlk.spec of Package amdvlk
%define srcext tar.zst
Name: amdvlk
Version: 2025.Q2.1
Release: 0
Summary: AMD's open source vulkan driver
License: MIT
Group: System/Libraries
Source0: %{name}-%{version}.%{srcext}
Source1: xgl.%{srcext}
Source2: pal.%{srcext}
Source3: llpc.%{srcext}
Source4: llvm-project.%{srcext}
Source5: MetroHash.%{srcext}
Source6: CWPack.%{srcext}
Source7: gpurt.%{srcext}
# Backport of https://github.com/Tencent/rapidjson/pull/719 gcc fix from 2016.
Patch1: pal-rapidjson-gcc-fix.patch
URL: https://github.com/GPUOpen-Drivers/AMDVLK
BuildRequires: cmake
BuildRequires: libxml2-devel
BuildRequires: pkg-config
BuildRequires: pkgconfig(x11)
BuildRequires: pkgconfig(x11-xcb)
BuildRequires: pkgconfig(xshmfence)
BuildRequires: pkgconfig(xrandr)
BuildRequires: pkgconfig(dri2proto)
BuildRequires: pkgconfig(wayland-client)
BuildRequires: libopenssl-3-devel
BuildRequires: gcc-c++
BuildRequires: git
BuildRequires: ninja
BuildRequires: %{python_module jinja2}
BuildRequires: %{python_module ruamel.yaml}
BuildRequires: glslang-devel
BuildRequires: DirectXShaderCompiler-devel
Recommends: xf86-video-amdgpu
%description
The AMD Open Source Driver for Vulkan® is an open-source Vulkan driver for Radeon™ graphics adapters on Linux®. It is built on top of AMD's Platform Abstraction Library (PAL), a shared component that is designed to encapsulate certain hardware and OS-specific programming details for many of AMD's 3D and compute drivers. Leveraging PAL can help provide a consistent experience across platforms, including support for recently released GPUs and compatibility with AMD developer tools.
%prep
%setup -q -n %{name}-%{version} -a1 -a2 -a3 -a4 -a5 -a6 -a7
%autopatch -p1
%ifarch %{arm} aarch64
sed -i '/-mpreferred-stack-boundary=6/d' xgl/cmake/XglCompilerOptions.cmake
%endif
%build
mkdir -p builds
# XGL
cmake -G Ninja \
-Hxgl \
-B builds \
-DBUILD_WAYLAND_SUPPORT=ON \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_XLIB_XRANDR_SUPPORT=YES
pushd builds
ninja %{?_smp_mflags}
popd
%install
mkdir -p -m0755 %{buildroot}%{_libdir}
%{__install} -m0755 builds/icd/amdvlk*.so %{buildroot}%{_libdir}
%{__install} -D -m0644 builds/icd/amd_icd%{__isa_bits}.json \
%{buildroot}%{_datadir}/vulkan/icd.d/amd_icd.%{_build_arch}.json
%files
%defattr(-,root,root)
%{_libdir}/amdvlk*.so
%dir %{_datadir}/vulkan/icd.d
%dir %{_datadir}/vulkan
%{_datadir}/vulkan/icd.d/amd_icd.%{_build_arch}.json
%changelog