Skyrim's performance under wine is much worse than Windows, particularly in open areas with action where it gets low enough to see individual frames. In windows I can run it in Ultra with very few fps drops in any situation. I've tried Low to Ultra quailty settings. While low does make a difference, it's still noticibly worse than windows under Ultra. I've done some tests and played with the configuration. I'm documenting my experiences here to hopefully find a way to improve performance, but at the very least help out the devs or anyone who is having similar issues.
Hardware:
intel i7 860 quad core 2.6 ghz
EVGA GeForce GTX 560ti 1279MB
8gb ram
Gigabyte P55A-UD3
120hz monitor rate set to 120 (60 doesn't help)
Software
OS: Debian wheezy
Kernel: tried Debian 3.6-686-pae and 3.2-686-pae
Nvidia Drivers/userspace libraries/X driver - tried 310.19 (on 2.6 kernel) using the NVidia installer and the debian repository version (~305 IIRC, on 3.2 kernel)
wine 1.4.1
lxde desktop (openbox based, lightweight, no compositing effects)
This is a fresh install so there isn't much on this system other than dependencies for the above packages, and packages for KDE 4, which I'm not using to run wine.
DLLs:
I installed the native dx9 and 10 with winetricks, and later overrided them with the built-ins using winecfg. Performance is about the same.
I've tried both the internal and native msvcr90. They seem to perform about the same.
Registry
UseGLSL=disabled (enabled made no difference)
VideoMemorySize=1279 (tried 1024 also, no difference)
Debugging:
As per recommendation of the performance guide, I installed wined3d on my Windows Partition. I was pleasantly surprised that they ran almost as well as the native dlls!
I tried different screen resolutions. The performance was slightly better at lower resolutions but still poor.
I would love to try Nvidia's nvidia-smi performance monitoring tool but it simply replies with "not supported" and N/A for most of my card. All it successfully reports is the temperature, which is only 61C (6 above idle) at resource intensive areas in the game. It also reports memory usage to be 8MB which makes no sense; so I'm guessing this isn't supported either.
At this point it's starting to sound like the non-graphics card/library things.
top reports pretty even distribution amoungst the 4 cores, however none of them ever go over 30%, even in resource-intensive areas of the game. TESV.exe (the game executable) is the only process using over 5% of the CPU; it seems to average 25-30%. System memory usage is reported at 810MB.
I set the niceness of TESV.exe to -20 (highest priority). Didn't help.
I tried the sysprof program recommended in the performance guide; It shows TESV at %87 CPU and wineserver at 4%, with everything else under 2%. I'm unfamiliar with this program and can't find any real documentation (man sysprof is a single paragraph), so I'm not sure what to make of these numbers. I would guess it bases it on total CPU time/CPU time of individual Calls/Apps. If not this seriously conflicts with what top is reporting. Also of interest is the kernel reporting %27.89, the nv011906rm driver reporting %12.05, libgl.so reporting %11.2, and libnvidia-glcore.so repoting 17.3%. Everything else is 5% or less. I would include the entire report as an attachment, but this board limits uploads to 2mb, and won't allow me to upload any compressed files.
So what do I have here, driver or kernel issue? I'd be willing to compile a custom kernel if anyone knows of any options that might actually help.
Poor performacne in Skyrim - Did my homework, still stumped
Re: Poor performacne in Skyrim - Did my homework, still stum
Looks like the one thing you haven't tried is a newer version of Wine.
Re: Poor performacne in Skyrim - Did my homework, still stum
Unfortunately the latest release gives me this error upon launching the game from steam, prior to when the launcher would normally appear. 1.4.1 was completely removed, a new tree built, and Steam reinstalled.
fixme:gameux:GameExplorerImpl_VerifyAccess (0x1f9458, L"C:\\Program Files\\Steam\\steamapps\\common\\Skyrim\\TESV.exe", 0x32ba88)
err:seh:raise_exception Unhandled exception code c0000005 flags 0 addr 0x7ecd32c8
fixme:gameux:GameExplorerImpl_VerifyAccess (0x1f9458, L"C:\\Program Files\\Steam\\steamapps\\common\\Skyrim\\TESV.exe", 0x32ba88)
err:seh:raise_exception Unhandled exception code c0000005 flags 0 addr 0x7ecd32c8
Re: Poor performacne in Skyrim - Did my homework, still stum
I just installed Linux Mint 14 on the same hardware, running wine 1.4. I now have about 90% of my windows performance, similar to what I got with wined3d.
Key differences I can think of are:
wine 1.4, debian was 1.41
3.5 kernel, debian was 3.6 and 3.2
The preempt settings were identical. I'll install 1.41 later to see if it's an issue between versions. I've included diff output between the debian 3.6 and mint 3.5 kernel configs for anyone who's interested and/or knows more about the kernel config than me.
Key differences I can think of are:
wine 1.4, debian was 1.41
3.5 kernel, debian was 3.6 and 3.2
The preempt settings were identical. I'll install 1.41 later to see if it's an issue between versions. I've included diff output between the debian 3.6 and mint 3.5 kernel configs for anyone who's interested and/or knows more about the kernel config than me.
Re: Poor performacne in Skyrim - Did my homework, still stum
I guess I can't upload anything or include large code blocks
kernel diff: http://pastebin.com/ZuPppkai
kernel diff: http://pastebin.com/ZuPppkai
Re: Poor performacne in Skyrim - Did my homework, still stum
OK I might have been premature. After correcting a choppy mouse issue that was hiding the actual framerate I realise I'm getting more like 70% of windows performance. That will be it for my unscientific numbers.
-
- Level 3
- Posts: 86
- Joined: Fri Oct 07, 2011 6:25 am
Re: Poor performacne in Skyrim - Did my homework, still stum
What you most need to do is try a fresh wine prefix, and build the latest version of wine. That plus the latest nvidia drivers should see you having pretty decent performance, it's gotten a good deal better lately. A fresh wine prefix is important in this case, because if you couldn't launch steam with the current one you have, then it's got too much cruft that's built up over time and is causing hassles now. It's possible to create a seperate wine prefix for experimentation, so you don't have to wipe what you've got.