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

[d3d8 + util] Remove managedBufferPlacement and adjust config options #199

Merged
merged 7 commits into from
Jul 7, 2024

Conversation

WinterSnowfall
Copy link

@WinterSnowfall WinterSnowfall commented Jan 2, 2024

Includes #176 and #186. Fixes #198, fixes #154.

As mentioned in the issue, the main culprit and reason behind us going with managedBufferPlacement in the first place was 3DMark2001 SE, which was sort of a red herring because of my inaccurate testing (sorry for that, btw).

Since it no longer helps games such as Supreme Ruler 2010 / 2020, there's really no reason to keep it around at this point. Batching does look promising, however, to handle the jank these games throw at us, it just needs a bit more work, since it was never intended for these games in particular (it does fix the text rendering even in its current state, but breaks rendering on the 3D world map).

In the apparently rare cases where we hit issues that are caused by direct buffer mapping, we can simply disable it. Testing has proven that doing this globally is, however, a rather bad idea, as it negatively affects a lot of games in various degrees, some in a rather dramatic way.

I'll keep it as draft for a while until I can test it more extensively, but initial impressions are good and it does look a lot cleaner this way in the end.

@WinterSnowfall WinterSnowfall marked this pull request as ready for review January 3, 2024 16:02
@WinterSnowfall
Copy link
Author

WinterSnowfall commented Jan 3, 2024

I'm done testing the PR and it looks like the vast majority of games are happier (fps wise) like this... a couple were doing reads from dynamic writeonly buffers and needed cachedDynamicBuffers to perform well, but 3 out of 100+ isn't bad at all.

Since it's d3d8 we're talking about, most differences aren't that visible (e.g. in Blowout I get ~350 fps with managedBufferPlacement and ~500 fps with this PR), but I haven't seen any game to artifact or misbehave outside of the usual suspects, and I've added back the config options we had for them in place before managedBufferPlacement was a thing.

@WinterSnowfall
Copy link
Author

I've also added a framecap for all Cossacks II engine games as part of this PR. Long story short, gameplay will accelerate if uncapped, and Alexander has no limit whatsoever. Cossacks II enables vsync, but that might still cause issues with high refresh rate displays.

@AlpyneDreams AlpyneDreams merged commit 050b479 into AlpyneDreams:main Jul 7, 2024
3 checks passed
@WinterSnowfall WinterSnowfall deleted the d8vk-mbp branch July 7, 2024 11:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants