%global debug_package %{nil} %undefine _hardened_build %undefine _include_frame_pointers %global _lto_cflags %{nil} %{?mingw_package_header} #%%global _default_patch_fuzz 2 # get the submodule commits from: # https://github.com/doitsujin/dxvk/tree/v3.0.1/subprojects %global libdisplay_commit 275e6459c7ab1ddd4b125f28d0440716e4888078 %global libdisplay_shortcommit %%(c=%{libdisplay_commit}; echo ${c:0:7}) %global dxbcspirv_commit 6da3ed38834b0ae3ae7f4267568181dabc7104bc %global dxbcspirv_shortcommit %%(c=%{dxbcspirv_commit}; echo ${c:0:7}) %global winepedir x86_64-windows %global target_x86_type 64 %global mingw_sysroot %mingw64_sysroot %global mingw_build_win64 1 %global mingw_build_win32 0 %global wineversion 11.16 %global gitdate 2026xxxx %global commit xxx %global shortcommit %(c=%{commit}; echo ${c:0:7}) %global version 3.1 %global release 100 # set this to "1" if building a git snapshot %global snapshot 0 Name: wine-dxvk %if %{snapshot} Version: %{version}^%{gitdate}git%{shortcommit} %else Version: %{version} %endif Release: %{release}%{?dist} Summary: Vulkan-based D3D11 implementation for Linux / Wine License: zlib AND MIT URL: https://github.com/doitsujin/dxvk %if %{snapshot} # git clone --recurse-submodules https://github.com/doitsujin/dxvk.git # git log # ~/bin/git-archive-all.sh --format=tar.gz --prefix=dxvk/ -o ../dxvk-3.0-git1c30bc9.tar.gz Source0: %{url}/archive/%{commit}/dxvk-%{shortcommit}.tar.gz %else # git checkout v3.0.2 # git submodule update --init --recursive # ~/bin/git-archive-all.sh --format=tar.gz --prefix=dxvk-3.0.2/ -o ../dxvk-3.0.2.tar.gz #Source0: %%{url}/archive/v%%{version}/dxvk-%%{version}.tar.gz Source0: dxvk-%{version}.tar.gz %endif ## in dxvk/subprojects #Source1: https://gitlab.freedesktop.org/frog/libdisplay-info/-/archive/%%{libdisplay_commit}/libdisplay-info-%%{libdisplay_shortcommit}.tar.gz ## git clone --recurse-submodules https://github.com/doitsujin/dxbc-spirv.git ## ~/bin/git-archive-all.sh --format=tar.gz --prefix=dxbc-spirv/ -o ../dxbc-spirv-29ed922.tar.gz #Source2: https://github.com/doitsujin/dxbc-spirv/archive/%%{dxcbspirv_commit}/dxbc-spirv-%%{dxbcspirv_shortcommit}.tar.gz # original at https://gist.github.com/doitsujin/1652e0e3382f0e0ff611e70142684d01 # https://aur.archlinux.org/packages/dxvk-bin Source3: setup_dxvk.sh ## https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=dxvk-mingw #Patch0: dxvk-extraopts.patch BuildRequires: gcc BuildRequires: gcc-c++ BuildRequires: glslang BuildRequires: meson BuildRequires: git-core BuildRequires: wine-devel = %{wineversion} BuildRequires: mingw64-filesystem BuildRequires: mingw64-binutils BuildRequires: mingw64-headers BuildRequires: mingw64-cpp BuildRequires: mingw64-gcc BuildRequires: mingw64-gcc-c++ BuildRequires: mingw64-winpthreads-static BuildRequires: mingw64-vulkan-headers BuildRequires: mingw64-spirv-headers Requires(pre): vulkan-tools #Requires: wine-core >= %%{wineversion} Requires: vulkan-loader%{?_isa} Requires: wine-dxvk-dxgi%{?_isa} = %{version}-%{release} Requires: wine-dxvk-d3d8%{?_isa} = %{version}-%{release} Requires: wine-dxvk-d3d9%{?_isa} = %{version}-%{release} Requires: wine-dxvk-d3d10%{?_isa} = %{version}-%{release} ExclusiveArch: x86_64 Provides: bundled(libdisplay-info) = 0.3.0~dev^git%{libdisplay_shortcommit} Provides: bundled(dxbc-spirv) = 0^git%{dxbcspirv_shortcommit} %description %{summary} %package dxgi Summary: DXVK DXGI implementation %description dxgi %{summary} This package does not enable the use of this DXGI implementation, it should be installed and overridden per prefix. %package d3d10 Summary: DXVK D3D10 implementation Requires: wine-dxvk%{?_isa} = %{version}-%{release} %description d3d10 %{summary} %package d3d9 Summary: DXVK D3D9 implementation Requires: wine-dxvk%{?_isa} = %{version}-%{release} %description d3d9 %{summary} %package d3d8 Summary: DXVK D3D8 implementation Requires: wine-dxvk%{?_isa} = %{version}-%{release} %description d3d8 %{summary} %prep %if %{snapshot} %autosetup -p1 -n dxvk -a1 -a2 rm -rf subprojects/libdisplay-info && mv libdisplay-info subprojects/libdisplay-info %else %autosetup -p1 -n dxvk-%{version} %endif %build # https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=dxvk-mingw mkdir -p build_win%{__isa_bits} export BUILDSRC="`pwd`" %mingw_meson \ --cross-file ${BUILDSRC}/build-win%{__isa_bits}.txt \ --prefix "/usr/share/dxvk/x%{__isa_bits}" \ --buildtype "release" \ --force-fallback-for=libdisplay-info \ --strip \ -Db_ndebug=false %mingw_ninja -v %install %mingw_ninja_install # do not use winebuild! mkdir -p %{buildroot}%{_datadir}/dxvk/x%{__isa_bits} install -p -m 644 %buildroot%mingw_sysroot/mingw/bin/dxgi.dll %{buildroot}%{_datadir}/dxvk/x%{__isa_bits}/dxgi.dll install -p -m 644 %buildroot%mingw_sysroot/mingw/bin/d3d8.dll %{buildroot}%{_datadir}/dxvk/x%{__isa_bits}/d3d8.dll install -p -m 644 %buildroot%mingw_sysroot/mingw/bin/d3d9.dll %{buildroot}%{_datadir}/dxvk/x%{__isa_bits}/d3d9.dll install -p -m 644 %buildroot%mingw_sysroot/mingw/bin/d3d10core.dll %{buildroot}%{_datadir}/dxvk/x%{__isa_bits}/d3d10core.dll install -p -m 644 %buildroot%mingw_sysroot/mingw/bin/d3d11.dll %{buildroot}%{_datadir}/dxvk/x%{__isa_bits}/d3d11.dll # clean-up rm -rf %{buildroot}%{mingw_sysroot}/mingw # install setup_dxvk.sh mkdir -p %{buildroot}%{_bindir} install -D -m0755 %{SOURCE3} %{buildroot}%{_bindir}/ %check # nothing to do here %pre # remove wine-dxxx references from alternatives, use setup_dxvk.sh instead %{_sbindir}/alternatives --remove-all 'wine-dxgi%{?_isa}' 2>/dev/null || /bin/true %{_sbindir}/alternatives --remove-all 'wine-d3d8%{?_isa}' 2>/dev/null || /bin/true %{_sbindir}/alternatives --remove-all 'wine-d3d9%{?_isa}' 2>/dev/null || /bin/true %{_sbindir}/alternatives --remove-all 'wine-d3d10%{?_isa}' 2>/dev/null || /bin/true %{_sbindir}/alternatives --remove-all 'wine-d3d10core%{?_isa}' 2>/dev/null || /bin/true %{_sbindir}/alternatives --remove-all 'wine-d3d11%{?_isa}' 2>/dev/null || /bin/true %files %license LICENSE %doc README.md %{_bindir}/setup_dxvk.sh %{_datadir}/dxvk/x%{__isa_bits}/d3d11.dll %files d3d8 %license LICENSE %{_datadir}/dxvk/x%{__isa_bits}/d3d8.dll %files d3d9 %license LICENSE %{_datadir}/dxvk/x%{__isa_bits}/d3d9.dll %files d3d10 %license LICENSE %{_datadir}/dxvk/x%{__isa_bits}/d3d10core.dll %files dxgi %license LICENSE %{_datadir}/dxvk/x%{__isa_bits}/dxgi.dll %changelog * Sun Aug 09 2026 Patrick - initial release