]> git.nega.tv - josh/narcissus/commitdiff
vulkan-sys: Avoid laundering unsafe in `vk_check`
authorJosh Simmons <josh@nega.tv>
Sat, 30 Nov 2024 09:01:24 +0000 (10:01 +0100)
committerJosh Simmons <josh@nega.tv>
Sat, 30 Nov 2024 09:01:24 +0000 (10:01 +0100)
external/vulkan-sys/examples/triangle.rs

index 720271ea563b5811e59075f33e59374013212fe2..5e663938d56ea6d233b85c9253b4119cc1c7d53e 100644 (file)
@@ -16,15 +16,13 @@ mod libc {
 
 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)+));
         }
@@ -87,7 +85,7 @@ pub fn main() {
             ..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
     };
 
@@ -197,7 +195,9 @@ pub fn main() {
             ..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
     };
 
@@ -232,7 +232,9 @@ pub fn main() {
             ..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
     };
 
@@ -243,12 +245,9 @@ pub fn main() {
         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
         };
 
@@ -351,7 +350,9 @@ pub fn main() {
             ..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
     };
 
@@ -392,7 +393,7 @@ pub fn main() {
             ..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();
@@ -412,16 +413,18 @@ pub fn main() {
         );
 
         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,
@@ -459,7 +462,7 @@ pub fn main() {
             },
             ..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)
     };
 
@@ -513,14 +516,16 @@ pub fn main() {
     };
 
     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 = {
@@ -530,11 +535,9 @@ pub fn main() {
             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]
     };
 
@@ -543,7 +546,7 @@ pub fn main() {
             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 {
@@ -719,7 +722,7 @@ pub fn main() {
         )
     };
 
-    vk_check!(device_fn.end_command_buffer(command_buffer));
+    vk_check!(unsafe { device_fn.end_command_buffer(command_buffer) });
 
     // SUBMIT!
     semaphore_value += 1;
@@ -739,16 +742,18 @@ pub fn main() {
         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 {