973: remove PowerPreference::Default r=kvark a=frbimo
**Connections**
Issue: #971
**Description**
remove `PowerPreference::Default` and change related value to use `PowerPreference::LowPower` .
`PowerPreference::default()` is remain.
**Testing**
`cargo test` and `cargo build` passed
Co-authored-by: frbimo <fr.bimo@gmail.com>
966: Immediate resource destruction and freeing r=cwfitzgerald a=kvark
**Connections**
Fixes#964
**Description**
We are making it so a buffer or a texture can have their native resources freed while they are still referenced, so without waiting for GC.
In addition, the PR adds a few missing cases where error IDs should have been handled, like at render pass encoding.
**Testing**
Tested on wgpu-rs examples, see https://github.com/gfx-rs/wgpu-rs/pull/591
Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
* Pass [u8] instead of [u32] for push constants
Use 2-instruction aligner
Fixed alignment
Fixed offsets
Added alignment checks and fixed size
Use semantic constants
* Replaced all magic number with constant
* Fixed type cast
968: CI playtests for Dx12, Vulkan r=kvark a=DevOrc
**Connections**
#950
**Description**
Implements CI testing for Vulkan and DX12. Also, cargo test stdout will no longer be captured so that people can verify that the playtests actually ran.
Note: If no adapters are found, nothing will run and the tests will pass. This might become a problem if the installation no longer works and no one notices.
**Testing**
Passed CI Tests
Co-authored-by: Noah Charlton <ncharlton002@gmail.com>
962: Refactor and optimize bind group creation r=cwfitzgerald a=kvark
**Connections**
Fixes#960
**Description**
There is a small bag of things all related in here:
1. It detects duplicate bindings in the `BindGroupDescriptor`. Previously, we compared the count, and formed the write array. If the expected bindings were [0, 1], and the given bindings were [0, 0], it would pass, erroneously. Now it properly errors out.
2. It defers the *actual* descriptor set creation to after we iterate the bindings. This means any error would not make use leak descriptors any more.
3. Finally, we form a single descriptor set write instead of having a write per binding. This is much more friendly to gfx-hal, which does the work per write, and should optimize bind group creation a bit.
**Testing**
Tested on wgpu-rs examples - https://github.com/gfx-rs/wgpu-rs/pull/589
Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
963: Add repr(C) on mapping structs r=trivial a=kvark
**Connections**
Required for https://phabricator.services.mozilla.com/D92636
**Description**
Allows C clients to avoid redefining those structs.
**Testing**
No need
Co-authored-by: Dzmitry Malyshau <dmalyshau@mozilla.com>
957: Enable RBA feature where available r=grovesNL a=kvark
**Connections**
Related to https://github.com/gpuweb/gpuweb/issues/955
**Description**
Until we have a better plan in place, enabling RBA is the least we can do.
**Testing**
Should work!
Co-authored-by: Dzmitry Malyshau <dmalyshau@mozilla.com>