DEV Community

Discussion on: We're Stephanie Hurlburt and Rich Geldreich, ask us anything!

Collapse
 
richgel999 profile image
Rich Geldreich • Edited

Hi Tim - Yes, I was one of the earliest members of the Steam Linux project. I was involved in the project for about 2+ years. I worked with all the major driver vendors to get OpenGL performance up to where it needed to be to have a hope of being a viable alternative to Direct3D.

I helped port and spent a lot of time optimizing many of Valve's Source1 engine games (such as L4D2, DotA2, CS:GO) to Linux, and I took the "togl" D3D9->GL layer and basically rewrote it to eventually outperform Direct3D. Getting the GL drivers in shape while also trying to navigate and survive the sometimes vicious backroom politics and yearly-firing cycles at Valve was very trick business.

While working on this project, I had one driver vendor snipe at me personally (with a patent attack on one of my open source libs), because I basically treated all driver vendors equally. This driver vendor basically infected Valve's Linux team with a couple of their hand-picked "embedded" engineers, which gave them certain advantages vs. the other vendors.

Tool wise, I used AMD's GPU PerfStudio, RAD's Telemetry, and a few in-engine ad-hoc custom profiling tools I created specifically to compare GL's batch performance vs. D3D9's. At the time, the available GL tools were almost useless for real-world work.

I had to learn a lot about Linux, OpenGL, and how the Source1 engine worked. I spent a ton of time debugging Source1 engine bugs.

I also spent some time porting Source2 to OpenGL, by wiring up the rendersystem D3D9 backend to togl, then optimizing it as a unit. I wrote the first working GL backend for Source2 and handed it off to another external engineer.

All in all, I had a lot of fun working on the project. Next time, I'll drink less caffeine and do it in a more supportive atmosphere.