Skip to content

Commit

Permalink
Add PhysicalDevice::presentation_support (#2562)
Browse files Browse the repository at this point in the history
  • Loading branch information
marc0246 authored Sep 11, 2024
1 parent 79c30fd commit e8ddaef
Show file tree
Hide file tree
Showing 66 changed files with 512 additions and 344 deletions.
2 changes: 2 additions & 0 deletions Cargo.lock

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

2 changes: 2 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,8 @@ syn = "2.0"
thread_local = "1.1"
vk-parse = "0.12"
winit = { version = "0.29", default-features = false }
x11-dl = "2.0"
x11rb = "0.13"

# Only used in examples
glam = "0.25"
Expand Down
2 changes: 1 addition & 1 deletion examples/async-update/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ doc = false
[dependencies]
glam = { workspace = true }
rand = { workspace = true }
vulkano = { workspace = true, features = ["macros"] }
vulkano = { workspace = true, default-features = true }
vulkano-shaders = { workspace = true }
vulkano-taskgraph = { workspace = true }
winit = { workspace = true, default-features = true }
8 changes: 4 additions & 4 deletions examples/async-update/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -110,9 +110,6 @@ fn main() -> Result<(), impl Error> {
)
.unwrap();

let window = Arc::new(WindowBuilder::new().build(&event_loop).unwrap());
let surface = Surface::from_window(instance.clone(), window.clone()).unwrap();

let device_extensions = DeviceExtensions {
khr_swapchain: true,
..DeviceExtensions::empty()
Expand All @@ -127,7 +124,7 @@ fn main() -> Result<(), impl Error> {
.enumerate()
.position(|(i, q)| {
q.queue_flags.intersects(QueueFlags::GRAPHICS)
&& p.surface_support(i as u32, &surface).unwrap_or(false)
&& p.presentation_support(i as u32, &event_loop).unwrap()
})
.map(|i| (p, i as u32))
})
Expand Down Expand Up @@ -232,6 +229,9 @@ fn main() -> Result<(), impl Error> {
let graphics_flight_id = resources.create_flight(MAX_FRAMES_IN_FLIGHT).unwrap();
let transfer_flight_id = resources.create_flight(1).unwrap();

let window = Arc::new(WindowBuilder::new().build(&event_loop).unwrap());
let surface = Surface::from_window(instance.clone(), window.clone()).unwrap();

let swapchain_format = device
.physical_device()
.surface_formats(&surface, Default::default())
Expand Down
2 changes: 1 addition & 1 deletion examples/basic-compute-shader/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,5 @@ bench = false
doc = false

[dependencies]
vulkano = { workspace = true, features = ["macros"] }
vulkano = { workspace = true, default-features = true }
vulkano-shaders = { workspace = true }
2 changes: 1 addition & 1 deletion examples/buffer-allocator/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,6 @@ bench = false
doc = false

[dependencies]
vulkano = { workspace = true, features = ["macros"] }
vulkano = { workspace = true, default-features = true }
vulkano-shaders = { workspace = true }
winit = { workspace = true, default-features = true }
8 changes: 4 additions & 4 deletions examples/buffer-allocator/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -62,9 +62,6 @@ fn main() -> Result<(), impl Error> {
)
.unwrap();

let window = Arc::new(WindowBuilder::new().build(&event_loop).unwrap());
let surface = Surface::from_window(instance.clone(), window.clone()).unwrap();

let device_extensions = DeviceExtensions {
khr_swapchain: true,
..DeviceExtensions::empty()
Expand All @@ -79,7 +76,7 @@ fn main() -> Result<(), impl Error> {
.enumerate()
.position(|(i, q)| {
q.queue_flags.intersects(QueueFlags::GRAPHICS)
&& p.surface_support(i as u32, &surface).unwrap_or(false)
&& p.presentation_support(i as u32, &event_loop).unwrap()
})
.map(|i| (p, i as u32))
})
Expand Down Expand Up @@ -114,6 +111,9 @@ fn main() -> Result<(), impl Error> {

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

let window = Arc::new(WindowBuilder::new().build(&event_loop).unwrap());
let surface = Surface::from_window(instance.clone(), window.clone()).unwrap();

let (mut swapchain, images) = {
let surface_capabilities = device
.physical_device()
Expand Down
2 changes: 1 addition & 1 deletion examples/clear-attachments/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,5 @@ bench = false
doc = false

[dependencies]
vulkano = { workspace = true }
vulkano = { workspace = true, default-features = true }
winit = { workspace = true, default-features = true }
8 changes: 4 additions & 4 deletions examples/clear-attachments/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,6 @@ fn main() -> Result<(), impl Error> {
)
.unwrap();

let window = Arc::new(WindowBuilder::new().build(&event_loop).unwrap());
let surface = Surface::from_window(instance.clone(), window.clone()).unwrap();

let device_extensions = DeviceExtensions {
khr_swapchain: true,
..DeviceExtensions::empty()
Expand All @@ -59,7 +56,7 @@ fn main() -> Result<(), impl Error> {
.enumerate()
.position(|(i, q)| {
q.queue_flags.intersects(QueueFlags::GRAPHICS)
&& p.surface_support(i as u32, &surface).unwrap_or(false)
&& p.presentation_support(i as u32, &event_loop).unwrap()
})
.map(|i| (p, i as u32))
})
Expand Down Expand Up @@ -93,6 +90,9 @@ fn main() -> Result<(), impl Error> {
.unwrap();
let queue = queues.next().unwrap();

let window = Arc::new(WindowBuilder::new().build(&event_loop).unwrap());
let surface = Surface::from_window(instance.clone(), window.clone()).unwrap();

let (mut swapchain, images) = {
let surface_capabilities = device
.physical_device()
Expand Down
2 changes: 1 addition & 1 deletion examples/debug/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,4 @@ bench = false
doc = false

[dependencies]
vulkano = { workspace = true }
vulkano = { workspace = true, default-features = true }
2 changes: 1 addition & 1 deletion examples/deferred/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,6 @@ doc = false

[dependencies]
glam = { workspace = true }
vulkano = { workspace = true, features = ["macros"] }
vulkano = { workspace = true, default-features = true }
vulkano-shaders = { workspace = true }
winit = { workspace = true, default-features = true }
8 changes: 4 additions & 4 deletions examples/deferred/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -65,9 +65,6 @@ fn main() -> Result<(), impl Error> {
)
.unwrap();

let window = Arc::new(WindowBuilder::new().build(&event_loop).unwrap());
let surface = Surface::from_window(instance.clone(), window.clone()).unwrap();

let device_extensions = DeviceExtensions {
khr_swapchain: true,
..DeviceExtensions::empty()
Expand All @@ -82,7 +79,7 @@ fn main() -> Result<(), impl Error> {
.enumerate()
.position(|(i, q)| {
q.queue_flags.intersects(QueueFlags::GRAPHICS)
&& p.surface_support(i as u32, &surface).unwrap_or(false)
&& p.presentation_support(i as u32, &event_loop).unwrap()
})
.map(|i| (p, i as u32))
})
Expand Down Expand Up @@ -116,6 +113,9 @@ fn main() -> Result<(), impl Error> {
.unwrap();
let queue = queues.next().unwrap();

let window = Arc::new(WindowBuilder::new().build(&event_loop).unwrap());
let surface = Surface::from_window(instance.clone(), window.clone()).unwrap();

let (mut swapchain, mut images) = {
let surface_capabilities = device
.physical_device()
Expand Down
2 changes: 1 addition & 1 deletion examples/dynamic-buffers/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,5 @@ bench = false
doc = false

[dependencies]
vulkano = { workspace = true, features = ["macros"] }
vulkano = { workspace = true, default-features = true }
vulkano-shaders = { workspace = true }
2 changes: 1 addition & 1 deletion examples/dynamic-local-size/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,5 @@ doc = false

[dependencies]
png = { workspace = true }
vulkano = { workspace = true, features = ["macros"] }
vulkano = { workspace = true, default-features = true }
vulkano-shaders = { workspace = true }
2 changes: 1 addition & 1 deletion examples/gl-interop/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ doc = false

[dependencies]
glium = "0.32.1"
vulkano = { workspace = true, features = ["macros"] }
vulkano = { workspace = true, default-features = true }
vulkano-shaders = { workspace = true }
winit = { workspace = true, default-features = true }
# Glium has still not been updated to the latest winit version
Expand Down
8 changes: 4 additions & 4 deletions examples/gl-interop/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -531,9 +531,6 @@ mod linux {
.unwrap()
};

let window = Arc::new(WindowBuilder::new().build(event_loop).unwrap());
let surface = Surface::from_window(instance.clone(), window.clone()).unwrap();

let device_extensions = DeviceExtensions {
khr_external_semaphore: true,
khr_external_semaphore_fd: true,
Expand All @@ -555,7 +552,7 @@ mod linux {
.enumerate()
.position(|(i, q)| {
q.queue_flags.intersects(QueueFlags::GRAPHICS)
&& p.surface_support(i as u32, &surface).unwrap_or(false)
&& p.presentation_support(i as u32, &event_loop).unwrap()
})
.map(|i| (p, i as u32))
})
Expand Down Expand Up @@ -597,6 +594,9 @@ mod linux {

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

let window = Arc::new(WindowBuilder::new().build(event_loop).unwrap());
let surface = Surface::from_window(instance.clone(), window.clone()).unwrap();

let (swapchain, images) = {
let surface_capabilities = device
.physical_device()
Expand Down
2 changes: 1 addition & 1 deletion examples/image-self-copy-blit/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,6 @@ doc = false

[dependencies]
png = { workspace = true }
vulkano = { workspace = true, features = ["macros"] }
vulkano = { workspace = true, default-features = true }
vulkano-shaders = { workspace = true }
winit = { workspace = true, default-features = true }
8 changes: 4 additions & 4 deletions examples/image-self-copy-blit/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -67,9 +67,6 @@ fn main() -> Result<(), impl Error> {
)
.unwrap();

let window = Arc::new(WindowBuilder::new().build(&event_loop).unwrap());
let surface = Surface::from_window(instance.clone(), window.clone()).unwrap();

let device_extensions = DeviceExtensions {
khr_swapchain: true,
..DeviceExtensions::empty()
Expand All @@ -84,7 +81,7 @@ fn main() -> Result<(), impl Error> {
.enumerate()
.position(|(i, q)| {
q.queue_flags.intersects(QueueFlags::GRAPHICS)
&& p.surface_support(i as u32, &surface).unwrap_or(false)
&& p.presentation_support(i as u32, &event_loop).unwrap()
})
.map(|i| (p, i as u32))
})
Expand Down Expand Up @@ -118,6 +115,9 @@ fn main() -> Result<(), impl Error> {
.unwrap();
let queue = queues.next().unwrap();

let window = Arc::new(WindowBuilder::new().build(&event_loop).unwrap());
let surface = Surface::from_window(instance.clone(), window.clone()).unwrap();

let (mut swapchain, images) = {
let surface_capabilities = device
.physical_device()
Expand Down
2 changes: 1 addition & 1 deletion examples/image/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,6 @@ doc = false

[dependencies]
png = { workspace = true }
vulkano = { workspace = true, features = ["macros"] }
vulkano = { workspace = true, default-features = true }
vulkano-shaders = { workspace = true }
winit = { workspace = true, default-features = true }
8 changes: 4 additions & 4 deletions examples/image/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -65,9 +65,6 @@ fn main() -> Result<(), impl Error> {
)
.unwrap();

let window = Arc::new(WindowBuilder::new().build(&event_loop).unwrap());
let surface = Surface::from_window(instance.clone(), window.clone()).unwrap();

let device_extensions = DeviceExtensions {
khr_swapchain: true,
..DeviceExtensions::empty()
Expand All @@ -82,7 +79,7 @@ fn main() -> Result<(), impl Error> {
.enumerate()
.position(|(i, q)| {
q.queue_flags.intersects(QueueFlags::GRAPHICS)
&& p.surface_support(i as u32, &surface).unwrap_or(false)
&& p.presentation_support(i as u32, &event_loop).unwrap()
})
.map(|i| (p, i as u32))
})
Expand Down Expand Up @@ -116,6 +113,9 @@ fn main() -> Result<(), impl Error> {
.unwrap();
let queue = queues.next().unwrap();

let window = Arc::new(WindowBuilder::new().build(&event_loop).unwrap());
let surface = Surface::from_window(instance.clone(), window.clone()).unwrap();

let (mut swapchain, images) = {
let surface_capabilities = device
.physical_device()
Expand Down
2 changes: 1 addition & 1 deletion examples/immutable-sampler/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,6 @@ doc = false

[dependencies]
png = { workspace = true }
vulkano = { workspace = true, features = ["macros"] }
vulkano = { workspace = true, default-features = true }
vulkano-shaders = { workspace = true }
winit = { workspace = true, default-features = true }
8 changes: 4 additions & 4 deletions examples/immutable-sampler/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -71,9 +71,6 @@ fn main() -> Result<(), impl Error> {
)
.unwrap();

let window = Arc::new(WindowBuilder::new().build(&event_loop).unwrap());
let surface = Surface::from_window(instance.clone(), window.clone()).unwrap();

let device_extensions = DeviceExtensions {
khr_swapchain: true,
..DeviceExtensions::empty()
Expand All @@ -88,7 +85,7 @@ fn main() -> Result<(), impl Error> {
.enumerate()
.position(|(i, q)| {
q.queue_flags.intersects(QueueFlags::GRAPHICS)
&& p.surface_support(i as u32, &surface).unwrap_or(false)
&& p.presentation_support(i as u32, &event_loop).unwrap()
})
.map(|i| (p, i as u32))
})
Expand Down Expand Up @@ -122,6 +119,9 @@ fn main() -> Result<(), impl Error> {
.unwrap();
let queue = queues.next().unwrap();

let window = Arc::new(WindowBuilder::new().build(&event_loop).unwrap());
let surface = Surface::from_window(instance.clone(), window.clone()).unwrap();

let (mut swapchain, images) = {
let surface_capabilities = device
.physical_device()
Expand Down
2 changes: 1 addition & 1 deletion examples/indirect/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,6 @@ bench = false
doc = false

[dependencies]
vulkano = { workspace = true, features = ["macros"] }
vulkano = { workspace = true, default-features = true }
vulkano-shaders = { workspace = true }
winit = { workspace = true, default-features = true }
8 changes: 4 additions & 4 deletions examples/indirect/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -78,9 +78,6 @@ fn main() -> Result<(), impl Error> {
)
.unwrap();

let window = Arc::new(WindowBuilder::new().build(&event_loop).unwrap());
let surface = Surface::from_window(instance.clone(), window.clone()).unwrap();

let device_extensions = DeviceExtensions {
khr_swapchain: true,
khr_storage_buffer_storage_class: true,
Expand All @@ -96,7 +93,7 @@ fn main() -> Result<(), impl Error> {
.enumerate()
.position(|(i, q)| {
q.queue_flags.intersects(QueueFlags::GRAPHICS)
&& p.surface_support(i as u32, &surface).unwrap_or(false)
&& p.presentation_support(i as u32, &event_loop).unwrap()
})
.map(|i| (p, i as u32))
})
Expand Down Expand Up @@ -131,6 +128,9 @@ fn main() -> Result<(), impl Error> {

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

let window = Arc::new(WindowBuilder::new().build(&event_loop).unwrap());
let surface = Surface::from_window(instance.clone(), window.clone()).unwrap();

let (mut swapchain, images) = {
let surface_capabilities = device
.physical_device()
Expand Down
2 changes: 1 addition & 1 deletion examples/instancing/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,6 @@ bench = false
doc = false

[dependencies]
vulkano = { workspace = true, features = ["macros"] }
vulkano = { workspace = true, default-features = true }
vulkano-shaders = { workspace = true }
winit = { workspace = true, default-features = true }
Loading

0 comments on commit e8ddaef

Please sign in to comment.