I have a custom version of dxvk that I wish to use to replace protons dxvk.
I dont want to have to copy paste replace them manually. The dlls update every so days and i dont want the extra busy work.
Next, what "custom version" do you hae? And how / why do the dlls update every ?? days? (it seems there was a typo there). Unless I'm missing something any dxvk dlls for use with wine would be provided only by an AUR package, right, I don't see these in the wine package contents. AUR packages do not update themselves, you update them on your schedule.
But whatever is going on, if copy/pasting them wouldn't work because they will be replaced by an update, symlinking them wouldn't either, as those symlinks would then be overwritten by the same update.
I am trying to replace protons dxvk with the mingw dxvk. I dont want to do this manually becuase of the update frequency of mingw dxvk.
I figured a symlink would solve this issue. It worked fine for lutris as the dxvk file structure is the same and it just registers as its own dxvk version that i have to select.
But I dont mind the mingw dxvk updating. I dont want to stop that. Infact I want the most up to date dxvk.
I just want to know how to redirect "DLL" files from one directory to another directory. So I dont have to manually replace DLLs every update.
I'm not talking about the 'mingw dxvk' package. Its the "original" package that would overwrite the files/links. Once the original package gets updated all your links get lost. That's by design. Creating links alone is not enough.
No matter how you redirect/link/overwrite/copy the files/folder. If Proton can read it pacman can write it. You have to stop the latter. And that's what i described above. If that's not what you want, i probably haven't understood the problem at all.
Alright. Im willing to conceed this as just somthing that would require a dedicated script.
Im just going to use install_dxvk.sh with --symlink to each game. For lutris it seems to have stuck dispite updates.
WINEPREFIX=/home/USERNAME/.local/share/Steam/steamapps/compatdata/239160/pfx '/usr/share/dxvk/dxvk/dxvk/setup_dxvk.sh' install --symlink for example.
If someone could correct me if the dxvk option i can select in lutris actually has a bareing in games launch from lutris it would help. Thanks. Ill consider this solved.
DXVK is a DirectX 9, 10 and 11 to Vulkan translation layer for Wine. It performs a lot better than Wine's built-in DX9-11 translayer and it has better compatibility with games, scene demos and other graphical programs using DX9 to 11. It is something you definitively want to install if you run games and other graphical applications in Wine.
DXVK is a lot faster than the DX to OpenGL translation layer built into Wine. Wine's built-in translation layer will typically provide 70-80% of the performance DXVK offers. It is simply a more efficient translation layer using a more efficient graphics API.
How much faster DXVK will be will depend on the game, but it is generally a lot faster. Do note that it will only affect games using DX 9 to 11, it will not be used for applications using the DX12, OpenGL and Vulkan APIs directly.
The FINAL FANTASY XIV: Stormblood benchmark does not only show that DXVK is faster, it also illustrates differences in compatibility. There are many visible rendering errors when Wine's built-in translation layer is used that are not when DXVK is enabled.
There is simply no reason to use Wine's built in DX to OpenGL translation layer when DXVK exists - unless you are a purist who mind that DXVK is written in C++, not beautiful clean C like Wine and Wine's DX to OpenGL translation layer is. The underlying C code does not provide any performance-advantage in this case, so it isn't a worthwhile factor unless you are religious about those sorts of things.
It is also possible, and fairly easy, to install DXVK directly into a .wine folder. You will need to get a tarball from the DXVK releases page at github.com/doitsujin/dxvk/releases, extract it and run setup_dxvk.sh within with with install as an argument (./setup_dxvk.sh install) and that's it.
..and now comes the somewhat unusual part. DXVK is built by running a script called package-release.sh with the argument master followed by a folder and, optionally, --no-package. The script will create a subfolder named dxvk-master within the folder you specify.
A folder named $HOME/.wine/dxvk-master will be created if it builds successfully. That folder will contain a script called setup_dxvk.sh along with two folders: x32 and x64. You can enter that folder and run setup_dxvk.sh install to make Wine use your shiny new DXVK build.
The package-release.sh build script will complain that $HOME/.wine/dxvk-master exists if you update the source tree with git pull and run it again, so you will have to eradicate the target folder between compilations.
It can be enabled by setting the environment variable DXVK_HUD. It can be set to display an array of data including devinfo, fps, frametimes and more. See the dxvk github page for all. Setting DXVK_HUD=1 equals DXVK_HUD=devinfo,fps which displays GPU and driver version and framerate. Setting DXVK_HUD=full enables everything the HUD can show.
You're going to need Wine. You can download it from the package manager of your distro. For Arch and Arch-based distros you'll need pacman -S wine. For Debian and Ubuntu-based distros it's recommended to go to WineHQ, as the distro repositories serve heavily outdated versions. Any other distros, refer to your own resources.
Ideally you'll want to install the game, move the files over to a fresh prefix and delete the old one, as it often installs dependencies for Windows which may cause issues. While using the same prefix may sometimes work, it should be the first step to resolving any issues.
Now you need to install DXVK on top. Extract the DXVK archive to wherever you'd like and cd into that folder. From there run WINEPREFIX=/path/to/your/prefix ./setup_dxvk.sh install and that should apply DXVK.
You can create a shortcut for running your game. For example, if you have bash, creating a .desktop file in $HOME/.local/share/applications and under the exec= field, type /bin/sh -c "" and in quotes, the command you've used to launch the game.
Lutris is a universal game manager that'll help you accomplish the steps above with more ease. Plenty of resources online to help you get started. No point in linking any, as the software is under active development, so look it up on the internet.
Bottles tries to fill in a gap for all your Windows programs. It sports a very basic GNOME-style interface with only the essential features. It has easy version management and covers pretty much all bases to help you get your prefixes sorted out in a user-friendly way.
Modding is the same as on Windows. You'll have to launch the same relevant things as described in the mod you're trying to download. Mimic the steps into the prefix you created, as you would on Windows. For example, launching SEF and SEF-based mods you'll have to navigate to the mod folder and launch the .exe in the Extras folder.
If it crashes on changing the resolution, you'll have to edit Swat4X.ini in the System folder of the module you're running, changing FullscreenViewportX and FullscreenViewportY values under [WinDrv.WindowsClient] to your resolution.
If you want to check if DXVK is running or want a performance HUD, add DXVK_HUD=1 before the WINEPREFIX, everything stays the same. If you're on Lutris, go to System options and scroll down to Environment variables. Click on Add, then add DXVK_HUD under Key, then add 1 under Value.
If on your system you get any errors or performance issues, try Lutris or fiddle with winetricks. Some older games have issues with Wine engines past 5.13, you might want to try an engine before 5.13. Or you can try a custom engine, such as wine-tkg.
Worthwhile Winetricks to install may be d3dx9 and d3dcompiler_47. Install winetricks package if you don't have it already. Run WINEPREFIX=/path/to/your/prefix winetricks and follow GUI prompts. Ignore any errors and after it's done, I recommend switching to Windows 7 on winecfg.
This guide assumes that the reader is at least somewhat familiar with his distribution of choice and isn't afraid of the terminal. While this guide is written with Ubuntu in mind, it should be fairly simple to use with other distributions.
Install Wine using a repository directly from the Wine developers. Select your distribution, follow the instructions and install the staging branch of wine (winehq-staging package). This way you will always have the latest version of Wine. Wine development is quite rapid so you don't want to be stuck on possibly years old versions from your distribution's repository.
Now you can just double click Stalker-CoC.exe and the game should start up! Make sure to use DX8 or DX9 rendering at this point. DX11 may or may not launch, the DX11 support on stock Wine is still very poor. We will add better support for more recent versions of DirectX next.
While the game is playable in DX9 mode using normal Wine, you have to rely on an old method of translating DirectX calls to OpenGL. DXVK is a fairly recent project that translates DX10 and DX11 calls to Vulkan instead. I gained around 20-30fps on some levels by using the DX10 renderer with DXVK instead of the DX9 renderer with vanilla Wine.
After making sure your drivers are recent enough, you can install DXVK itself. Download the latest release from DXVK's GitHub page. Unpack the downloaded archive, navigate into the dxvk folder containing setup_dxvk.sh and run the following command
Now you can start the game and change the renderer to DX10 or 11! You know that DXVK is working if it creates some log files in the game's directory (xrEngine_d3d11.log and xrEngine_dxgi.log when playing stalker). If you get a black screen or the game minimizes automatically (and the log files are created so you know that DXVK is correctly installed), try alt-tabbing in and out of the game window a few times.
64591212e2