gdi speed: 10x slower than real win

Jarek Czekalski jarekczek at poczta.onet.pl
Sat Jun 4 16:06:24 CDT 2011


Hi Devels

The app I use runs unacceptably slow under wine. I suspected gdi 
routines and wrote a simple win32 api app to make some tests and 
comparisons. On my box it shows wine gdi is 10 times slower than the 
real windows. Let's get into details.

REASON

I love EditPad Pro (appdb editpad pro 
<http://appdb.winehq.org/objectManager.php?sClass=application&iId=8392>), a 
text editor with the capabilities for a programmer that I can't find in 
any other tool. After upgrade from version 6 to 7 I have problems with 
the usability, due to slow performance. The app is written in Delphi and 
now they included new interface features. The menus seem to be animated, 
they roll down instead of popping up immediately. Menus roll down slowly 
on wine, but that's a little problem, just a noticable thing. I have 
problems with very typing characters and these problems are almost gone 
when I switch off all the toolbars. Looks like the icons on them make 
them slow down the whole app.

The author of the app claims that on his vmwared ubuntu everything is 
ok. I hope to get the judgement from you.

TESTING APP

I attach zip with source code and the executable of a short win32 api. 
It's an animated rectangle, optionally with a bitmap inside. It moves 
pixel by pixel from left to right. The next move is generated by 
PostMessage(WM_USER) at the end of OnPaint. I hope that's a way of 
assessing the gdi speed. Time needed to make the full pass of 500 pixels 
is printed on the screen.

RESULTS

test_gdi.exe without parameters draws bitmapped rect, while with the 
option "t" - the rect is bare. I tested 3 evironments and took 2 
measurings on each of them. First number is the bitmapped time. Units 
are seconds.
wine 0.39 0.22 - every movement phase is drawn
vmwared w2k 0.123 0.085 - only several painted rects in random places
w2k 0.0387 0.0285 - several painted every 2nd line, skewed rects

The factor of 10 comes from comparing bitmapped time between wine and 
real W2K. Wine graphics is perfect, and the faster environments take 
some shorter ways.

POSSIBLE EXPLANATION

Just my imagination. I guess Windows buffer their graphics outcome in 
memory. Fast changes in this memory are not passed to the graphic 
device. This would explain the artifacts seen in the experiment and also 
the lack of flickering of the apps under the real win. For example 
mentioned EditPadPro redraws its edit area with every character typed 
(at least in the syntax highlighting mode), while under real win this 
behaviour is undetectable.

BIBLIOGRAPHY

The speed issue was reviewed in such posts I could locate:
GDI Question 
<http://www.winehq.org/pipermail/wine-devel/2003-February/014052.html> 
(2003)
Windows 2D GDI benchmark tools? 
<http://www.winehq.org/pipermail/wine-devel/2009-July/077144.html> (2009)
Speed problem with Wine... 
<http://www.winehq.org/pipermail/wine-users/2001-July/007320.html> (2001)

Has anything changed?

LAST WORD

I hope you'll benefit from the tester I wrote. I'm looking forward to 
see your comments. Do you notice the same speed multiplier as me: 10x? 
Maybe I have to fix my Debian to reach better results.

Jarek

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20110604/2578ba6a/attachment-0001.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: test_gdi.zip
Type: application/zip
Size: 12254 bytes
Desc: not available
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20110604/2578ba6a/attachment-0001.zip>


More information about the wine-devel mailing list