#[doc(alias = "VK_KHR_SYNCHRONIZATION_2_SPEC_VERSION")]
pub const KHR_SYNCHRONIZATION_2_SPEC_VERSION: u32 = 1;
#[doc(alias = "VK_KHR_SYNCHRONIZATION_2_EXTENSION_NAME")]
pub const KHR_SYNCHRONIZATION_2_EXTENSION_NAME: *const std::os::raw::c_char = crate::cstr!(
"VK_KHR_synchronization2"
);
pub const FN_CMD_WRITE_BUFFER_MARKER2_AMD: *const std::os::raw::c_char = crate::cstr!(
"vkCmdWriteBufferMarker2AMD"
);
pub const FN_GET_QUEUE_CHECKPOINT_DATA2_NV: *const std::os::raw::c_char = crate::cstr!(
"vkGetQueueCheckpointData2NV"
);
pub const FN_CMD_SET_EVENT2_KHR: *const std::os::raw::c_char = crate::cstr!(
"vkCmdSetEvent2KHR"
);
pub const FN_CMD_RESET_EVENT2_KHR: *const std::os::raw::c_char = crate::cstr!(
"vkCmdResetEvent2KHR"
);
pub const FN_CMD_WAIT_EVENTS2_KHR: *const std::os::raw::c_char = crate::cstr!(
"vkCmdWaitEvents2KHR"
);
pub const FN_CMD_PIPELINE_BARRIER2_KHR: *const std::os::raw::c_char = crate::cstr!(
"vkCmdPipelineBarrier2KHR"
);
pub const FN_QUEUE_SUBMIT2_KHR: *const std::os::raw::c_char = crate::cstr!(
"vkQueueSubmit2KHR"
);
pub const FN_CMD_WRITE_TIMESTAMP2_KHR: *const std::os::raw::c_char = crate::cstr!(
"vkCmdWriteTimestamp2KHR"
);
#[doc(alias = "VkAccessFlags2KHR")]
#[allow(non_camel_case_types)]
pub type AccessFlags2KHR = crate::vk1_3::AccessFlags2;
#[doc(alias = "VkPipelineStageFlags2KHR")]
#[allow(non_camel_case_types)]
pub type PipelineStageFlags2KHR = crate::vk1_3::PipelineStageFlags2;
#[doc(alias = "VkSubmitFlagsKHR")]
#[allow(non_camel_case_types)]
pub type SubmitFlagsKHR = crate::vk1_3::SubmitFlags;
#[doc(alias = "VkAccessFlagBits2KHR")]
#[allow(non_camel_case_types)]
pub type AccessFlagBits2KHR = crate::vk1_3::AccessFlagBits2;
#[doc(alias = "VkPipelineStageFlagBits2KHR")]
#[allow(non_camel_case_types)]
pub type PipelineStageFlagBits2KHR = crate::vk1_3::PipelineStageFlagBits2;
#[doc(alias = "VkSubmitFlagBitsKHR")]
#[allow(non_camel_case_types)]
pub type SubmitFlagBitsKHR = crate::vk1_3::SubmitFlagBits;
#[doc(alias = "VkMemoryBarrier2KHR")]
#[allow(non_camel_case_types)]
pub type MemoryBarrier2KHR = crate::vk1_3::MemoryBarrier2;
#[doc(alias = "VkMemoryBarrier2KHR")]
#[allow(non_camel_case_types)]
pub type MemoryBarrier2KHRBuilder<'a> = crate::vk1_3::MemoryBarrier2Builder<'a>;
#[doc(alias = "VkImageMemoryBarrier2KHR")]
#[allow(non_camel_case_types)]
pub type ImageMemoryBarrier2KHR = crate::vk1_3::ImageMemoryBarrier2;
#[doc(alias = "VkImageMemoryBarrier2KHR")]
#[allow(non_camel_case_types)]
pub type ImageMemoryBarrier2KHRBuilder<'a> = crate::vk1_3::ImageMemoryBarrier2Builder<
'a,
>;
#[doc(alias = "VkBufferMemoryBarrier2KHR")]
#[allow(non_camel_case_types)]
pub type BufferMemoryBarrier2KHR = crate::vk1_3::BufferMemoryBarrier2;
#[doc(alias = "VkBufferMemoryBarrier2KHR")]
#[allow(non_camel_case_types)]
pub type BufferMemoryBarrier2KHRBuilder<'a> = crate::vk1_3::BufferMemoryBarrier2Builder<
'a,
>;
#[doc(alias = "VkDependencyInfoKHR")]
#[allow(non_camel_case_types)]
pub type DependencyInfoKHR = crate::vk1_3::DependencyInfo;
#[doc(alias = "VkDependencyInfoKHR")]
#[allow(non_camel_case_types)]
pub type DependencyInfoKHRBuilder<'a> = crate::vk1_3::DependencyInfoBuilder<'a>;
#[doc(alias = "VkSemaphoreSubmitInfoKHR")]
#[allow(non_camel_case_types)]
pub type SemaphoreSubmitInfoKHR = crate::vk1_3::SemaphoreSubmitInfo;
#[doc(alias = "VkSemaphoreSubmitInfoKHR")]
#[allow(non_camel_case_types)]
pub type SemaphoreSubmitInfoKHRBuilder<'a> = crate::vk1_3::SemaphoreSubmitInfoBuilder<
'a,
>;
#[doc(alias = "VkCommandBufferSubmitInfoKHR")]
#[allow(non_camel_case_types)]
pub type CommandBufferSubmitInfoKHR = crate::vk1_3::CommandBufferSubmitInfo;
#[doc(alias = "VkCommandBufferSubmitInfoKHR")]
#[allow(non_camel_case_types)]
pub type CommandBufferSubmitInfoKHRBuilder<'a> = crate::vk1_3::CommandBufferSubmitInfoBuilder<
'a,
>;
#[doc(alias = "VkSubmitInfo2KHR")]
#[allow(non_camel_case_types)]
pub type SubmitInfo2KHR = crate::vk1_3::SubmitInfo2;
#[doc(alias = "VkSubmitInfo2KHR")]
#[allow(non_camel_case_types)]
pub type SubmitInfo2KHRBuilder<'a> = crate::vk1_3::SubmitInfo2Builder<'a>;
#[doc(alias = "VkPhysicalDeviceSynchronization2FeaturesKHR")]
#[allow(non_camel_case_types)]
pub type PhysicalDeviceSynchronization2FeaturesKHR = crate::vk1_3::PhysicalDeviceSynchronization2Features;
#[doc(alias = "VkPhysicalDeviceSynchronization2FeaturesKHR")]
#[allow(non_camel_case_types)]
pub type PhysicalDeviceSynchronization2FeaturesKHRBuilder<'a> = crate::vk1_3::PhysicalDeviceSynchronization2FeaturesBuilder<
'a,
>;
#[allow(non_camel_case_types)]
pub type PFN_vkCmdSetEvent2KHR = crate::vk1_3::PFN_vkCmdSetEvent2;
#[allow(non_camel_case_types)]
pub type PFN_vkCmdResetEvent2KHR = crate::vk1_3::PFN_vkCmdResetEvent2;
#[allow(non_camel_case_types)]
pub type PFN_vkCmdWaitEvents2KHR = crate::vk1_3::PFN_vkCmdWaitEvents2;
#[allow(non_camel_case_types)]
pub type PFN_vkCmdPipelineBarrier2KHR = crate::vk1_3::PFN_vkCmdPipelineBarrier2;
#[allow(non_camel_case_types)]
pub type PFN_vkQueueSubmit2KHR = crate::vk1_3::PFN_vkQueueSubmit2;
#[allow(non_camel_case_types)]
pub type PFN_vkCmdWriteTimestamp2KHR = crate::vk1_3::PFN_vkCmdWriteTimestamp2;
#[doc(alias = "VkFlags64")]
pub type Flags64 = u64;
impl crate::vk1_3::AccessFlagBits2 {
pub const TRANSFORM_FEEDBACK_WRITE_EXT: Self = Self(33554432);
pub const TRANSFORM_FEEDBACK_COUNTER_READ_EXT: Self = Self(67108864);
pub const TRANSFORM_FEEDBACK_COUNTER_WRITE_EXT: Self = Self(134217728);
pub const CONDITIONAL_RENDERING_READ_EXT: Self = Self(1048576);
pub const COMMAND_PREPROCESS_READ_NV: Self = Self(131072);
pub const COMMAND_PREPROCESS_WRITE_NV: Self = Self(262144);
pub const FRAGMENT_SHADING_RATE_ATTACHMENT_READ_KHR: Self = Self(8388608);
pub const SHADING_RATE_IMAGE_READ_NV: Self = Self(8388608);
pub const ACCELERATION_STRUCTURE_READ_KHR: Self = Self(2097152);
pub const ACCELERATION_STRUCTURE_WRITE_KHR: Self = Self(4194304);
pub const ACCELERATION_STRUCTURE_READ_NV: Self = Self(2097152);
pub const ACCELERATION_STRUCTURE_WRITE_NV: Self = Self(4194304);
pub const FRAGMENT_DENSITY_MAP_READ_EXT: Self = Self(16777216);
pub const COLOR_ATTACHMENT_READ_NONCOHERENT_EXT: Self = Self(524288);
}
impl crate::vk1_3::PipelineStageFlagBits2 {
pub const TRANSFORM_FEEDBACK_EXT: Self = Self(16777216);
pub const CONDITIONAL_RENDERING_EXT: Self = Self(262144);
pub const COMMAND_PREPROCESS_NV: Self = Self(131072);
pub const FRAGMENT_SHADING_RATE_ATTACHMENT_KHR: Self = Self(4194304);
pub const SHADING_RATE_IMAGE_NV: Self = Self(4194304);
pub const ACCELERATION_STRUCTURE_BUILD_KHR: Self = Self(33554432);
pub const RAY_TRACING_SHADER_KHR: Self = Self(2097152);
pub const RAY_TRACING_SHADER_NV: Self = Self(2097152);
pub const ACCELERATION_STRUCTURE_BUILD_NV: Self = Self(33554432);
pub const FRAGMENT_DENSITY_PROCESS_EXT: Self = Self(8388608);
pub const TASK_SHADER_NV: Self = Self(524288);
pub const MESH_SHADER_NV: Self = Self(1048576);
}
impl crate::vk1_0::ImageLayout {
pub const READ_ONLY_OPTIMAL_KHR: Self = Self::READ_ONLY_OPTIMAL;
pub const ATTACHMENT_OPTIMAL_KHR: Self = Self::ATTACHMENT_OPTIMAL;
}
impl crate::vk1_0::AccessFlagBits {
pub const NONE_KHR: Self = Self::NONE;
}
impl crate::vk1_0::StructureType {
pub const QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV: Self = Self(1000314008);
pub const CHECKPOINT_DATA_2_NV: Self = Self(1000314009);
pub const MEMORY_BARRIER_2_KHR: Self = Self::MEMORY_BARRIER_2;
pub const BUFFER_MEMORY_BARRIER_2_KHR: Self = Self::BUFFER_MEMORY_BARRIER_2;
pub const IMAGE_MEMORY_BARRIER_2_KHR: Self = Self::IMAGE_MEMORY_BARRIER_2;
pub const DEPENDENCY_INFO_KHR: Self = Self::DEPENDENCY_INFO;
pub const SUBMIT_INFO_2_KHR: Self = Self::SUBMIT_INFO_2;
pub const SEMAPHORE_SUBMIT_INFO_KHR: Self = Self::SEMAPHORE_SUBMIT_INFO;
pub const COMMAND_BUFFER_SUBMIT_INFO_KHR: Self = Self::COMMAND_BUFFER_SUBMIT_INFO;
pub const PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR: Self = Self::PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES;
}
impl crate::vk1_0::PipelineStageFlagBits {
pub const NONE_KHR: Self = Self::NONE;
}
impl crate::vk1_0::EventCreateFlagBits {
pub const DEVICE_ONLY_KHR: Self = Self::DEVICE_ONLY;
}
#[allow(non_camel_case_types)]
pub type PFN_vkCmdWriteBufferMarker2AMD = unsafe extern "system" fn(
command_buffer: crate::vk1_0::CommandBuffer,
stage: crate::vk1_3::PipelineStageFlags2,
dst_buffer: crate::vk1_0::Buffer,
dst_offset: crate::vk1_0::DeviceSize,
marker: u32,
) -> ();
#[allow(non_camel_case_types)]
pub type PFN_vkGetQueueCheckpointData2NV = unsafe extern "system" fn(
queue: crate::vk1_0::Queue,
p_checkpoint_data_count: *mut u32,
p_checkpoint_data: *mut crate::extensions::khr_synchronization2::CheckpointData2NV,
) -> ();
impl<'a> crate::ExtendableFrom<'a, QueueFamilyCheckpointProperties2NV>
for crate::vk1_1::QueueFamilyProperties2Builder<'a> {}
impl<'a> crate::ExtendableFrom<'a, QueueFamilyCheckpointProperties2NVBuilder<'_>>
for crate::vk1_1::QueueFamilyProperties2Builder<'a> {}
#[doc(alias = "VkQueueFamilyCheckpointProperties2NV")]
#[derive(Copy, Clone)]
#[repr(C)]
pub struct QueueFamilyCheckpointProperties2NV {
pub s_type: crate::vk1_0::StructureType,
pub p_next: *mut std::ffi::c_void,
pub checkpoint_execution_stage_mask: crate::vk1_3::PipelineStageFlags2,
}
impl QueueFamilyCheckpointProperties2NV {
pub const STRUCTURE_TYPE: crate::vk1_0::StructureType = crate::vk1_0::StructureType::QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV;
}
impl Default for QueueFamilyCheckpointProperties2NV {
fn default() -> Self {
Self {
s_type: Self::STRUCTURE_TYPE,
p_next: std::ptr::null_mut(),
checkpoint_execution_stage_mask: Default::default(),
}
}
}
impl std::fmt::Debug for QueueFamilyCheckpointProperties2NV {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("QueueFamilyCheckpointProperties2NV")
.field("s_type", &self.s_type)
.field("p_next", &self.p_next)
.field(
"checkpoint_execution_stage_mask",
&self.checkpoint_execution_stage_mask,
)
.finish()
}
}
impl QueueFamilyCheckpointProperties2NV {
#[inline]
pub fn into_builder<'a>(self) -> QueueFamilyCheckpointProperties2NVBuilder<'a> {
QueueFamilyCheckpointProperties2NVBuilder(self, std::marker::PhantomData)
}
}
#[derive(Copy, Clone)]
#[repr(transparent)]
pub struct QueueFamilyCheckpointProperties2NVBuilder<'a>(
QueueFamilyCheckpointProperties2NV,
std::marker::PhantomData<&'a ()>,
);
impl<'a> QueueFamilyCheckpointProperties2NVBuilder<'a> {
#[inline]
pub fn new() -> QueueFamilyCheckpointProperties2NVBuilder<'a> {
QueueFamilyCheckpointProperties2NVBuilder(
Default::default(),
std::marker::PhantomData,
)
}
#[inline]
#[must_use]
pub fn checkpoint_execution_stage_mask(
mut self,
checkpoint_execution_stage_mask: crate::vk1_3::PipelineStageFlags2,
) -> Self {
self.0.checkpoint_execution_stage_mask = checkpoint_execution_stage_mask as _;
self
}
#[inline]
pub fn build_dangling(self) -> QueueFamilyCheckpointProperties2NV {
self.0
}
}
impl<'a> std::default::Default for QueueFamilyCheckpointProperties2NVBuilder<'a> {
fn default() -> QueueFamilyCheckpointProperties2NVBuilder<'a> {
Self::new()
}
}
impl<'a> std::fmt::Debug for QueueFamilyCheckpointProperties2NVBuilder<'a> {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
std::fmt::Debug::fmt(&self.0, f)
}
}
impl<'a> std::ops::Deref for QueueFamilyCheckpointProperties2NVBuilder<'a> {
type Target = QueueFamilyCheckpointProperties2NV;
fn deref(&self) -> &Self::Target {
&self.0
}
}
impl<'a> std::ops::DerefMut for QueueFamilyCheckpointProperties2NVBuilder<'a> {
fn deref_mut(&mut self) -> &mut Self::Target {
&mut self.0
}
}
#[doc(alias = "VkCheckpointData2NV")]
#[derive(Copy, Clone)]
#[repr(C)]
pub struct CheckpointData2NV {
pub s_type: crate::vk1_0::StructureType,
pub p_next: *mut std::ffi::c_void,
pub stage: crate::vk1_3::PipelineStageFlags2,
pub p_checkpoint_marker: *mut std::ffi::c_void,
}
impl CheckpointData2NV {
pub const STRUCTURE_TYPE: crate::vk1_0::StructureType = crate::vk1_0::StructureType::CHECKPOINT_DATA_2_NV;
}
impl Default for CheckpointData2NV {
fn default() -> Self {
Self {
s_type: Self::STRUCTURE_TYPE,
p_next: std::ptr::null_mut(),
stage: Default::default(),
p_checkpoint_marker: std::ptr::null_mut(),
}
}
}
impl std::fmt::Debug for CheckpointData2NV {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
f.debug_struct("CheckpointData2NV")
.field("s_type", &self.s_type)
.field("p_next", &self.p_next)
.field("stage", &self.stage)
.field("p_checkpoint_marker", &self.p_checkpoint_marker)
.finish()
}
}
impl CheckpointData2NV {
#[inline]
pub fn into_builder<'a>(self) -> CheckpointData2NVBuilder<'a> {
CheckpointData2NVBuilder(self, std::marker::PhantomData)
}
}
#[derive(Copy, Clone)]
#[repr(transparent)]
pub struct CheckpointData2NVBuilder<'a>(
CheckpointData2NV,
std::marker::PhantomData<&'a ()>,
);
impl<'a> CheckpointData2NVBuilder<'a> {
#[inline]
pub fn new() -> CheckpointData2NVBuilder<'a> {
CheckpointData2NVBuilder(Default::default(), std::marker::PhantomData)
}
#[inline]
#[must_use]
pub fn stage(mut self, stage: crate::vk1_3::PipelineStageFlags2) -> Self {
self.0.stage = stage as _;
self
}
#[inline]
#[must_use]
pub fn checkpoint_marker(
mut self,
checkpoint_marker: *mut std::ffi::c_void,
) -> Self {
self.0.p_checkpoint_marker = checkpoint_marker;
self
}
#[inline]
pub fn build_dangling(self) -> CheckpointData2NV {
self.0
}
}
impl<'a> std::default::Default for CheckpointData2NVBuilder<'a> {
fn default() -> CheckpointData2NVBuilder<'a> {
Self::new()
}
}
impl<'a> std::fmt::Debug for CheckpointData2NVBuilder<'a> {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
std::fmt::Debug::fmt(&self.0, f)
}
}
impl<'a> std::ops::Deref for CheckpointData2NVBuilder<'a> {
type Target = CheckpointData2NV;
fn deref(&self) -> &Self::Target {
&self.0
}
}
impl<'a> std::ops::DerefMut for CheckpointData2NVBuilder<'a> {
fn deref_mut(&mut self) -> &mut Self::Target {
&mut self.0
}
}
impl crate::DeviceLoader {
#[inline]
#[track_caller]
#[doc(alias = "vkCmdWriteBufferMarker2AMD")]
pub unsafe fn cmd_write_buffer_marker2_amd(
&self,
command_buffer: crate::vk1_0::CommandBuffer,
stage: crate::vk1_3::PipelineStageFlags2,
dst_buffer: crate::vk1_0::Buffer,
dst_offset: crate::vk1_0::DeviceSize,
marker: u32,
) -> () {
let _function = self
.cmd_write_buffer_marker2_amd
.expect(crate::NOT_LOADED_MESSAGE);
let _return = _function(
command_buffer as _,
stage as _,
dst_buffer as _,
dst_offset as _,
marker as _,
);
()
}
#[inline]
#[track_caller]
#[doc(alias = "vkGetQueueCheckpointData2NV")]
pub unsafe fn get_queue_checkpoint_data2_nv(
&self,
queue: crate::vk1_0::Queue,
checkpoint_data_count: Option<u32>,
checkpoint_data_callback: impl FnMut(
&mut crate::SmallVec<
crate::extensions::khr_synchronization2::CheckpointData2NV,
>,
) -> (),
) -> crate::SmallVec<crate::extensions::khr_synchronization2::CheckpointData2NV> {
let _function = self
.get_queue_checkpoint_data2_nv
.expect(crate::NOT_LOADED_MESSAGE);
let mut checkpoint_data_count = match checkpoint_data_count {
Some(v) => v,
None => {
let mut v = Default::default();
_function(queue as _, &mut v, std::ptr::null_mut());
v
}
};
let mut checkpoint_data = crate::SmallVec::from_elem(
Default::default(),
checkpoint_data_count as _,
);
let mut _callback = checkpoint_data_callback;
_callback(&mut checkpoint_data);
let _return = _function(
queue as _,
&mut checkpoint_data_count,
checkpoint_data.as_mut_ptr(),
);
checkpoint_data
}
#[inline]
#[track_caller]
#[doc(alias = "vkCmdSetEvent2KHR")]
pub unsafe fn cmd_set_event2_khr(
&self,
command_buffer: crate::vk1_0::CommandBuffer,
event: crate::vk1_0::Event,
dependency_info: &crate::vk1_3::DependencyInfo,
) -> () {
let _function = self.cmd_set_event2_khr.expect(crate::NOT_LOADED_MESSAGE);
let _return = _function(command_buffer as _, event as _, dependency_info as _);
()
}
#[inline]
#[track_caller]
#[doc(alias = "vkCmdResetEvent2KHR")]
pub unsafe fn cmd_reset_event2_khr(
&self,
command_buffer: crate::vk1_0::CommandBuffer,
event: crate::vk1_0::Event,
stage_mask: crate::vk1_3::PipelineStageFlags2,
) -> () {
let _function = self.cmd_reset_event2_khr.expect(crate::NOT_LOADED_MESSAGE);
let _return = _function(command_buffer as _, event as _, stage_mask as _);
()
}
#[inline]
#[track_caller]
#[doc(alias = "vkCmdWaitEvents2KHR")]
pub unsafe fn cmd_wait_events2_khr(
&self,
command_buffer: crate::vk1_0::CommandBuffer,
events: &[crate::vk1_0::Event],
dependency_infos: &[crate::vk1_3::DependencyInfoBuilder],
) -> () {
let _function = self.cmd_wait_events2_khr.expect(crate::NOT_LOADED_MESSAGE);
let event_count = events.len().min(dependency_infos.len());
let _return = _function(
command_buffer as _,
event_count as _,
events.as_ptr() as _,
dependency_infos.as_ptr() as _,
);
()
}
#[inline]
#[track_caller]
#[doc(alias = "vkCmdPipelineBarrier2KHR")]
pub unsafe fn cmd_pipeline_barrier2_khr(
&self,
command_buffer: crate::vk1_0::CommandBuffer,
dependency_info: &crate::vk1_3::DependencyInfo,
) -> () {
let _function = self.cmd_pipeline_barrier2_khr.expect(crate::NOT_LOADED_MESSAGE);
let _return = _function(command_buffer as _, dependency_info as _);
()
}
#[inline]
#[track_caller]
#[doc(alias = "vkQueueSubmit2KHR")]
pub unsafe fn queue_submit2_khr(
&self,
queue: crate::vk1_0::Queue,
submits: &[crate::vk1_3::SubmitInfo2Builder],
fence: crate::vk1_0::Fence,
) -> crate::utils::VulkanResult<()> {
let _function = self.queue_submit2_khr.expect(crate::NOT_LOADED_MESSAGE);
let submit_count = submits.len();
let _return = _function(
queue as _,
submit_count as _,
submits.as_ptr() as _,
fence as _,
);
crate::utils::VulkanResult::new(_return, ())
}
#[inline]
#[track_caller]
#[doc(alias = "vkCmdWriteTimestamp2KHR")]
pub unsafe fn cmd_write_timestamp2_khr(
&self,
command_buffer: crate::vk1_0::CommandBuffer,
stage: crate::vk1_3::PipelineStageFlags2,
query_pool: crate::vk1_0::QueryPool,
query: u32,
) -> () {
let _function = self.cmd_write_timestamp2_khr.expect(crate::NOT_LOADED_MESSAGE);
let _return = _function(
command_buffer as _,
stage as _,
query_pool as _,
query as _,
);
()
}
}