Skip to content

Commit

Permalink
Added 2017 year report
Browse files Browse the repository at this point in the history
  • Loading branch information
kvark authored Dec 30, 2017
1 parent 198cf83 commit 1b3ec36
Showing 1 changed file with 23 additions and 0 deletions.
23 changes: 23 additions & 0 deletions _posts/2017-12-30-this-year.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
---
layout: post
title: This Year in Gfx-rs - 2017
---

2017 was a complete game changer for the Gfx-rs project. After searching for a good programming model, wondering about the API design, we decided to take course on full Vulkan. Good bye `gfx-core`, welcome the new king of the hill - `gfx-hal`, standing for Hardware Abstraction Layer. Not only we are shaping up the HAL API to match Vulkan as close as possible, we are also implementing a [Vulkan Portability](https://www.khronos.org/blog/khronos-announces-the-vulkan-portability-initiative) layer (for linking with C libraries using `vulkan.h`) in https://github.com/gfx-rs/portability .

### Hardware Abstraction Layer

HAL brings a lot of goodies to the table:
- Backend support for Vulkan, D3D12, Metal, and even GL [is coming](https://github.com/gfx-rs/gfx/pull/1701). Windowing is now part of the backend as opposed to external crates, providing stronger abstraction and easier user workflows.
- Single shader entry point - SPIRV, translated automatically into backends with the platform differences taken care.
- Compute support and a pretty [ocean demo](https://github.com/msiglreith/gfx_ocean).

There's been some brewing of frame graphs in Rust gamedev community lately. We hope to see some (potentially competing) implementations on `gfx-hal` in 2018. Meanwhile, Amethyst is [full steam](https://github.com/amethyst/amethyst/pull/463) onto the renderer port to `gfx-hal`.

In the other infrastructure sections, we've been working on a compatibility layer to the old `gfx` API within `gfx-render` crate, which should ease the transition of users to the new HAL. In order to prevent functional regressions, we've introduced `warden` test framework that loads scenes from text descriptions (in [RON](https://github.com/ron-rs/ron)).

### Gfx-rs current

Vulkan is our future, but having a solid basis with existing users is our present. We've just released a long-awaited `gfx-0.17` featuring numerous [fixes and improvements](https://github.com/gfx-rs/gfx/blob/pre-ll/CHANGELOG.md#v017-2017-12-30), including the WebGL2 support via `wasm32-unknown-emscripten` target. We are happy to see Gfx-rs applications, and continue our commitment to support and improve `pre-ll` crates.

2017 has been a wild year for our community. We saw the maturing of [ggez](https://github.com/ggez/ggez), steady growth of [Amethyst](https://github.com/amethyst/amethyst), sudden emergence of [three-rs](https://github.com/three-rs/three) as well as smaller libraries like [gfx_glyph](https://github.com/alexheretic/gfx-glyph). Special welcome to [Zemeroth](https://github.com/ozkriff/zemeroth) and [Gaia](https://github.com/ucarion/gaia). Keep on rocking, folks!

0 comments on commit 1b3ec36

Please sign in to comment.