-
-
Notifications
You must be signed in to change notification settings - Fork 397
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Possible calling convention issue with ID3D11Blob (vkd3d) on linux x64 using dxvk #1634
Comments
Thank you for reporting this! I discussed this with @tannergooding from the .NET team, and it seems that there is an expectation that if you're running on Linux you're using cdecl and not stdcall. As a result of this, the .NET runtime has made no attempt to support this on Linux. In addition, it appears that vkd3d is primarily geared towards WINE usage, which means we have to take special care to use it outside of WINE. So, our options:
Thoughts @Beyley? |
This is unlikely because it'd break existing code targeting |
Notably the ask for such runtime support is dotnet/runtime#37548. |
my ideas when writing the issue was:
Im generally unfamiliar with management of projects, so the ideas might seem unreasonable. would be sad if support is removed as the reason i had a peek at this project is the "advertised" dxvk support. |
Yeah I'm personally on team "add our own builds that override the STDMETHODCALLTYPE macro" but this is Beyley's area |
So theres a bit of misunderstanding here, vkd3d does not have anything to do with D3D11 specifically, at least in this case. All it provides is the HLSL shader compiler (which does not compile to SPIRV), even without vkd3d, D3D11 would still work all the same, since we only pull in vkd3d for Since we statically link vkd3d into our custom shader compiler (that wraps over vkd3d), we dont have to worry about system vkd3d mucking it up (our custom library is named differently) and we can make any changes needed, patching vkd3d is the obvious option here, and likely the way to go, i didnt realize that even though The solution is just "make a patch to remove the ms_abi declaration from VKD3D, and apply that patch when building vkd3d", that will then get statically pulled in by the shader compiler, and it should work, i dont currently have the time to work on Silk, but its an easy PR id be happy to review if you would like to take it up. |
I think #1993 fixes this - it has the |
Summary
Having an issue running the d3d sample using dxvk.
The main issue stems from ID3D10Blob returning garbage.
From investigating it looks like the virtual functions used in ID3D10Blob from vkd3d uses microsoft calling conventon, while im presuming it gets called using a linux one.
NOTE: images are not the same process instance. If it was it should have returned, 0x5600192d8970 for data ptr and 0x258 for size.
Steps to reproduce
Comments
Issue isnt techinically directly in this project as its in vkd3d this project uses, specfiically with
STDMETHODCALLTYPE
The text was updated successfully, but these errors were encountered: