-
Notifications
You must be signed in to change notification settings - Fork 6
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
Storing DEFAULT buffers in MANAGED pool #135
Comments
Okay so we have learned that the real fix is disabling direct buffer mapping. We might want to make that the default behavior. |
This will also fix new chugging introduced by Commands 3 (+ probably others) that have their perf borked by NOOVERWRITE being disabled. |
Josh suggets maybe make vertex and index buffers always be MANAGED if games are gonna do stuff with them like this. Instead of disabling direct buffer mapping. At least maybe only for DYNAMIC buffers...? idk. But we gotta pick something. |
Winter: Perf is better in MCO with DBM disabled compared to apitracemode, but the quads look like tris again... The NOOVERWRITE bit apparently cancelled out the perf from apitrace mode. There are so many variables here. |
Yes, we should probably remember to enable direct buffer mapping for this game if disabling it becomes the new default. The NOOVERWRITE bit will have to be reverted for this game to be anything other than a slideshow. P.S.: Turns out a lot of games are now slideshows due to the NOOVERWRITE bit, so it's not really a good option to enable it globally at least. |
Yep, reverted. Now the question of whether to do the DEFAULT -> MANAGED thing or just disable DBM. They will have the same effect in preventing DBM but the former might gain some perf? Not clear. |
Disabling DBM programmatically would be annoying so I am opting to instead remap DEFAULT to MANAGED in 3b029ec. Hopefully this does not break any games. |
The flickering in #130 and the performance of the water sample are seemingly fixed now. |
This breaks Motor City Online, which shows half quads again. The game seems to be very picky when it comes to VB/IB use. |
Of course it does |
If we ultimately decide to go down this road, the disable direct buffer mapping workarounds for Commandos 3 and Red Faction are superfluous and can be removed from config.cpp. I've tested both games and they works just fine without the workaround. I've also done some general regression testing and haven't yet come across any noticeable performance degradation due to remapping DEFAULT to MANAGED. |
The performance problems we've had in 3DMark2001 SE with the High Detail Car Chase benchmark are now sorted. I think we're definitely doing something right. |
I'll append here if I notice anything else. |
I'll close this issue for now since all games except Incoming Forces (#100) are fixed, and that one needs its own issue. If any other games are broken by this, open a new issue! |
Previous title: [Upstream?] Buffer performance panic in water sample and Motor City Online
Edit: See below.
Supposedly the issue is many writes to a non-writeonly buffer.Is instantly fixed byapiTraceMode
. As we did for Motor City Online (which treats d3d8 like it's GL) #125. So We have to just determine if this is an upstream issue or just an inherent setting we're going to have to set per-game if they try to do a lot of buffer writes.The text was updated successfully, but these errors were encountered: