1178: Add DepthBiasState, rename StencilStateFace r=kvark a=kvark
**Connections**
None
**Description**
Found the error in the `StencilStateFace` name and fixed it here.
Also identified that depth bias is a noticeable ergonomic offender, so moving it out into a struct, similar to what we have with stencil.
**Testing**
tested on wgpu-rs examples.
Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
1176: Rewrite RenderPipelineDescriptor according to aspects r=grovesNL,cwfitzgerald a=kvark
**Connections**
Fixes#1166
**Description**
Totally re-imagines the structure tree for describing the rendering pipeline, based on the aspects instead of logical steps.
**Testing**
Just local testing. I don't think there is any concern that these changes might not work, they just need the clients to adapt.
Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
1173: Handle zero-sized bindings as an error r=cwfitzgerald a=kvark
**Connections**
Fixes#1165
**Description**
Adds buffer IDs to the binding errors, also adds a variant for zero sized bindings.
**Testing**
Tested on a hand-written example.
Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
1170: Don't build shader interface without the validation flag r=kvark a=kvark
**Connections**
Fixes#1169
**Description**
We used to try building the interface of a Naga module before (!) the validation has happened, and even without a check for the validation flag.
**Testing**
Untested.
Co-authored-by: Dzmitry Malyshau <dmalyshau@mozilla.com>
1164: Update naga to gfx-7 r=kvark a=kvark
**Connections**
Includes https://github.com/gfx-rs/gfx/pull/3612
**Description**
Carries a bunch of important Naga improvements.
**Testing**
Just local playtests
Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
1161: Fix replaying issues with dropped texture views r=urgent a=kvark
**Connections**
Fixes replaying of https://github.com/gfx-rs/wgpu/issues/1158#issuecomment-763272796
**Description**
The main fix is calling `maintain` in the player before getting the new view from the swapchain. That allows the device to properly remove the ID that is just about to be used.
**Testing**
Tested on that API trace.
Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
1155: fix the size checks in transfer buffer to image commands r=cwfitzgerald a=Vengarioth
**Connections**
_none_
**Description**
It's fixing a trivial bug in which Extend3d was checked against a with of 0 two times, presumably instread checking depth as well.
**Testing**
Ran the tests and ran it with bevy - still worked.
Co-authored-by: Vengarioth | Andreas Fischer <opensource@deviru.de>
1151: Update gfx and naga to gfx-6 tag r=cwfitzgerald a=kvark
**Connections**
Fixes#1149
Regression from https://github.com/gfx-rs/gfx/pull/3573
**Description**
The physical devices held references to `RawInstance` in Vulkan backend, and we weren't cleaning them up.
Note: an alternative fix could be in `gfx-backend-vulkan` - to move the `Entry` into `RawInstance`, thus delaying the shutdown. I didn't go this way because that would be less explicit.
**Testing**
Tested on wgpu-rs examples
Co-authored-by: Dzmitry Malyshau <dmalyshau@mozilla.com>
1128: Add pipeline statistics and timeline queries r=kvark a=cwfitzgerald
**Connections**
Closes#721
**Description**
This adds Pipeline Statistics queries and Timeline queries. Shoutout to @z2oh for doing a good chunk of the work to enable this feature.
Currently blocked on both https://github.com/gfx-rs/gfx/pull/3563 and rollup of gfx-hal mutability changes, but is ready to review.
**Testing**
Tested in various ways on the hello-compute and hello-triangle example, tested validation extensively. Queries will be permanently added to the mipmap example once the wgpu-rs PR is finished.
Co-authored-by: Connor Fitzgerald <connorwadefitzgerald@gmail.com>
1147: Update render pass and framebuffers logic to the latest gfx-hal r=cwfitzgerald a=kvark
**Connections**
Updates gfx-hal with the latest major changes of https://github.com/gfx-rs/gfx/pull/3571
**Description**
There is no need to track framebuffers at all any more! Since they don't contain images, we can keep them permanently.
There is no need to create and delete framebuffers for the swapchain either. Lots of non-trivial code is gone 🎉
The PR also removes one of the mutexes that the device holds.
**Testing**
Will be tested on wgpu-rs
Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
1148: Remove comment introduced in #1144 r=cwfitzgerald a=DasEtwas
Tested to be unnecessary by reading
Co-authored-by: dasetwas <dasetwas@dasetwas.dasetwas>
1145: Support trailing render passes after the swapchain rendering r=kvark a=kvark
**Connections**
Discussed on the matrix.
**Description**
Fixes a case where we have any other render pass in a command encoder that draws to the swapchain (after the pass that draws to the swapchain).
**Testing**
Tested on a modified hello-triangle example.
Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
1144: Fix and simplify attachment dimension mismatch check r=kvark a=DasEtwas
This also improves error messages with detailed dimension and attachment type name info which developers can hopefully recognize.
**Connections**
None
**Description**
Before this commit, depth/stencil attachments are not considered when evaluating the renderpasses' dimension, which will result in a "NoAttachment" error with a confusing display message.
**Testing**
Tested by running an application making use of color-only and depth/stencil-only attachment renderpasses.
Tested by running boids, hello-triangle and shadow examples.
Co-authored-by: DasEtwas <18222134+DasEtwas@users.noreply.github.com>
1142: Move get_swap_chain_preferred_format from device to adapter and check formats r=kvark a=niklaskorz
**Connections**
https://github.com/gfx-rs/wgpu-rs/issues/123#issuecomment-757831458
**Description**
Not all devices actually support `Bgra8UnormSrgb`. If this is the case, a similar format like `Rgba8UnormSrgb` can be used.
**Testing**
e5ebfa70a4/learn-wgpu/src/lib.rs (L137)
- Output on MacBook Pro 13" Intel 2020 macOS Metal: `Format: Bgra8UnormSrgb`
- Output on OnePlus 7 Pro Android Vulkan: `Format: Rgba8UnormSrgb`
Co-authored-by: Niklas Korz <niklas@niklaskorz.de>
1140: Enable storage read/write format feature r=kvark a=Wumpf
**Connections**
#1112
**Description**
Use `wgt::TextureFormatFeatureFlags::STORAGE_READ_WRITE` in `get_texture_format_features`.
This has been waiting for a gfx update which was enabled by @ElArtista 's workaround in #1136 \o/
Co-authored-by: Andreas Reich <r_andreas2@web.de>