1106: Encode render passes while command buffer is only read-locked r=cwfitzgerald a=kvark
**Connections**
Could fix#1104 to some extent
**Description**
The heaviest part of the render pass encoding doesn't need a write lock. Only in the end we need it.
**Testing**
Untested.
Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
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>
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>
1103: Fix Assorted Low-Hanging Validation and Error Message Issues r=kvark a=cwfitzgerald
**Connections**
Closes#1085Closes#393Closes#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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>