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.


Creating a vanity GPG key

I had decided a while back that I should generate a new keypair, as I’m still using an old 1024-bit DSA key, and it’s been recommended to migrate to a stronger RSA key for several years now (In fact,many key-migration tutorials date back to 2009, in response to an announced attack vector against SHA-1). Yes, I decided a while back… but never actually did it.

You see, there was a small problem: it had taken me a while to remember my key-ID. That arcane annoying random 8-digit sequence that is part of the fingerprint for every GPG key. It’s not globally unique, but it’s unique-enough to be useful. Mine is 04edc4b1.

I was determined to have something more memorable, or at least slightly more geeky (because having a GPG key honestly just isn’t geeky enough.)

Someone else had the idea of creating a vanity key-ID, too, but he was trying to create a specific key. His method for generating them is private, and I didn’t feel like reaching out to find out what it was, which meant rolling my own.

Since I wasn’t looking for a specific key, but just for something memorable and interesting, I didn’t have to create a collision scenario. I just had to create a bunch of keys, and filter them for “interestingness.”


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: