https://bugs.winehq.org/show_bug.cgi?id=37308
Bug ID: 37308 Summary: GDI performance regression after Ubuntu 12.04 to 14.04 upgrade; incl. testable app Product: Wine Version: 1.6.2 Hardware: x86 OS: Linux Status: UNCONFIRMED Severity: major Priority: P2 Component: gdi32 Assignee: wine-bugs@winehq.org Reporter: gustep12@yahoo.com
Thank you for working on Wine. I love the fact that Wine occasionally works better (much faster and yet accurate rendering) for legacy Windows XP applications than newer Windows versions!
For example, here is a legacy CAD application which is easy to install and run in Wine, but which is very GDI intensive. As such, it is a good test for GDI speed issues. When you open a complex CAD file, this app runs nicely in Windows XP, but 5x or 10x slower in Windows Vista and later. Fortunately, it runs at least the same or faster in Wine than it does in WinXP!
In fact, I guess I run this app half the time just to see how and if Wine is working.
The application in question is PCB123 v2.1.0.7000, you can search for it online or get the 7MB installer here. It always installs easily and works well in Wine:
pcb123installer.exe (v2.1.0.7000, ~7MB): https://stanford.box.com/s/69ijfwjf7qc95bq6bh2m
I purposely use this older version of PCB123 because, compared to versions that came later, it has significantly faster display rendering performance with complex PCB designs, such as this one, which I made:
PCB123-v2-complex-testfile.123, ~800kB: https://stanford.box.com/s/3kmfcif91c1e909ak7jc
If you open this *.123 PCB design file and turn the mousewheel to zoom in or out, it triggers a complete screen redraw. A screen redraw can take from one to five seconds on sub-optimal software (Windows Vista/7/8, newest Wine), but should take only a fraction of a second with good software (Windows XP, earlier Wine).
If the scree re-draw takes too long, you can hide the filled copper planes of the PCB. This speeds up redraws significantly, but the general issue (rendering is now slower than it used to be, decreasing productivity) remains:
PCB123-v2-complex-testfile-nofill.123, ~800kB: https://stanford.box.com/s/08zamniq0gx3imlwhi76
This software was originally released in the Windows XP years. It ran much worse on Windows 7. It ran super-fast on Wine, regardless of hardware and/or Linux version, I believe. Over time, I ran this software under Wine on a few different Linux distros (Fedora, Mint, Ubuntu), and different hardware (older Thinkpad with slow IGP, newer desktop with GTX660), the results were always great under Linux+Wine, and much poorer under Windows 7.
Most recently, I had it running smoothly on Ubuntu 12.04 LTS, probably with Nvidia binary driver 319 and whatever Wine version was up to date.
Then, about three days ago, I let Ubuntu proceed with the upgrade to 14.04 LTS. Initially, PCB123 worked quickly, but then another set of Ubuntu 14.04 updates came in, probably including the Nvidia driver update v331. Somehow this un-installed Wine, and I couldn't re-install it - same issue as described here:
http://askubuntu.com/questions/449507/nvidia-libopencl1-331-has-to-be-remove...
Following the instructions on that page, I then did this:
sudo apt-get install nvidia-cuda-toolkit #Need to get 250 MB of archives; 774 MB of additional disk space will be used
sudo apt-get install ocl-icd-opencl-dev #this will remove nvidia-libopencl1-* and nvidia-opencl-dev
sudo apt-get install wine #Need to get 121 MB; 342 MB of additional disk space will be used.
Then I reinstalled Wine successfully, but then somehow the display performance of PCB123 got much, much slower. I estimate the screen redraw speed is now at least 20x to 50x slower than it used to be.
I am now trying to roll back the Nvidia drivers, the Wine versions, and so forth, to narrow down where the problem lies. No luck so far, PCB123 remains slow. I may even try to install Ubuntu 12.04 LTS again just to see if this fixes it. Any advice on how I can force different versions of Wine or relevant DLLs for testing?
Any tips on how I can support fixing this issue?
Best regards, Sebastian