Back to Article

  • DanNeely - Tuesday, March 11, 2014 - link

    Is DOTA2 still using a DX9 based engine, is valve doing something else to port its DX10/11 code that they haven't released yet, or are the OGL ports lagging in capability due to only having the DX9 fallback version of the graphics engine available? Reply
  • shivoa - Tuesday, March 11, 2014 - link

    You can hear Valve talk about their current engine work and OpenGL here: (no, I don't think I can condense it down into a couple of lines of explanation without taking away from the details as presented)

    Check the about for link to the slides.
  • Mondozai - Wednesday, March 12, 2014 - link

    Thanks for the link! Awesome contribution. Reply
  • Ryan Smith - Tuesday, March 11, 2014 - link

    Yes, DOTA2 is still DX9 based. Reply
  • Vash63 - Thursday, March 13, 2014 - link

    Uh... what DX10/11 code? All indications are that they're going straight from DX9.0c to OGL. I believe they said specifically in their Steam Dev Days conferences that they were targeting OGL on all platforms, including Windows. Reply
  • ydeer - Tuesday, March 11, 2014 - link

    I briefly installed DOTA2 on my Mac and it appears to be one of the shoddiest ports I’ve seen in quite a while, particularly on HiDPI screens. Running DOTA2 in a Windows 8.1 VM (Fusion) gave me similar if not better framerates as the OS X port.

    Of course this is more geared towards the Steam OS where they have full control of all layers, but still.
  • althaz - Tuesday, March 11, 2014 - link

    The DOTA 2 port is shockingly inconsistent on Mac and Linux. Valve claim that it has better performance in Linux than in Windows - however whilst performance is often excellent, single-digit framerates (in Steam OS!) on PCs that in Windows give you well over 100fps is all too common. Reply
  • nevertell - Wednesday, March 12, 2014 - link

    What are you on about ?
    I am running Archlinux with Nvidia's binary drivers and I get consistent performance all through out.
    And no existing MacOS device could run Dota2 at the native HiDPI resolution without seriously sacrificing image quality at sufficient framerates. And, in the case of Dota2, because the limited field of view is actually a part of the gameplay, it actually would be hard to render everything properly at non-standard resolutions.
  • althaz - Wednesday, March 12, 2014 - link

    Myself and plenty of others on the forums get occasionally horrifying performance in DOTA2 on Linux. As mentioned, I've stopped even trying to play it as 6fps instead of 120fps is NOT acceptable to me. Reply
  • skiboysteve - Tuesday, March 11, 2014 - link

    Valve has stated before on the forums that they do not plan to support HiDPI on steam and considering they released a new game without HiDPI support and using DirectX 9 (which is 12 years old!!) they seem to be all about resisting change and legacy technology... Reply
  • edzieba - Tuesday, March 11, 2014 - link

    "they seem to be all about resisting change and legacy technology"
    Apart from all that, you know, VR research and the like.
  • skiboysteve - Tuesday, March 11, 2014 - link

    Good point. Maybe I should say their PC technology is stuck in 2000s, and they seem to like it that way. They are definitely looking outside of PC technology though Reply
  • inighthawki - Tuesday, March 11, 2014 - link

    Surprise, it's what I've been telling people for months. This is a port of DX9, meaning their old "OpenGL is faster than DX" statement is at best wildly inaccurate. They use a 10 year old API for their comparison which has more overhead than DX11. Congrats to Valve on providing misleading perf statistics.

    Now Valve, how about comparing a native OpenGL port to DX11 so we can actually see the difference? It's not hard to rewrite an API on top of modern techniques and hardware to be faster than some old legacy pipeline.
  • blzd - Tuesday, March 11, 2014 - link

    Last I checked 99% of games still ran DirectX 9. DX11 support usually consists of 1 or 2 extra options, some type of bonus depth of field and tessellation. Reply
  • Friendly0Fire - Tuesday, March 11, 2014 - link

    It's changing very rapidly now that the new consoles are around. Prior to that, every multiplatform game basically required DirectX 9 anyway, since that's what the Xbox 360 supported (it's not exactly DX9, but close enough).

    Already, the new versions of CryEngine and Unreal are DX11 and DX9 versions are at best legacy, at worst entirely unavailable.
  • npz - Wednesday, March 12, 2014 - link

    By "new consoles" you mean only XBox One. The PS4 uses FreeBSD and its own API, which supports the feature set found in DirectX 11.2 and OpenGL 4.4, but it does not actually use DX11. Reply
  • nevertell - Wednesday, March 12, 2014 - link

    PS4 uses Mono (open source implementation of C#) and OpenGL. Usually, if you want to get the most out of the hardware, engine devs write a different rendering backend for each console anyway, because even if PS4 used D3D or Xbone used OpenGL, just changing the compile target would be inefficient. OpenGL makes most sense in this day and age on the PC, because it is platform independent. Reply
  • Th-z - Wednesday, March 12, 2014 - link

    In terms of graphic APIs, PS4 uses GNMX (high level) and GNM (low level). GNMX is probably much like OpenGL and DirectX for familiarity and ease of development. For GNM I will take a wild guess that it's like Mantle. Reply
  • clementl - Thursday, March 13, 2014 - link

    While it is possible to make use of mono on the PS4, the default SDK works with Clang/LLVM. Reply
  • nevertell - Thursday, March 13, 2014 - link

    Clang is not LLVM, they use a Mono "interpretor" with LLVM. Reply
  • clementl - Thursday, March 20, 2014 - link

    No, Clang is the de-facto C++ front-end for LLVM. And yes, this is the official compiler for the PS4 SDK.

    Also, you can't interpret mono. Mono is an open-source implementation of the C# programming language. You can make a C# compiler for LLVM (yes, a compiler, as of now LLVM has no interpreting functionality), but you can't use Mono and LLVM at the same time.
  • inighthawki - Wednesday, March 12, 2014 - link

    Another person clueless about this stuff. DX11 isn't just a couple features, it's a new API. DX11 rewrote the entire API to be more efficient, and has a feature know as hardware downleveling. The DX11 runs 100% fine on DX9 and above hardware, and provides much better CPU performance than the same game or application written in DX9. Reply
  • Despoiler - Wednesday, March 12, 2014 - link

    It's funny that you call people clueless. DX11 is a superset of DX10. DX10 was the rewrite of the API. DX9 is its own API. DX9 hardware cannot not run DX10/11 games. If it could there would be such a thing as forward compatibility in GPUs. Reply
  • inighthawki - Wednesday, March 12, 2014 - link

    Yes, DX10 was the rewrite, but nobody uses it so I simplified the argument to not bother with it.

    But you are incorrect. DX9 hardware DOES run DX9 games. DX 10.1 introduced feature levels (hardware downleveling) allowing 9_1 (DX 9.0a, shader model 2.0) hardware to target the 10.1+ API. A game can be written in 100% DX11 code and still run on DX9 hardware while taking advantage of API and performance improvements. DX11 has less overhead in a number of calls over DX9, so there is a huge advantage to using the DX11 API over the 9 API.

    You should probably learn about the thing you're referring to before trying to make a counter argument:
  • inighthawki - Wednesday, March 12, 2014 - link

    Sorry, that should read: "But you are incorrect. DX9 hardware DOES run DX11 games." Reply
  • Despoiler - Wednesday, March 12, 2014 - link

    That's not what you said. You said "DX11 runs 100% fine on DX9 and above hardware." That's if the programmers support the feature level 9_1 thru 9_3. So no it's not 100% and you are not running DX11 because that would imply DX11 functionality because you didn't specify the feature level. Reading comprehension is not your friend today. Also, if game devs support DX9, which means they support XP, which Microsoft doesn't even support, they just use their DX9 renderer. I'd love to hear examples of DX11 games that implemented DX9 feature levels. They could be out there, I'm just not aware of them. Reply
  • inighthawki - Wednesday, March 12, 2014 - link

    I think you're the one with reading comprehension problems.

    "DX11 runs 100% fine on DX9 and above hardware."
    Yes. This IS 100% true. For the 3rd time now, DX11 is an API. It is a software interface, and one that explicitly supports DX9 hardware. Therefore, DX9 cards are compatible with DX11. You are confusing the concept of the API itself and what the app developer decides to target.

    To put it in more simple terms:
    --DX9 hardware is 100% compatible with DX11.
    --DX9 hardware MAY NOT be compatible with a game written in DX11.
    See the difference?

    Also, this wasn't even my original point, you are just bringing up random things now. My point was that it is an unfair comparison to compare DX9 with an up to date version of OpenGL. Microsoft doesn't go around comparing DX11.2 to OpenGL 2.0. Would that really be shocking that a modern graphics API was faster than a legacy pipeline that drivers haven't even optimized for in a decade?

    When Valve rewrites "ToGL" on the DX11 API, then ports all their games to DX11 with the same aggressiveness in optimizations, then they will have fair numbers. Until then, their "OpenGL is faster than DirectX" claim is completely flawed and baseless.
  • RubberJohnny - Tuesday, March 18, 2014 - link

    You're an idiot!

    "--DX9 hardware is 100% compatible with DX11.
    --DX9 hardware MAY NOT be compatible with a game written in DX11.
    See the difference?"

    Well its not 100% then is it! it's a subset!
  • inighthawki - Saturday, March 22, 2014 - link

    Where exactly is the problem here? Game != API. Reply
  • Latzara - Wednesday, March 12, 2014 - link

    You are looking at the wrong product if you want DX11 no matter what the year is -- the main aspect fo Dota 2 is the community which means that it must run on what now is almost 'ancient' hardware for people who (still!) play the original DotA to be able to transition to the new without significant hardware bumps. The graphics in a game like DotA are secondary at best, it's all about gameplay mechanics and running it on as many systems as possible for the largest (and growing) player base -- and it's working... That's why DX11 is not even necessary, but making better ports to API's used in the OSes other than Windows (and not the latest ones - the same 'rule' as with DX9 applies) should be done better -- there's no excuse for that. Reply
  • curiousbystander - Wednesday, March 12, 2014 - link

    Title should read Publicly - not Publically... Reply
  • Haravikk - Wednesday, March 12, 2014 - link

    It's great to hear they've done this, but it feels to me like this should have been done before now, as they're not leaving a lot of time for developers to figure out what code they need to provide themselves, and add support for extra features they're using so they can port their own games to OpenGL. Plus, as already mentioned, it's only DirectX 9.0c (and not even all of it), but I suppose it could at least be used by companies with older titles to make them more easily available without the use of WINE wrappers and such.

    The reason I wish it had been done sooner though is that in that time the folks that work on Wine D3D might have had a chance to make some progress. In fact, I'm really hoping Wine D3D and ToGL can be combined in future, as it could give Wine D3D's far greater compatibility, but with ToGL's ability to do the translation before (during?) compilation, rather than at run-time, and ultimately working the two together but with separate compile-time and run-time products should make it easier for both projects to gain newer features in future.
  • liamdawe - Thursday, March 13, 2014 - link

    Hey Liam from Gaming On Linux, thanks for noting we were the source of your info, but how about actually linking to us, be a good sport ;) FYI

Log in

Don't have an account? Sign up now