doitsujin / dxvk

Vulkan-based implementation of D3D8, 9, 10 and 11 for Linux / Wine
zlib License
13.43k stars 868 forks source link

small performance penalty when using mingw build vs. winelib #1083

Closed aufkrawall closed 5 years ago

aufkrawall commented 5 years ago

Some weird issue which has plagued me for months, till I finally could narrow it down: When using DXVK as a native Windows lib, there is a performance penalty vs. winelib (yes, the winelib really shows the better performance) in Heroes of the Storm when -alt + tabbing out and again in the game (or after doing this several times) -using a custom _fake_refresh_rate= value in wine-tkg

Screenshot_20190530_154521 Screenshot_20190530_154817 The menu by default has locked 62fps (disabled via run parameter), but in the actual game the difference is the same.

This with with dxvk-git, but your precompiled 1.2.1 build exactly matches the fps of my mingw-git build.

Nothing interesting in the logs, it seems (this is with mingw, but winelib looks the same): HeroesOfTheStorm_x64_d3d11.log HeroesOfTheStorm_x64_dxgi.log

I suppose this might be an issue in Wine actually? I'll post the wine log later today. It's not an issue of a specific Wine version or custom patches though, also happens with plain wine after alt + tabbing.

doitsujin commented 5 years ago

Well, and what exactly am I supposed to do about this?

I haven't ever seen winelib builds perform better than mingw builds, so this seems to be a very specific scenario.

aufkrawall commented 5 years ago

Well, the idea that this likely is to be a Wine issue basically appeared to me right before I clicked the "post" button, though I didn't want the information go to waste. ;) I guess we can keep this closed, until somebody may come up with something.

doitsujin commented 5 years ago

I don't think there's an issue per se, some things (like thread synchronization) don't have to go through wine translation on winelib builds, but that should also not be responsible for an almost 5% perf difference.

Maybe in some edgy edge case it just might, though.

aufkrawall commented 5 years ago

Fingers crossed: It seems the issue is gone. If I had to make assumptions, I'd guess on the recent switches to more PE builds in Wine (using -tkg compiled with mingw).