-
Notifications
You must be signed in to change notification settings - Fork 16
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
23 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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! |