400: Validate bind group layouts by value r=kvark a=yanchith
This PR widens the comparisons done between two bind group layouts to also consider them equivalent if their vectors of `BindGroupLayoutBinding`s are equal.
Tested on various modifications of the cube example from wgpu-rs. https://gist.github.com/yanchith/56e15fe35658b14587ff9bfcbd53116fFixes#335
Co-authored-by: yanchith <yanchi.toth@gmail.com>
To make later bind group layout compatibility checks simpler (and
cheaper), deduplicate them on creation. If two bind group layouts with
same descriptors are requested, only one is created and the same id is
returned for both.
408: Handle adapter enumeration failures better r=kvark a=kvark
Fixes#406
It appears that the target system could support Vulkan but is misconfigured.
Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
394: Get buffer sub data in wgpu-remote r=kvark a=kvark
Required for `mapReadAsync` implementation in Gecko.
Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
387: Stop dynamic offset iteration when the bind groups stop r=grovesNL a=kvark
Fixes#386
I imagine the code is not performance-optimal and could be improved. This PR focuses on correctness.
Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
385: Fix build for iOS r=kvark a=grenlight
```
Compiling wgpu-native v0.4.0 (https://github.com/gfx-rs/wgpu?rev=b51053dc2dc3bbe9b2ba050fde42eeb6405fe092#b51053dc)
error[E0422]: cannot find struct, variant or union type `Surface` in this scope
--> /Users/LiJinlei/.cargo/git/checkouts/wgpu-53e70f8674b08dd4/b51053d/wgpu-native/src/device.rs:24:24
|
24 | Rwh::IOS(h) => Surface {
| ^^^^^^^ not found in this scope
help: possible candidate is found in another module, you can import it into scope
```
Co-authored-by: LiJinlei <grenlight@icloud.com>
382: Cleanup exports r=grovesNL a=kvark
This is a follow-up to #381 that cleans up the exports, such that `wgpu-core` doesn't deal with any raw C things.
Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
378: Support for merged depth-stencil states r=grovesNL a=kvark
Fixes#376
@Yatekii would you be able to test it and confirm the fix?
Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
381: Separate Native from the Core r=grovesNL a=kvark
Fixes#379 (haven't figured out how to build remote static lib to test the example, but that's not as important at this stage, since we have Gecko).
Fixes#168
Related to #2 and #8
This is a major refactor that moves out the core Rust API into a separate crate. It also changes the export semantics of wgpu-core in a way that the modules are exposed, and all the functionality is now represented as methods of `Global`. The "local" feature is transformed into a type system as a generic parameter `<F>` on the hubs.
Pros:
- "local" feature is gone
- we can change the core API more often, this doesn't necessarily require the `native` breaking version bump, and it would be very handy when adding Gecko-related changes
- Gecko needs less stuff to compile (remote + core)
- no collision of library names (native with or without the local feature)
- less problem with crate types
- cleaner semantics: each crate is either C or Rust, but not both
Cons:
- more generics, I wouldn't be surprised this regresses the build times visibly
Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>
380: More licenses for Gecko r=kvark a=kvark
These are all the last things we need to match Gecko, with an exception of #379
Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.com>