macro_rules! vk_check {
($e:expr) => ({
- #[allow(unused_unsafe)]
- let e = unsafe { $e };
+ let e = $e;
if e != vulkan_sys::Result::Success {
panic!("assertion failed: `result == vk::Result::Success`: \n value: `{:?}`", e);
}
});
($e:expr, $($msg_args:tt)+) => ({
- #[allow(unused_unsafe)]
- let e = unsafe { $e };
+ let e = $e;
if e != vulkan_sys::::Result::Success {
panic!("assertion failed: `result == vk::Result::Success`: \n value: `{:?}: {}`", e, format_args!($($msg_args)+));
}
..default()
};
let mut instance = vk::Instance::null();
- vk_check!(global_fn.create_instance(&create_info, None, &mut instance));
+ vk_check!(unsafe { global_fn.create_instance(&create_info, None, &mut instance) });
instance
};
..default()
};
let mut device = vk::Device::null();
- vk_check!(instance_fn.create_device(physical_device, &create_info, None, &mut device));
+ vk_check!(unsafe {
+ instance_fn.create_device(physical_device, &create_info, None, &mut device)
+ });
device
};
..default()
};
let mut shader_module = vk::ShaderModule::null();
- vk_check!(device_fn.create_shader_module(device, &create_info, None, &mut shader_module));
+ vk_check!(unsafe {
+ device_fn.create_shader_module(device, &create_info, None, &mut shader_module)
+ });
shader_module
};
let layout = {
let create_info = vk::PipelineLayoutCreateInfo::default();
let mut pipeline_layout = vk::PipelineLayout::null();
- vk_check!(device_fn.create_pipeline_layout(
- device,
- &create_info,
- None,
- &mut pipeline_layout
- ));
+ vk_check!(unsafe {
+ device_fn.create_pipeline_layout(device, &create_info, None, &mut pipeline_layout)
+ });
pipeline_layout
};
..default()
};
let mut command_pool = vk::CommandPool::default();
- vk_check!(device_fn.create_command_pool(device, &create_info, None, &mut command_pool));
+ vk_check!(unsafe {
+ device_fn.create_command_pool(device, &create_info, None, &mut command_pool)
+ });
command_pool
};
..default()
};
let mut image = vk::Image::null();
- vk_check!(device_fn.create_image(device, &create_info, None, &mut image));
+ vk_check!(unsafe { device_fn.create_image(device, &create_info, None, &mut image) });
let memory_requirements = {
let mut memory_requirements = vk::MemoryRequirements2::default();
);
let mut memory = vk::DeviceMemory::null();
- vk_check!(device_fn.allocate_memory(
- device,
- &vk::MemoryAllocateInfo {
- allocation_size: memory_requirements.memory_requirements.size,
- memory_type_index,
- ..default()
- },
- None,
- &mut memory,
- ));
+ vk_check!(unsafe {
+ device_fn.allocate_memory(
+ device,
+ &vk::MemoryAllocateInfo {
+ allocation_size: memory_requirements.memory_requirements.size,
+ memory_type_index,
+ ..default()
+ },
+ None,
+ &mut memory,
+ )
+ });
unsafe {
device_fn.bind_image_memory2(
device,
},
..default()
};
- vk_check!(device_fn.create_image_view(device, &create_info, None, &mut view));
+ vk_check!(unsafe { device_fn.create_image_view(device, &create_info, None, &mut view) });
(image, view, memory)
};
};
let mut data = std::ptr::null_mut();
- vk_check!(device_fn.map_memory(
- device,
- host_image_memory,
- 0,
- vk::WHOLE_SIZE,
- vk::MemoryMapFlags::default(),
- &mut data,
- ));
+ vk_check!(unsafe {
+ device_fn.map_memory(
+ device,
+ host_image_memory,
+ 0,
+ vk::WHOLE_SIZE,
+ vk::MemoryMapFlags::default(),
+ &mut data,
+ )
+ });
// Do the rendering!
let command_buffer = {
command_buffer_count: command_buffers.len() as u32,
..default()
};
- vk_check!(device_fn.allocate_command_buffers(
- device,
- &allocate_info,
- command_buffers.as_mut_ptr()
- ));
+ vk_check!(unsafe {
+ device_fn.allocate_command_buffers(device, &allocate_info, command_buffers.as_mut_ptr())
+ });
command_buffers[0]
};
flags: vk::CommandBufferUsageFlags::ONE_TIME_SUBMIT,
..default()
};
- vk_check!(device_fn.begin_command_buffer(command_buffer, &begin_info));
+ vk_check!(unsafe { device_fn.begin_command_buffer(command_buffer, &begin_info) });
}
unsafe {
)
};
- vk_check!(device_fn.end_command_buffer(command_buffer));
+ vk_check!(unsafe { device_fn.end_command_buffer(command_buffer) });
// SUBMIT!
semaphore_value += 1;
signal_semaphore_infos: signal_semaphore_infos.into(),
..default()
};
- vk_check!(device_fn.queue_submit2(queue, &[submit], vk::Fence::null()));
+ vk_check!(unsafe { device_fn.queue_submit2(queue, &[submit], vk::Fence::null()) });
- vk_check!(device_fn.wait_semaphores(
- device,
- &vk::SemaphoreWaitInfo {
- semaphores: (&[semaphore], &[semaphore_value]).into(),
- ..default()
- },
- !0,
- ));
+ vk_check!(unsafe {
+ device_fn.wait_semaphores(
+ device,
+ &vk::SemaphoreWaitInfo {
+ semaphores: (&[semaphore], &[semaphore_value]).into(),
+ ..default()
+ },
+ !0,
+ )
+ });
let data = data as *const u8;
let image_bytes = unsafe {