Release Vulkano 0.33.0 (#2169)

* Release Vulkano 0.33.0

* Update changelog for recent changes

* Derp
This commit is contained in:
Rua 2023-04-03 01:38:06 +02:00 committed by GitHub
parent 83557afc1e
commit 1f31e85c5e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 59 additions and 59 deletions

View File

@ -9,6 +9,16 @@
### Public dependency updates ### Public dependency updates
### Breaking changes
### Additions
### Bugs fixed
# Version 0.33.0 (2023-04-01)
### Public dependency updates
- [ash](https://crates.io/crates/ash) 0.37.2 - [ash](https://crates.io/crates/ash) 0.37.2
- [bytemuck](https://crates.io/crates/bytemuck) 1.9 - [bytemuck](https://crates.io/crates/bytemuck) 1.9
- [nalgebra](https://crates.io/crates/nalgebra) 0.32 - [nalgebra](https://crates.io/crates/nalgebra) 0.32
@ -75,15 +85,11 @@ Changes to vulkano-shaders:
- The `ty` module is no longer generated. All types are generated in the same module where the macro call resides. - The `ty` module is no longer generated. All types are generated in the same module where the macro call resides.
### Additions ### Additions
- Added `CpuBufferAllocatorCreateInfo`.
- Added `SubbufferAllocatorCreateInfo`.
- Allow waiting on `SwapchainAcquireFuture`. - Allow waiting on `SwapchainAcquireFuture`.
- Implement `IntoIterator` for `Features`, `DeviceExtensions` and `InstanceExtensions`. - Implement `IntoIterator` for `Features`, `DeviceExtensions` and `InstanceExtensions`.
- A new `CommandBufferBuilder` type, that provides validation and keeps resources alive, but requires manual synchronization commands.
- The `PrimaryCommandBuffer` and `SecondaryCommandBuffer` types.
- A `buffer_with_range` constructor for `WriteDescriptorSet`, which can be used to select the range within the buffer that should be bound. This must be used when using dynamic buffers. - A `buffer_with_range` constructor for `WriteDescriptorSet`, which can be used to select the range within the buffer that should be bound. This must be used when using dynamic buffers.
- Better cgmath and nalgebra support, enabled by the `cgmath` or `nalgebra` features:
- `VertexMember` is now implemented for cgmath `Vector`s and `Point`s.
- `type_for_format_cgmath` and `type_for_format_nalgebra` macros, next to the existing `type_for_format` macro.
- Added a derive macro for the `Vertex` trait. The `impl_vertex` macro and `VertexMember` trait are deprecated. - Added a derive macro for the `Vertex` trait. The `impl_vertex` macro and `VertexMember` trait are deprecated.
- `BufferDefinition` matching logic was updated to work with the new `VertexMemberInfo` and now matches based on scalar type, number of components and number of elements allowing the use of formats such as `*_UNORM`. - `BufferDefinition` matching logic was updated to work with the new `VertexMemberInfo` and now matches based on scalar type, number of components and number of elements allowing the use of formats such as `*_UNORM`.
- `GraphicsPipelineBuilder` validation was extended to make sure locations are not bound multiple times when a single attribute spans multiple locations (e.g. using double precision float formats). - `GraphicsPipelineBuilder` validation was extended to make sure locations are not bound multiple times when a single attribute spans multiple locations (e.g. using double precision float formats).
@ -108,6 +114,7 @@ Changes to vulkano-shaders:
- Vulkano-win: The features `winit` and `raw-window-handle` can now be used directly, `winit_` and `raw-window-handle_` have been deprecated. - Vulkano-win: The features `winit` and `raw-window-handle` can now be used directly, `winit_` and `raw-window-handle_` have been deprecated.
### Bugs fixed ### Bugs fixed
- [#2094](https://github.com/vulkano-rs/vulkano/issues/2094): Fixed debug assertion when the first command in a command buffer that uses an image expects it to be in the `Undefined` layout. - [#2094](https://github.com/vulkano-rs/vulkano/issues/2094): Fixed debug assertion when the first command in a command buffer that uses an image expects it to be in the `Undefined` layout.
- Fixed wrong aspects being used in pipeline barriers when an image view selects one aspect of a combined depth+stencil image. - Fixed wrong aspects being used in pipeline barriers when an image view selects one aspect of a combined depth+stencil image.
- Fixed panic when building a finished command buffer, if the command buffer contains commands that use only some subresources of an image. - Fixed panic when building a finished command buffer, if the command buffer contains commands that use only some subresources of an image.

View File

@ -1,11 +1,8 @@
[package] [package]
name = "vulkano-shaders" name = "vulkano-shaders"
version = "0.32.0" version = "0.33.0"
edition = "2021" edition = "2021"
authors = [ authors = ["Pierre Krieger <pierre.krieger1708@gmail.com>", "The vulkano contributors"]
"Pierre Krieger <pierre.krieger1708@gmail.com>",
"The vulkano contributors",
]
repository = "https://github.com/vulkano-rs/vulkano" repository = "https://github.com/vulkano-rs/vulkano"
description = "Shaders rust code generation macro" description = "Shaders rust code generation macro"
license = "MIT/Apache-2.0" license = "MIT/Apache-2.0"
@ -24,7 +21,7 @@ proc-macro2 = "1.0"
quote = "1.0" quote = "1.0"
shaderc = "0.8" shaderc = "0.8"
syn = { version = "1.0", features = ["full", "extra-traits"] } syn = { version = "1.0", features = ["full", "extra-traits"] }
vulkano = { version = "0.32.0", path = "../vulkano" } vulkano = { version = "0.33.0", path = "../vulkano" }
[features] [features]
shaderc-build-from-source = ["shaderc/build-from-source"] shaderc-build-from-source = ["shaderc/build-from-source"]

View File

@ -1,13 +1,6 @@
//! The procedural macro for vulkano's shader system. //! The procedural macro for vulkano's shader system.
//! Manages the compile-time compilation of GLSL into SPIR-V and generation of associated Rust code. //! Manages the compile-time compilation of GLSL into SPIR-V and generation of associated Rust code.
//! //!
//! # Cargo features
//!
//! | Feature | Description |
//! |-----------------------------|---------------------------------------------------------|
//! | `shaderc-build-from-source` | Build the `shaderc` library from source when compiling. |
//! | `shaderc-debug` | Compile shaders with debug information included. |
//!
//! # Basic usage //! # Basic usage
//! //!
//! ``` //! ```
@ -200,6 +193,13 @@
//! //!
//! The crate fails to compile but prints the generated Rust code to stdout. //! The crate fails to compile but prints the generated Rust code to stdout.
//! //!
//! # Cargo features
//!
//! | Feature | Description |
//! |-----------------------------|---------------------------------------------------------|
//! | `shaderc-build-from-source` | Build the `shaderc` library from source when compiling. |
//! | `shaderc-debug` | Compile shaders with debug information included. |
//!
//! [cargo-expand]: https://github.com/dtolnay/cargo-expand //! [cargo-expand]: https://github.com/dtolnay/cargo-expand
//! [`ShaderModule::from_words_with_data`]: vulkano::shader::ShaderModule::from_words_with_data //! [`ShaderModule::from_words_with_data`]: vulkano::shader::ShaderModule::from_words_with_data
//! [`SpecializationConstants`]: vulkano::shader::SpecializationConstants //! [`SpecializationConstants`]: vulkano::shader::SpecializationConstants
@ -732,19 +732,14 @@ impl Parse for MacroInput {
} }
} }
#[derive(Clone, Copy, Debug, PartialEq, Eq)] #[derive(Clone, Copy, Debug, Default, PartialEq, Eq)]
enum LinAlgType { enum LinAlgType {
#[default]
Std, Std,
CgMath, CgMath,
Nalgebra, Nalgebra,
} }
impl Default for LinAlgType {
fn default() -> Self {
LinAlgType::Std
}
}
macro_rules! bail { macro_rules! bail {
($msg:literal $(,)?) => { ($msg:literal $(,)?) => {
return Err(syn::Error::new( return Err(syn::Error::new(

View File

@ -1,6 +1,6 @@
[package] [package]
name = "vulkano-util" name = "vulkano-util"
version = "0.32.0" version = "0.33.0"
edition = "2021" edition = "2021"
authors = ["The vulkano contributors"] authors = ["The vulkano contributors"]
repository = "https://github.com/vulkano-rs/vulkano" repository = "https://github.com/vulkano-rs/vulkano"
@ -13,6 +13,6 @@ categories = ["rendering::graphics-api"]
[dependencies] [dependencies]
ahash = "0.8" ahash = "0.8"
vulkano = { version = "0.32.0", path = "../vulkano" } vulkano = { version = "0.33.0", path = "../vulkano" }
vulkano-win = { version = "0.32.0", path = "../vulkano-win" } vulkano-win = { version = "0.33.0", path = "../vulkano-win" }
winit = { version = "0.28" } winit = { version = "0.28" }

View File

@ -1,11 +1,8 @@
[package] [package]
name = "vulkano-win" name = "vulkano-win"
version = "0.32.0" version = "0.33.0"
edition = "2021" edition = "2021"
authors = [ authors = ["Pierre Krieger <pierre.krieger1708@gmail.com>", "The vulkano contributors"]
"Pierre Krieger <pierre.krieger1708@gmail.com>",
"The vulkano contributors",
]
repository = "https://github.com/vulkano-rs/vulkano" repository = "https://github.com/vulkano-rs/vulkano"
description = "Link between vulkano and winit" description = "Link between vulkano and winit"
license = "MIT/Apache-2.0" license = "MIT/Apache-2.0"
@ -23,7 +20,7 @@ winit_ = ["dep:winit", "dep:objc", "dep:core-graphics-types"]
[dependencies] [dependencies]
raw-window-handle = { version = "0.5", optional = true } raw-window-handle = { version = "0.5", optional = true }
vulkano = { version = "0.32.0", path = "../vulkano" } vulkano = { version = "0.33.0", path = "../vulkano" }
winit = { version = "0.28", optional = true } winit = { version = "0.28", optional = true }
[target.'cfg(any(target_os = "macos", target_os = "ios"))'.dependencies] [target.'cfg(any(target_os = "macos", target_os = "ios"))'.dependencies]

View File

@ -1,6 +1,6 @@
[package] [package]
name = "vulkano" name = "vulkano"
version = "0.32.0" version = "0.33.0"
edition = "2021" edition = "2021"
authors = [ authors = [
"Pierre Krieger <pierre.krieger1708@gmail.com>", "Pierre Krieger <pierre.krieger1708@gmail.com>",
@ -30,7 +30,7 @@ parking_lot = { version = "0.12", features = ["send_guard"] }
serde = { version = "1.0", optional = true } serde = { version = "1.0", optional = true }
smallvec = "1.8" smallvec = "1.8"
thread_local = "1.1" thread_local = "1.1"
vulkano-macros = { path = "macros", version = "0.32.0" } vulkano-macros = { path = "macros", version = "0.33.0" }
[target.'cfg(target_os = "ios")'.dependencies] [target.'cfg(target_os = "ios")'.dependencies]
objc = "0.2.5" objc = "0.2.5"

View File

@ -1,6 +1,6 @@
[package] [package]
name = "vulkano-macros" name = "vulkano-macros"
version = "0.32.0" version = "0.33.0"
edition = "2021" edition = "2021"
authors = ["Pierre Krieger <pierre.krieger1708@gmail.com>", "The vulkano contributors"] authors = ["Pierre Krieger <pierre.krieger1708@gmail.com>", "The vulkano contributors"]
repository = "https://github.com/vulkano-rs/vulkano" repository = "https://github.com/vulkano-rs/vulkano"

View File

@ -31,10 +31,10 @@
//! //!
//! There are two levels of command buffers: //! There are two levels of command buffers:
//! //!
//! - [`PrimaryCommandBuffer`] can be executed on a queue, and is the main command buffer type. //! - [`PrimaryCommandBufferAbstract`] can be executed on a queue, and is the main command buffer
//! It cannot be executed within another command buffer. //! type. It cannot be executed within another command buffer.
//! - [`SecondaryCommandBuffer`] can only be executed within a primary command buffer, not directly //! - [`SecondaryCommandBufferAbstract`] can only be executed within a primary command buffer,
//! on a queue. //! not directly on a queue.
//! //!
//! Using secondary command buffers, there is slightly more overhead than using primary command //! Using secondary command buffers, there is slightly more overhead than using primary command
//! buffers alone, but there are also advantages. A single command buffer cannot be recorded //! buffers alone, but there are also advantages. A single command buffer cannot be recorded
@ -48,15 +48,16 @@
//! # Recording a command buffer //! # Recording a command buffer
//! //!
//! To record a new command buffer, the most direct way is to create a new //! To record a new command buffer, the most direct way is to create a new
//! [`CommandBufferBuilder`]. You can then call methods on this object to record new commands to //! [`AutoCommandBufferBuilder`]. You can then call methods on this object to record new commands to
//! the command buffer. When you are done recording, you call [`build`] to finalise the command //! the command buffer. When you are done recording, you call [`build`] to finalise the command
//! buffer and turn it into either a [`PrimaryCommandBuffer`] or a [`SecondaryCommandBuffer`]. //! buffer and turn it into either a [`PrimaryCommandBufferAbstract`] or a
//! [`SecondaryCommandBufferAbstract`].
//! //!
//! Using the standard `CommandBufferBuilder`, you must enter synchronization commands such as // //! Using the standard `CommandBufferBuilder`, you must enter synchronization commands such as
//! [pipeline barriers], to ensure that there are no races and memory access hazards. This can be // //! [pipeline barriers], to ensure that there are no races and memory access hazards. This can be
//! difficult to do manually, so Vulkano also provides an alternative builder, // //! difficult to do manually, so Vulkano also provides an alternative builder,
//! [`AutoCommandBufferBuilder`]. Using this builder, you do not have to worry about managing // //! [`AutoCommandBufferBuilder`]. Using this builder, you do not have to worry about managing
//! synchronization, but the end result may not be quite as efficient. // //! synchronization, but the end result may not be quite as efficient.
//! //!
//! # Submitting a primary command buffer //! # Submitting a primary command buffer
//! //!
@ -108,7 +109,7 @@
//! [`GpuFuture`]: crate::sync::GpuFuture //! [`GpuFuture`]: crate::sync::GpuFuture
#[doc(no_inline)] #[doc(no_inline)]
pub use self::standard::{CommandBufferBuilder, PrimaryCommandBuffer, SecondaryCommandBuffer}; pub(crate) use self::standard::{PrimaryCommandBuffer, SecondaryCommandBuffer};
pub use self::{ pub use self::{
auto::{ auto::{
AutoCommandBufferBuilder, BuildError, CommandBufferBeginError, PrimaryAutoCommandBuffer, AutoCommandBufferBuilder, BuildError, CommandBufferBeginError, PrimaryAutoCommandBuffer,
@ -154,7 +155,7 @@ pub mod allocator;
mod auto; mod auto;
mod commands; mod commands;
pub mod pool; pub mod pool;
pub mod standard; pub(crate) mod standard;
pub mod synced; pub mod synced;
pub mod sys; pub mod sys;
mod traits; mod traits;

View File

@ -12,6 +12,8 @@
//! Using `CommandBufferBuilder`, you must manually record synchronization commands to ensure //! Using `CommandBufferBuilder`, you must manually record synchronization commands to ensure
//! correct operation. //! correct operation.
#![allow(dead_code)]
pub use self::builder::*; pub use self::builder::*;
use super::{ use super::{
allocator::{CommandBufferAlloc, StandardCommandBufferAlloc}, allocator::{CommandBufferAlloc, StandardCommandBufferAlloc},

View File

@ -10,13 +10,6 @@
#![doc(html_logo_url = "https://raw.githubusercontent.com/vulkano-rs/vulkano/master/logo.png")] #![doc(html_logo_url = "https://raw.githubusercontent.com/vulkano-rs/vulkano/master/logo.png")]
//! Safe and rich Rust wrapper around the Vulkan API. //! Safe and rich Rust wrapper around the Vulkan API.
//! //!
//! # Cargo features
//!
//! | Feature | Description |
//! |----------------------|-------------------------------------------------------------------------------|
//! | `document_unchecked` | Include `_unchecked` functions in the generated documentation. |
//! | `serde` | Enables (de)serialization of certain types using [`serde`]. |
//!
//! # Starting off with Vulkano //! # Starting off with Vulkano
//! //!
//! The steps for using Vulkan through Vulkano are in principle not any different from using //! The steps for using Vulkan through Vulkano are in principle not any different from using
@ -101,6 +94,13 @@
//! `document_unchecked` cargo feature, and then generating the documentation with the command //! `document_unchecked` cargo feature, and then generating the documentation with the command
//! `cargo doc --open`. //! `cargo doc --open`.
//! //!
//! # Cargo features
//!
//! | Feature | Description |
//! |----------------------|-------------------------------------------------------------------------------|
//! | `document_unchecked` | Include `_unchecked` functions in the generated documentation. |
//! | `serde` | Enables (de)serialization of certain types using [`serde`]. |
//!
//! [`cgmath`]: https://crates.io/crates/cgmath //! [`cgmath`]: https://crates.io/crates/cgmath
//! [`nalgebra`]: https://crates.io/crates/nalgebra //! [`nalgebra`]: https://crates.io/crates/nalgebra
//! [`serde`]: https://crates.io/crates/serde //! [`serde`]: https://crates.io/crates/serde
@ -136,6 +136,7 @@
#![allow( #![allow(
clippy::collapsible_else_if, clippy::collapsible_else_if,
clippy::collapsible_if, clippy::collapsible_if,
clippy::derivable_impls, // TODO: remove
clippy::large_enum_variant, clippy::large_enum_variant,
clippy::len_without_is_empty, clippy::len_without_is_empty,
clippy::missing_safety_doc, // TODO: remove clippy::missing_safety_doc, // TODO: remove

View File

@ -145,7 +145,7 @@ impl From<DeviceAlignment> for DeviceSize {
// This is a false-positive, the underlying values that this impl and the derived `PartialEq` work // This is a false-positive, the underlying values that this impl and the derived `PartialEq` work
// with are the same. // with are the same.
#[allow(clippy::derive_hash_xor_eq)] #[allow(clippy::derived_hash_with_manual_eq)]
impl Hash for DeviceAlignment { impl Hash for DeviceAlignment {
#[inline] #[inline]
fn hash<H: Hasher>(&self, state: &mut H) { fn hash<H: Hasher>(&self, state: &mut H) {