• What
    is this?
    You've landed on the AMD Portal on AnandTech. This section is sponsored by AMD. It features a collection of all of our independent AMD content, as well as Tweets & News from AMD directly. AMD will also be running a couple of huge giveaways here so check back for those.

With the announcement of DirectX 12 features like low-level programming, it appears we're having a revival of the DirectX vs. OpenGL debates—and we can toss AMD's Mantle into the mix in place of Glide (RIP 3dfx). I was around back in the days of the flame wars between OGL and DX1/2/3 devotees, with id Software's John Carmack and others weighing in on behalf of OGL at the time. As Microsoft continued to add features to DX, and with a healthy dose of marketing muscle, the subject mostly faded away after a few years. Today, the vast majority of Windows games run on DirectX, but with mobile platforms predominantly using variants of OpenGL (i.e. smartphones and tablets use a subset called OpenGL ES—the ES being for "Embedded Systems") we're seeing a bit of a resurgence in OGL use. There's also the increasing support of Linux and OS X, making a cross-platform grapics API even more desirable.

At the Game Developers Conference 2014, in a panel including NVIDIA's Cass Everitt and John McDonald, AMD's Graham Sellers, and Intel's Tim Foley, explanations and demonstrations were given suggesting OpenGL could unlock as much as a 7X to 15X improvement in performance. Even without fine tuning, they note that in general OpenGL code is around 1.3X faster than DirectX. It almost makes you wonder why we ever settled for DirectX in the first place—particularly considering many developers felt DirectX code was always a bit more complex than OpenGL code. (Short summary: DX was able to push new features into the API and get them working faster than OpenGL in the DX8/9/10/11 days.) Anyway, if you have an interest in graphics programming (or happen to be a game developer), you can find a full set of 130 slides from the presentation on NVIDIA's blog. Not surprisingly, Valve is also promoting OpenGL in various ways; the same link also has a video from a couple weeks back at Steam Dev Days covering the same topic.

The key to unlocking improved performance appears to be pretty straightforward: reducing driver overhead and increasing the number of draw calls. These are both items targeted by AMD's Mantle API, and presumably the low level DX12 API as well. I suspect the "7-15X improved performance" is going to be far more than we'll see in most real-world situations (i.e. games), but even a 50-100% performance improvement would be huge. Many of the mainstream laptops I test can hit 30-40 FPS at high quality 1080p settings, but there are periodic dips into the low 20s or maybe even the teens. Double the frame rates and everything becomes substantially smoother.

I won't pretend to have a definitive answer on which API is "best", but just like being locked into a single hardware platform or OS can lead to stagnation, I think it's always good to have alternatives. Obviously there's a lot going on with developing game engines, and sometimes slower code that's easier to use/understand is preferable to fast/difficult code. There's also far more to making a "good" game than graphics, which is a topic unto itself. Regardless, code for some of the testing scenarios provided by John McDonald is available on Github if you're interested in checking it out. It should work on Windows and Linux but may require some additional work to get it running on OS X for now.

Source: NVIDIA Blog - GDC 2014



