mirror of
https://github.com/vulkano-rs/vulkano.git
synced 2024-11-21 22:34:43 +00:00
Release Vulkano 0.33.0 (#2169)
* Release Vulkano 0.33.0 * Update changelog for recent changes * Derp
This commit is contained in:
parent
83557afc1e
commit
1f31e85c5e
19
CHANGELOG.md
19
CHANGELOG.md
@ -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.
|
||||||
|
@ -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"]
|
||||||
|
@ -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(
|
||||||
|
@ -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" }
|
||||||
|
@ -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]
|
||||||
|
@ -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"
|
||||||
|
@ -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"
|
||||||
|
@ -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;
|
||||||
|
@ -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},
|
||||||
|
@ -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
|
||||||
|
@ -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) {
|
||||||
|
Loading…
Reference in New Issue
Block a user