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>
481: Remove screenshots from README r=grovesNL a=kvark
Screenshots cover a ton of space, and now we have a dedicated hosted gallery for them.
I'm open to the idea of having *some* smaller screenshots here. It's just difficult to draw the line. Maybe README should show a few screenshots of examples only, and the gallery would not have them?
Co-authored-by: Dzmitry Malyshau <kvarkus@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>
479: Split framework limit situation into requested/required r=kvark a=cwfitzgerald
Requiring individual examples be responsible for panicing if their features aren't supported is a bit bug-prone, so this encodes requirements in the framework and enforces it in the framework.
Additionally made the verbs consistent.
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>
475: Made RenderBundleEncoder derive Debug r=kvark a=Andful
This is a continuation of the pull request #466 and should resolve the issue #458.
Co-authored-by: Andrea Nardi <buongiorno19972@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>
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>
466: add debug trait for public types r=kvark a=Andful
This pull request is to resolve the issue #458.
This pull request is still incomplete. The only problematic trait is `RenderBundleEncoder`.
For the native version, `RenderBundleEncoder` does not implement `Debug`. This would have to be implemented in the wgpu project.
FYI, Context does not need to implement `Debug`. The type that implements `Context` is used directly, i.e. `Arc<C>` is used and not `Arc<dyn Context>`
Co-authored-by: Andrea Nardi <buongiorno19972@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>