gfx-rs has been undergoing total rewrite in 2017. First,
xxxLL crates appeared in the
master branch. This was a prototype of new API growing right on the side of the main code, not sharing anything with it. We reached a point where we could run a quad example on Vulkan, D3D12, and Metal.
Then we started merging parts into the main code base. This appeared to be huge and complex task. Porting the higher layer (old
gfx crate) was especially challenging, and it was getting worse with time given the main code base slowly drifted away from
ll crates. Changes were made to both sides, making the integration a non-trivial process.
We are happy to report now that the LL crates are completely merged! But we are by far not done yet:
gfx_render is only half way there,
gfx_support and the main examples aren’t even started. At this point, we just realized it makes no sense to continue pretending
master means much (while working in
ll branch), so everything should get in.
Everything will be broken for quite some time. Examples are disabled, features missing, etc. Old releases (v0.16) are still fully supported, there is a lot of code out there using it. The new v0.17 is probably going to come out soon from
Here is a brief overview of the changes and the new gfx-rs structure:
gfx_coreis renamed to
gfx-hal, our Hardware Abstraction Layer, which is essentially implementing Vulkan Portability with a tiny slice of type safety.
gfxis renamed to
gfx-render, our higher-level rendering layer, which tries to be a modern revision of the old
gfx(with render passes, descriptor sets, compute, etc) that is safe to work with at the cost of less control and a bit of overhead.
gfx_window_YYYare merged into
gfx-backend-XXXbackends: Vulkan, D3D12, and Metal are operational, GL is in progress.
Hopefully, you’ll find the new gfx-rs more powerful and easier to work with. For instance, we have a
Backend trait now to solve the trait maze problem once and for all Also, you don’t need to learn yet another API now, as long as you are familiar with Vulkan.
There are ambitious plans in the pipeline for gfx-rs application, and we are slowly but steadily making them a reality. Help is appreciated!