diff --git a/_service b/_service new file mode 100644 index 0000000..5baf009 --- /dev/null +++ b/_service @@ -0,0 +1,16 @@ + + + @PARENT_TAG@ + v(.*) + https://github.com/doitsujin/dxvk.git + git + @PARENT_TAG@ + + + + *.tar + gz + + + + diff --git a/baselibs.conf b/baselibs.conf index b054243..b45c4c3 100644 --- a/baselibs.conf +++ b/baselibs.conf @@ -1,4 +1,3 @@ dxvk - +/usr/bin/.* - +/usr/lib/dxvk/lib(64)?/.* + +/usr/libexec/dxvk/lib(64)?/.* requires -dxvk- diff --git a/dxvk-2.0.tar.gz b/dxvk-2.0.tar.gz new file mode 100644 index 0000000..115332e --- /dev/null +++ b/dxvk-2.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e1877b9418d1e570a75ad0ca048ac766c67ca4376ba5dab26536d3759b58830c +size 3687917 diff --git a/dxvk.changes b/dxvk.changes index 0fc8f21..d3eab39 100644 --- a/dxvk.changes +++ b/dxvk.changes @@ -1,3 +1,182 @@ +------------------------------------------------------------------- +Fri May 5 12:55:46 UTC 2023 - Björn Bidar + +- Fix empty -32bit package, don't include winedxvk in it. +- Generate package sources using _service so that submodule sources are included too. + DXVK uses vendored Vulkan headed contained in a submodule. + Fixes build. + +------------------------------------------------------------------- +Mon Mar 6 15:44:36 UTC 2023 - Marcus Meissner + +- updated to 2.0 + - Driver compatibility + A Vulkan 1.3 capable driver and wine version are required to run + this version of DXVK. See the driver support page for details. + + Many features in this release, especially the shader compilation + changes detailed below, require the use of modern Vulkan features, + such as Dynamic Rendering, Extended Dynamic State, and Null + Descriptors. Due to the significant changes required to make use + of them, it was no longer practical to maintain and test code paths + for older drivers which do not support these features. + + In practice, any system capable of running D3D11 and D3D12 games + using Proton Experimental right now will be able to run DXVK 2.0. + + Note: Third-party Vulkan layers that were not updated for Vulkan 1.3 will no longer work. + + D3D9 changes + + - Memory management improvements + + In order to reduce the likelihood of running out of address space in + 32-bit D3D9 games, DXVK will now use memory-mapped files to store + shadow copies of textures. This allows us to unmap memory that is + not being used by the game, thus freeing up significant amounts of + address space, up to several hundred Megabytes. See PR #2663 for + implementation details. + + Note: This change does not affect 64-bit games since address space + is not a concern there. It also does not affect D3D10 or D3D11 since + resource uploads work differently in those APIs and are much more + memory efficient. + + Render target feedback loops + + On drivers which support VK_EXT_attachment_feedback_loop_layout, + reading from an active render target in D3D9 games is now properly + supported, which previously caused rendering artifacts on newer AMD + hardware and required driver-level workarounds. This affects a number + of games, including GTA IV. + + Alpha test improvements + + The D3D9 alpha test implementation was changed to more closely match + the behaviour of Nvidia's implementation, which fixes inaccuracies + in various games. The d3d9.alphaTestWiggleRoom option was removed, + and games that previously required this option should now work + correctly by default. + + D3D10 changes + + DXVK previously shipped incomplete implementations of d3d10.dll and + d3d10_1.dll, but has not installed them by default since Version 1.6 + since wine's implementation provides more features that are needed + for D3D10 games to run, including the D3D10 Effects framework. + + Since our implementation is incomplete and has not been used by Proton + or Lutris for a very long time, DXVK will no longer ship these DLLs + starting with this release. The D3D10 API itself is still supported + via d3d10core.dll. + + D3D11 changes + + Feature support + + DXVK now exposes D3D11 Feature Level 12_1 with the following newly added features: + + Tiled Resources up to Tier 3, provided that the corresponding Vulkan sparse binding and sparse residency features are supported + Conservative Rasterization up to Tier 3, provided that the corresponding Vulkan conservative rasterization features are supported. + Rasterizer Ordered Views, provided that the corresponding Vulkan fragment shader interlock features are supported. + + While no games are known to use these features directly in D3D11, some + games and game launchers rely on feature support being consistent + between D3D11 and D3D12 in order to allow users to enable D3D12 + in the game options. While our implementation of these feature is + generally functional, there may be bugs or performance issues in + case a game does use them. + + Furthermore, DXVK now supports the D3D11_FEATURE_SHADER_CACHE and + D3D11_FEATURE_D3D11_OPTIONS5 feature queries. + + Note: AMD Vulkan drivers do currently not support fragment shader + interlock and are limited to feature level 12_0. + + Note: Intel's ANV driver currently does not support the corresponding + Vulkan features and is therefore limited to feature level 11_1. This + applies to both DXVK and vkd3d-proton. + + Device contexts + + The implementations of ID3D11DeviceContext were refactored so + that immediate contexts and deferred contexts no longer use common + entry points. This is closer to Windows behaviour and may improve + compatibility to third-party libraries and mods that hook into the + D3D11 immediate context specifically, and reduces CPU overhead since + some frequently used code paths are now more specialized for each + context type. + + State clear and restore methods were optimized to further reduce CPU + overhead in games that heavily use deferred contexts, e.g. Assassin's + Creed: Origins, or explicitly call ClearState frequently, e.g. God + of War. + + Shader compilation changes + + On drivers which support VK_EXT_graphics_pipeline_library, including + the IndependentInterpolationDecoration feature, Vulkan shaders will + now be compiled at the time the game loads its D3D shaders, rather + than at draw time. This reduces or eliminates shader compile stutter + in many games. + + In games that load their shaders during loading screens or in the + menu, this can lead to prolonged periods of very high CPU utilization, + especially on weaker CPUs. For affected games it is recommended to + wait for shader compilation to finish before starting the game to + avoid stutter and low performance. Shader compiler activity can be + monitored with DXVK_HUD=compiler. + + Note: The relevant Vulkan features are currently only supported + by Nvidia drivers (version 520.56.06 or later). Driver support is + expected to improve in the future. + + State cache interactions + + This feature largely replaces the state cache. If the given Vulkan + features are supported, only pipelines that cannot use the pipeline + library feature (e.g. pipelines using tessellation shaders) will + be written to and read from the state cache, so newly created state + cache files will typically only contain a few dozen to a few hundred + pipelines, as opposed to thousands or tens of thousands. If the + graphics pipeline library feature is not supported, the state cache + will be used the same way as it was in older DXVK versions. + + Note: State cache files created with DXVK versions prior to 1.4.3 can no longer be used. + + Note: Despite our efforts, due to the significant changes under + the hood, there may be issues when using an older state cache file + under some circumstances. If you experience crashes, please test + if the game runs with a clean cache file (DXVK_STATE_CACHE=reset) + before reporting a bug. + + Caveats + + Games which only load their D3D shaders at draw time (e.g. Witcher 3, + most Unreal Engine games) will still exhibit some stutter, although + it should still be less severe than without this feature. + + For 32-bit games, the implementation tries to aggressively free + Vulkan pipelines in order to save memory. This may cause stutter if + the driver's on-disk shader cache is not working properly. + + On Nvidia drivers, the on-disk shader cache will be significantly + larger than with previous versions of DXVK. It may be necessary + to bypass the size limit by setting the environment variable + __GL_SHADER_DISK_CACHE_SKIP_CLEANUP=1, or setting a new limit manually + via __GL_SHADER_DISK_CACHE_SIZE (in bytes). + + Linux build support + + Work from dxvk-native has been upstreamed in order to facilitate + native Linux builds of DXVK, which can be used as a drop-in + replacement to port D3D applications without having to change + rendering code. + + Note: When porting a D3D11 application, please refer to the Feature + support and Developer Guidelines pages on the Wiki to avoid hitting + unsupported or slow code paths in DXVK. + ------------------------------------------------------------------- Wed Jul 13 15:18:04 UTC 2022 - Marcus Meissner diff --git a/dxvk.spec b/dxvk.spec index fafd6e0..6d64756 100644 --- a/dxvk.spec +++ b/dxvk.spec @@ -1,7 +1,7 @@ # # spec file for package dxvk # -# Copyright (c) 2022 SUSE LLC +# Copyright (c) 2023 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,13 +17,13 @@ Name: dxvk -Version: 1.10.2 +Version: 2.0 Release: 0 Summary: Vulkan-based D3D11 implementation for Linux / Wine License: zlib-acknowledgement Group: System/Emulators/PC URL: https://github.com/doitsujin/dxvk -Source0: https://github.com/doitsujin/dxvk/archive/v%{version}.tar.gz +Source0: %{name}-%{version}.tar.gz Source1: baselibs.conf BuildRequires: gcc diff --git a/v1.10.2.tar.gz b/v1.10.2.tar.gz deleted file mode 100644 index 1d91b8f..0000000 --- a/v1.10.2.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:bea8a57b45c06d48b22f9f32777360c75eaa7bd07882e5b2f4206c305ecb281a -size 1199562