wgpu/wgpu-core
Jim Blandy ee35b0e586 [core, hal, types] Clarify wgpu_hal's bounds check promises.
In `wgpu_hal`:

- Document that `wgpu_hal` guarantees that shaders will not access buffer
  contents beyond the bindgroups' bound regions, rounded up to some
  adapter-specific alignment. Introduce the term "accessible region" for
  the portion of the buffer that shaders can actually get at.

- Document that all bets are off if you disable bounds checks with
  `ShaderModuleDescriptor::runtime_checks`.

- Provide this alignment in `wgpu_hal::Alignments`. Update all backends
  appropriately.

- In the Vulkan backend, use Naga to inject bounds checks on buffer accesses
  unless `robustBufferAccess2` is available; `robustBufferAccess` is not
  sufficient. Retrieve `VK_EXT_robustness2`'s properties, as needed to discover
  the alignment above.

In `wgpu_core`:

- Use buffer bindings' accessible regions to determine which parts of the buffer
  need to be initialized.

In `wgpu_types`:

- Document some of the possible effects of using
  `ShaderBoundsChecks::unchecked`.

Fixes #1813.
2024-09-03 12:33:02 -04:00
..
src [core, hal, types] Clarify wgpu_hal's bounds check promises. 2024-09-03 12:33:02 -04:00
build.rs Add cfg_aliases to wgpu-core and wgpu-hal (#5055) 2024-01-14 00:59:59 -05:00
Cargo.toml [core] Add lock::observing module, for analyzing lock acquisition. 2024-08-28 22:44:20 -04:00
LICENSE.APACHE Add symlink LICENSE files into crates. (#2604) 2022-05-29 03:07:42 -04:00
LICENSE.MIT Add symlink LICENSE files into crates. (#2604) 2022-05-29 03:07:42 -04:00