Commit Graph

2761 Commits

Author SHA1 Message Date
Dzmitry Malyshau
ab10d36ac0 Rename get_encoder to get_encoder_mut 2020-12-23 11:20:08 -05:00
bors[bot]
4add83a8c5 Merge #1107
1107: Use `repr(transparent)` for shader flags r=cwfitzgerald a=grovesNL

**Connections**
None

**Description**
This allows cbindgen to generate bindings for shader flags in wgpu-native.

**Testing**
After `WGPUShaderFlags` is exposed in wgpu-native, bindings for `WGPUShaderFlags` will be generated in wgpu.h

Co-authored-by: Joshua Groves <josh@joshgroves.com>
2020-12-23 11:33:39 +00:00
Joshua Groves
45b5ddcb83 Use repr(transparent) for shader flags
This allows cbindgen to generate bindings for shader flags in
wgpu-native
2020-12-23 06:43:15 -03:30
Dzmitry Malyshau
a7587b41e6 Move the render pass setup logic into a separate method/struct 2020-12-22 22:30:27 -05:00
Dzmitry Malyshau
35b163ebc8 Encode render passes while command buffer is only read-locked 2020-12-22 13:48:18 -05:00
bors[bot]
f1604cdc57 [rs] Merge #684
684: First step for WebGL support. r=grovesNL a=VincentFTS

This permits to test WebGL backend in Wgpu-rs.
Next step is to test examples to make them work with WebGL backend !

Co-authored-by: Vincent Jousse <contact@ftsoftware.fr>
2020-12-22 17:48:23 +00:00
Vincent Jousse
9f3a050fc4 [rs] First step for WebGL support. 2020-12-22 18:41:07 +01:00
bors[bot]
2287ae3f8a Merge #1103
1103: Fix Assorted Low-Hanging Validation and Error Message Issues r=kvark a=cwfitzgerald

**Connections**

Closes #1085
Closes #393
Closes #1053

**Description**

These commits are independent and should be reviewed individually. Combined into a single PR to reduce noise.

Overview of what was done:
- Add validation for empty texture and buffer usage flags. (#393)
- Add allowed texture usage flags to `format.describe()` (#1085)
  Validate new textures follow the allowed usage flags.
- Properly validates vertex and buffers are bound. (#1053)
  Improves error messages when no vertex buffer is bound. (Before it said the limit was 0, now it says something is unbound)
- Improve the vertex buffer overrun messages by keeping track of which slot has the smallest index.

**Testing**

Tested on examples by artificially creating the situation I am trying to validate, as well as running clean examples to make sure they pass validation.

Co-authored-by: Connor Fitzgerald <connorwadefitzgerald@gmail.com>
2020-12-22 04:29:38 +00:00
Connor Fitzgerald
1da153f3bd Improve vertex state error messages 2020-12-21 23:13:34 -05:00
Connor Fitzgerald
94579d8125 Properly validate vertex buffer state 2020-12-21 23:10:53 -05:00
Connor Fitzgerald
43814d258f Add format usage descriptions and validate on it. 2020-12-21 23:08:31 -05:00
bors[bot]
7e3965bb5a Merge #1100
1100: Validate swapchain extent as non-zero r=kvark a=cwfitzgerald

**Connections**

Fixes #1026. 

**Description**

Zero area swapchains are UB under vulkan, and should be verboten.

**Testing**

Not tested


Co-authored-by: Connor Fitzgerald <connorwadefitzgerald@gmail.com>
2020-12-22 03:31:36 +00:00
bors[bot]
46d9c19390 [rs] Merge #688
688: Use only 1 and 4 samples for msaa-line example r=kvark a=cwfitzgerald

As 1 and 4 samples are the only universally supported values, switch the msaa-line example to only using them. In the future where users can determine the supported sample counts. See https://github.com/gfx-rs/wgpu/issues/804

Co-authored-by: Connor Fitzgerald <connorwadefitzgerald@gmail.com>
2020-12-22 03:29:30 +00:00
Connor Fitzgerald
6c6ce2f28c Validate on empty usages 2020-12-21 17:27:17 -05:00
Connor Fitzgerald
5fac4835f6 [rs] Use only 1 and 4 samples for msaa-line example 2020-12-21 15:34:19 -05:00
Connor Fitzgerald
073c0b2f3e Validate swapchain extent as non-zero 2020-12-21 14:56:06 -05:00
bors[bot]
b3422257ef Merge #1099
1099: Pass DEPTH_CLAMPING feature request to gfx-hal r=cwfitzgerald a=Imberflur

**Connections**
Fixes #1087 

**Description**
The request for the depth clamping feature was not being passed down to `gfx-hal`. This led to a warning from the vulkan backend when attempting to use this feature.

**Testing**
ran `wgpu-rs` shadow example and the warning no longer appears
<!--
Non-trivial functional changes would need to be tested through:
  - [wgpu-rs](https://github.com/gfx-rs/wgpu-rs) - test the examples.
  - [wgpu-native](https://github.com/gfx-rs/wgpu-native/) - check the generated C header for sanity.

Ideally, a PR needs to link to the draft PRs in these projects with relevant modifications.
See https://github.com/gfx-rs/wgpu/pull/666 for an example.
If you can add a unit/integration test here in `wgpu`, that would be best.
-->


Co-authored-by: Imbris <imbrisf@gmail.com>
2020-12-19 22:41:21 +00:00
Imbris
e775987233 Pass DEPTH_CLAMPING feature request to gfx-hal 2020-12-19 16:14:51 -05:00
bors[bot]
860265e5e9 [rs] Merge #682
682: Expose adapter.get_info() everywhere r=grovesNL a=kvark



Co-authored-by: Dzmitry Malyshau <kvark@fastmail.com>
2020-12-19 04:51:29 +00:00
Dzmitry Malyshau
7a8c6cefe1 [rs] Expose adapter.get_info() everywhere 2020-12-18 21:18:07 -05:00
bors[bot]
4ebe1f50b0 Merge #1098
1098: Move AdapterInfo into wgt r=grovesNL a=kvark

**Connections**
Fixes #1095

**Description**
This is just nicer code, and we'll be able to make `get_info` available on Web targets.

**Testing**
Untested


Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2020-12-18 21:52:38 +00:00
Dzmitry Malyshau
b95a66da5e Move AdapterInfo into wgt 2020-12-18 16:43:19 -05:00
bors[bot]
60086bb1d6 Merge #1096
1096: Fix build for wasm32 target r=kvark a=VincentFTS

**Connections**
#115 

**Description**
Fix Wgpu build for Wasm target

**Testing**
It’s just a first step toward wasm support in Wgpu-rs, a PR in Wgpu-rs will come later.


Co-authored-by: Vincent Jousse <contact@ftsoftware.fr>
2020-12-18 21:12:00 +00:00
Vincent Jousse
0899bb7207 Fix build for wasm32 target 2020-12-18 22:09:20 +01:00
bors[bot]
e09cf3dbf4 Merge #1097
1097: Fix bad copy/paste in #907 r=grovesNL a=VincentFTS

**Connections**
#907

**Description**
Fix a copy/paste from dx11 code.



Co-authored-by: Vincent Jousse <contact@ftsoftware.fr>
2020-12-18 20:44:04 +00:00
Vincent Jousse
ab64aa5b92 Fix bad copy/paste in #907 2020-12-18 21:37:17 +01:00
bors[bot]
6489a1190d [rs] Merge #681
681: Move DeviceExt into a separate module r=cwfitzgerald a=kvark



Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2020-12-18 01:06:56 +00:00
Dzmitry Malyshau
92c7cdbaba [rs] Move DeviceExt into a separate module 2020-12-17 17:55:11 -05:00
bors[bot]
5bbe5eb4f3 [rs] Merge #680
680: Update wgpu with Naga fixes and OpenGL backend r=cwfitzgerald a=kvark

This PR makes it easier to build wgpu-rs on Linux, since it doesn't require pkg-config into EGL.
Fixes #607
Fixes https://github.com/gfx-rs/wgpu/issues/1063

Co-authored-by: Dzmitry Malyshau <kvark@fastmail.com>
2020-12-17 21:57:25 +00:00
Dzmitry Malyshau
09e589e5a6 [rs] Simplify the CI check script 2020-12-17 16:34:01 -05:00
Dzmitry Malyshau
bafcc5ace5 [rs] Update wgpu with Naga fixes and OpenGL backend 2020-12-17 13:03:27 -05:00
bors[bot]
89e585af61 Merge #1093
1093: Update naga and gfx, move the shader validation into a shader descriptor bit r=cwfitzgerald a=kvark

**Connections**
Includes https://github.com/gfx-rs/gfx/pull/3533 and a bunch of Naga things.

**Description**
Updates Naga with the new WGSL syntax, lots of fixes.
Large update of the GL backend.

**Testing**
Tested on some wgpu-rs examples.

Co-authored-by: Dzmitry Malyshau <kvark@fastmail.com>
2020-12-17 16:34:28 +00:00
Dzmitry Malyshau
f07cc8156b Update naga and gfx, move the shader validation into a shader descriptor bit 2020-12-17 11:33:47 -05:00
bors[bot]
066a5978d5 Merge #1092
1092: Optimize submit() for no command buffers r=kvark a=kvark

**Connections**
Just a few bits I found when tinkering with API traces.

**Description**
No need to lock the world if there are no command buffers.

**Testing**
tested on API traces

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2020-12-16 20:05:27 +00:00
Dzmitry Malyshau
b84301110c Optimize submit() for no command buffers 2020-12-16 15:02:09 -05:00
bors[bot]
9090076253 [rs] Merge #678
678: Require labels for ComputePass and RenderPass  r=kvark a=infinitesnow

Blocked on https://github.com/gfx-rs/wgpu/pull/1088/

https://github.com/gfx-rs/wgpu/pull/1088/ improved labelling, update `wgpu-rs` and examples to match.

Change-Id: I1acc45a3023dfc78b6694bd4a28a0131f07b7ba7

Co-authored-by: Emanuele Dalla Longa <3xplosive.g@gmail.com>
2020-12-15 23:27:10 +00:00
Emanuele Dalla Longa
0b718aea93 [rs] Require labels to match gfx-rs/wgpu#1088
Change-Id: I1acc45a3023dfc78b6694bd4a28a0131f07b7ba7
2020-12-16 00:15:05 +01:00
bors[bot]
42a8dc5b34 Merge #1090
1090: Clean up render pass labels r=kvark a=kvark

**Connections**
Follow-up to #1088 to fix https://github.com/gfx-rs/wgpu/issues/1089#issuecomment-745596393

**Description**
Render passes are recorded into their own command buffers under the hood, and I forgot to properly reset the labels on them.

**Testing**
Untested

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2020-12-15 22:30:22 +00:00
Dzmitry Malyshau
cb67ef6542 Clean up render pass labels 2020-12-15 17:28:24 -05:00
bors[bot]
03d2c57dc5 Merge #1088
1088: Fix and improve object labels and command markers r=cwfitzgerald a=kvark

**Connections**
Fixes a part of #1089 

**Description**
PR contains a bunch of small but important things:
  - reset the command buffer label after submission
  - add labels to compute and pass descriptors
  - actually push/pop markers for the scope of render bundle, compute passes
  - set the label to render pass command buffers
  - set labels on pipelines

**Testing**
Not tested much

Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
2020-12-15 18:10:59 +00:00
Dzmitry Malyshau
394135f725 Fix and improve object labels and command markers 2020-12-15 11:28:11 -05:00
bors[bot]
b369dd3954 [rs] Merge #677
677: Update to latest wgpu master r=kvark a=yzsolt

- Update to latest `wgpu` master
- Fix build error caused by https://github.com/gfx-rs/wgpu/pull/1077

Co-authored-by: Zsolt Bölöny <bolony.zsolt@gmail.com>
2020-12-14 19:12:27 +00:00
Zsolt Bölöny
acf94e9321 [rs] Update to latest wgpu master 2020-12-14 17:57:27 +01:00
bors[bot]
cdda85e7c3 [rs] Merge #672
672: Add write_whole_texture_mips Helper r=kvark a=cwfitzgerald

Adds a helper in QueueExt for uploading an entire texture with all of its mips. Name very bikeshedable.

Co-authored-by: Connor Fitzgerald <connorwadefitzgerald@gmail.com>
2020-12-13 05:45:03 +00:00
Connor Fitzgerald
7e05bba6c4 [rs] Add create_texture_with_data helper 2020-12-12 01:50:49 -05:00
bors[bot]
01733a2f45 Merge #1086
1086: Add SHADER_READ usage bit to non-readonly buffers r=kvark a=infinitesnow

Change-Id: I99d189e7ef295a58c2179635f95656eb9a2f5fe6

**Connections**
Fixes #949

**Description**
 Non-readonly buffers are created with the STORAGE_WRITE usage flag, but that implies SHADER_READ too.

Co-authored-by: Emanuele Dalla Longa <3xplosive.g@gmail.com>
2020-12-10 16:22:43 +00:00
Emanuele Dalla Longa
b3f18ff3c5 Add SHADER_READ usage bit to non-readonly buffers
Change-Id: I99d189e7ef295a58c2179635f95656eb9a2f5fe6
2020-12-10 17:20:29 +01:00
bors[bot]
99c9b253cf [rs] Merge #671
671: Add label to create_shader_module r=cwfitzgerald a=scoopr



Co-authored-by: Mikko Lehtonen <scoopr@iki.fi>
2020-12-09 00:23:25 +00:00
Mikko Lehtonen
88a6d957c7 [rs] Add label to create_shader_module 2020-12-08 22:56:17 +02:00
bors[bot]
69196d85a3 Merge #1077
1077: Remove extern "C" from set_index_buffer r=kvark a=DevOrc

**Connections**
Fixes an issue that is blocking gfx-rs/wgpu-native#61

**Description**
Moves the ffi definition of wgpu_render_bundle_set_index_buffer / wgpu_render_pass_set_index_buffer to wgpu-native. This is needed because wgpu-native has its own version of IndexFormat that is different than the wgpu_types version. 

**Testing**
My projects with wgpu-native work


Co-authored-by: Noah Charlton <ncharlton002@gmail.com>
2020-12-08 15:45:00 +00:00