Accepting request 1085932 from home:Thaodan:branches:Emulators:Wine
- Keep setup_dxvk.sh script that was deleted by upstream.
For more context see:
64cb1ad208
- Update to 2.1
* HDR support
On systems supporting HDR10 color spaces, HDR can now be
enabled by setting the environment variable DXVK_HDR=1,
or by setting the option dxgi.enableHDR = True in the configuration
file. When using vkd3d-proton 2.8 or newer, this will allow D3D12
games to detect and use the HDR10 color space if they support it.
No major Linux desktop environment currently supports HDR. In order
to use this on Linux, a Gamescope session with --hdr-enabled is required.
This is currently only supported under AMDGPU and requires kernel patches
from the josh-hdr-colorimetry branch.
* Shader compilation improvements
Use of pipeline libraries was extended to pipelines with tessellation or
geometry shaders in order to further reduce stutter. Additionally, more features
of the VK_EXT_extended_dynamic_state3 extension are leveraged to reduce stutter
in some situations when MSAA is used, provided that the Vulkan driver supports them.
* Sample rate shading
For older games that support MSAA, the d3d9.forceSampleRateShading and
d3d11.forceSampleRateShading options were added to let users enable
sample rate shading for all shaders. This will have a very high
impact on GPU-bound performance, but may increase overall image quality
in certain games that suffer from specular aliasing or shimmering alpha-tested geometry.
* Improved D3D11 command submission logic in order to make overall performance more consistent,
and to bring DXVK's behaviour more in line with native D3D11 drivers.
* Fixed D3D11 reference counting issues around 2D textures. (#3169)
* Fixed Vulkan validation errors when creating DXGI_FORMAT_A8_UNORM UAVs.
Note that UAVs of this format may not work as expected.
* Fixed Vulkan validation errors that would occur when allocating dedicated image memory
on Nvidia GPUs in some situations.
* Fixed Vulkan validation errors caused by broken timeline semaphores on 32-bit Proton.
* Worked around an issue with the Uplay overlay being stuck on screen. (#3146)
* Worked around a bug in AMD's Windows driver as well as AMDVLK that would
cause numerous games to crash since DXVK 2.0. (#3172)
* Fewer threads will be used to perform background optimization of graphics pipeines.
This may result in a smoother gameplay experience on some systems.
* Ashes of the Singularity: Fixed performance regression caused by suboptimal descriptor set allocation.
* Battlefield: Bad Company 2: Fixed flickering (#3078, PR #3079)
* Cardfight!! Vanguard: Fixed rendering (PR #3068).
* Gujian 3: Fixed rendering issues on some GPUs. (#1784)
* Resident Evil 4 HD: Fixed invalid Vulkan usage causing a GPU hang on RADV. (PR #3089)
* Saints Row: The Third: Fixed a severe performance issue with rain when using the D3D9 renderer.
(#2473, PR #3158)
* Sekiro: Shadows Die Twice: Fixed stuttering issues on Nvidia GPUs. (#3179)
* Sonic Frontiers: Worked around a game bug that would cause shadows to flicker when GPU-bound.
* Supreme Commander: Forged Alliance: Fixed a crash after loading (#3058, PR #3060)
* Note: Due to changes to our DXGI implementation, older versions of vkd3d-proton (prior to 2.8)
will no longer work with this version of DXVK.
I tried to cut down the changelog as much as possible to cover only the relevant sections.
OBS-URL: https://build.opensuse.org/request/show/1085932
OBS-URL: https://build.opensuse.org/package/show/Emulators:Wine/dxvk?expand=0&rev=36
This commit is contained in:
parent
5d904368f9
commit
0a56a282bb
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:e1877b9418d1e570a75ad0ca048ac766c67ca4376ba5dab26536d3759b58830c
|
||||
size 3687917
|
3
dxvk-2.1.tar.gz
Normal file
3
dxvk-2.1.tar.gz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:1f04eca4c436fc795ed28ddb368d388e18d7b0b531885129bed363558eaae6dd
|
||||
size 3802130
|
57
dxvk.changes
57
dxvk.changes
@ -1,3 +1,60 @@
|
||||
-------------------------------------------------------------------
|
||||
Fri May 5 22:16:37 UTC 2023 - Björn Bidar <bjorn.bidar@thaodan.de>
|
||||
|
||||
- Keep setup_dxvk.sh script that was deleted by upstream.
|
||||
For more context see:
|
||||
https://github.com/doitsujin/dxvk/commit/64cb1ad208f80b11400eef779e99fec223754098
|
||||
- Update to 2.1
|
||||
* HDR support
|
||||
On systems supporting HDR10 color spaces, HDR can now be
|
||||
enabled by setting the environment variable DXVK_HDR=1,
|
||||
or by setting the option dxgi.enableHDR = True in the configuration
|
||||
file. When using vkd3d-proton 2.8 or newer, this will allow D3D12
|
||||
games to detect and use the HDR10 color space if they support it.
|
||||
|
||||
No major Linux desktop environment currently supports HDR. In order
|
||||
to use this on Linux, a Gamescope session with --hdr-enabled is required.
|
||||
This is currently only supported under AMDGPU and requires kernel patches
|
||||
from the josh-hdr-colorimetry branch.
|
||||
|
||||
* Shader compilation improvements
|
||||
Use of pipeline libraries was extended to pipelines with tessellation or
|
||||
geometry shaders in order to further reduce stutter. Additionally, more features
|
||||
of the VK_EXT_extended_dynamic_state3 extension are leveraged to reduce stutter
|
||||
in some situations when MSAA is used, provided that the Vulkan driver supports them.
|
||||
|
||||
* Sample rate shading
|
||||
For older games that support MSAA, the d3d9.forceSampleRateShading and
|
||||
d3d11.forceSampleRateShading options were added to let users enable
|
||||
sample rate shading for all shaders. This will have a very high
|
||||
impact on GPU-bound performance, but may increase overall image quality
|
||||
in certain games that suffer from specular aliasing or shimmering alpha-tested geometry.
|
||||
* Improved D3D11 command submission logic in order to make overall performance more consistent,
|
||||
and to bring DXVK's behaviour more in line with native D3D11 drivers.
|
||||
* Fixed D3D11 reference counting issues around 2D textures. (#3169)
|
||||
* Fixed Vulkan validation errors when creating DXGI_FORMAT_A8_UNORM UAVs.
|
||||
Note that UAVs of this format may not work as expected.
|
||||
* Fixed Vulkan validation errors that would occur when allocating dedicated image memory
|
||||
on Nvidia GPUs in some situations.
|
||||
* Fixed Vulkan validation errors caused by broken timeline semaphores on 32-bit Proton.
|
||||
* Worked around an issue with the Uplay overlay being stuck on screen. (#3146)
|
||||
* Worked around a bug in AMD's Windows driver as well as AMDVLK that would
|
||||
cause numerous games to crash since DXVK 2.0. (#3172)
|
||||
* Fewer threads will be used to perform background optimization of graphics pipeines.
|
||||
This may result in a smoother gameplay experience on some systems.
|
||||
* Ashes of the Singularity: Fixed performance regression caused by suboptimal descriptor set allocation.
|
||||
* Battlefield: Bad Company 2: Fixed flickering (#3078, PR #3079)
|
||||
* Cardfight!! Vanguard: Fixed rendering (PR #3068).
|
||||
* Gujian 3: Fixed rendering issues on some GPUs. (#1784)
|
||||
* Resident Evil 4 HD: Fixed invalid Vulkan usage causing a GPU hang on RADV. (PR #3089)
|
||||
* Saints Row: The Third: Fixed a severe performance issue with rain when using the D3D9 renderer.
|
||||
(#2473, PR #3158)
|
||||
* Sekiro: Shadows Die Twice: Fixed stuttering issues on Nvidia GPUs. (#3179)
|
||||
* Sonic Frontiers: Worked around a game bug that would cause shadows to flicker when GPU-bound.
|
||||
* Supreme Commander: Forged Alliance: Fixed a crash after loading (#3058, PR #3060)
|
||||
* Note: Due to changes to our DXGI implementation, older versions of vkd3d-proton (prior to 2.8)
|
||||
will no longer work with this version of DXVK.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri May 5 12:55:46 UTC 2023 - Björn Bidar <bjorn.bidar@thaodan.de>
|
||||
|
||||
|
@ -17,7 +17,7 @@
|
||||
|
||||
|
||||
Name: dxvk
|
||||
Version: 2.0
|
||||
Version: 2.1
|
||||
Release: 0
|
||||
Summary: Vulkan-based D3D11 implementation for Linux / Wine
|
||||
License: zlib-acknowledgement
|
||||
@ -25,6 +25,7 @@ Group: System/Emulators/PC
|
||||
URL: https://github.com/doitsujin/dxvk
|
||||
Source0: %{name}-%{version}.tar.gz
|
||||
Source1: baselibs.conf
|
||||
Source2: setup_dxvk.sh
|
||||
|
||||
BuildRequires: gcc
|
||||
BuildRequires: gcc-c++
|
||||
@ -82,7 +83,7 @@ mkdir -p %{buildroot}%{_bindir} %{buildroot}%{_libexecdir}/%{name}/bin
|
||||
sed \
|
||||
-e 's|basedir=.*|basedir="%{_libexecdir}/%{name}"|g' \
|
||||
-e 's|x32|lib|g' -e 's|x64|lib64|g' \
|
||||
setup_dxvk.sh > %{buildroot}%{_libexecdir}/%{name}/bin/setup_dxvk.sh
|
||||
%{SOURCE2}> %{buildroot}%{_libexecdir}/%{name}/bin/setup_dxvk.sh
|
||||
ln -s %{_libexecdir}/%{name}/bin/setup_dxvk.sh %{buildroot}%{_bindir}/wine%{name}
|
||||
|
||||
#install dxvk proper
|
||||
|
206
setup_dxvk.sh
Normal file
206
setup_dxvk.sh
Normal file
@ -0,0 +1,206 @@
|
||||
#!/bin/bash
|
||||
|
||||
# default directories
|
||||
dxvk_lib32=${dxvk_lib32:-"x32"}
|
||||
dxvk_lib64=${dxvk_lib64:-"x64"}
|
||||
|
||||
# figure out where we are
|
||||
basedir="$(dirname "$(readlink -f "$0")")"
|
||||
|
||||
# figure out which action to perform
|
||||
action="$1"
|
||||
|
||||
case "$action" in
|
||||
install)
|
||||
;;
|
||||
uninstall)
|
||||
;;
|
||||
*)
|
||||
echo "Unrecognized action: $action"
|
||||
echo "Usage: $0 [install|uninstall] [--without-dxgi] [--symlink]"
|
||||
exit 1
|
||||
esac
|
||||
|
||||
# process arguments
|
||||
shift
|
||||
|
||||
with_dxgi=true
|
||||
file_cmd="cp -v --reflink=auto"
|
||||
|
||||
while (($# > 0)); do
|
||||
case "$1" in
|
||||
"--without-dxgi")
|
||||
with_dxgi=false
|
||||
;;
|
||||
"--symlink")
|
||||
file_cmd="ln -s -v"
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
# check wine prefix before invoking wine, so that we
|
||||
# don't accidentally create one if the user screws up
|
||||
if [ -n "$WINEPREFIX" ] && ! [ -f "$WINEPREFIX/system.reg" ]; then
|
||||
echo "$WINEPREFIX:"' Not a valid wine prefix.' >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# find wine executable
|
||||
export WINEDEBUG=-all
|
||||
# disable mscoree and mshtml to avoid downloading
|
||||
# wine gecko and mono
|
||||
export WINEDLLOVERRIDES="mscoree,mshtml="
|
||||
|
||||
wine="wine"
|
||||
wine64="wine64"
|
||||
wineboot="wineboot"
|
||||
|
||||
# $PATH is the way for user to control where wine is located (including custom Wine versions).
|
||||
# Pure 64-bit Wine (non Wow64) requries skipping 32-bit steps.
|
||||
# In such case, wine64 and winebooot will be present, but wine binary will be missing,
|
||||
# however it can be present in other PATHs, so it shouldn't be used, to avoid versions mixing.
|
||||
wine_path=$(dirname "$(which $wineboot)")
|
||||
wow64=true
|
||||
if ! [ -f "$wine_path/$wine" ]; then
|
||||
wine=$wine64
|
||||
wow64=false
|
||||
fi
|
||||
|
||||
# resolve 32-bit and 64-bit system32 path
|
||||
winever=$($wine --version | grep wine)
|
||||
if [ -z "$winever" ]; then
|
||||
echo "$wine:"' Not a wine executable. Check your $wine.' >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# ensure wine placeholder dlls are recreated
|
||||
# if they are missing
|
||||
$wineboot -u
|
||||
|
||||
win64_sys_path=$($wine64 winepath -u 'C:\windows\system32' 2> /dev/null)
|
||||
win64_sys_path="${win64_sys_path/$'\r'/}"
|
||||
if $wow64; then
|
||||
win32_sys_path=$($wine winepath -u 'C:\windows\system32' 2> /dev/null)
|
||||
win32_sys_path="${win32_sys_path/$'\r'/}"
|
||||
fi
|
||||
|
||||
if [ -z "$win32_sys_path" ] && [ -z "$win64_sys_path" ]; then
|
||||
echo 'Failed to resolve C:\windows\system32.' >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# create native dll override
|
||||
overrideDll() {
|
||||
$wine reg add 'HKEY_CURRENT_USER\Software\Wine\DllOverrides' /v $1 /d native /f >/dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
echo -e "Failed to add override for $1"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
# remove dll override
|
||||
restoreDll() {
|
||||
$wine reg delete 'HKEY_CURRENT_USER\Software\Wine\DllOverrides' /v $1 /f > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Failed to remove override for $1"
|
||||
fi
|
||||
}
|
||||
|
||||
# copy or link dxvk dll, back up original file
|
||||
installFile() {
|
||||
dstfile="${1}/${3}.dll"
|
||||
srcfile="${basedir}/${2}/${3}.dll"
|
||||
|
||||
if [ -f "${srcfile}.so" ]; then
|
||||
srcfile="${srcfile}.so"
|
||||
fi
|
||||
|
||||
if ! [ -f "${srcfile}" ]; then
|
||||
echo "${srcfile}: File not found. Skipping." >&2
|
||||
return 1
|
||||
fi
|
||||
|
||||
if [ -n "$1" ]; then
|
||||
if [ -f "${dstfile}" ] || [ -h "${dstfile}" ]; then
|
||||
if ! [ -f "${dstfile}.old" ]; then
|
||||
mv -v "${dstfile}" "${dstfile}.old"
|
||||
else
|
||||
rm -v "${dstfile}"
|
||||
fi
|
||||
$file_cmd "${srcfile}" "${dstfile}"
|
||||
else
|
||||
echo "${dstfile}: File not found in wine prefix" >&2
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
return 0
|
||||
}
|
||||
|
||||
# remove dxvk dll, restore original file
|
||||
uninstallFile() {
|
||||
dstfile="${1}/${3}.dll"
|
||||
srcfile="${basedir}/${2}/${3}.dll"
|
||||
|
||||
if [ -f "${srcfile}.so" ]; then
|
||||
srcfile="${srcfile}.so"
|
||||
fi
|
||||
|
||||
if ! [ -f "${srcfile}" ]; then
|
||||
echo "${srcfile}: File not found. Skipping." >&2
|
||||
return 1
|
||||
fi
|
||||
|
||||
if ! [ -f "${dstfile}" ] && ! [ -h "${dstfile}" ]; then
|
||||
echo "${dstfile}: File not found. Skipping." >&2
|
||||
return 1
|
||||
fi
|
||||
|
||||
if [ -f "${dstfile}.old" ]; then
|
||||
rm -v "${dstfile}"
|
||||
mv -v "${dstfile}.old" "${dstfile}"
|
||||
return 0
|
||||
else
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
install() {
|
||||
installFile "$win64_sys_path" "$dxvk_lib64" "$1"
|
||||
inst64_ret="$?"
|
||||
|
||||
inst32_ret=-1
|
||||
if $wow64; then
|
||||
installFile "$win32_sys_path" "$dxvk_lib32" "$1"
|
||||
inst32_ret="$?"
|
||||
fi
|
||||
|
||||
if (( ($inst32_ret == 0) || ($inst64_ret == 0) )); then
|
||||
overrideDll "$1"
|
||||
fi
|
||||
}
|
||||
|
||||
uninstall() {
|
||||
uninstallFile "$win64_sys_path" "$dxvk_lib64" "$1"
|
||||
uninst64_ret="$?"
|
||||
|
||||
uninst32_ret=-1
|
||||
if $wow64; then
|
||||
uninstallFile "$win32_sys_path" "$dxvk_lib32" "$1"
|
||||
uninst32_ret="$?"
|
||||
fi
|
||||
|
||||
if (( ($uninst32_ret == 0) || ($uninst64_ret == 0) )); then
|
||||
restoreDll "$1"
|
||||
fi
|
||||
}
|
||||
|
||||
# skip dxgi during install if not explicitly
|
||||
# enabled, but always try to uninstall it
|
||||
if $with_dxgi || [ "$action" == "uninstall" ]; then
|
||||
$action dxgi
|
||||
fi
|
||||
|
||||
$action d3d9
|
||||
$action d3d10core
|
||||
$action d3d11
|
Loading…
Reference in New Issue
Block a user