http://bugs.winehq.org/show_bug.cgi?id=11674
Kol kol@MV8660.spb.edu changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |kol@MV8660.spb.edu
--- Comment #278 from Kol kol@MV8660.spb.edu 2013-01-02 21:54:39 CST --- Let me present my results of tests in real applications. Testing some old games I found that the BufferSubData patch is better to use along with the Crysis Memory patch from Bug#18799, which sets WINED3D_BUFFER_DOUBLEBUFFER flag in "buffer_init" function in "dlls/wined3d/buffer.c".
All tests were carried out under Wine 1.5.20 with WINEDEBUG="-all" and with the use of Nvidia proprietary driver 310.19. For each game I estimated the average number of FPS in some fixed scene with distant land and moving objects visible in 4 variants: 1. unpatched Wine with threaded optimisations disabled; 2. unpatched Wine with threaded optimisations enabled; 3. Wine with the BufferSubData patch, threaded optimisations enabled; 4. Wine with the BufferSubData and the Crysis Memory patch, threaded optimisations enabled. The results are TES3:Morrowind 36/47/47/50, TES4:Oblivion 52/57/62/70, TES5:Skyrim 19/22/27/36. For Crysis 1 enabling of threaded optimisations decreases performance but the BufferSubData patch increases it again. To start this game the patch from Bug#18799 is necessary, so I tested variants 1-3 with this patch, FPS are 57/43/77.
The only example of decreasing performance (10 times) with the BufferSubData patch which I saw is Heroes of Might & Magic 5: 70/21/2/2. I think that this is due to WINED3D_BUFFER_DOUBLEBUFFER flag, because under Wine patched only with the Crysis Memory patch the game also shows ~2 FPS.
Also, it seems that all these things have nothing to do with optimisations for multi-processor systems. For example, in Skyrim under Wine with both patches and threaded optimisations enabled the full CPU load by the main process "TESV.exe" for a quad core processor is 110%-120% (must be 300%-400% ?).