Skip to content
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

Windows support #6

Open
wants to merge 4 commits into
base: main
Choose a base branch
from
Open

Conversation

TellowKrinkle
Copy link

  • Switches ID3D11DeviceContext hooking to a forwarding class because Windows' ID3D11DeviceContext rewrites its own vtable pointers, breaking the hook
  • Adds VS build files

Note: Current main just failed to change anything (rather than crashing) when built with VS, so you might want to verify that the mingw builds work on Windows

Windows ID3D11DeviceContext likes rewriting its own vtable pointers, so we can't hook it that way
@TellowKrinkle
Copy link
Author

Looks like the original fix broke dxvk (and therefore proton) support, I switched the hook method of ID3D11Device over as well and that seems to have fixed that, it now runs on steam deck as well as windows.

@doitsujin
Copy link
Owner

I've considered doing this before, but the problem is that wrapping the device will break ID3D11DeviceChild::GetDevice calls from all objects created from the device, so we'd either need to make double-sure that none of the games call this, or wrap all D3D11 objects.

Might be more useful to fix DXVK to not call any (potentially hooked) GetImmediateContext method internally.

For some reason, LOAD_LIBRARY_SEARCH_APPLICATION_DIR won't find a dxvk dll next to the main exe on Windows
@TellowKrinkle
Copy link
Author

Ahh yeah, I missed that one

I've removed that commit for now

@ffrasisti
Copy link

Hi, @TellowKrinkle Sorry to post here. But Atelier games after Ryza 2 have a tendency to freeze during loading transitions on some machines, especially on linux through proton. Is there any solution to this that you can find? Thanks!
The performance improvement is great but the freezes are really dampening the games

@TellowKrinkle
Copy link
Author

Does "after Ryza 2" include Ryza 2? If so, I've played Ryza 2 (with sync fix) a decent amount from a steam deck and had no freezes, so I'm not sure how much I can help. Otherwise, I have yet to play a post-Ryza 2 game, but when I do eventually play one I'll make sure to include some steam deck time to see if I hit anything.

@ffrasisti
Copy link

ffrasisti commented Aug 28, 2023 via email

@ffrasisti
Copy link

ffrasisti commented Aug 28, 2023 via email

@ffrasisti
Copy link

You can see people discuss the freezing here for instance ValveSoftware/Proton#5841

@ffrasisti
Copy link

ValveSoftware/Proton#4569 (comment) here is a ryza 2 issue and log

@TellowKrinkle
Copy link
Author

If you have any more things to add, please mention me on the relevant issues instead of posting more here

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants