Commit Graph

653 Commits

Author SHA1 Message Date
Dzmitry Malyshau
b1f0961713 [rs] Update wgpu with the BGL fix 2020-05-05 00:04:24 -04:00
bors[bot]
81a725c561 [rs] Merge #295
295: Remove wasm-bindgen patches r=grovesNL a=rukai

A new release occurred with the required fixes, so we no longer need to patch it.

Co-authored-by: Rukai <rubickent@gmail.com>
2020-05-02 12:44:45 +00:00
Rukai
881071a21a [rs] Remove wasm-bindgen patches 2020-05-02 22:41:15 +10:00
bors[bot]
3586f123c9 [rs] Merge #291
291: Update for wgpu-core r=grovesNL a=kvark

Depends on https://github.com/gfx-rs/wgpu/pull/619
Closes #285

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2020-05-02 03:59:45 +00:00
Dzmitry Malyshau
26b424e35b [rs] Update for wgpu-core 2020-04-30 15:52:16 -04:00
bors[bot]
a60fc025aa [rs] Merge #281
281: The Context trait r=grovesNL a=kvark

The main motivation here is to avoid blocking the wgpu-core updates by `wgpu-native`. Instead, `wgpu-native` becomes a branch, and the dependency of `wgpu-rs` -> `wgpu-native` starts adhering to the contract/API of the standard webgpu-native headers.

The biggest change is the introduction of the Context trait. I recall us discussing 2 downsides to having this trait:
  1. inconvenient for the users to include. This is a non-issue here, since it's private.
  2. more code to maintain. This is less of an issue if we aim to have 3 backends.

What this gives in return is a well established contract with the backends. Unlike gfx-rs, the backend code is right here, a part of the crate, so the contract is only for internal use.

Fixes #156 : the "direct" implementation of it goes straight to wgpu-core. What this gives us is less overhead for command recording, since there is no longer an extra indirection on every command, and no heap allocation at the end of a render pass.

The downside of this PR is one extra `Arc` (with addref) per object.

This commit also has small improvements:
- consuming command buffers on submit (Fixes #267)
- Instance type
- proper call to destructors
- fallible `request_device`

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2020-04-27 04:12:38 +00:00
Dzmitry Malyshau
196e0dba7e [rs] Small comment on WebGPU backend bit, readme update 2020-04-27 00:11:22 -04:00
Dzmitry Malyshau
7633f48617 [rs] Port the Web backend to the Context trait 2020-04-26 19:18:24 -04:00
Dzmitry Malyshau
03258c2171 [rs] Move everything into Context trait, remove async 2020-04-26 19:18:24 -04:00
Dzmitry Malyshau
1fb8e7bb5e [rs] Rewire the backend system to remove wgpu-native step
Main change here is the introduction of the Context trait.
The "direct" implementation of it goes straight to wgpu-core.

This commit also has small improvements:
- consuming command buffers on submit
- Instance type
- proper call to destructors
2020-04-26 19:18:24 -04:00
Chinedu Francis Nwafili
35e07f4172 [rs] Add screenshots of examples
When looking into wgpu-rs as a replacement for WebGL I went to the
examples directory on GitHub to browse for a bit.

I wanted to see some of the examples at a glance without needing to
clone the repository.

This commit enables that by adding a README to each example with a
description of the example and screenshots / example output.

In a few cases the description is a bit redundant - but my hope is that
in the future we can improve all the READMEs.

Being a web API and thus very accessible, WebGPU could end up being many
people's first introduction to graphics programming so the lower we make
the barrier the better.
2020-04-26 18:59:48 -02:30
bors[bot]
455f5cb224 [rs] Merge #280
280: Add required wasm-bindgen patches to readme r=grovesNL a=rukai

Fixes https://github.com/gfx-rs/wgpu-rs/issues/279

Co-authored-by: Rukai <rubickent@gmail.com>
2020-04-25 03:03:56 +00:00
Rukai
1e8cc73e66 [rs] Add required wasm-bindgen patches to readme 2020-04-25 12:09:13 +10:00
Gabriel Majeri
31726862c9 [rs] Build and deploy examples in CI 2020-04-24 22:32:26 -02:30
Igor Shaposhnik
94c06b0c9b [rs] Disable fail fast on CI 2020-04-24 22:31:21 -02:30
Christophe Massolin
e8244ae5e3 [rs] Update README.md for running examples on the web (#275)
* [readme] add details for running on wasm32 target

* [readme] update

* [readme] [web] Running instruction on webgpu.io
2020-04-24 09:42:15 -04:00
bors[bot]
e0ec201ee5 [rs] Merge #271
271: Improve docs for BindingType r=kvark a=HalfVoxel

I think everything should be correct.

The readonly flags seem obvious at face value, but I couldn't find anything in the specifications about them (other than some unrelated validation), so I didn't add any documentation for those fields.

Co-authored-by: Aron Granberg <aron.granberg@gmail.com>
2020-04-22 13:08:31 +00:00
Aron Granberg
8219a64ecb [rs] Improve docs for BindingType 2020-04-22 15:07:11 +02:00
bors[bot]
4f1dbaf9ef [rs] Merge #268
268: Fix hello-triangle example format and bind group r=kvark a=kvark



Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2020-04-21 23:10:18 +00:00
Dzmitry Malyshau
628af82d4c [rs] Fix hello-triangle example format and bind group 2020-04-21 19:08:42 -04:00
bors[bot]
0f8c0947d9 [rs] Merge #262
262: Reverse srgb in hello-triangle r=kvark a=grovesNL

Reverse srgb support in hello-triangle (these were backwards by mistake)

Co-authored-by: Joshua Groves <josh@joshgroves.com>
2020-04-20 02:18:30 +00:00
bors[bot]
ec8b028326 [rs] Merge #264
264: Use opaque texels in mipmap example r=kvark a=grovesNL

This fixes rendering for the mipmap example in Nightly

Co-authored-by: Joshua Groves <josh@joshgroves.com>
2020-04-20 02:13:07 +00:00
Joshua Groves
3a121231b7 [rs] Use opaque texels in mipmap example 2020-04-19 23:38:58 -02:30
Joshua Groves
8f7d7ce028 [rs] Reverse srgb support in hello-triangle 2020-04-19 16:32:50 -02:30
Dzmitry Malyshau
0b20277396 [rs] Add harmony to README 2020-04-18 11:21:08 -04:00
Joshua Groves
930d2cd791 [rs] Use srgb for swapchain when possible 2020-04-18 01:04:28 -02:30
Joshua Groves
f35c3fb3cd [rs] Add wasm to CI 2020-04-18 01:04:28 -02:30
Joshua Groves
1d72176b1d [rs] Add labels to mapped descriptors where possible 2020-04-18 01:04:28 -02:30
Joshua Groves
6aa83a526b [rs] Fix some remaining TODOs in the web backend 2020-04-18 01:04:28 -02:30
Joshua Groves
0fbb75ea95 [rs] Expose more functions on the web backend 2020-04-18 01:04:28 -02:30
Joshua Groves
1f4b8801f5 [rs] Combine wasm_main/main and add console_log 2020-04-18 01:04:28 -02:30
Joshua Groves
c3c5d3927a [rs] Switch event loop back to ControlFlow::Poll 2020-04-18 01:04:28 -02:30
Joshua Groves
c4be28fcd9 [rs] Allow describe example to run on the web 2020-04-18 01:04:28 -02:30
Joshua Groves
095d682a5b [rs] Get shadow mostly working
Some of the implementation is still missing in Canary
2020-04-18 01:04:28 -02:30
Joshua Groves
3b8e0db62a [rs] Update to latest winit and wasm-bindgen 2020-04-18 01:04:28 -02:30
Joshua Groves
44083411d9 [rs] Only expose adapter info on native 2020-04-18 01:04:28 -02:30
Joshua Groves
654833ea56 [rs] Get capture mostly working
`File::create` isn't available on wasm, so we can't actually write the
output image anywhere unless we target something else as the file
system (e.g. local storage)
2020-04-18 01:04:28 -02:30
Joshua Groves
8f7d8cf27e [rs] Get mipmap mostly working
Subresource tracking for mip levels isn't available in Canary yet, so
we can't verify that the web example output matches native
2020-04-18 01:04:28 -02:30
Joshua Groves
c7dc1f6140 [rs] Get skybox working 2020-04-18 01:04:28 -02:30
Joshua Groves
49ef627bb0 [rs] Get cube working 2020-04-18 01:04:28 -02:30
Joshua Groves
9aedbed2eb [rs] Get boids working 2020-04-18 01:04:28 -02:30
Joshua Groves
75ec7155f1 [rs] Add web backend 2020-04-18 01:04:28 -02:30
bors[bot]
f984eb1997 [rs] Merge #259
259: Remove zerocopy and replace with bytemuck. r=kvark a=StarArawn

fixes #146 

I've removed `zerocopy` from the examples and replaced it with `bytemuck`. I ran all of the examples/tests and everything ran great in vulkan on my windows box.

Co-authored-by: StarToaster <startoaster23@gmail.com>
2020-04-17 14:11:30 +00:00
StarToaster
f2d429570c [rs] Removed zerocopy and replaced it with bytemuck. 2020-04-17 10:07:24 -04:00
bors[bot]
32cf9d22e7 [rs] Merge #256
256: Update wgpu for texture descriptor changes r=grovesNL a=kvark

Updates for https://github.com/gfx-rs/wgpu/pull/577
Detaches us from crates-io dependency (again).

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2020-04-14 11:30:02 +00:00
Dzmitry Malyshau
4537304571 [rs] Update wgpu for texture descriptor changes 2020-04-14 01:13:47 -04:00
bors[bot]
18a80e735f [rs] Merge #254
254: Specify expected structure for draw_indirect and draw_indexed_indirect r=kvark a=lachlansneff

~~Based on https://www.khronos.org/opengl/wiki/Vertex_Rendering#Indirect_rendering.~~ Turns out the opengl docs are wrong. Based on https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkDrawIndirectCommand.html.

Co-authored-by: Lachlan Sneff <lachlan.sneff@gmail.com>
2020-04-12 16:14:15 +00:00
Lachlan Sneff
3d7bc8c528 [rs] Fix documentation based on vulkan docs 2020-04-12 10:56:15 -04:00
bors[bot]
c3ebf3b9a3 [rs] Merge #251
251: cargo fmt the code and tweak format rules r=kvark a=chao-mu

Ran cargo fmt after removing rules per @kvark, two of which were because they needed nightly to run.

Co-authored-by: Hackpoetic <chao-mu@hackpoetic.com>
2020-04-12 12:24:30 +00:00
Lachlan Sneff
5f8ab36938 [rs] Specified expected structure for draw_indirect and draw_indexed_indirect 2020-04-11 23:33:31 -04:00