827: Make RenderBundleEncoder derive Debug r=kvark a=Andful
**Connections**
This pull request originated from https://github.com/gfx-rs/wgpu-rs/pull/466. This change is needed to make public types in `wgpu-rs` derive debug.
**Description**
Make RenderBundleEncoder derive Debug.
**Testing**
Co-authored-by: Andrea Nardi <buongiorno19972@gmail.com>
826: Detach MultiRefCount from RefCount completely r=cwfitzgerald a=kvark
**Connections**
Fixes#823
**Description**
The old way of trying to mix the new `MultiRefCount` with bits of existing infra with `RefCount` was not correct at all. We'd get into a situation where the refcount was already deleted, but the object is alive, for example. This PR detaches them completely.
To clarify: it's not great at all that we have manual refcounting on BGLs. And this de-duplication crap caused much more trouble than it's worth...
**Testing**
Tested on the wonderful example provided by @tiberiusferreira
Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
825: Add depth clamping support r=cwfitzgerald a=kvark
**Connections**
Implements https://github.com/gpuweb/gpuweb/pull/900
**Description**
Depth clamping is useful for shadow mapping and stuff. We'd want to use it in our `shadow` example.
**Testing**
Untested, should work though :)
Co-authored-by: Dzmitry Malyshau <dmalyshau@mozilla.com>
824: Naga update, remove spirv_headers dependency r=cwfitzgerald a=kvark
**Connections**
Many changes went into Naga, including https://github.com/gfx-rs/naga/pull/81
**Description**
We'll get better SPIR-V parsing and even a bit of WGSL validation.
**Testing**
Working on it...
Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
* Replace &[T] in descriptor structs with Cow<[T]>
* Changed label fields to use Cow<'a, str>
* Deduplicate types across the tracing API
Introduce the ToStatic trait
* Deduplicate trace::RenderBundleDescriptor
* Remove ugly ToOwned bounds
* Simplifiy Action variants
* Make Clone bounds on type defs less verbose
* Fix a error in play.rs
* Remove ToStatic, and Make Action<'a> borrow descriptors instead
816: Error types for buffer mapping API r=kvark a=GabrielMajeri
**Connections**
Part of #638
**Description**
Adds safe error handling for buffer mapping/unmapping functions.
**Testing**
Checked with core, and ran tests with player.
Co-authored-by: Gabriel Majeri <gabriel.majeri6@gmail.com>
819: swap_chain_present returns SwapChainStatus r=kvark a=rukai
**Connections**
Needed by https://github.com/gfx-rs/wgpu-rs/pull/452
**Description**
For `swap_chain_present` moves the PresentError cases out of the Err and into the Ok.
This means we can `.unwrap()` the result in wgpu and it will only panic on an error that the user cant handle.
**Testing**
Ran the wgpu-rs examples.
Co-authored-by: Rukai <rubickent@gmail.com>
814: Error type for texture creation r=kvark a=GabrielMajeri
**Connections**
Part of #638
**Description**
Creates an error type for texture creation functions.
**Testing**
Checked with core and player.
Co-authored-by: Gabriel Majeri <gabriel.majeri6@gmail.com>
813: Add buffer creation error type r=kvark a=GabrielMajeri
**Connections**
Part of #638
**Description**
Adds an error type for the buffer creation functions.
**Testing**
Checked with core and ran test on player.
Co-authored-by: Gabriel Majeri <gabriel.majeri6@gmail.com>
815: Remove error logging from `binding_model` r=kvark a=GabrielMajeri
**Connections**
Part of #638
**Description**
Removes some `log::error!` calls from `binding_model.rs`, instead encoding the messages in the error type.
**Testing**
Checked with core.
Co-authored-by: Gabriel Majeri <gabriel.majeri6@gmail.com>
812: Error type for `WaitIdle` r=kvark a=GabrielMajeri
**Connections**
Part of #638
**Description**
Adds an error type for the `wait_idle` function.
**Testing**
Checked with core.
Co-authored-by: Gabriel Majeri <gabriel.majeri6@gmail.com>
811: Error type for `command_encoder_finish` r=kvark a=GabrielMajeri
**Connections**
Part of #638
**Description**
Makes `command_encoder_finish` return an error type.
**Testing**
Checked with core.
Co-authored-by: Gabriel Majeri <gabriel.majeri6@gmail.com>
810: Convert the existing error types to `thiserror` r=kvark a=GabrielMajeri
**Connections**
Part of #638
**Description**
Converts the crate's existing error types from a manual `Display` implementation to using `thiserror`.
**Testing**
Tested with core and `wgpu-rs`.
Co-authored-by: Gabriel Majeri <gabriel.majeri6@gmail.com>
809: Safe error handling for swap chain r=kvark a=GabrielMajeri
**Connections**
Part of #638
**Description**
Error types for swap chain functions, using `thiserror` to avoid boilerplate code.
**Testing**
Checked with core and player.
Co-authored-by: Gabriel Majeri <gabriel.majeri6@gmail.com>
808: Use `thiserror` for validation module r=kvark a=GabrielMajeri
**Connections**
Part of #638
**Description**
_Describe what problem this is solving, and how it's solved._
**Testing**
Checked with core repo. This doesn't change any code, just adds an `Error`/`Display` implementation.
Co-authored-by: Gabriel Majeri <gabriel.majeri6@gmail.com>
803: Player-based GPU test framework r=cwfitzgerald a=kvark
**Connections**
Closes#786
**Description**
This change adds a GPU-based testing by re-using the Player from tracing infrastructure - #289.
It converts the player into a lib + binary, and adds an integration test into the crate that implements RON-specified testing.
Current implementation has a few requirements/gotchas that are listed in `test.rs`:
* in all the IDs, the backend is `Empty`
* all expected buffers have `MAP_READ` usage on them
* last action is `Submit`
I believe it's workable, and we can improve it down the road (e.g. with #792).
**Testing**
MUHAHAHA
`cargo test` nails it
Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
806: Fix rods error check - fixes water example r=kvark a=rukai
**Description**
Fixes water example panic
**Testing**
Tested on every wgpu-rs example
Co-authored-by: Rukai <rubickent@gmail.com>
800: Add the preferred format query r=cwfitzgerald a=kvark
Just getting us synced up to the spec naming and API for the swapchains...
Co-authored-by: Dzmitry Malyshau <dmalyshau@mozilla.com>
802: adds size function for VertexFormat r=kvark a=bootra-dev
Addresses https://github.com/gfx-rs/wgpu/issues/801
This PR adds a simple size function to the VertexFormat enum. It returns a u64 so that it can be conveniently used with the VertexAttributeDescriptor offset.
Co-authored-by: bootra-dev <bootragames@gmail.com>
798: Fixed storage buffer counting towards storage textures for binding validation r=kvark a=Wumpf
See title.
(broke my group layout creation since my compute shaders need quite a few storage buffers _and_ storage textures bound... ;-))
Co-authored-by: Andreas Reich <r_andreas2@web.de>
799: Derive Hash on BindGroupLayoutEntry r=kvark a=kunalmohan
**Connections**
_Link to the issues addressed by this PR, or dependent PRs in other repositories_
**Description**
_Describe what problem this is solving, and how it's solved._
Required in Servo.
**Testing**
_Explain how this change is tested._
Not tested.
<!--
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: Kunal Mohan <kunalmohan99@gmail.com>