Publish create vk handles for tests

This commit is contained in:
hodasemi 2023-04-15 09:21:08 +02:00
parent 591aba8c12
commit c5a5588696
2 changed files with 40 additions and 34 deletions

View file

@ -344,46 +344,14 @@ mod test {
use crate::prelude::*; use crate::prelude::*;
use anyhow::Result; use anyhow::Result;
use std::sync::{Arc, Mutex}; use std::sync::Arc;
fn create_vk_handles() -> Result<(Arc<Device>, Arc<Mutex<Queue>>)> {
let instance = Instance::new(
VkApplicationInfo::new(
&VkString::new("Test: image::to_file"),
1,
&VkString::new("no name"),
1,
VK_MAKE_VERSION(1, 3, 0),
),
VulkanDebugInfo::default(),
InstanceExtensions::default(),
)?;
let physical_device = PhysicalDevice::new(instance)?;
let queue_info = Queue::create_non_presentable_request_info(
&physical_device,
VK_QUEUE_GRAPHICS_BIT | VK_QUEUE_TRANSFER_BIT,
)?;
let device = Device::new(
physical_device,
DeviceExtensions::default(),
&[queue_info.queue_create_info],
DeviceFeatures::default(),
)?;
let queue = device.get_queue(queue_info.queue_family_index, queue_info.queue_index);
Ok((device, queue))
}
#[test] #[test]
fn create_multiple_sets_from_one_pool() -> Result<()> { fn create_multiple_sets_from_one_pool() -> Result<()> {
const DESCRIPTOR_COUNT: u32 = 2; const DESCRIPTOR_COUNT: u32 = 2;
let (device, _queue) = create_vk_handles()?; let (device, _queue) = crate::create_vk_handles()?;
let descriptor_layout = DescriptorSetLayout::builder() let descriptor_layout = DescriptorSetLayout::builder()
.add_layout_binding( .add_layout_binding(

View file

@ -58,3 +58,41 @@ pub trait VkHandle<T> {
pub trait VulkanDevice { pub trait VulkanDevice {
fn device(&self) -> &std::sync::Arc<device::Device>; fn device(&self) -> &std::sync::Arc<device::Device>;
} }
#[cfg(test)]
pub fn create_vk_handles() -> anyhow::Result<(
std::sync::Arc<prelude::Device>,
std::sync::Arc<std::sync::Mutex<prelude::Queue>>,
)> {
use crate::prelude::*;
let instance = Instance::new(
VkApplicationInfo::new(
&VkString::new("Test: image::to_file"),
1,
&VkString::new("no name"),
1,
VK_MAKE_VERSION(1, 3, 0),
),
VulkanDebugInfo::default(),
InstanceExtensions::default(),
)?;
let physical_device = PhysicalDevice::new(instance)?;
let queue_info = Queue::create_non_presentable_request_info(
&physical_device,
VK_QUEUE_GRAPHICS_BIT | VK_QUEUE_TRANSFER_BIT,
)?;
let device = Device::new(
physical_device,
DeviceExtensions::default(),
&[queue_info.queue_create_info],
DeviceFeatures::default(),
)?;
let queue = device.get_queue(queue_info.queue_family_index, queue_info.queue_index);
Ok((device, queue))
}