This week I received my new PC, set it up, and was able to actually look at 10.30 performance problems with AMD hardware on the Catalyst 13-9 drivers. With the actual “problematic” configuration (and a hard drive that wasn’t barfing up sectors like an infant with reflux) it only took about 15 minutes to find the actual problem.
Which was…face palm…a GL drawing code path that I had disabled during private testing (due to low performance) was actually not disabled at all due to a lack of parenthesis. So I’m an idiot.
What’s interesting is the relative effects of this code path on multiple platforms.
- On OS X, this code path runs at pretty much full speed, so having it in the beta didn’t reveal any actual problems. Hence while my PC was dead, my few attempts to reproduce the reported behavior on my Mac totally failed.
- The code path is slower on both Nvidia 331.88 drivers and AMD 14-4 drivers. But…1030′s basic performance is faster than 10.25, so the two canceled out, yielding somewhat reasonable looking fps tests. That’s why when I asked Philipp to try to reproduce things on an NVidia windows box, he told me things didn’t look broken.
- On the AMD 13-9 drivers, the code path is absolute death. I believe that this is where the majority of bug reports were coming from.
- The actual total performance win from 10.25 to 10.30 appears to be quite a bit bigger on NVidia hardware than AMD hardware. For some reason, one of the modernization changes in 1030 is more important for NV than AMD. I don’t know what the specific changes that are helping are – the goal of 1030 is to simply use the best code paths we can find.
Here’s an excerpt from my performance testing numbers – this is with fps test 3 with the 747 replay. The hardware for the test is a GeForce 680 GTX and a Radeon HD 7970. Expect better fps with the NV card – it’s a generation newer than the AMD card. Numbers are framerate, probably good +/- 1 fps.
Driver/hw 10.25 10.30b5 10.30b6 (fixed)
NV 331.88 34 34 42
AMD 13-9 28 11 30
AMD 14-4 27 28 29
So you can see here that on better functioning drivers (331.88, 14-4) even with the performance problems of 10.30b5 the net change in framerate from 10.25 was positive. But once I remove the stupid code path, things get a lot better.
That 11 fps in 10.30b5 with 13-9 is the bad code path behaving badly. That will be fixed in the next beta.
I am hoping that this code path is also responsible for the remaining “low fps in local map” reports, but I haven’t confirmed that yet.
Your Mileage Will Vary
One of the problems with performance testing is that X-Plane’s content varies by add-ons, so how much the problems with 10.30b5 affect you will have a lot to do with which aircraft you fly. This is why some users already thought 10.30 was a win over 10.25 performance wise, and others thought the build was totally unusable. How much speedup you get will depend on the kind of content you use.
AMD: What Drivers Should I Use
The 14-4 drivers are slightly slower than the 13-9 drivers for either shipping X-Plane 10.25 or 10.30b6 (not yet released). I believe this represents a fundamental (small) loss of performance with the newer drivers. The loss is actually smaller than it looks if you view the raw fps numbers with fractions, and the precision for the tests isn’t better than 1 fps.
If you can run the 14-4 drivers you should – they fix a bug in sRGB blending with HDR that makes the 13-9 drivers look rather weird with HDR mode.
If you are stuck on the 13-9 drivers because you have old hardware (the oldest GPU the new drivers support is the HD 6000 series – so if you have the HD 5870 or older you need the older drivers) at least 10.30b6 will improve performance.
Clouds Are Their Own Performance Problem
The other big performance problem that I am aware of besides this one is that clouds use a lot more fill rate than they used to. This is my next bug to try to fix – it is totally separate from this one, and affects all platforms. My goal is to get the clouds to use the same fill rate as they did in 10.25. That work isn’t done yet, but at least now I have hardware to work on.