-
Notifications
You must be signed in to change notification settings - Fork 8
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
Conversation
21abdb1
to
9649c9a
Compare
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. |
9649c9a
to
c583158
Compare
c583158
to
8fc7cd9
Compare
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. |
8fc7cd9
to
58c89ee
Compare
9b44e13
to
9ebed42
Compare
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.