WineD3D Benchmarking Part 2: Phoronix Test Suite

After Part 1, I have waited to run any benchmarks, until it looked like they were getting close to actually releasing Wine 1.6. I wanted to run them all at once, so that the results weren’t skewed by system updates between runs (Another problem I have with looking at Stefan’s historic results: I don’t know which improvements are due to wine development, and which were from video driver/kernel/library updates).

In its own $WINEPREFIX, I have installed Phoronix-Test-Suite (PTS) and php for Windows. Unfortunately, some hacking was required to get PTS to output desirable system information, as the Windows side isn’t fully developed (There’s a lot of code like: if(phodevi::is_windows()) { // TODO: Windows support }). I didn’t keep track of everything I ended up changing, but I’d imagine much of it is irrelevant, due to a newer release of PTS (4.6) which I have yet to try.


WineD3D Benchmarking Part 1: Auto-Building from Git

I’ve been following wine-git a lot recently, and especially now that they’re starting to put out wine-1.6 release candidates. I’m especially interested in seeing the evolution of the DirectX performance.

One of the Codeweavers developers, Stefan Dösigner, has been running regular performance benchmarks tracking D3D development with Phoronix-Test-Suite, and it’s great to see the changes over time. However, I have one major problem with his results: He’s using a much older hardware for his tests. They’re run on a 8-year old 2-core CPU (Athlon 64 X2) and a 7-year old GPU (Geforce 7600GT). What does that really tell me about Wine’s performance on newer hardware? I wanted to know for myself.

To start with, because I wanted to be able to build from wine-git instead of using the Ubuntu Wine PPA, as well as rebuilding with “-march=native” and using Clang instead of GCC. (Through my personal uses of  Wine with a few games, I’ve found performance better when it’s built with Clang, although it varies from game to game, and is sometimes worse. For the benchmarking, I intend to run everything as built by GCC, since the earlier versions needed patches to compile via Clang.)

Over a series of iterations, I’ve thrown together some bash scripts which do the building for me: