359: Make examples work again r=kvark a=GabrielMajeri
This PR fixes the C example code to not crash and actually run.
I've also added a few assertions to ensure a warning is emitted next time somebody forgots to increase `max_bind_groups` to something non-zero on device creation.
To help with debugging the examples, I've configured CMake to include debug info in the builds. Some new Makefile targets for the examples have been added to automate running them.
Co-authored-by: Gabriel Majeri <gabriel.majeri6@gmail.com>
Get the examples running again.
The compute example has been simplified to use only one buffer.
A new check has been added to ensure the `max_bind_groups`
device limit is properly set.
344: Update deps r=kvark a=rukai
We should wait for https://github.com/rust-windowing/winit/pull/1191 to find its way into a winit release before merging this PR.
Co-authored-by: Rukai <rubickent@gmail.com>
343: Document primary/secondary backend bit r=kvark a=rukai
Happy to add more detail, but this should be sufficient for the user to understand what PRIMARY/SECONDARY mean.
Co-authored-by: Rukai <rubickent@gmail.com>
This PR adds `ResourceId::Sampler`, `NativeResource::Sampler` and
`TrackerSet::samplers`. Samplers are (similarly to bind groups)
created with their own life guard and a device id to keep the device
ref count alive. Also added are `extern wgpu_sampler_destroy` and
`sampler_destroy`.
The rest of the implementation was guided by compiler errors, so there
is a good chance I didn't find something crucial that also needed
doing. Please check :)
331: Add a function to describe a device r=kvark a=paulkernfeld
This is for https://github.com/gfx-rs/wgpu-rs/pull/29
This successfully describes the device on my machine. I think I may have done the imports wrong. If so, apologies.
Co-authored-by: Paul Kernfeld <paulkernfeld@gmail.com>
337: Fix life cycle of swap chain framebuffers r=grovesNL a=kvark
Fixes#78
The new swapchain model requires framebuffers to be destroyed right after presentation.
Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
332: Validate resource usage flags when used r=kvark a=yanchith
This PR adds usage flag validations to the functions discussed in https://github.com/gfx-rs/wgpu/issues/228#issuecomment-528949445 and https://github.com/gfx-rs/wgpu/issues/228#issuecomment-528953096
I added `usage` fields to `Buffer` and `Texture` for convenience.
The validations themselves are run before much else happens (seemed clearer that way). This means certain `VecMap`s and `FastHashMap`s might be queried more than necessary, though.
I also left one TODO in, which I'd like to resolve: With what usage flags should the swapchain textures be created? Currently it initializes the texture resource trackers with `UNINITIALIZED`, so I just copied the same flag for the texture. This just happens to work (that is not trigger the validations I added), because its value, `UNINITIALIZED`, pretends to be every usage flag by having all bits set. Is that by design?
Closes#228 ~(except for `BufferUsage::INDIRECT`, for which I can create another issue)~
Co-authored-by: yanchith <yanchi.toth@gmail.com>
314: Handle frame acquisition failure internally r=grovesNL a=kvark
Fixes#313, which is critical to get us running on Metal today.
In the nearest future, all that code will be removed in favour of using the alternative swapchain model.
Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>