https://bugs.winehq.org/show_bug.cgi?id=43246
--- Comment #11 from Matteo Bruni matteo.mystral@gmail.com --- (In reply to Matteo Bruni from comment #10)
I'll probably have a look at the actual game soon.
Obviously that was wishful thinking on my part. I managed to have a look, finally, and the result is... interesting.
I basically confirm comment 2: the game does a lot of buffer maps with DISCARD and NOOVERWRITE with non-DYNAMIC buffers and expects them to work as if they were DYNAMIC.
Problem is, they are not supposed to be fast with that kind of usage, as I described in detail in https://www.winehq.org/pipermail/wine-devel/2018-November/135071.html, especially for Nvidia. So I brought back the test from that email to investigate this even further on Windows.
Nothing new came up from that: non-DYNAMIC DEFAULT buffers simply ignore the NOOVERWRITE map flag on Nvidia and are thus very slow in those cases. Then I had the idea of renaming the test executable to kb.exe (which is the name of the game's executable): sure enough, non-DYNAMIC buffers started to perform exactly like DYNAMIC buffers...
I also tried to "break" the game by renaming the executable but that wasn't enough. I suspect it's still recognized somehow.
Bottom line: the game is broken, either the driver or the d3d9 runtime have a quirk for the game to workaround the breakage. Not sure what we should do, if anything.