Thursday, August 26, 2010

ATi 10.8 OpenGL / DirectX performance difference - Part 2

After a significant amount of fettling with the I7 system, including I think flashing a new bios for the motherboard, and completely un-installing and removing the existing ATi drivers with Guru3D's Driver Sweeper, the system now appears to be largely stable with a fresh install of the 10.8 drivers.

Again, the aim of these benchmarks is not to compare hardware, but to compare the performance of the DirectX and OpenGL API's on the same hardware with the same settings. According to several software developers there is no massive performance difference between the two API's in their latest revisions. Against the same hardware DX11 and OpenGL 3.x / 4.x should perform the same.

In part one I showed there was a massive performance difference between the RadeonHD 5770 running in a 2x Crossfire mode on the DirectX 11 and OpenGL API's. The performance ratio difference was consistant across platforms backed by an AMD PhenomII and an Intel I7 920 Engineering Sample.

Testing on a RadeonHD 4850 in a 2x Crossfire mode and in a single GPU mode indicated that one potential problem might be related to Crossfire not actually activating against OpenGL 3.x / 4.x calls. The performance difference between the RadeonHD 4850 in Crossfire Off and Crossfire On modes in OpenGL was fairly close, with the Crossfire On mode turning in a score of 904, and the Crossfire Off mode turning in a score of 931.

So, with the I7 co-operating, how does it fair with Crossfire turned off?

In the Single GPU rendering mode against DirectX 11 with Tessellation enabled, Unigine Heaven 2.1 turned in a score of 683:



In the Single GPU rendering Mode against OpenGL with Tessellation enabled, Unigine Heaven 2.1 turned in a score of 460:



The Crossfire Off score of OpenGL with Tessellation is not far off the Crossfire On score of 493.

So what is the performance penalty of running OpenGL 4.x tessellation anyways?

Same system, same I7 processor, same Crossfire Off Configuration. All that's changed is Tessellation in Unigine Heaven 2.1 has been set to Disabled.

In this configuration against DirectX 11 Heaven 2.1 turned in a score of 1037:



Under OpenGL Heaven 2.1 turned in a score of 1148:



No, that's not a typo. Under the OpenGL 3.x rendering mode, nothing else changed, the OpenGL renderer actually turned in a higher number of frames per second compared to the DX11 renderer with Tessellation turned off.

What conclusions can derived from these tests? Well, again, the scope is just too limited to draw any useful conclusions. Against this particular software application, Uningine Heaven 2.1, tessellation performance under ATi's OpenGL 4.x driver is just abysmal when compared to the DirectX tessellation performance. Outside of tessellation and in single-gpu mode the OpenGL driver is about where it should be in keeping pace with the DX driver.

Crossfire support for OpenGL 3.x / 4.x also seems to be completely broken, or it just may not be implemented yet. I do know that Crossfire rendering modes do not work in City of Heroes, but by the same token, SLI rendering modes are also non-functional for that game, so that isn't a reliably point of data either. SLI seems to be working in the cards I have against Unigine Heaven 2.1, but their OpenGL performance is indeed lower than the DirectX performance. I don't know if this is an issue with Heaven 2.1 itself, or an issue with the Nvidia drivers.

As an entire driver set, Catalyst 10.8 still isn't giving me any problems against the older Mobile RadeonHD 2600 and 4850 graphics cards I have. It doesn't seem to be that bad on those cards.

No comments: