Join us on our own very special Reddit: /r/Linuxers

Valve Has Posted Their Direct3D To OpenGL Translation Layer Onto Github

By - | Views: 44,199
Well this was a surprising move, Valve creators of Steam have posted their Direct3D to OpenGL translation layer onto github.

  • Limited subset of Direct3D 9.0c
  • Bytecode-level HLSL -> GLSL translator
  • Some SM3 support: Multiple Render Targets, no Vertex Texture Fetch

It is provided as-is and with no support, it may be useful for projects like Wine and for other developers looking to make the porting job easier.

They have left in some hardcoded Source Engine stuff as it was literally ripped out from DOTA2.

Find it on github here.

I do wonder if many people will take advantage of it, imagine how big a project this could be if a few developers pick it up and work on it removing things like hardcoded Source Engine behaviour, more documentation etc. It could enable some bigger AAA games to get ported to Linux faster (or give them more of an incentive to try), but that's just my wishful thinking. Article taken from
We do often include affiliate links to earn us some pennies. We are currently affiliated with GOG, Humble Store and Paradox Interactive. See more here.
About the author -
author picture
I am the owner of GamingOnLinux. After discovering Linux back in the days of Mandrake in 2003, I constantly came back to check on the progress of Linux until Ubuntu appeared on the scene and it helped me to really love it. You can reach me easily by emailing GamingOnLinux directly.
See more from me
The comments on this article are closed.

Bart 11 Mar, 2014
Surely this is a good thing. Valve wants SteamOS support and this can enable some developers a shorter path to achieve it.
aaaaaaaa 11 Mar, 2014
as far as i remember wine uses their own WGL layer, not classic OpenGL. this kinda makes me wonder if there could be anything beside reference implementations of some methods and maybe shader converter, since shaders were always piss poor on wine.

but, living as its own project i could see a lot of worth if it people would start on improving it. painless porting would be the 1st result
Speedster 11 Mar, 2014
Ok this is the sort of present that those who grumbled about gifting of non-free games to debian/ubuntu devs should be impressed with! Way to go Valve!
s_d 11 Mar, 2014
Yes, bravo! :D

Also, Valve appear to have released it using their own variant of a 2-clause BSD-style license.
TPLAR 24 Mar, 2014
I wished if AMD released her Mantle for linux then the whole story would change but unfortunately ...
but still good to c such a thing.^_^
c704710 3 Jul, 2014
My knowledge of compilers is little more than 4 bytes. But I'm thinking if I've improperly applied all the wrong knowledge in the worst possible way I've got an inkling of exactly how TOGL works.

A developer has source code with a subset of Direct3D 9.0c compliant calls in it (hopefully no D3D9c calls that TOGL wouldn't recognize)
They run togl on it, which converts all the Direct3D 9.0c compliant calls into bytecode 3D calls
bytecode being a step higher than Assembly language in human readability yet slightly more difficult to understand and being directly compiler readable (unlike an actual high level language which must be parsed and other steps taken for the compiler to comprehend it)
However, its not the bytecode 3D calls that a compiler would come up with on its own, which is a normal part of the compiling process most developers will never have any need to see, if compiler were told to compile Direct3D 9.0c compliant calls. Since those calls would be derived from d3d9.dll and other such libraries. RATHER, TOGL creates bytecode 3D calls derived from opengl.dll or depending on the host and target platforms.
So was that mangle badly enough?

Really, how exactly does it work?
While you're here, please consider supporting GamingOnLinux on:

Patreon, Liberapay or PayPal Donation.

We have no adverts, no paywalls, no timed exclusive articles. Just good, fresh content. Without your continued support, we simply could not continue!

You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
The comments on this article are closed.
Livestreams & Videos
Community Livestreams