jay_ash/extensions/ext/
debug_utils.rs1use crate::RawPtr;
4use crate::prelude::*;
5use crate::vk;
6use core::mem;
7
8impl crate::ext::debug_utils::Device {
9 #[inline]
11 pub unsafe fn set_debug_utils_object_name(
12 &self,
13 name_info: &vk::DebugUtilsObjectNameInfoEXT<'_>,
14 ) -> VkResult<()> {
15 unsafe { (self.fp.set_debug_utils_object_name_ext)(self.handle, name_info).result() }
16 }
17
18 #[inline]
20 pub unsafe fn set_debug_utils_object_tag(
21 &self,
22 tag_info: &vk::DebugUtilsObjectTagInfoEXT<'_>,
23 ) -> VkResult<()> {
24 unsafe { (self.fp.set_debug_utils_object_tag_ext)(self.handle, tag_info).result() }
25 }
26
27 #[inline]
29 pub unsafe fn cmd_begin_debug_utils_label(
30 &self,
31 command_buffer: vk::CommandBuffer,
32 label: &vk::DebugUtilsLabelEXT<'_>,
33 ) {
34 unsafe {
35 (self.fp.cmd_begin_debug_utils_label_ext)(command_buffer, label);
36 }
37 }
38
39 #[inline]
41 pub unsafe fn cmd_end_debug_utils_label(&self, command_buffer: vk::CommandBuffer) {
42 unsafe {
43 (self.fp.cmd_end_debug_utils_label_ext)(command_buffer);
44 }
45 }
46
47 #[inline]
49 pub unsafe fn cmd_insert_debug_utils_label(
50 &self,
51 command_buffer: vk::CommandBuffer,
52 label: &vk::DebugUtilsLabelEXT<'_>,
53 ) {
54 unsafe {
55 (self.fp.cmd_insert_debug_utils_label_ext)(command_buffer, label);
56 }
57 }
58
59 #[inline]
61 pub unsafe fn queue_begin_debug_utils_label(
62 &self,
63 queue: vk::Queue,
64 label: &vk::DebugUtilsLabelEXT<'_>,
65 ) {
66 unsafe {
67 (self.fp.queue_begin_debug_utils_label_ext)(queue, label);
68 }
69 }
70
71 #[inline]
73 pub unsafe fn queue_end_debug_utils_label(&self, queue: vk::Queue) {
74 unsafe {
75 (self.fp.queue_end_debug_utils_label_ext)(queue);
76 }
77 }
78
79 #[inline]
81 pub unsafe fn queue_insert_debug_utils_label(
82 &self,
83 queue: vk::Queue,
84 label: &vk::DebugUtilsLabelEXT<'_>,
85 ) {
86 unsafe {
87 (self.fp.queue_insert_debug_utils_label_ext)(queue, label);
88 }
89 }
90}
91
92impl crate::ext::debug_utils::Instance {
93 #[inline]
95 pub unsafe fn create_debug_utils_messenger(
96 &self,
97 create_info: &vk::DebugUtilsMessengerCreateInfoEXT<'_>,
98 allocator: Option<&vk::AllocationCallbacks<'_>>,
99 ) -> VkResult<vk::DebugUtilsMessengerEXT> {
100 unsafe {
101 let mut messenger = mem::MaybeUninit::uninit();
102 (self.fp.create_debug_utils_messenger_ext)(
103 self.handle,
104 create_info,
105 allocator.as_raw_ptr(),
106 messenger.as_mut_ptr(),
107 )
108 .assume_init_on_success(messenger)
109 }
110 }
111
112 #[inline]
114 pub unsafe fn destroy_debug_utils_messenger(
115 &self,
116 messenger: vk::DebugUtilsMessengerEXT,
117 allocator: Option<&vk::AllocationCallbacks<'_>>,
118 ) {
119 unsafe {
120 (self.fp.destroy_debug_utils_messenger_ext)(
121 self.handle,
122 messenger,
123 allocator.as_raw_ptr(),
124 );
125 }
126 }
127
128 #[inline]
130 pub unsafe fn submit_debug_utils_message(
131 &self,
132 message_severity: vk::DebugUtilsMessageSeverityFlagsEXT,
133 message_types: vk::DebugUtilsMessageTypeFlagsEXT,
134 callback_data: &vk::DebugUtilsMessengerCallbackDataEXT<'_>,
135 ) {
136 unsafe {
137 (self.fp.submit_debug_utils_message_ext)(
138 self.handle,
139 message_severity,
140 message_types,
141 callback_data,
142 );
143 }
144 }
145}