-
Notifications
You must be signed in to change notification settings - Fork 903
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
D3D9: Multithreaded Texture creation may crash #4613
Comments
What is the oldest dxvk you have tested? Edit: Is just curious if it is because of the 32bit d3d9 memory management that was implemented in 2.0 from the error (i am not a dev) |
Looking at my history it were 2.0/2.1 |
Does it work if you make a dxvk.conf file next to the exe an insert |
I took a look at it again and I did find a race in the D3D9 mapped file memory code. I'll fix that over the next few days. Hopefully that will fix your crashes. |
I may have encountered another possible race (occurred outside mainthread): dxvk::DxvkBuffer::assignStorage ~ m_bufferInfo = m_storage->getBufferInfo();
https://github.com/doitsujin/dxvk/blob/master/src/dxvk/dxvk_buffer.h#L345 backtrace: dxvk::DxvkBuffer::DxvkBuffer Seems to be more rare, cannot easily reproduce :/ |
This one is odd. The internals of DxvkBuffer are only changed on the CS-Thread or in the constructor of DxvkBuffer. And the constructor calls are additionally also protected by the D3D9 device lock on top of that. Only once the constructor is done it gets handed over to the CS thread. |
Hi,
I was curious if i could apply dxvk on my d3d9 project and came across one issue:
I create my d3d9ex device with multithreaded flag and use it to load my assets in a separate thread.
And this is where DXVK seems to have its issue:
Looking at the assembly at the eip of the exception, it seems to out-of-bounds the m_mappingRanges vector.
In my case it seems to access index 0, but the vector is empty.
Likely a race condition as it may work at some times and other times not.
Throwing all work onto a single thread solves this and dxvk works just fine then.
Software information
AMD64 Windows 24H2 26100.2605, 32bit application
System information
*windows-msvc CI: dxvk-merge-69a3d78b3435c39caf561ea71778ae6be0e9f44b-msvc-output
**This bug also appears on older versions
Apitrace file(s)
/
Log files
/
The text was updated successfully, but these errors were encountered: