Joshua-Ashton / d9vk

A Direct3D9 to Vulkan layer using the DXVK backend. [Upstreamed to DXVK]
https://github.com/doitsujin/dxvk
zlib License
833 stars 42 forks source link

Why are there d3d10 and d3d11 files in the builds? #398

Closed orbea closed 4 years ago

orbea commented 4 years ago

I know this repo was based on the dxvk repo, but is there a reason why the builds still include d3d10 and d3d11 files? Should these be removed so it only builds d3d9 and dxgi? The documentation also still has many references to dxvk instead of d9vk. I can spend some time making PRs to fix this, but I want to understand if this is intended or not first.

$ tree d9vk-0.21
d9vk-0.21
├── setup_dxvk.sh
├── x32
│   ├── d3d10.dll
│   ├── d3d10_1.dll
│   ├── d3d10core.dll
│   ├── d3d11.dll
│   ├── d3d9.dll
│   └── dxgi.dll
└── x64
    ├── d3d10.dll
    ├── d3d10_1.dll
    ├── d3d10core.dll
    ├── d3d11.dll
    ├── d3d9.dll
    └── dxgi.dll

2 directories, 13 files
ZachBacon commented 4 years ago

Most likely because the intent is to eventually merge in d9vk back into dxvk

money123451 commented 4 years ago

Most likely because the intent is to eventually merge in d9vk back into dxvk

I think its exactly this as DXVK was only DX11 then it got DX10 support via DXUP then josh moved onto DXUP for DX9 but scrapped it and want to making D9VK

orbea commented 4 years ago

dxvk does have configure flags to disable building d3d10, d3d11 and dxgi. Perhaps the appropriate flags should be used for d9vk?

https://github.com/doitsujin/dxvk/blob/32e1afc7a104b837b3440a58b4a49640c401e511/meson_options.txt

loathingKernel commented 4 years ago

Does it really matter that much? If you don't need them, remove them from the folders before installation, the script will skip them. The two project codebases are regularly synced so you don't lose anything important from using the ones provided by d9vk.

orbea commented 4 years ago

Does it really matter that much?

Yes, I was considering distro integration for d9vk and in the context of a distro d9vk should not provide files provided by dxvk.

orbea commented 4 years ago

To be clear what the release tarballs does or does not provide is not really important to me and PR https://github.com/Joshua-Ashton/d9vk/pull/399 seems to be the only missing piece to make a distro package without d3d10 and d3d11.

$ setup_d9vk install
wine: configuration in '/home/orbea/.wine' has been updated.
/usr/share/d9vk/x32/d3d10.dll: File not found. Skipping.
/usr/share/d9vk/x64/d3d10.dll: File not found. Skipping.
/usr/share/d9vk/x32/d3d10_1.dll: File not found. Skipping.
/usr/share/d9vk/x64/d3d10_1.dll: File not found. Skipping.
/usr/share/d9vk/x32/d3d10core.dll: File not found. Skipping.
/usr/share/d9vk/x64/d3d10core.dll: File not found. Skipping.
/usr/share/d9vk/x32/d3d11.dll: File not found. Skipping.
/usr/share/d9vk/x64/d3d11.dll: File not found. Skipping.
$ setup_d9vk uninstall
wine: configuration in '/home/orbea/.wine' has been updated.
/usr/share/d9vk/x32/d3d10.dll: File not found. Skipping.
/usr/share/d9vk/x64/d3d10.dll: File not found. Skipping.
/usr/share/d9vk/x32/d3d10_1.dll: File not found. Skipping.
/usr/share/d9vk/x64/d3d10_1.dll: File not found. Skipping.
/usr/share/d9vk/x32/d3d10core.dll: File not found. Skipping.
/usr/share/d9vk/x64/d3d10core.dll: File not found. Skipping.
/usr/share/d9vk/x32/d3d11.dll: File not found. Skipping.
/usr/share/d9vk/x64/d3d11.dll: File not found. Skipping.
Joshua-Ashton commented 4 years ago

The idea is to merge back. I don't make any changes in master that would break things when that happens.

pchome commented 4 years ago

@orbea Maybe I missed something, but you don't need dxgi for d3d9.

Yes, I was considering distro integration for d9vk and in the context of a distro d9vk should not provide files provided by dxvk. To be clear what the release tarballs does or does not provide is not really important to me and PR #399 seems to be the only missing piece to make a distro package without d3d10 and d3d11.

That was the purpose of the options, I use them for exactly same reason (d9vk package) by disabling everything but enable_d3d9. Proton does the same to build releases.

I guess PR #399 rather misleading, correct me if I'm wrong.

EDIT: To be clear, the error ERROR: Problem encountered: D3D10 and/or D3D11 required for DXGI to properly functionning. was designed to be error. It could be a "warning" or "info", but who read them and who care.

To fix it, you should either disable dxgi (as it depend on d3d11) or enable d3d11. Otherwise you may get random breakage, when dxgi will be loaded by an program.

orbea commented 4 years ago

@pchome

Thanks for pointing that out about dxgi, I wasn't aware its not needed for d3d9. I suppose my PR might of not been correct then?

Joshua-Ashton commented 4 years ago

Yeah, looking back on it, it isn't.

I will revert that. I should stop merging things after a brief glance on my phone 🐸