Skip to content

Commit

Permalink
* Updated to ash 0.26
Browse files Browse the repository at this point in the history
* Made function pointer structs borrowed for performance
  • Loading branch information
gwihlidal committed Nov 17, 2018
1 parent 4ec975b commit d6a6538
Show file tree
Hide file tree
Showing 6 changed files with 53 additions and 39 deletions.
5 changes: 5 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
# Changes

## 0.1.2 (2018-11-17)

* Updated to ash 0.26
* Made function pointer structs borrowed for performance

## 0.1.1 (2018-11-15)

* Updated to ash 0.25 (Vulkan 1.1)
Expand Down
4 changes: 2 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "vk-sync"
version = "0.1.1"
version = "0.1.2"
license = "MIT/Apache-2.0"
authors = ["Graham Wihlidal <graham@wihlidal.ca>"]
homepage = "https://github.com/gwihlidal/vk-sync-rs"
Expand All @@ -26,7 +26,7 @@ name = "vk_sync"
path = "src/lib.rs"

[dependencies]
ash = { version = "0.25", optional = true }
ash = { version = "0.26", optional = true }

[features]
default = ["ash_bind"]
Expand Down
8 changes: 4 additions & 4 deletions src/cmd.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ use ash;
/// barriers to be passed to `vkCmdPipelineBarrier`.
/// `command_buffer` is passed unmodified to `vkCmdPipelineBarrier`.
pub fn pipeline_barrier(
device: ash::vk::DeviceFnV1_0,
device: &ash::vk::DeviceFnV1_0,
command_buffer: ash::vk::CommandBuffer,
global_barrier: Option<GlobalBarrier>,
buffer_barriers: &[BufferBarrier],
Expand Down Expand Up @@ -66,7 +66,7 @@ pub fn pipeline_barrier(
/// Sets an event when the accesses defined by `previous_accesses` are completed.
/// `command_buffer` and `event` are passed unmodified to `vkCmdSetEvent`.
pub fn set_event(
device: ash::vk::DeviceFnV1_0,
device: &ash::vk::DeviceFnV1_0,
command_buffer: ash::vk::CommandBuffer,
event: ash::vk::Event,
previous_accesses: &[AccessType],
Expand All @@ -86,7 +86,7 @@ pub fn set_event(
/// Resets an event when the accesses defined by `previous_accesses` are completed.
/// `command_buffer` and `event` are passed unmodified to `vkCmdResetEvent`.
pub fn reset_event(
device: ash::vk::DeviceFnV1_0,
device: &ash::vk::DeviceFnV1_0,
command_buffer: ash::vk::CommandBuffer,
event: ash::vk::Event,
previous_accesses: &[AccessType],
Expand All @@ -109,7 +109,7 @@ pub fn reset_event(
///
/// `commandBuffer` and `events` are passed unmodified to `vkCmdWaitEvents`.
pub fn wait_events(
device: ash::vk::DeviceFnV1_0,
device: &ash::vk::DeviceFnV1_0,
command_buffer: ash::vk::CommandBuffer,
events: &[ash::vk::Event],
global_barrier: Option<GlobalBarrier>,
Expand Down
60 changes: 30 additions & 30 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,9 @@ pub enum AccessType {
}

impl Default for AccessType {
fn default() -> Self { AccessType::Nothing }
fn default() -> Self {
AccessType::Nothing
}
}

/// Defines a handful of layout options for images.
Expand All @@ -200,7 +202,9 @@ pub enum ImageLayout {
}

impl Default for ImageLayout {
fn default() -> Self { ImageLayout::Optimal }
fn default() -> Self {
ImageLayout::Optimal
}
}

/// Global barriers define a set of accesses on multiple resources at once.
Expand Down Expand Up @@ -509,13 +513,11 @@ pub(crate) fn get_access_info(access_type: &AccessType) -> AccessInfo {
access_mask: ash::vk::AccessFlags::empty(),
image_layout: ash::vk::ImageLayout::UNDEFINED,
},
AccessType::CommandBufferReadNVX => {
AccessInfo {
stage_mask: ash::vk::PipelineStageFlags::COMMAND_PROCESS_NVX,
access_mask: ash::vk::AccessFlags::COMMAND_PROCESS_READ_NVX,
image_layout: ash::vk::ImageLayout::UNDEFINED,
}
},
AccessType::CommandBufferReadNVX => AccessInfo {
stage_mask: ash::vk::PipelineStageFlags::COMMAND_PROCESS_NVX,
access_mask: ash::vk::AccessFlags::COMMAND_PROCESS_READ_NVX,
image_layout: ash::vk::ImageLayout::UNDEFINED,
},
AccessType::IndirectBuffer => AccessInfo {
stage_mask: ash::vk::PipelineStageFlags::DRAW_INDIRECT,
access_mask: ash::vk::AccessFlags::INDIRECT_COMMAND_READ,
Expand Down Expand Up @@ -680,13 +682,11 @@ pub(crate) fn get_access_info(access_type: &AccessType) -> AccessInfo {
access_mask: ash::vk::AccessFlags::empty(),
image_layout: ash::vk::ImageLayout::PRESENT_SRC_KHR,
},
AccessType::CommandBufferWriteNVX => {
AccessInfo {
stage_mask: ash::vk::PipelineStageFlags::COMMAND_PROCESS_NVX,
access_mask: ash::vk::AccessFlags::COMMAND_PROCESS_WRITE_NVX,
image_layout: ash::vk::ImageLayout::UNDEFINED,
}
}
AccessType::CommandBufferWriteNVX => AccessInfo {
stage_mask: ash::vk::PipelineStageFlags::COMMAND_PROCESS_NVX,
access_mask: ash::vk::AccessFlags::COMMAND_PROCESS_WRITE_NVX,
image_layout: ash::vk::ImageLayout::UNDEFINED,
},
AccessType::VertexShaderWrite => AccessInfo {
stage_mask: ash::vk::PipelineStageFlags::VERTEX_SHADER,
access_mask: ash::vk::AccessFlags::SHADER_WRITE,
Expand Down Expand Up @@ -723,20 +723,20 @@ pub(crate) fn get_access_info(access_type: &AccessType) -> AccessInfo {
access_mask: ash::vk::AccessFlags::DEPTH_STENCIL_ATTACHMENT_WRITE,
image_layout: ash::vk::ImageLayout::DEPTH_STENCIL_ATTACHMENT_OPTIMAL,
},
AccessType::DepthAttachmentWriteStencilReadOnly => {
AccessInfo {
stage_mask: ash::vk::PipelineStageFlags::EARLY_FRAGMENT_TESTS | ash::vk::PipelineStageFlags::LATE_FRAGMENT_TESTS,
access_mask: ash::vk::AccessFlags::DEPTH_STENCIL_ATTACHMENT_WRITE | ash::vk::AccessFlags::DEPTH_STENCIL_ATTACHMENT_READ,
image_layout: ash::vk::ImageLayout::DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,
}
}
AccessType::StencilAttachmentWriteDepthReadOnly => {
AccessInfo {
stage_mask: ash::vk::PipelineStageFlags::EARLY_FRAGMENT_TESTS | ash::vk::PipelineStageFlags::LATE_FRAGMENT_TESTS,
access_mask: ash::vk::AccessFlags::DEPTH_STENCIL_ATTACHMENT_WRITE | ash::vk::AccessFlags::DEPTH_STENCIL_ATTACHMENT_READ,
image_layout: ash::vk::ImageLayout::DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,
}
}
AccessType::DepthAttachmentWriteStencilReadOnly => AccessInfo {
stage_mask: ash::vk::PipelineStageFlags::EARLY_FRAGMENT_TESTS
| ash::vk::PipelineStageFlags::LATE_FRAGMENT_TESTS,
access_mask: ash::vk::AccessFlags::DEPTH_STENCIL_ATTACHMENT_WRITE
| ash::vk::AccessFlags::DEPTH_STENCIL_ATTACHMENT_READ,
image_layout: ash::vk::ImageLayout::DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,
},
AccessType::StencilAttachmentWriteDepthReadOnly => AccessInfo {
stage_mask: ash::vk::PipelineStageFlags::EARLY_FRAGMENT_TESTS
| ash::vk::PipelineStageFlags::LATE_FRAGMENT_TESTS,
access_mask: ash::vk::AccessFlags::DEPTH_STENCIL_ATTACHMENT_WRITE
| ash::vk::AccessFlags::DEPTH_STENCIL_ATTACHMENT_READ,
image_layout: ash::vk::ImageLayout::DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,
},
AccessType::ComputeShaderWrite => AccessInfo {
stage_mask: ash::vk::PipelineStageFlags::COMPUTE_SHADER,
access_mask: ash::vk::AccessFlags::SHADER_WRITE,
Expand Down
5 changes: 4 additions & 1 deletion tests/global.rs
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,10 @@ fn transfer_write_graphics_read_vertex() {

assert_eq!(src_mask, ash::vk::PipelineStageFlags::TRANSFER);
assert_eq!(dst_mask, ash::vk::PipelineStageFlags::VERTEX_INPUT);
assert_eq!(barrier.src_access_mask, ash::vk::AccessFlags::TRANSFER_WRITE);
assert_eq!(
barrier.src_access_mask,
ash::vk::AccessFlags::TRANSFER_WRITE
);
assert_eq!(
barrier.dst_access_mask,
ash::vk::AccessFlags::VERTEX_ATTRIBUTE_READ
Expand Down
10 changes: 8 additions & 2 deletions tests/image.rs
Original file line number Diff line number Diff line change
Expand Up @@ -422,9 +422,15 @@ fn transfer_write_image_fragment_read_sampled() {

assert_eq!(src_mask, ash::vk::PipelineStageFlags::TRANSFER);
assert_eq!(dst_mask, ash::vk::PipelineStageFlags::FRAGMENT_SHADER);
assert_eq!(barrier.src_access_mask, ash::vk::AccessFlags::TRANSFER_WRITE);
assert_eq!(
barrier.src_access_mask,
ash::vk::AccessFlags::TRANSFER_WRITE
);
assert_eq!(barrier.dst_access_mask, ash::vk::AccessFlags::SHADER_READ);
assert_eq!(barrier.old_layout, ash::vk::ImageLayout::TRANSFER_DST_OPTIMAL);
assert_eq!(
barrier.old_layout,
ash::vk::ImageLayout::TRANSFER_DST_OPTIMAL
);
assert_eq!(
barrier.new_layout,
ash::vk::ImageLayout::SHADER_READ_ONLY_OPTIMAL
Expand Down

0 comments on commit d6a6538

Please sign in to comment.