220: Free descriptor sets r=kvark a=rukai
Tested on https://github.com/rukai/brawllib_rs, wgpu examples and wgpu-rs examples.
Closes: https://github.com/gfx-rs/wgpu/issues/217
My approach was to just implement descriptor set tracking the same way textures and buffers are implemented.
Co-authored-by: Rukai <rubickent@gmail.com>
216: Add Naïve Debug Derives Where Possible r=kvark a=arashikou
This adds `#[derive(Debug)]` to all public structs and enums possible. This also required adding it to some private types that they transitively depend on. However, the following types depend on types from external crates that do not implement Debug:
* `device::Device`
* `hub::Hub`
* `swap_chain::Surface`
* `swap_chain::SwapChain`
To support these types, we would need to use either custom `Debug` impls or something like [Derivative](https://mcarton.github.io/rust-derivative/).
This helps improve the situation in #76.
Co-authored-by: John W. Bruce <arashikou@gmail.com>
This adds #[derive(Debug)] to all public structs and enums possible.
This also required adding it to some private types that they
transitively depend on. However, the following types depend on types
from external crates that do not implement Debug:
* device::Device
* hub::Hub
* swap_chain::Surface
* swap_chain::SwapChain
To support these types, we would need to use either custom Debug impls
or something like Derivative.
This helps improve the situation in #76.
213: Use wider type for swapchain image epoch r=kvark a=grovesNL
Fixes#209
I don't think we need to do anything else here because it seems to only be used internally, so this should be a simple change.
Also ensures cbindgen is installed when targeting nightly on CI. It looks like it happened to be available on some Travis environments already so I missed this in #169
Co-authored-by: Joshua Groves <josh@joshgroves.com>
212: More consistent descriptor passing r=kvark a=porky11
also use pointer for descriptor in `wgpu_command_encoder_begin_render_pass` for consistency reasons
Co-authored-by: Fabio Krapohl <fabio.u.krapohl@fau.de>
211: More consistent naming of pointer-size-pairs r=kvark a=porky11
* always plural form without _ptr suffix for pointers
* always same name as pointer for size, but with _length suffix
* special case: single size applies to multiple pointers => only use length as name
Co-authored-by: Fabio Krapohl <fabio.u.krapohl@fau.de>
* always plural form without _ptr suffix for pointers
* always same name as pointer for size, but with _length suffix
* special case: single size applies to multiple pointers => only use length as name
208: Ensure wait_for_fences is never called on 0 fences r=kvark a=rukai
I don't see any reason why self.active should never be empty.
This fixes the validation errors but not the slowdown of https://github.com/gfx-rs/wgpu/issues/207
I presume the slowdown was causing self.active to clear.
Co-authored-by: Rukai <rubickent@gmail.com>
201: Add uniform buffer offset alignment constant r=kvark a=cloudhead
Fixes#158
Also needs to be exposed in `wgpu-rs`.
Happy to change the var name to something different or shorter.
Co-authored-by: Alexis Sellier <alexis@monadic.xyz>
195: Fix tracking and improve draw call validation r=grovesNL a=kvark
Fixes#196
## Validation
Note: the most difficult bit is still missing - we need to know the maximum index in an index buffer. This is not meant to be done in this PR though, the logic is good enough on its own.
## Tracking
Implements a custom iterator with Drop.
Also, reset tracking of resources when a command buffer is done.
Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>