The WINE project is going on 15 years in existence, and two years ago, it finally went into beta. Through the beta stage, there has been a consistent release about every two weeks, which often brings a fair number of improvements to this software for running Windows programs on Linux (and other operating systems). Sparked by curiosity as to how the performance of WINE is affected release by release, we have gone through and benchmarked the past seven releases. While this only represents the past four months of work by the WINE community, the results may surprise you.
For this article we had went back and built from source the past seven WINE releases to date -- WINE 0.9.44, 0.9.45, 0.9.46, 0.9.47, 0.9.48 0.9.49, and 0.9.50. We were unable to go back any further due to graphics issues with the two benchmarks being used, Futuremark's 3DMark 2001 SE and 3DMark 2003. During this testing we had kept the same WINE configuration between releases and the same 3DMark settings. The test system used was an AMD Athlon 64 X2 4200+ AM2 processor, 2GB of DDR2-800 memory, and Abit NF-M2 nView motherboard. Ubuntu 7.10 (32-bit) was loaded on the system with the NVIDIA 169.04 beta driver.
To recap some of the major highlights between 0.9.44 and 0.9.50, WINE 0.9.44 had (among other changes) introduced automatic detection of time-zone parameters, better signatures support in crypt32, and more gdiplus functions. Of interest in WINE 0.9.45 were improvements to crypto DLLs and Direct3D and fixes for the sound support. Two weeks later, WINE 0.9.46 had more complete support for device installation in setupapi, Direct3D improvements, and the start of I/O completion ports support.
Coming down the pipeline in WINE 0.9.47 was a new scheme for OpenGL support in child windows and fixes for regression test failures. Meanwhile, enhancing the experience in WINE 0.9.48 was a more complete cryptnet implementation and WIDL being able to generate oleaut32 proxy code. Copy protection fixes, GLSL being the default for Direct3D, memory error fixes, and the start of an inetcomm DLL implementation had marked the release of WINE 0.9.49. While WINE 0.9.50 was a week late because of Thanksgiving here in the US, it marked I/O completion now being complete, improved user credentials management, and more memory fixes thanks to Valgrind. These WINE releases, of course, also contained a number of bug fixes each time around.
The benchmarks in this article simply focus on the graphics performance within 3DMark 2001 SE and 3DMark 2003, but in the future we will be publishing a similar article looking at the WINE for overall system performance. If there are specific tests you would like to see in this future Phoronix article, be sure to let us know in the Phoronix Forums.