Winetricks / winetricks

Winetricks is an easy way to work around problems in Wine
GNU Lesser General Public License v2.1
2.8k stars 403 forks source link

DXVK and Vkd3d as winetricks packages #999

Closed j3ky closed 6 years ago

j3ky commented 6 years ago

I've been wondering,

It would be great winetricks being able to install both projects latest binaries as we do with VulkanSD, Steam...

A feature to install/update to their latest binaries would add even more attention to winetricks project!

Thanks!

austin987 commented 6 years ago

Those are native binaries / custom wine forks, not win32/64 packages. That is outside the scope of winetricks.

qwertychouskie commented 6 years ago

At least DXVK and VK9 are built as DLLs to be put into the wine prefix, don't know about VKD3D though.

austin987 commented 6 years ago

I've never used them, so perhaps I'm wrong. Are they not native elf binaries? Or are they win32/64 binaries?

qwertychouskie commented 6 years ago

DXVK is distributed as d3d11.dll and dxgi.dll files with 32-bit and 64-bit versions in the package (https://github.com/doitsujin/dxvk/releases/download/v0.51/dxvk-0.51.tar.gz). VK9 is also distributed as a d3d9.dll and some supporting files (https://github.com/disks86/VK9/releases). In fact, VK9 is developed primarily on Windows. Also some people have used DXVK in Windows.

austin987 commented 6 years ago

I see, thanks for the info.

bobwya commented 6 years ago

@austin987

DXVK has frequent releases, with pre-built PE 32-bit and PE+ 64-bit binary dll's. DXVK hooks into Wine / Wine Staging by providing alternative dxgi.dll and d3d11.dll files, that can be enabled using standard Wine DLL overrides. DXVK provides setup shell scripts to do this automatically. Under the hood DXVK leverages Wine-Vulkan to do the system Vulkan calls.

The impact of DXVK on some DX11 titles is nothing short of phenomenal! E.g. Grand Theft Auto V is nearly on parity with native Windows.

shmerl commented 6 years ago

This is a good fit for winetricks indeed. You can find dxvk releases here. Using the dll requires Wine built with Vulkan support enabled.

SveSop commented 6 years ago

I think DXVK and VK9 is primary candidates for a winetricks package.

VKD3D afaik is a wine-build-include thing.. Atleast seemingly if you have vkd3d headers/libraries installed, wine checks for this when doing configure. Now.. if i could only figure out how to actually build the vkd3d lib :)

bobwya commented 6 years ago

@SveSop

There's official Gentoo package for this now... See: wine overlay : vkd3d-1.0.ebuild

Though I'm still not sure what you can actually do with a D3D12 translation layer...?? Aren't most D3D12 games UWP applications?

I don't think a winetricks verb is useful for this library... It'll probably go in the distribution official repositories - since it is the Wine D3D12 translation layer (there won't be one leveraging OpenGL).

mihawk90 commented 6 years ago

Aren't most D3D12 games UWP applications?

nah, there are quite some DX12 games that aren't UWP: https://en.wikipedia.org/wiki/List_of_games_with_DirectX_12_support

Just a few I know aren't UWP would be Rise of the Tomb Raider, Battlefront I/II, Division, Hitman, Ashes, Deus Ex, BF1, Civ VI. Also Metro Exodus and Battle for Azeroth are probably not going to be UWP.

Then again none of those are DX12 exclusive, only support. All the DX12 exclusives on that list are basically XBONE ports.

It'll be some time until we see actual DX12 games that are built on it from the ground up since engines pretty much need to be rewritten for it, and some studios already said they might as well use Vulkan at that point.

bobwya commented 6 years ago

I've taken a look at the VK9 project. Currently it's a bit of an unholy mess to package in winetricks. Apart from the 10,000,000 supporting files (wtf??) You can tell the Developer is working on Windows, as he's releasing the binaries in a zip-file, with rampant case-sensitivity issues for Wine (e.g. D3d9.dll - wtf). I tried firing it up - nothing happened... So I'll have to re-visit this another day...

bobwya commented 6 years ago

@austin987

I'd suggest closing this issue...

VK9 distributes pre-built binaries - but the project is a bit of mess compared to DXVK (too many helper files required, file case issues, etc.) Never mind that I can't even get the pre-built binaries to do anything anyway...

DXUP has somewhat limited usefulness (IMHO). But I guess a combined DXUP + DXVK verb could be contemplated in the future (as they are very inter-dependent).

DXVK has a winetricks verb now.

Vkd3d is released as a source tarball in order for downstream Linux distributions to build it, as binary packages (or provide build scripts for it). There is nothing for winetricks to do here...

gverm commented 6 years ago

@bobwya Sorry for the off-topic, but just wanted to let you know that the file case issues were resolved in: https://github.com/disks86/VK9/commit/19658d69c750e367e6650b93356eb8314aac6684

qwertychouskie commented 6 years ago

DXUP should probably be a part of the DXVK verb IMO.

mihawk90 commented 6 years ago

Also, just read this:

https://www.winehq.org/news/2018052501

Does this mean vkd3d will be part of core wine?

shmerl commented 6 years ago

Yes, as long as wine is configured to be built with it.

mihawk90 commented 6 years ago

Meaning that a winetrick for it would be also unnecessary, correct?

shmerl commented 6 years ago

Yes.

shmerl commented 6 years ago

May be there can be an option to always pull the latest version instead of hardcoding it? It would remove the need to update winetricks itself all the time new dxvk comes out.

austin987 commented 6 years ago

Dxvk would have to provide a staple URL for that

shmerl commented 6 years ago

Sure, I can open a dxvk issue about that.

shmerl commented 6 years ago

dxvk now provides latest release version in:

https://raw.githubusercontent.com/doitsujin/dxvk/master/RELEASE

So you can get that and calculate <version> to download:

https://github.com/doitsujin/dxvk/releases/download/v<version>/dxvk-<version>.tar.gz
austin987 commented 6 years ago

Cool, thanks @shmerl. I've added that here: https://github.com/Winetricks/winetricks/commit/c423a85b3cfda1e6181fc8164b089842964a0794

I'm going to close this. Other/follow up issues should be filed as new bugs.