846: Make level and layer count for texture view optional r=cwfitzgerald a=kvark
**Connections**
implements https://github.com/gpuweb/gpuweb/pull/945
**Description**
`NonZeroU32` is more idiomatic here
**Testing**
untested, but should work
Co-authored-by: Dzmitry Malyshau <dmalyshau@mozilla.com>
841: Safe error handling for queue module r=kvark a=GabrielMajeri
**Connections**
Part of #638
**Description**
Adds error types for the `queue.rs` module. The out-of-memory conditions are reported upwards, other internal `gfx-hal` errors are unwrapped.
**Testing**
Tested with core and player.
Co-authored-by: Gabriel Majeri <gabriel.majeri6@gmail.com>
835: Convert all logging to tracing and add fmt logger r=kvark a=cwfitzgerald
**Connections**
#289 ish.
**Description**
This converts us fully to tracing, allowing traces to show up in logs.
https://github.com/gfx-rs/wgpu-rs/pull/476 should be considered at the same time as this PR.
**Testing**
Ran examples in wgpu-rs.
Co-authored-by: Connor Fitzgerald <connorwadefitzgerald@gmail.com>
838: wait for buffer to be done in the player r=cwfitzgerald a=kvark
**Connections**
Fixes our code enough to replay #834 without issues. Doesn't help to solve the original problem though.
**Description**
There are two things in here:
1. don't deduplicate the BGLs if we are not generating new IDs at this layer. This helps Servo/Gecko/player. cc @kunalmohan
2. have an option in `buffer_destroy` to *actually* kill it, at the cost of blocking on GPU sometimes. This is required for the player, since the very next command may try to reuse the ID.
**Testing**
Tested on the trace in #834
Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
839: Fix push constant pipeline invalidation r=kvark a=cwfitzgerald
**Connections**
Fixes#821
**Description**
We need to invalidate everything if push constants change. This code is kinda ugly but this is try three and it's the least terrible I got.
**Testing**
Pinging @Wumpf :)
Co-authored-by: Connor Fitzgerald <connorwadefitzgerald@gmail.com>
832: Return errors from device functions r=kvark a=GabrielMajeri
**Connections**
Part of #638
**Description**
Lots of changes, but they should be easily reviewable commit-by-commit.
- Error types for most of the fallible resource creation errors in `device/mod.rs`
- Removed assertions and replaced them with error types
- All of the `BufferMap`, `BufferNotMapped` etc. errors were united in a single `BufferAccessError`, since it was pretty weird to have so many overlapping error types.
- Removed all `unwrap`s of `gfx-hal` errors - they are now returned to the caller.
**Testing**
Checked with core and tested with `wgpu-rs` (see https://github.com/gfx-rs/wgpu-rs/pull/469)
Co-authored-by: Gabriel Majeri <gabriel.majeri6@gmail.com>
833: Switch pipeline flag to mutation of depth/stencil r=startoaster a=kvark
**Connections**
Reported on the matrix
**Description**
If the pass mutates depth/stencil, but the pipeline doesn't, it's not a bug!
**Testing**
on it...
Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
831: Carry RefCount in future suspects in order to prevent early removal r=cwfitzgerald a=kvark
**Connections**
Fixes #830
**Description**
see https://github.com/gfx-rs/wgpu/issues/830#issuecomment-662825775
**Testing**
Tested on harmony + Sponza
Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
829: Fix typo in BufferUsage docs r=kvark a=cwfitzgerald
**Connections**
A couple people have bugged me about this in the past.
**Description**
Docs were wrong, they are now right.
**Testing**
Read it again :)
Co-authored-by: Connor Fitzgerald <connorwadefitzgerald@gmail.com>
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>