There was an implicit `gpu-allocator` feature because there was no
`dep:` on the optional `gpu-allocator` dependency, but enabling the
`gpu-allocator` feature does nothing (there are no occurrences of
`#[feature = "gpu-allocator"]`) so it has no reason to exist.
* `
Delete the `naga::path_like` module, and simply using `String` and
`str` instead.
Nothing in Naga uses `Path` or `PathBuf` methods; indeed, Naga only
converts these values back and forth from string-like types with
`to_string_lossy` and `into`, such that using string-like, rather than
path-like, types actually simplifies the code.
This also avoids dead code warnings starting in Rust 1.89 that would
otherwise require distracting `#[cfg_attr]` conditionals.
* Features and draw commands added
* Tried to implement the pipeline creation (completely untested)
* Fixed clippy issues
* Fixed something I think
* A little bit of work on the mesh shader example (currently doesn't work on dx12)
* Reached a new kind of error state
* Fixed an alignment issue
* DirectX 12 mesh shaders working :party:
* Removed stupid change and updated changelog
* Fixed typo
* Added backends option to example framework
* Removed silly no write fragment shader from tests to see if anything breaks
* Tried to make mesh shader tests run elsewhere too
* Removed printlns and checked that dx12 mesh shader tests run
* Documented very strange issue
* I'm so lost
* Fixed stupid typos
* Fixed all issues
* Removed unnecessary example stuff, updated tests
* Updated typos.toml
* Updated limits
* Apply suggestion from @cwfitzgerald
Co-authored-by: Connor Fitzgerald <connorwadefitzgerald@gmail.com>
* Apply suggestion from @cwfitzgerald
Co-authored-by: Connor Fitzgerald <connorwadefitzgerald@gmail.com>
* Removed supported backends, made example & tests always pass the filename to shader compilers
* Removed excessive bools in test params
* Added new tests to the list
* I'm a sinner for this one (unused import)
* Replaced random stuff with test params hashing
* Updated typos.toml
* Updated -Fo typo thing
* Actually fixed typo issue this time
* Update CHANGELOG.md
Co-authored-by: Connor Fitzgerald <connorwadefitzgerald@gmail.com>
* Update tests/tests/wgpu-gpu/mesh_shader/mod.rs
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update wgpu-hal/src/dx12/mod.rs
Co-authored-by: Connor Fitzgerald <connorwadefitzgerald@gmail.com>
* Addressed comments
* Lmao
---------
Co-authored-by: Connor Fitzgerald <connorwadefitzgerald@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
In order to support external textures, we must be able to map a single
external texture resource binding to multiple Vulkan descriptors. This
means we must be able to override the `Binding` and `DescriptorSet`
values for global variables when generating SPIR-V, rather than simply
passing through the group and binding values from Naga IR.
This patch extends the existing SPIR-V Naga backend's `BindingMap` to
contain a descriptor set and binding value in addition to the existing
array size. When creating BindGroupLayouts/BindGroups we use a
sequentially incrementing value for each entry's binding value,
continuing to just use the bind group index as the descriptor set
value.
The Naga backend looks up each resource in the map when emitting its
`Binding` and `DescriptorSet` decorations. If the entry cannot be
found in the map, it will either error or emit fake bindings based on
its configuration.