Direct3D is now better than OpenGL Says John Carmack


John Carmack, id Software


In a recent interview, John Carmack (Doom, Quake) said Direct3D is a rather better API today. He also apreciates the courage shown by Microsoft about the incompatible changes to improve the API (Direct3D 11 vs D3D10/D3D9), while OpenGL has to support backward compatibility. Direct3D has a better multi-threading and render-state management.

Okay but why id Software base-code is still OpenGL-based?
Carmack’s answer: inertia is the main reason that keeps id Software on OpenGL.

But Carmack has no plan to switch to Direct3D despite its advantages.

OpenGL still works fine,’ said Carmack, ‘and we wouldn’t get any huge benefits by making the switch

[source]


16 thoughts on “Direct3D is now better than OpenGL Says John Carmack”

  1. Korvin77

    “OpenGL still works fine,’ said Carmack, ‘and we wouldn’t get any huge benefits by making the switch”

    *translates*: we are just lazy 😛

  2. Komar

    Why lazy he’s working on this technology for decades now … Carmack is one of the most genius programmer..(wolfenstein,doom,hexen,prey)
    He has always done gréât stuff … With open gl … Great graphics .. And great engine… Open free library…
    And nowadays open gl can manage all features of dx11 API like , dof.. Tesslation,..multithreading, ssao etc…

  3. Promilus

    Well… I think recent OGL versions are better than DX11 (with vendor extensions) but…
    1. there’s none bugfree implementation either from AMD or NV
    2. OGL works slower (AMD) or slightly slower (NV) than DX. The few exceptions are the use of bindless on NV or few AMD extension which have no DX equivalent
    But there is advantage – OGL3.3 and 4.x works on Linux and WinXP too while DX11 only on vista with service pack and Win7.

  4. DrBalthar

    Finally John has waken up! Good for him! He has finally seen the light!

  5. fmoreira

    @Promilus: What what are the advantages of having OpenGL 4 compliant hardware and running Windows XP?
    Furthermore OSX 10.6 only supports OGL 2.1 and apparently 10.7 will only support the 3.2 feature level. So at this point you are only targeting desktop Linux and Windows XP machines… And nowadays a Windows XP user is clearly not looking for nextgen graphics and performance for sure :)

    it would be NO good to have clear leading API for this kind of market, but that what’s going to happen if OGL sticks to its non-Object-Oriented approach and insisting in the decaded-aged backwards compatibility.

  6. Promilus

    @fmoreira – most titles still uses DX9.0c and not DX10/11 exclusively. So most are made with XP users in mind. Those users have modern HW so HD3870+ or 8800GT+ and can handle many DX10 like effects using OpenGL. This way you can run Unigine Heaven with tesselation on XP (OGL4.0) and IIRC same applies to Tessmark.
    now answer me that… what are advantages of having DX11 compliant hardware, tons of RAM, plenty of cores if the game you like is console port or DX9 title?

  7. ipristy

    I think i know why he prefers GL, it’s better scalable on other platforms like MAC but what about Xbox and PS3 that’s another story i guess.

  8. Nono

    PS3 actually uses a version of OpenGL ES.
    Xbox is of course on a DirectX derivative.

  9. Mars_999

    Man I get sick of the API war crap. I could care less what the API was called or who makes it, but it better run on everything, and DX isn’t going to happen.

    If I took OpenGL and put a DX interface over it and told you it was DX these same people OMG this is so much better than GL… Stupid. Anyone who knows these API’s could care less about the API, but target market should be more important from a $$ point. OpenGL is on every SmartPhone and Tablet and those together have more sales than PC’s or Consoles. So why not code once and run everywhere? Unless you just love abstracting for no reason and maintaining a bunch of extra code for no reason… I though coders were lazy…

  10. ltcommander.data

    @fmoreira

    The latest Steam survey shows that 21% of DX10/DX11 GPU owners actually use Windows XP. Since Windows XP is no longer commonly available with recent systems, these systems were probably custom built configurations owned by tech-enthusiasts. These are a game developers target audience and they are using DX10/DX11 GPUs in Windows XP. Using OpenGL 3.x/4.x here makes a lot of sense since you’d be able to target all those DX10/DX11 GPU owners on Windows XP with the latest features in a way that actually using DX10/DX11 wouldn’t enable you to do, while still supporting Vista and Windows 7 and open the possibility of easier porting to OS X and Linux for a larger target audience.

    It’s kind of sad that Lion is only at OpenGL 3.2, but it is sufficient. A game programed in OpenGL 3.2 could target Windows XP, Vista, 7, OS X, and Linux and really take advantage of the DX10 GPUs that most people have. That should be compelling in theory, although in practice few are biting.

  11. xcbb

    Dudes, because it works with windows XP is the wrong reason to support it.

    The compatibility problem strikes me.
    Not because the we have to keep everything compatible per se.

    But what’s the point of version numbers when they don’t use them?
    Couldn’t OpenGL 4 be somewhat redesigned OpenGL?
    Of course it could.
    I mean come on, you could still have OpenGL 3.x and OpenGL 4 in one driver.

  12. Promilus

    xcbb – but you have OGL4.1 core features + extensions, core 3.3 features + extensions, core 2.1 features + extension (in compatibility mode) etc. etc. You have it with DirectX too (so you still have to have libs for DX7, DX8, 8.1, 9, 9.0a, 9.0b, 9.0c, 10, 10.1 and 11). It is JUST THE SAME. However you can have OGL4 on XP while you can’t DX10 or 11. For me it IS ADVANTAGE.

  13. Rosario Leonardi

    Wonderfull, I’ll try this Dx11 stuff on my Android. Oh.. wait.. only openGl there. 😛

  14. fmoreira

    @Promilus “what are advantages of having DX11 compliant hardware, tons of RAM, plenty of cores if the game you like is console port or DX9 title?”

    -> being DX11 compliant is a being a synonymous of performance because of the fact that only the latest hardware supports it.
    dont’ get me wrong I know dx9 still plays its role in the market, but as users migrate to Windows 7 developers can still target their hardware by moving to Direct3D 11 since the API now has the Feature Levels that basically let you use the same interface trough all the hardware.

    @ltcommander.data hmm, interesting fact. though remember that it also shows this:
    http://humus.name/index.php?page=Comments&ID=334

    also check this out:
    https://twitter.com/#!/repi/status/20028015661

Comments are closed.