How WINE implements BitBlt function?

John Found johnfound at asm32.info
Sat Jan 31 01:11:52 CST 2015


This question arouse when I have made some tests in assembly language.

I have wrote a program that to allocate some memory bitmap, fill it with some image and then draw it on a window. The in-memory processing is pretty fast so the main time consuming operation is the drawing of the bitmap on the window.

The code is the same for the Windows and Linux version of the program and only the code that draws the bitmap on the window differs.

In the Windows version it uses DIB and BitBlt function and in the Linux version it uses XImage bitmap and XPutImage function from XLib.

I expected to have some similar performance of both programs, but was surprised, that in WINE, the Windows version performs approximately by 50% faster (150fps) than the Linux version (90..100fps) and the Linux version loads the CPU much higher than the Windows one.

So, the question: How in WINE is implemented BitBlt function in order to have so high performance and so low CPU load?

-- 
John Found <johnfound at asm32.info>



More information about the wine-devel mailing list