-
Notifications
You must be signed in to change notification settings - Fork 884
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
[util] Re-enable direct buffer mapping for Rayman 3 #4423
Conversation
169fb0c
to
79500d1
Compare
Also added a 60 fps lock, since the game appears to break above that, but its internal heuristics seem to rely on the set refresh rate, ergo it will probably still be less than ideal on modes above 60 Hz. Did I mention the game's hopelessly broken in so many ways? |
IMO we should look into why it causes visual issues rather than just reenabling direct mapping. |
Well, the game writes to buffers outside of Unlock(), so I'm assuming that's messing with a number of things. It would be nice to solve this otherwise, because re-enabling direct mapping has broken SWVP mode (note forcing that is more of a hack, but still). That being said, HWVP mode is now as good as it can get with this game. |
Yeah, this issue is caused by the game writing to certain unlocked buffers due to reference miscounting. I can fix it on the game's side, but not sure what the "correct" fix on the wrapper side would look like. Also worth noting that this happens on Windows without any graphics wrappers (at least on NVIDIA cards) so isn't strictly a dxvk bug. |
Well that is indeed the problem, since we have to cater for the entire breadth and depth of the d3d8/9 spectrum, and making some games happy without breaking others is sometimes nearly impossible. The good news is that the game should be fine now in terms of rendering with its default settings, except for game engine specific jankiness, which is out of our scope to handle, so we have to rely on patches like Better Rayman 3 to address.
Yeah, I am aware the game is also broken on some modern Windows systems, however it does miraculously work fine on my Windows XP/GeForce 4 retro PC. So at some point, when all the planets were in alignment, it was indeed fully functional. |
Fixes #4422. While disabling direct buffer mapping got rid of some queue syncs caused by buffer locks, which improved the game's quirky frame-rate heuristics, it seems to break some in-game effects. Guess it is what it is.
The games's SWVP mode (hackable through the game's ini) seems to rely on disabling direct buffer mapping to render properly, but since it's not recommended or exposed by the game and HWVP now works properly, that's not that big of a problem.