View All Comments

  • Honest Accounting - Tuesday, March 25, 2014 - link

    Not accurate. The 520 is a $180 device. That's precisely the same price as a Moto G (or Xperia E1 for that matter). There's no point comparing it to a device less that half the price. But again, if it's this good performer that you claim, the thing to do would be to reduce the price (to gain more market share) rather than up the specs - which was a necessity since the performance was in fact inadequate Reply
  • Alexvrb - Wednesday, March 26, 2014 - link

    Who's not being accurate? You're thinking of the 620. The 520 is clearly available unlocked for 120-130, and I've seen it on sale for less. Performance is quite good for such a lowend smartphone. Reply
  • Mondozai - Tuesday, March 25, 2014 - link

    "Why? Because of office which is available on Android as well? Because of the crappy legacy desktop?"

    I agree that Windows tablets aren't going to conquer Android tablets. But you're delusional if you think that Windows legacy desktop is somehow bad. Nobody even comes close to the amount of programs available. Everything works. MacOS is better on some things, but it's a common myth that the only thing that holds Mac back is basically gaming and a few other apps. It's a lot more than that.
  • Anders CT - Tuesday, March 25, 2014 - link

    That is just flat out nonsense:

    1) OpenGL is also available on Windows. In fact if DirectX 12 wont be available on windows 7, modern OpenGL will have a much wider installbase than DirectX on the desktop alone.

    2) Dalvik is not the center of Android. It is a higly efficient execution model that complements native binaries. Most OpenGL applications, and indeed all of the libraries, will always be natively compiled.

    3) Dalvik is in no way bound to Java, is not based on Java, and does not use any Java classes. It is a virual register machine. Java is a tool that developers can use to target dalvik.

    4) ART only slows down Androids (quite speedy) boot time one single time, when you first turn on ART and reboots your device. Then it will compile all your dex-files and be done with it. ART improves execution efficiency slightly at the exchange for a slightly larger memory footprint. Also, ART helps out with x86 and MIPS compatibility without the performance overhead of jit binary translation.

    5) Dart is not a virtual machine, and cannot replace Dalvik. Dart is a programming language and application framework for client-side webprogramming. In theory you should be able to make a dart compiler that targets dalvik. Go right ahead.

    6) If Microsoft intends to integrate Windows Phone with Windows, they are moving pretty slowly. In fact, running Android apps on Windows is a lot easier than running Windows Phone apps on Windows.
  • jimjamjamie - Tuesday, March 25, 2014 - link

    "Microsoft.. are moving pretty slowly."

    Considering how late they have been to the smartphone game I think that is a given, I wouldn't discount the prospect of OS family homogenisation simply because Microsoft is being slow about it; they are just slow in general.
  • Mondozai - Tuesday, March 25, 2014 - link

    I think it's less a matter of moving slowly than just trying to manage their main business. Google had no legacy business so they could focus it all on mobile. Microsoft's business in the software space is far more fragmented/divided.

    Another issue is that while casual consumption is done as good if not better on tablets etc, people are starting to find that working is horrible and gaming is atrocious unless for very simple games. You won't have deep immersive experiences on mobile gaming by and large. It's horrible to type long documents. Etc. So they are held back by this, because the cassandras were right about the death of the desktop. And Apple can afford to discount MacOS because they know it'll always be a marginal player.
  • Mondozai - Tuesday, March 25, 2014 - link

    "because the cassandras were right about the death of the desktop." should say "cassandras were wrong". Declining, but now stabilizing. And once places like India gets built out properly, a lot of people will tire of just watching 5-10 inches all the time. Especially for tasks that require sustained concentration over hours of time aside from movies. Reply
  • toyotabedzrock - Tuesday, March 25, 2014 - link

    Android allows native code apps. The 12.x versions of Opera where native c or c++ and opengles. And ART only increases the boot time once to pres compile your apps into a new format. Reply
  • TheJian - Wednesday, March 26, 2014 - link

    Chromebooks took 21% of ALL notebook sales already. Let me know when win8 stops that. I expect to see Denver (and S805/810 etc) come for the low-end desktops next and move up the chain until someone stops them. DX12 isn't until xmas 2015 if it isn't late (big if), which gives people 2yrs to use OpenGL to drop draw calls, kill Mantle and get a larger audience overall with mobile pushing it. Since most people don't have a DX11 card (china runs 70% xp still, so not even dx10 there), there are not a TON of DX11 games even today (DX11 ONLY I mean, you can always use dx9.0c in most instances - ALL?), and if you want your game to run on mobile+PC it's best to choose an engine and probably avoid DX.

    Microsoft will be 3rd in all things mobile until Google/Apple mess something up badly. DX means NOTHING there, opengl is everything pretty much which is why they are pushing ES 3.1 for it now. Also MS continues to price themselves to death (see surface/2/pro etc), so windows is going nowhere on mobile fast. Tegra tab adds a modem price goes up $50, MS adds the same one and price rises $130. See the point? You can't tell me NV is charging them almost triple for a software modem...LOL (a Soc goes for $10-45).

    IMHO MS has screwed themselves into losing DX dominance (2yrs away while OpenGL has low driver mantle like stuff already NOW), and in turn gamers, and in the end a lot of PC market will go to linux/android/steamos etc or any combo of them on a PC running ARM custom chips from Apple, Qcom, NV with NV likely winning a SOC battle as the GPU takes over modem's importance on mobile (who has the 20yrs of gaming/gpu+Dev experience here? I see only NV raising their hand). Eventually we'll have a 500w PC like box running these and probably a discrete NV card for high-end just like now on WINTEL (maybe AMD too one day if they live that long or get bought).

    NV wants payback for Intel killing their chipset business (hate is strong between these two or Intel would have already figured out how to buy them and pay Jen Hsun to leave for a few billion which would easily triple his current wealth) and they're planning to get it with Denver/maxwell chips and beyond moving to your desktops/servers (and higher end notebooks too). With Google/Valve/Apple helping OpenGL now is the perfect time (with win8 screwing pc sales) to strike with in-house ARM 64bit cpus and move games to ARM/OpenGL via massive mobile gamers and units already dwarfing PC gamers. They are selling 1.3B units of mobile now and will be over 2B in the next few years. Only ~34mil gamers on steam (IIRC) says the PC market is pretty small compared to mobile (also only ~50mil discrete sold yearly). GDC 2013+2014 show devs have moved massively to mobile, matching PC's at 51/52% making games for both. While consoles on the other hand, are under 15% showing devs are leaving them massively (next gen hasn't moved the needle from last year).

    Why can't I run a quadboot (tri? whatever) of chrome, android, linux & steamOS? All are free and all run on ARM or will, steamos coming soon surely, NV/Valve working hand in hand on steamboxes for a few years says it will be on ARM at some point. At some point we'll all just run VM's of whatever we used to do (if needed for X software). We do it already, but I mean even home users will be using it like they do in enterprise now. I guess I pretty much think the exact opposite of what you think ;)

    Free OS's will take over as games move there, then apps will follow too. The only question I have is how much Wintel will be hurt (and consoles are dead, just a matter of when in this cycle). I think Intel does best out of this (they can fab for others in worst case), while MS has nothing to stop windows/dx/office from going down (slow or quick, but going down), though a NV buyout could help stop it, but I think that's a best fit for and Intel purchase and I'd rather see 14/10nm gpus shortly as opposed to MS getting them who can't do much for my future hardware without fabs.
  • gobaers - Monday, March 24, 2014 - link

    An interesting historical note: one of NVIDIA's first successful products, the Riva128, had a key differentiator in having good Direct3D preformance. No, it wasn't as fast as the 3Dfx parts, but it was the first serviceable challenger. It combined decent 3D with great 2D in a single card unit, and the rest is history. The unit I had was this, reviewed by Anand:


Log in

Don't have an account? Sign up now