Re: Unable to completely replace vkd3d with vkd3d-proton?

zhengxianwei <[email protected]>
Newsgroups gmane.comp.emulators.wine.devel
Message-ID <CABeGAqWMkY-4N8zYmEnOP+wRMN0Svm=iYpGBHRny=qj57gntOA@mail.gmail.com>
Thank you very much for your reply. However, I have many questions about
the wiki help page:

> And to answer your question in another email: on the wiki[1] there is
> some documentation on how to build vkd3d from sources and use it in
> Wine, without relying on Wine's convenience copy.
>
>  [1]
>
https://gitlab.winehq.org/wine/vkd3d/-/wikis/Building-a-MinGW-WoW64-Wine-with-a-custom-vkd3d-build

1. It actually mentions two ways to test vkd3d. The first one is available
at: https://gitlab.winehq.org/wine/vkd3d/-/wikis/home
```
Building Wine with Direct3D 12 support
Wine uses pkg-config to find vkd3d libraries. If vkd3d libraries are
installed system-wide, the Wine configure script should find the vkd3d
libraries automatically. You can also use PKG_CONFIG_PATH,
VKD3D_CFLAGS or VKD3D_LIBS to override pkg-config search
path, C compiler flags for libvkd3d, or linker flags for
libvkd3d, e.g.

$ ../wine-git/configure
PKG_CONFIG_PATH=$HOME/src/vulkan/install/lib/pkgconfig
```

However, following the steps didn’t work. It seems that VKD3D_FLAGS and
VKD3D_LIBS have been deprecated?

2. The second method is the one you provided on this page:

When I tried following the instructions on this page, I encountered many
issues. It seems to treat vkd3d as a .dll file instead of an .a file.
Additionally, during ./configure, it seems to treat the host environment as
Windows, requiring dependencies to be reinstalled even if they are already
installed. It doesn’t feel like a testing environment meant for Ubuntu x64.
Is that correct?

On Tue, Nov 26, 2024 at 10:01 PM Giovanni Mascellani <
[email protected]> wrote:

> Hi,
>
> Il 26/11/24 14:18, zhengxianwei ha scritto:
> > I tried replacing Wine’s built-in DLLs with the d3d12.dll compiled from
> > vkd3d-proton and the dxgi.dll compiled from dxvk.
> >
> > However, I noticed that Wine’s built-in D3DCompile2 still calls
> > vkd3d_shader_compiler(https://gitlab.winehq.org/wine/wine/-/blob/master/
> > dlls/d3dcompiler_43/compiler.c?ref_type=heads#L573 <https://
> > gitlab.winehq.org/wine/wine/-/blob/master/dlls/d3dcompiler_43/
> > compiler.c?ref_type=heads#L573>), which belongs to vkd3d, not
> vkd3d-proton.
>
> That's right, vkd3d-proton doesn't ship an HLSL shader compiler, so
> there's no way it can be used to implement D3DCompile2().
>
> > Does this mean that even in Proton, vkd3d and vkd3d-proton coexist, and
> > it’s not possible to completely replace vkd3d?
>
> Yes, Proton ships both vkd3d and vkd3d-proton; by default it uses vkd3d
> for the HLSL shader compiler and vkd3d-proton as the D3D12
> implementation. By setting environment variable PROTON_USE_WINED3D=1 you
> can use vkd3d for D3D12, but you can't use vkd3d-proton for the HLSL
> shader compiler because, as I said, it's not a feature implemented in
> vkd3d-proton. At any rate, if you're using Proton the Proton script
> itself will care about copying DLLs and setting whatever has to be set
> so that you're using vkd3d or vkd3d-proton depending on the environment
> variables.
>
> > So if there’s a bug in it, I would still need to fix the issue in vkd3d
> > rather than being able to replace it with functions from vkd3d-proton.
> > Is that correct?
>
> Yes, any bug in vkd3d must be fixed in vkd3d and any bug in vkd3d-proton
> must be fixed in vkd3d-proton.
>
> However, the fact that vkd3d is the only possible implementation for the
> HLSL shader compiler shouldn't prevent you from using vkd3d-proton as a
> D3D12 implementation, if that's what you want to do. You just have to
> install it properly. I cannot help you with that because I never tried,
> you should look for the vkd3d-proton documentation.
>
> And to answer your question in another email: on the wiki[1] there is
> some documentation on how to build vkd3d from sources and use it in
> Wine, without relying on Wine's convenience copy.
>
>   [1]
>
> https://gitlab.winehq.org/wine/vkd3d/-/wikis/Building-a-MinGW-WoW64-Wine-with-a-custom-vkd3d-build
>
> HTH, Gio.
>
>
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.