Skip to content

Commit ce52513

Browse files
authored
Merge branch 'source' into news-8/will-and-amethyst
2 parents 90796af + ebf59ab commit ce52513

File tree

1 file changed

+70
-32
lines changed

1 file changed

+70
-32
lines changed

content/posts/newsletter-008/index.md

Lines changed: 70 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -83,36 +83,70 @@ Highlights of [this month's update][will_blogpost] include:
8383

8484
### gfx-rs and wgpu news
8585

86-
[gfx-hal-0.5](https://github.com/gfx-rs/gfx/) was released :tada:
86+
[gfx-hal-0.5](https://github.com/gfx-rs/gfx/) was released!
8787
Improvements done in March:
88-
- Debug markers. Users are now able to debug-annotate parts of the rendered frame, so that inspecting it in a GPU debugger is more enjoyable.
89-
- The generic range parameters are removed in favor of simple structs. This is a move towards simpler low-level API.
90-
- Physical device features for NDC Y-flip and sampler mirror clamp are added
91-
- Physical device performance hints are introduced. The first hint is for "base vertex/instance" support.
92-
- `SmallVec` is removed from the API, it's reshaped to avoid any heap allocations. Previously, it had to touch the heap on multiple descriptor sets or command buffers.
93-
- DX12 got true support for read-only storage bindings. This is one of the opt-in derivations from Vulkan that allow to better map users logic to non-Vulkan backends, also used by WebGPU.
94-
- Last but not the least, @zicklag [has been fighting](https://github.com/gfx-rs/gfx/pull/3151) with the OpenGL backend to align its API with the rest of the crowd, armed with [surfman](https://github.com/pcwalton/surfman). The fight is reading conclusion, and we are crossing fingers to add OpenGL support to `wgpu-rs` as it lands.
95-
96-
[wgpu](https://github.com/gfx-rs/wgpu) and [wgpu-rs](https://github.com/gfx-rs/wgpu-rs) changes in March:
97-
- @grovesNL reached an epic milestone in the Web target by showing the [first triangle](https://github.com/gfx-rs/wgpu-rs/pull/193#issuecomment-599156540). Users will soon be able to seamlessly target the web with their existing `wgpu-rs` applications :rocket:
98-
- `wgpu-types` crate is created to share types between the Web target and the native one.
99-
- @lachlansneff improved the _async_ story quite a bit, we also converted more methods to be asynchronous.
100-
- Debug labels support.
101-
- Id management story for browsers with a GPU process has been completely redesigned and now working well.
102-
- All the objects are properly destroyed and GPU tracked if needed.
103-
- Ability to provide a `Surface` so that the selected adapter can present to it.
104-
- New "mailbox" present mode.
88+
89+
- Debug markers.
90+
Users are now able to debug-annotate parts of the rendered frame,
91+
so that inspecting it in a GPU debugger is more enjoyable.
92+
- The generic range parameters are removed in favor of simple structs.
93+
This is a move towards simpler low-level API.
94+
- Physical device features for NDC Y-flip and sampler mirror clamp are added.
95+
- Physical device performance hints are introduced.
96+
The first hint is for "base vertex/instance" support.
97+
- `SmallVec` is removed from the API, it's reshaped
98+
to avoid any heap allocations.
99+
Previously, it had to touch the heap on multiple descriptor sets
100+
or command buffers.
101+
- DX12 got true support for read-only storage bindings.
102+
This is one of the opt-in derivations from Vulkan that allow to better map
103+
users logic to non-Vulkan backends, also used by WebGPU.
104+
- Last but not the least, @zicklag
105+
[has been fighting](https://github.com/gfx-rs/gfx/pull/3151)
106+
with the OpenGL backend to align its API with the rest of the crowd,
107+
armed with [surfman](https://github.com/pcwalton/surfman).
108+
The fight is reading conclusion, and we are crossing fingers
109+
to add OpenGL support to `wgpu-rs` as it lands.
110+
111+
[wgpu](https://github.com/gfx-rs/wgpu) and
112+
[wgpu-rs](https://github.com/gfx-rs/wgpu-rs) changes in March:
113+
114+
- @grovesNL reached an epic milestone in the Web target
115+
by showing the [first triangle][wgpu-web-triangle].
116+
Users will soon be able to seamlessly target the web
117+
with their existing `wgpu-rs` applications. 🚀
118+
- `wgpu-types` crate is created to share types between the Web target
119+
and the native one.
120+
- @lachlansneff improved the _async_ story quite a bit,
121+
we also converted more methods to be asynchronous.
122+
- Debug labels support.
123+
- Id management story for browsers with a GPU process
124+
has been completely redesigned and now working well.
125+
- All the objects are properly destroyed and GPU tracked if needed.
126+
- Ability to provide a `Surface` so that the selected adapter can present to it.
127+
- New "mailbox" present mode.
105128

106129
Satellite projects:
107-
- [naga](https://github.com/gfx-rs/naga) - the new in-house shader translator has reached the milestone of successfully loading a WGSL [boids example](https://github.com/gfx-rs/naga/blob/thda1f6a47b06c89abb1dff70326c076f1088964a3/test-data/boids.wgsl) and generating a valid Metal source for it :tada:
108-
- [metal-rs](https://github.com/gfx-rs/metal-rs/) has got a lot of contribution by @adamnemecek. Indirect command encoding is particularly exciting!
109-
- [gfx-extras](https://github.com/gfx-rs/gfx-extras) is a new library that is forked from rendy-memory/descriptor.
110-
- [gfx-ocean](https://github.com/gfx-rs/gfx-ocean) was moved to gfx-rs organization and updated to gfx-hal-0.5.
111-
- [gfx-portability](https://github.com/gfx-rs/portability) was also updated.
130+
131+
- [naga] - the new in-house shader translator has reached the milestone
132+
of successfully loading a WGSL [boids example]
133+
and generating a valid Metal source for it. 🎉
134+
- [metal-rs](https://github.com/gfx-rs/metal-rs)
135+
has got a lot of contribution by @adamnemecek.
136+
Indirect command encoding is particularly exciting!
137+
- [gfx-extras](https://github.com/gfx-rs/gfx-extras) is
138+
a new library that is forked from rendy-memory/descriptor.
139+
- [gfx-ocean](https://github.com/gfx-rs/gfx-ocean) was moved
140+
to gfx-rs organization and updated to gfx-hal-0.5.
141+
- [gfx-portability](https://github.com/gfx-rs/portability) was also updated.
142+
143+
[wgpu-web-triangle]: https://github.com/gfx-rs/wgpu-rs/pull/193#issuecomment-599156540
144+
[naga]: https://github.com/gfx-rs/naga
145+
[boids example]: https://github.com/gfx-rs/naga/blob/thda1f6a4/test-data/boids.wgsl
112146

113147
### [Quest Engine Part 2: Deploying a Rust App On Android][quest-part-2]
114148

115-
![Oculus Quest](./quest.jpg)
149+
![Oculus Quest](quest.jpg)
116150

117151
The [second part][quest-part-2] of Nikita Krupitskas'
118152
[blog series][quest-part-1] on developing a game engine for the Oculus Quest
@@ -126,7 +160,7 @@ for Android - useful even if you're not targeting the Oculus hardware!
126160

127161
### [const-tweaker]
128162

129-
![const-tweaker UI](./const-tweaker.gif)
163+
![const-tweaker UI](const-tweaker.gif)
130164

131165
Thomas Versteeg has released a new crate called `const-tweaker`, which provides
132166
a web UI that can be used to tweak `const` variables in a running application.
@@ -151,19 +185,20 @@ _Discussions: [/r/rust](https://www.reddit.com/r/rust_gamedev/comments/foywc6/an
151185
### [three-d] v0.1
152186

153187
[three-d] is a renderer which targets both desktop (OpenGL) and web
154-
(WebAssembly + WebGL2) which makes it possible to develop a 3D application on
188+
(WebAssembly + WebGL2) which makes it possible to develop a 3D application on
155189
desktop and easily deploy it on web.
156190

157-
This month [three-d v0.1][three-d-v0-1] was released.
191+
This month [three-d v0.1][three-d-v0-1] was released.
158192
Main features:
193+
159194
- Thin and low-level graphics abstraction layer which maps one-to-one with the
160-
OpenGL/WebGL2 graphics APIs.
195+
OpenGL/WebGL2 graphics APIs.
161196
- Medium-level modular abstractions of common graphics concepts.
162197
- Deferred renderer with high-level components.
163198
- Default windows for easy setup.
164199

165-
It is possible to build your own rendering features from low- or medium-level
166-
components and combine with other high-level features, so you can already now
200+
It is possible to build your own rendering features from low- or medium-level
201+
components and combine with other high-level features, so you can already now
167202
make some cool stuff. See for example these [examples][three-d-examples].
168203

169204
![Lighting example](three-d-lighting.png)
@@ -195,7 +230,7 @@ Their [March updates][mun-march] include:
195230

196231
[Mun]: https://mun-lang.org
197232
[moss]: https://www.mozilla.org/en-US/moss/mission-partners
198-
[mun-february]: (https://mun-lang.org/blog/2020/03/10/this-month-february
233+
[mun-february]: https://mun-lang.org/blog/2020/03/10/this-month-february
199234
[mun-march]: https://mun-lang.org/blog/2020/04/02/this-month-march
200235

201236
### [Amethyst][amethyst]
@@ -287,7 +322,9 @@ or [join the next meeting][join].
287322
- [Amethyst's "good first issue" issues][amethyst-issues];
288323
- [A/B Street's "good first issue" issues][abstreet-issues];
289324
- [Mun's "good first issue" issues][mun-issues];
290-
- Anybody wants to work on the [GLSL front-end](https://github.com/gfx-rs/naga/issues/23) in Naga? One day, we'll be able to finally replace glsl-to-spirv, which is used by a lot of graphics applications and is prone to issues.
325+
- Anybody wants to work on the [GLSL front-end][naga-issue] in Naga?
326+
One day, we'll be able to finally replace glsl-to-spirv,
327+
which is used by a lot of graphics applications and is prone to issues.
291328

292329
[embark.rs]: https://embark.rs
293330
[embark-open-issues]: https://github.com/search?q=user:EmbarkStudios+state:open
@@ -300,6 +337,7 @@ or [join the next meeting][join].
300337
[amethyst-issues]: https://github.com/amethyst/amethyst/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22
301338
[abstreet-issues]: https://github.com/dabreegster/abstreet/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22
302339
[mun-issues]: https://github.com/mun-lang/mun/labels/good%20first%20issue
340+
[naga-issue]: https://github.com/gfx-rs/naga/issues/23
303341

304342
## Bonus
305343

0 commit comments

Comments
 (0)