Skip to content
This repository has been archived by the owner on Apr 12, 2023. It is now read-only.

Commit

Permalink
Updated guide to Vulkano 0.29 (#116)
Browse files Browse the repository at this point in the history
* Updated chapter code to Vulkano 0.29

* Updated initialization and introduction chapters

* Updated buffer creation, compute and images chapters to Vulkano 0.29

* Updated graphic pipeline and windowing chapters to Vulkano 0.29

* Implemented @lukassup fix for pipeline creation buffer

* Final touches

Co-authored-by: ZakStar17 <[email protected]>
  • Loading branch information
ZakStar17 and ZakStar17 authored Mar 21, 2022
1 parent ca8940b commit efdf7fa
Show file tree
Hide file tree
Showing 27 changed files with 422 additions and 303 deletions.
128 changes: 104 additions & 24 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 5 additions & 4 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "vulkano-www"
version = "0.28.0"
version = "0.29.0"
edition = "2021"
authors = ["Pierre Krieger <[email protected]>"]
publish = false
Expand All @@ -12,8 +12,9 @@ pulldown-cmark = "0.9.1"
rouille = "3.0.0"

[dev-dependencies]
vulkano = "0.28.0"
vulkano-shaders = "0.28.0"
vulkano = "0.29.0"
vulkano-shaders = "0.29.0"
image = "0.24.0"
winit = "0.26.0"
vulkano-win = "0.28.0"
vulkano-win = "0.29.0"
bytemuck = "1.8.0"
29 changes: 13 additions & 16 deletions chapter_code/buffer_creation.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,16 +14,14 @@
use vulkano::buffer::{BufferUsage, CpuAccessibleBuffer};
use vulkano::command_buffer::{AutoCommandBufferBuilder, CommandBufferUsage};
use vulkano::device::physical::PhysicalDevice;
use vulkano::device::{Device, DeviceExtensions, Features};
use vulkano::instance::{Instance, InstanceExtensions};
use vulkano::sync;
use vulkano::sync::GpuFuture;
use vulkano::Version;
use vulkano::device::QueueCreateInfo;
use vulkano::device::{Device, DeviceCreateInfo};
use vulkano::instance::{Instance, InstanceCreateInfo};
use vulkano::sync::{self, GpuFuture};

fn main() {
// Initialization
let instance = Instance::new(None, Version::V1_1, &InstanceExtensions::none(), None)
.expect("failed to create instance");
let instance = Instance::new(InstanceCreateInfo::default()).expect("failed to create instance");

let physical = PhysicalDevice::enumerate(&instance)
.next()
Expand All @@ -35,15 +33,14 @@ fn main() {
.find(|&q| q.supports_graphics())
.expect("couldn't find a graphical queue family");

let (device, mut queues) = {
Device::new(
physical,
&Features::none(),
&DeviceExtensions::none(),
[(queue_family, 0.5)].iter().cloned(),
)
.expect("failed to create device")
};
let (device, mut queues) = Device::new(
physical,
DeviceCreateInfo {
queue_create_infos: vec![QueueCreateInfo::family(queue_family)],
..Default::default()
},
)
.expect("failed to create device");

let queue = queues.next().unwrap();

Expand Down
36 changes: 14 additions & 22 deletions chapter_code/compute_pipeline.rs
Original file line number Diff line number Diff line change
Expand Up @@ -15,17 +15,14 @@ use vulkano::buffer::{BufferUsage, CpuAccessibleBuffer};
use vulkano::command_buffer::{AutoCommandBufferBuilder, CommandBufferUsage};
use vulkano::descriptor_set::{PersistentDescriptorSet, WriteDescriptorSet};
use vulkano::device::physical::PhysicalDevice;
use vulkano::device::{Device, DeviceExtensions, Features};
use vulkano::instance::{Instance, InstanceExtensions};
use vulkano::pipeline::Pipeline;
use vulkano::pipeline::{ComputePipeline, PipelineBindPoint};
use vulkano::device::{Device, DeviceCreateInfo, DeviceExtensions, QueueCreateInfo};
use vulkano::instance::{Instance, InstanceCreateInfo};
use vulkano::pipeline::{ComputePipeline, Pipeline, PipelineBindPoint};
use vulkano::sync;
use vulkano::sync::GpuFuture;
use vulkano::Version;

fn main() {
let instance = Instance::new(None, Version::V1_1, &InstanceExtensions::none(), None)
.expect("failed to create instance");
let instance = Instance::new(InstanceCreateInfo::default()).expect("failed to create instance");

let physical = PhysicalDevice::enumerate(&instance)
.next()
Expand All @@ -36,18 +33,18 @@ fn main() {
.find(|&q| q.supports_compute())
.expect("couldn't find a compute queue family");

let (device, mut queues) = {
Device::new(
physical,
&Features::none(),
&DeviceExtensions {
let (device, mut queues) = Device::new(
physical,
DeviceCreateInfo {
queue_create_infos: vec![QueueCreateInfo::family(queue_family)],
enabled_extensions: DeviceExtensions {
khr_storage_buffer_storage_class: true,
..DeviceExtensions::none()
},
[(queue_family, 0.5)].iter().cloned(),
)
.expect("failed to create device")
};
..Default::default()
},
)
.expect("failed to create device");

let queue = queues.next().unwrap();

Expand Down Expand Up @@ -87,12 +84,7 @@ void main() {
)
.expect("failed to create compute pipeline");

let layout = compute_pipeline
.layout()
.descriptor_set_layouts()
.get(0)
.unwrap();

let layout = compute_pipeline.layout().set_layouts().get(0).unwrap();
let set = PersistentDescriptorSet::new(
layout.clone(),
[WriteDescriptorSet::buffer(0, data_buffer.clone())], // 0 is the binding
Expand Down
Loading

0 comments on commit efdf7fa

Please sign in to comment.