bors[bot] 6cacfca10b
Merge #1527
1527: Fix wgpu-hal incorrectly ignoring arrays of bindings. r=kvark a=ElectronicRU

**Connections**
Fixes #1526.

**Description**
Even though binding sizes could potentially be derived from resource array lengths and binding indices, current implementation
flat out ignored that. Metal did a more sensible (?) thing and bound only the first resource in each array, Vulkan did a less
sensible thing and bound as many resources as there are bindings, obtaining them from unwrapped arrays.
(IE on Vulkan, if you bound two arrays, [view1, view2] and [view3, view4], it would actually bind [view1, <invalid>] and [view2, <invalid>]).

This aims to fix the issue.

**Testing**
After #1525 is merged, `cargo run --example texture-arrays` would be working as intended for Vulkan. Unfortunately, I can think of no easy way to test this on Metal - the shader support isn't there yet.


Co-authored-by: Alex S <alex0player@gmail.com>
2021-06-20 05:08:12 +00:00
2021-06-19 21:06:08 +03:00
2020-12-03 14:52:38 -05:00
2021-06-19 21:06:08 +03:00
2021-06-18 13:40:31 -04:00
2021-06-20 06:53:03 +03:00
2021-06-20 05:08:12 +00:00
2021-06-19 21:06:08 +03:00
2021-06-02 21:31:02 -04:00
2021-06-16 20:28:45 -04:00
2021-06-18 13:15:28 -04:00
2021-06-12 01:04:15 -04:00
2021-06-18 21:38:54 +00:00
2021-06-18 13:40:31 -04:00
2021-06-18 13:40:31 -04:00
2020-03-03 00:10:04 -03:30
2021-06-16 20:28:45 -04:00
2020-04-06 08:55:39 -04:00

wgpu

Matrix Matrix Build Status codecov.io

This is an implementation of WebGPU API in Rust, targeting both native and the Web. See the upstream WebGPU specification (work in progress).

The repository hosts the following parts:

  • Crates.io docs.rs - public Rust API for users
  • Crates.io docs.rs - internal Rust API for WebGPU implementations to use
  • Crates.io docs.rs - internal unsafe GPU abstraction API
  • Crates.io docs.rs - Rust types shared between wgpu-core and wgpu-rs
  • player - standalone application for replaying the API traces, uses winit

Rust examples can be found at wgpu/examples. wgpu is a default member, so you can run the examples directly from the root, e.g. cargo run --example boids.

If you are looking for the native implementation or bindings to the API in other languages, you need wgpu-native.

Supported Platforms

API Windows 7/10 Linux & Android macOS & iOS
DX11
DX12
Vulkan
Metal
GLes3

= Primary support — 🆗 = Secondary support — 🚧 = Unsupported, but support in progress

Description
Safe and portable GPU abstraction in Rust, implementing WebGPU API.
Readme 268 MiB
Languages
Rust 94.6%
JavaScript 5.4%