gfx-rs nuts and bolts

gfx-rs is a project bringing efficient cross-platform graphics to rust. This blog supposedly hosts the major milestones, concepts, and recaps of the project.

This Year in Gfx-rs - 2016

21 Dec 2016

In 2016, Gfx-rs got wings. It was a big year for us, so let’s take a moment to recap what happened.

It started with the adoption of the new paradigm - Pipeline State Objects, which improved our run-time safety checks, and paved the way to the new API backends. The implementation was further polished through the year, including raw PSO components and better error messages.

Then came the D3D11 backend, which quickly got to 1st tier status. It features two different command buffer styles: native D3D11 deferred context, and our software fallback. Windows users rejoiced having the first major D3D11 renderer in Rust. The backend proved our capability to abstract over the APIs in general, but the battle for next-gen API adoption was still ahead.

We got a few new strong contributors, bringing modern vision, ideas, and energy to the project. They implemented features, cleaned up the internals, and added some new examples. Our synthetic friend made it possible to run Gfx-rs on Android, with a major game project using it: ZoC.

Meanwhile, we took our time to improve documentation and somewhat formalize our Programming Model. It allowed both newcomers and existing contributors to get a sense of our design and the reasoning behind the architectural decisions we made.

Finally, we landed the Metal backend! It is still in the experimental state, but the examples run, and we are working hard on bringing it’s features on par with the other backends. Metal showed us all the API holes and bits missing to become truly next-gen, and with that experience we can advance to the other exciting APIs in 2017.