Using a translation layer was the best decision...why ?
They are making a translation layer as universal as it can get for their engine....because it will be universal for their engine, it will make extremely simple and fast to convert other Source engine titles to LINUX.
This gives another benefit that is reduce the porting costs to very low levels....making it even easier to achieve profits from Linux ports....one aspect that was discussed here at Phoronix ad nausea.
No matter they are using a translation layer, they are achieving an impressive performance....and they said that they can squeeze easily 5 % more of speed from further optimization of that layer.
Even if this only at 1st glance applying to Source Engine, the teachings they got and the tools they learned to use to do it, might well apply to other engines like UE3 or others....this is where their assistance to other partners using other engines can be useful .
Seriously I was expecting a better design from valve. If you have seen irrlicht or ogre renderer for example, you would have known that a renderer should be independent from opengl or dx. you write abstract classes that you then implement for opengl 1.5 or 2.0 or dx 9 or dx 11 and so on. If valve would have done so there would be no sense in translating dx calls to opengl. I mean WTF kind of design is that? Are they using any kind of OOP design at all? It just shows that sometimes even the "best" programmers fuck it up. Valve you dissapoint me...
No, it isn't. The PS3 does not use OpenGL in any useful capacity, and bringing Sony up as a "user of OpenGL or equivalent" makes no fucking sense. Microsoft is a "user of OpenGL or an equivalent" by that logic. Porting your applications to OpenGL doesn't help in the fucking slightest when it comes to porting to the PS3. Nintendo also absolutely does not even "kinda sorta" use OpenGL.
I've been trying to make the exact same point for years now. Consoles all use lower level API's because, especially in the case of the Wii/PS3, the OGL implementation is too slow to be useful.
Its generally accepted your graphical backend has to be re-written when porting to/from consoles, regardless of the renderer you use.