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>
120: prototype of futures for buffer mapping r=grovesNL a=swiftcoder
This is largely in request-for-comment state right now, although it does work.
As written the `GpuFuture` implementation only works with types that are `Copy`, which rules out using a destructor to unmap the buffer. I'm assume it's possible to write a future type that can produce a non-Copy result, but I haven't sufficiently internalised how `Pin` works to see how.
Co-authored-by: Tristam MacDonald <swiftcoder@gmail.com>
127: Use u8 for buffer mapping r=kvark a=Coder-256
cc @kvark @grovesNL
This is a temporary solution for #119, and a follow-up for #126.
Co-authored-by: Jacob Greenfield <jacob@jacobgreenfield.me>
126: Fix generic bounds on buffer mapping r=grovesNL a=kvark
Smaller (and incomplete!) alternative to #119 while it's still discussed.
One missing piece here is alignment. cc @Coder-256
Also, importing `wgpu-core` as just "core" wasn't the best idea 😅 : it collides with the actual `core`.
Co-authored-by: Dzmitry Malyshau <kvarkus@gmail.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>