https://bugs.winehq.org/show_bug.cgi?id=44129
Bug ID: 44129 Summary: Bayonetta: much slower than Windows Product: Wine Version: 2.21 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: directx-d3dx9 Assignee: wine-bugs@winehq.org Reporter: tod.jackson@gmail.com Distribution: ---
Created attachment 59870 --> https://bugs.winehq.org/attachment.cgi?id=59870 brief fixme
I got a chance to test Bayonetta in Window 7 and realized it's much slower in Wine (about half the fps) than Windows, whereas I previously was underestimating my hardware. I recall reading that such a high discrepancy should probably be reported.
The game is already difficult to play under Wine because it it requires one of the async read/write patches in bug 42982 to make headway. Also note the game requires CSMT for coherent visuals.
Can this fixme cause a major performance problem? fixme:d3d:state_zenable Unrecognized depth buffer type 0xffffffff.
The game seems unusual in that it ties all actions to vblank/vsync, if that makes any sense. In Wine terms I guess that means it relies on this function, though as I'm not a developer I'm likely wrong: fixme:d3d9:d3d9_device_SetMaximumFrameLatency iface 0x1574b0, max_latency 1 stub! https://msdn.microsoft.com/en-us/library/windows/desktop/ff471334(v=vs.85).a...
Anyway, the game already requires a native d3dcompiler_43 to avoid HLSL parsing failure, but any tips/patches/suggestions to improve performance would be much welcomed. I tested a recent Mesa git version that has a GLSL cache but it didn't really help. I understand that I'm already running an Intel potato, but based on my recent Windows experience I think we could get the game to native speed one day.
Also, I bet that all of Platinum Games' ports suffer the same engine (for example Nier Automata), though I'm not sure.
Full fixmes attached for completeness, also tried a native xinput and d3dx9_43 with no change.
https://bugs.winehq.org/show_bug.cgi?id=44129
Matteo Bruni matteo.mystral@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Severity|normal |minor Depends on| |42982 Summary|Bayonetta: much slower than |Bayonetta: much slower than |Windows |on Windows Component|directx-d3dx9 |directx-d3d
--- Comment #1 from Matteo Bruni matteo.mystral@gmail.com --- (In reply to Tod Jackson from comment #0)
Can this fixme cause a major performance problem? fixme:d3d:state_zenable Unrecognized depth buffer type 0xffffffff.
Unlikely, but you could try to run the game with WINEDEBUG=-all which disables a bunch of extra error checking. I don't know that it will make any practical difference on the Intel potato you mentioned but it's worth a try :)
https://bugs.winehq.org/show_bug.cgi?id=44129
Zentarim zentarim@rambler.ru changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |zentarim@rambler.ru
https://bugs.winehq.org/show_bug.cgi?id=44129
Fabian Maurer dark.shadow4@web.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |dark.shadow4@web.de Keywords| |performance
https://bugs.winehq.org/show_bug.cgi?id=44129
tokktokk fdsfgs@krutt.org changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |fdsfgs@krutt.org
https://bugs.winehq.org/show_bug.cgi?id=44129
nenxvrr4.tgj@20mail.it changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |nenxvrr4.tgj@20mail.it
--- Comment #2 from nenxvrr4.tgj@20mail.it --- I regularly play this game. This game runs at roughly 10-20 fps on an AMD FX-6350 and AMD RX Vega 56 @ 1440p Medium. While on Windows, it's a solid consistent 60 fps, albeit 60 fps being the hard frame rate limit. The only way I can bring this game to a playable frame rate ~40-60 fps is with Gallium Nine, but I still get big frame rate drops on certain events.
From what I notice, lower graphics settings only help for the main menu and
loading screens. During actual gameplay, it drops back to the same 10-20 fps again.
https://bugs.winehq.org/show_bug.cgi?id=44129
zzzzzyzz@hacari.org changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |zzzzzyzz@hacari.org
https://bugs.winehq.org/show_bug.cgi?id=44129
--- Comment #3 from Zentarim zentarim@rambler.ru --- (In reply to nenxvrr4.tgj from comment #2)
I regularly play this game. This game runs at roughly 10-20 fps on an AMD FX-6350 and AMD RX Vega 56 @ 1440p Medium. While on Windows, it's a solid consistent 60 fps, albeit 60 fps being the hard frame rate limit. The only way I can bring this game to a playable frame rate ~40-60 fps is with Gallium Nine, but I still get big frame rate drops on certain events.
From what I notice, lower graphics settings only help for the main menu and loading screens. During actual gameplay, it drops back to the same 10-20 fps again.
I guess, that thing occurs because of bad handling of multithreaded applications in wine. Next time in the game, check you cpu usage. I bet, one wine process will consume nearly 100% of CPU. There is not so much things, you can do with that ( Of course, you can buy a new cpu with 5+++ GHz clock rate, or just overclock yours current CPU.). But, here some advices for you: 1) Doing next things together PROBABLY can give you couple of FPS: - Remove one core from linux sheduler with 'isocpus' kernel opts. - You also can prevent you CPU working in deep Cstates with aid 'processor.max_cstate' and 'intel_idle.max_cstate' (WARNING: you CERTAINLY will get ~ +10 heat on you CPU. Do it at you own risk) For example, my working config on i7-870 (Kubuntu 18.04): cat /etc/default/grub | grep GRUB_CMDLINE_LINUX_DEFAULT GRUB_CMDLINE_LINUX_DEFAULT="processor.max_cstate=1 intel_idle.max_cstate=0 isolcpus=7" In you case, just omit 'intel_idle.max_cstate' variable, because of AMD cpu. - Pin wine process to 'isolcpus-ed' core with taskset: taskset -p -c <CORE> <PID> (example: taskset -p -c 7 12345) - Also you can disable HyperThreading, or disable hyperthreading core related to 'isolcpus-ed' core. But i really doubt, that will give you some advantage. Again, this recommendations PROBALY give you COUPLE of FPS. 2) Try to use wine with 'esync' patchset. I got ~15 more fps in Blizzard Overwitch, when i started using it. Don't know, will it help, because you already using Gallium Nine wine.
https://bugs.winehq.org/show_bug.cgi?id=44129
mrdeathjr28@yahoo.es changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |mrdeathjr28@yahoo.es
--- Comment #4 from mrdeathjr28@yahoo.es --- (In reply to Zentarim from comment #3)
(In reply to nenxvrr4.tgj from comment #2)
I regularly play this game. This game runs at roughly 10-20 fps on an AMD FX-6350 and AMD RX Vega 56 @ 1440p Medium. While on Windows, it's a solid consistent 60 fps, albeit 60 fps being the hard frame rate limit. The only way I can bring this game to a playable frame rate ~40-60 fps is with Gallium Nine, but I still get big frame rate drops on certain events.
From what I notice, lower graphics settings only help for the main menu and loading screens. During actual gameplay, it drops back to the same 10-20 fps again.
I guess, that thing occurs because of bad handling of multithreaded applications in wine. Next time in the game, check you cpu usage. I bet, one wine process will consume nearly 100% of CPU. There is not so much things, you can do with that ( Of course, you can buy a new cpu with 5+++ GHz clock rate, or just overclock yours current CPU.). But, here some advices for you:
- Doing next things together PROBABLY can give you couple of FPS:
'processor.max_cstate' and 'intel_idle.max_cstate' (WARNING: you CERTAINLY
- Remove one core from linux sheduler with 'isocpus' kernel opts.
- You also can prevent you CPU working in deep Cstates with aid
will get ~ +10 heat on you CPU. Do it at you own risk) For example, my working config on i7-870 (Kubuntu 18.04): cat /etc/default/grub | grep GRUB_CMDLINE_LINUX_DEFAULT GRUB_CMDLINE_LINUX_DEFAULT="processor.max_cstate=1 intel_idle.max_cstate=0 isolcpus=7" In you case, just omit 'intel_idle.max_cstate' variable, because of AMD cpu.
- Pin wine process to 'isolcpus-ed' core with taskset:
taskset -p -c <CORE> <PID> (example: taskset -p -c 7 12345)
- Also you can disable HyperThreading, or disable hyperthreading core
related to 'isolcpus-ed' core. But i really doubt, that will give you some advantage. Again, this recommendations PROBALY give you COUPLE of FPS. 2) Try to use wine with 'esync' patchset. I got ~15 more fps in Blizzard Overwitch, when i started using it. Don't know, will it help, because you already using Gallium Nine wine.
(In reply to nenxvrr4.tgj from comment #2)
I regularly play this game. This game runs at roughly 10-20 fps on an AMD FX-6350 and AMD RX Vega 56 @ 1440p Medium. While on Windows, it's a solid consistent 60 fps, albeit 60 fps being the hard frame rate limit. The only way I can bring this game to a playable frame rate ~40-60 fps is with Gallium Nine, but I still get big frame rate drops on certain events.
From what I notice, lower graphics settings only help for the main menu and loading screens. During actual gameplay, it drops back to the same 10-20 fps again.
In my case runs good on pentium but this game needs csmt
https://www.youtube.com/watch?v=xj5OXNJHq0o
Xubuntu 16.04 x64 - Kernel 4.13.0-16 generic (ubuntu mainline) - CPUFreq: Performance
CPU: INTEL Pentium G3258 (Haswell 22nm) 4.1Ghz + Artic Cooling Alpine 11 Plus
MEMORY: 8GB DDR3 1333 (2x4) Patriot value (128 bit dual channel: 21.3 gb/s)
GPU: Gigabyte Nvidia Geforce GTX 1050 OC (GP107 14nm: 640 Shaders / 40 TMUS / 32 ROPS) Windforce 2GB DDR5 7000Mhz 128Bit (110Gb/s)
MAINBOARD: MSI H81M E3
However as other said this game needs very high single thread, specially dx9 wine implementation is very single thread hungry
Pentium G3258 @ 4.1ghz give 152 points on cinebench R15 single thread compared single thread of your fx 6350
And my actual Core i3 8350K Tri-Core 5.0ghz + Coolermaster Hyper T4 give 215 points on cinebench R15 single thread
Actually stay testing using proton with my actual machine ans runs 60 all time with csmt
Xubuntu 18.04 x64 - Kernel 4.17.12 generic (ubuntu mainline) -
CPUFreq: Performance
CPU: Core i3 8350K Tri-Core (Coffelake 14nm) 5.0Ghz + CoolerMaster Hyper T4
MEMORY: 8GB DDR4 2400mhz (4x2) Mushkin (dual channel: 37.5 gb/s)
GPU: Gigabyte Nvidia Geforce GTX 1050 OC (GP107 14nm: 640 Shaders / 40 TMUS / 32 ROPS) Windforce 2GB DDR5 7000Mhz 128Bit (110Gb/s)
MAINBOARD: ASUS Z370-P
https://bugs.winehq.org/show_bug.cgi?id=44129
joaopa jeremielapuree@yahoo.fr changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |jeremielapuree@yahoo.fr
--- Comment #5 from joaopa jeremielapuree@yahoo.fr --- Does the bug still occur with wine-4.2?
https://bugs.winehq.org/show_bug.cgi?id=44129 Bug 44129 depends on bug 42982, which changed state.
Bug 42982 Summary: Bayonetta can`t save settings https://bugs.winehq.org/show_bug.cgi?id=42982
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |FIXED
https://bugs.winehq.org/show_bug.cgi?id=44129
--- Comment #6 from Tod Jackson tod.jackson@gmail.com --- wine-4.3-staging results:
Performance seems very good on a newer Kabylake laptop with a GTX 1050 via Prime. Unfortunately I can't test on the original Ivybridge/Intel HD 4000 machine.
I'm still going to have to patch Wine myself if I want to play this more than 10 minutes due to GL_OUT_OF_MEMORY errors. There was a tiny patch that changes the memory layout of Wine to fix this kind of thing floating around somewhere, and it worked for this game.
The save bug is also fixed as reported, cool.
This time I needed 'winetricks d3dcompiler_47', not 43.
Maybe someone on a weaker GPU can retest, but I'm satisfied with the performance now.
https://bugs.winehq.org/show_bug.cgi?id=44129
--- Comment #7 from Tod Jackson tod.jackson@gmail.com --- Well, I just tested with the onboard Intel HD 620 and the performance was still very bad. So based on others' findings it seems like some of the open source drivers are still in a bad place. So I don't know what to say.
https://bugs.winehq.org/show_bug.cgi?id=44129
pattietreutel katyaberezyaka@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |katyaberezyaka@gmail.com
https://bugs.winehq.org/show_bug.cgi?id=44129
--- Comment #8 from joaopa jeremielapuree@yahoo.fr --- Does the bug still occur with wine-5.13?
https://bugs.winehq.org/show_bug.cgi?id=44129
--- Comment #9 from Zentarim zentarim@rambler.ru --- (In reply to joaopa from comment #8)
Does the bug still occur with wine-5.13?
Runs flawlessly on 5.13. For now, threads are distributed evenly across all the cores and use them WAY less then before.
Great job, thanks a lot!
https://bugs.winehq.org/show_bug.cgi?id=44129
--- Comment #10 from joaopa jeremielapuree@yahoo.fr --- Reported fixed. Can an administrator close this bug as FIXED?
https://bugs.winehq.org/show_bug.cgi?id=44129
Olivier F. R. Dierick o.dierick@piezo-forte.be changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |FIXED CC| |o.dierick@piezo-forte.be
--- Comment #11 from Olivier F. R. Dierick o.dierick@piezo-forte.be --- Hello,
Marking fixed.
Regards.
https://bugs.winehq.org/show_bug.cgi?id=44129
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #12 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 5.14.