pub struct PhysicalDeviceVulkan13Properties<'a> {Show 47 fields
pub s_type: StructureType,
pub p_next: *mut c_void,
pub min_subgroup_size: u32,
pub max_subgroup_size: u32,
pub max_compute_workgroup_subgroups: u32,
pub required_subgroup_size_stages: ShaderStageFlags,
pub max_inline_uniform_block_size: u32,
pub max_per_stage_descriptor_inline_uniform_blocks: u32,
pub max_per_stage_descriptor_update_after_bind_inline_uniform_blocks: u32,
pub max_descriptor_set_inline_uniform_blocks: u32,
pub max_descriptor_set_update_after_bind_inline_uniform_blocks: u32,
pub max_inline_uniform_total_size: u32,
pub integer_dot_product8_bit_unsigned_accelerated: Bool32,
pub integer_dot_product8_bit_signed_accelerated: Bool32,
pub integer_dot_product8_bit_mixed_signedness_accelerated: Bool32,
pub integer_dot_product4x8_bit_packed_unsigned_accelerated: Bool32,
pub integer_dot_product4x8_bit_packed_signed_accelerated: Bool32,
pub integer_dot_product4x8_bit_packed_mixed_signedness_accelerated: Bool32,
pub integer_dot_product16_bit_unsigned_accelerated: Bool32,
pub integer_dot_product16_bit_signed_accelerated: Bool32,
pub integer_dot_product16_bit_mixed_signedness_accelerated: Bool32,
pub integer_dot_product32_bit_unsigned_accelerated: Bool32,
pub integer_dot_product32_bit_signed_accelerated: Bool32,
pub integer_dot_product32_bit_mixed_signedness_accelerated: Bool32,
pub integer_dot_product64_bit_unsigned_accelerated: Bool32,
pub integer_dot_product64_bit_signed_accelerated: Bool32,
pub integer_dot_product64_bit_mixed_signedness_accelerated: Bool32,
pub integer_dot_product_accumulating_saturating8_bit_unsigned_accelerated: Bool32,
pub integer_dot_product_accumulating_saturating8_bit_signed_accelerated: Bool32,
pub integer_dot_product_accumulating_saturating8_bit_mixed_signedness_accelerated: Bool32,
pub integer_dot_product_accumulating_saturating4x8_bit_packed_unsigned_accelerated: Bool32,
pub integer_dot_product_accumulating_saturating4x8_bit_packed_signed_accelerated: Bool32,
pub integer_dot_product_accumulating_saturating4x8_bit_packed_mixed_signedness_accelerated: Bool32,
pub integer_dot_product_accumulating_saturating16_bit_unsigned_accelerated: Bool32,
pub integer_dot_product_accumulating_saturating16_bit_signed_accelerated: Bool32,
pub integer_dot_product_accumulating_saturating16_bit_mixed_signedness_accelerated: Bool32,
pub integer_dot_product_accumulating_saturating32_bit_unsigned_accelerated: Bool32,
pub integer_dot_product_accumulating_saturating32_bit_signed_accelerated: Bool32,
pub integer_dot_product_accumulating_saturating32_bit_mixed_signedness_accelerated: Bool32,
pub integer_dot_product_accumulating_saturating64_bit_unsigned_accelerated: Bool32,
pub integer_dot_product_accumulating_saturating64_bit_signed_accelerated: Bool32,
pub integer_dot_product_accumulating_saturating64_bit_mixed_signedness_accelerated: Bool32,
pub storage_texel_buffer_offset_alignment_bytes: DeviceSize,
pub storage_texel_buffer_offset_single_texel_alignment: Bool32,
pub uniform_texel_buffer_offset_alignment_bytes: DeviceSize,
pub uniform_texel_buffer_offset_single_texel_alignment: Bool32,
pub max_buffer_size: DeviceSize,
/* private fields */
}Expand description
Native structure VkPhysicalDeviceVulkan13Properties.
Fields§
§s_type: StructureTypeNative field sType.
p_next: *mut c_voidNative field pNext.
min_subgroup_size: u32Native field minSubgroupSize.
max_subgroup_size: u32Native field maxSubgroupSize.
max_compute_workgroup_subgroups: u32Native field maxComputeWorkgroupSubgroups.
required_subgroup_size_stages: ShaderStageFlagsNative field requiredSubgroupSizeStages.
max_inline_uniform_block_size: u32Native field maxInlineUniformBlockSize.
max_per_stage_descriptor_inline_uniform_blocks: u32Native field maxPerStageDescriptorInlineUniformBlocks.
max_per_stage_descriptor_update_after_bind_inline_uniform_blocks: u32Native field maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks.
max_descriptor_set_inline_uniform_blocks: u32Native field maxDescriptorSetInlineUniformBlocks.
max_descriptor_set_update_after_bind_inline_uniform_blocks: u32Native field maxDescriptorSetUpdateAfterBindInlineUniformBlocks.
max_inline_uniform_total_size: u32Native field maxInlineUniformTotalSize.
integer_dot_product8_bit_unsigned_accelerated: Bool32Native field integerDotProduct8BitUnsignedAccelerated.
integer_dot_product8_bit_signed_accelerated: Bool32Native field integerDotProduct8BitSignedAccelerated.
integer_dot_product8_bit_mixed_signedness_accelerated: Bool32Native field integerDotProduct8BitMixedSignednessAccelerated.
integer_dot_product4x8_bit_packed_unsigned_accelerated: Bool32Native field integerDotProduct4x8BitPackedUnsignedAccelerated.
integer_dot_product4x8_bit_packed_signed_accelerated: Bool32Native field integerDotProduct4x8BitPackedSignedAccelerated.
integer_dot_product4x8_bit_packed_mixed_signedness_accelerated: Bool32Native field integerDotProduct4x8BitPackedMixedSignednessAccelerated.
integer_dot_product16_bit_unsigned_accelerated: Bool32Native field integerDotProduct16BitUnsignedAccelerated.
integer_dot_product16_bit_signed_accelerated: Bool32Native field integerDotProduct16BitSignedAccelerated.
integer_dot_product16_bit_mixed_signedness_accelerated: Bool32Native field integerDotProduct16BitMixedSignednessAccelerated.
integer_dot_product32_bit_unsigned_accelerated: Bool32Native field integerDotProduct32BitUnsignedAccelerated.
integer_dot_product32_bit_signed_accelerated: Bool32Native field integerDotProduct32BitSignedAccelerated.
integer_dot_product32_bit_mixed_signedness_accelerated: Bool32Native field integerDotProduct32BitMixedSignednessAccelerated.
integer_dot_product64_bit_unsigned_accelerated: Bool32Native field integerDotProduct64BitUnsignedAccelerated.
integer_dot_product64_bit_signed_accelerated: Bool32Native field integerDotProduct64BitSignedAccelerated.
integer_dot_product64_bit_mixed_signedness_accelerated: Bool32Native field integerDotProduct64BitMixedSignednessAccelerated.
integer_dot_product_accumulating_saturating8_bit_unsigned_accelerated: Bool32Native field integerDotProductAccumulatingSaturating8BitUnsignedAccelerated.
integer_dot_product_accumulating_saturating8_bit_signed_accelerated: Bool32Native field integerDotProductAccumulatingSaturating8BitSignedAccelerated.
integer_dot_product_accumulating_saturating8_bit_mixed_signedness_accelerated: Bool32Native field integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated.
integer_dot_product_accumulating_saturating4x8_bit_packed_unsigned_accelerated: Bool32Native field integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated.
integer_dot_product_accumulating_saturating4x8_bit_packed_signed_accelerated: Bool32Native field integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated.
integer_dot_product_accumulating_saturating4x8_bit_packed_mixed_signedness_accelerated: Bool32Native field integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated.
integer_dot_product_accumulating_saturating16_bit_unsigned_accelerated: Bool32Native field integerDotProductAccumulatingSaturating16BitUnsignedAccelerated.
integer_dot_product_accumulating_saturating16_bit_signed_accelerated: Bool32Native field integerDotProductAccumulatingSaturating16BitSignedAccelerated.
integer_dot_product_accumulating_saturating16_bit_mixed_signedness_accelerated: Bool32Native field integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated.
integer_dot_product_accumulating_saturating32_bit_unsigned_accelerated: Bool32Native field integerDotProductAccumulatingSaturating32BitUnsignedAccelerated.
integer_dot_product_accumulating_saturating32_bit_signed_accelerated: Bool32Native field integerDotProductAccumulatingSaturating32BitSignedAccelerated.
integer_dot_product_accumulating_saturating32_bit_mixed_signedness_accelerated: Bool32Native field integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated.
integer_dot_product_accumulating_saturating64_bit_unsigned_accelerated: Bool32Native field integerDotProductAccumulatingSaturating64BitUnsignedAccelerated.
integer_dot_product_accumulating_saturating64_bit_signed_accelerated: Bool32Native field integerDotProductAccumulatingSaturating64BitSignedAccelerated.
integer_dot_product_accumulating_saturating64_bit_mixed_signedness_accelerated: Bool32Native field integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated.
storage_texel_buffer_offset_alignment_bytes: DeviceSizeNative field storageTexelBufferOffsetAlignmentBytes.
storage_texel_buffer_offset_single_texel_alignment: Bool32Native field storageTexelBufferOffsetSingleTexelAlignment.
uniform_texel_buffer_offset_alignment_bytes: DeviceSizeNative field uniformTexelBufferOffsetAlignmentBytes.
uniform_texel_buffer_offset_single_texel_alignment: Bool32Native field uniformTexelBufferOffsetSingleTexelAlignment.
max_buffer_size: DeviceSizeNative field maxBufferSize.
Implementations§
Source§impl<'a> PhysicalDeviceVulkan13Properties<'a>
impl<'a> PhysicalDeviceVulkan13Properties<'a>
Sourcepub fn new() -> Self
pub fn new() -> Self
Construct the record with its canonical sType tag and default native state.
Sourcepub fn set_min_subgroup_size(self, value: u32) -> Self
pub fn set_min_subgroup_size(self, value: u32) -> Self
Set native field minSubgroupSize without native effects.
Sourcepub fn set_max_subgroup_size(self, value: u32) -> Self
pub fn set_max_subgroup_size(self, value: u32) -> Self
Set native field maxSubgroupSize without native effects.
Sourcepub fn set_max_compute_workgroup_subgroups(self, value: u32) -> Self
pub fn set_max_compute_workgroup_subgroups(self, value: u32) -> Self
Set native field maxComputeWorkgroupSubgroups without native effects.
Sourcepub fn set_required_subgroup_size_stages(self, value: ShaderStageFlags) -> Self
pub fn set_required_subgroup_size_stages(self, value: ShaderStageFlags) -> Self
Set native field requiredSubgroupSizeStages without native effects.
Sourcepub fn set_max_inline_uniform_block_size(self, value: u32) -> Self
pub fn set_max_inline_uniform_block_size(self, value: u32) -> Self
Set native field maxInlineUniformBlockSize without native effects.
Sourcepub fn set_max_per_stage_descriptor_inline_uniform_blocks(
self,
value: u32,
) -> Self
pub fn set_max_per_stage_descriptor_inline_uniform_blocks( self, value: u32, ) -> Self
Set native field maxPerStageDescriptorInlineUniformBlocks without native effects.
Sourcepub fn set_max_per_stage_descriptor_update_after_bind_inline_uniform_blocks(
self,
value: u32,
) -> Self
pub fn set_max_per_stage_descriptor_update_after_bind_inline_uniform_blocks( self, value: u32, ) -> Self
Set native field maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks without native effects.
Sourcepub fn set_max_descriptor_set_inline_uniform_blocks(self, value: u32) -> Self
pub fn set_max_descriptor_set_inline_uniform_blocks(self, value: u32) -> Self
Set native field maxDescriptorSetInlineUniformBlocks without native effects.
Sourcepub fn set_max_descriptor_set_update_after_bind_inline_uniform_blocks(
self,
value: u32,
) -> Self
pub fn set_max_descriptor_set_update_after_bind_inline_uniform_blocks( self, value: u32, ) -> Self
Set native field maxDescriptorSetUpdateAfterBindInlineUniformBlocks without native effects.
Sourcepub fn set_max_inline_uniform_total_size(self, value: u32) -> Self
pub fn set_max_inline_uniform_total_size(self, value: u32) -> Self
Set native field maxInlineUniformTotalSize without native effects.
Sourcepub fn set_integer_dot_product8_bit_unsigned_accelerated(
self,
value: Bool32,
) -> Self
pub fn set_integer_dot_product8_bit_unsigned_accelerated( self, value: Bool32, ) -> Self
Set native field integerDotProduct8BitUnsignedAccelerated without native effects.
Sourcepub fn set_integer_dot_product8_bit_signed_accelerated(
self,
value: Bool32,
) -> Self
pub fn set_integer_dot_product8_bit_signed_accelerated( self, value: Bool32, ) -> Self
Set native field integerDotProduct8BitSignedAccelerated without native effects.
Sourcepub fn set_integer_dot_product8_bit_mixed_signedness_accelerated(
self,
value: Bool32,
) -> Self
pub fn set_integer_dot_product8_bit_mixed_signedness_accelerated( self, value: Bool32, ) -> Self
Set native field integerDotProduct8BitMixedSignednessAccelerated without native effects.
Sourcepub fn set_integer_dot_product4x8_bit_packed_unsigned_accelerated(
self,
value: Bool32,
) -> Self
pub fn set_integer_dot_product4x8_bit_packed_unsigned_accelerated( self, value: Bool32, ) -> Self
Set native field integerDotProduct4x8BitPackedUnsignedAccelerated without native effects.
Sourcepub fn set_integer_dot_product4x8_bit_packed_signed_accelerated(
self,
value: Bool32,
) -> Self
pub fn set_integer_dot_product4x8_bit_packed_signed_accelerated( self, value: Bool32, ) -> Self
Set native field integerDotProduct4x8BitPackedSignedAccelerated without native effects.
Sourcepub fn set_integer_dot_product4x8_bit_packed_mixed_signedness_accelerated(
self,
value: Bool32,
) -> Self
pub fn set_integer_dot_product4x8_bit_packed_mixed_signedness_accelerated( self, value: Bool32, ) -> Self
Set native field integerDotProduct4x8BitPackedMixedSignednessAccelerated without native effects.
Sourcepub fn set_integer_dot_product16_bit_unsigned_accelerated(
self,
value: Bool32,
) -> Self
pub fn set_integer_dot_product16_bit_unsigned_accelerated( self, value: Bool32, ) -> Self
Set native field integerDotProduct16BitUnsignedAccelerated without native effects.
Sourcepub fn set_integer_dot_product16_bit_signed_accelerated(
self,
value: Bool32,
) -> Self
pub fn set_integer_dot_product16_bit_signed_accelerated( self, value: Bool32, ) -> Self
Set native field integerDotProduct16BitSignedAccelerated without native effects.
Sourcepub fn set_integer_dot_product16_bit_mixed_signedness_accelerated(
self,
value: Bool32,
) -> Self
pub fn set_integer_dot_product16_bit_mixed_signedness_accelerated( self, value: Bool32, ) -> Self
Set native field integerDotProduct16BitMixedSignednessAccelerated without native effects.
Sourcepub fn set_integer_dot_product32_bit_unsigned_accelerated(
self,
value: Bool32,
) -> Self
pub fn set_integer_dot_product32_bit_unsigned_accelerated( self, value: Bool32, ) -> Self
Set native field integerDotProduct32BitUnsignedAccelerated without native effects.
Sourcepub fn set_integer_dot_product32_bit_signed_accelerated(
self,
value: Bool32,
) -> Self
pub fn set_integer_dot_product32_bit_signed_accelerated( self, value: Bool32, ) -> Self
Set native field integerDotProduct32BitSignedAccelerated without native effects.
Sourcepub fn set_integer_dot_product32_bit_mixed_signedness_accelerated(
self,
value: Bool32,
) -> Self
pub fn set_integer_dot_product32_bit_mixed_signedness_accelerated( self, value: Bool32, ) -> Self
Set native field integerDotProduct32BitMixedSignednessAccelerated without native effects.
Sourcepub fn set_integer_dot_product64_bit_unsigned_accelerated(
self,
value: Bool32,
) -> Self
pub fn set_integer_dot_product64_bit_unsigned_accelerated( self, value: Bool32, ) -> Self
Set native field integerDotProduct64BitUnsignedAccelerated without native effects.
Sourcepub fn set_integer_dot_product64_bit_signed_accelerated(
self,
value: Bool32,
) -> Self
pub fn set_integer_dot_product64_bit_signed_accelerated( self, value: Bool32, ) -> Self
Set native field integerDotProduct64BitSignedAccelerated without native effects.
Sourcepub fn set_integer_dot_product64_bit_mixed_signedness_accelerated(
self,
value: Bool32,
) -> Self
pub fn set_integer_dot_product64_bit_mixed_signedness_accelerated( self, value: Bool32, ) -> Self
Set native field integerDotProduct64BitMixedSignednessAccelerated without native effects.
Sourcepub fn set_integer_dot_product_accumulating_saturating8_bit_unsigned_accelerated(
self,
value: Bool32,
) -> Self
pub fn set_integer_dot_product_accumulating_saturating8_bit_unsigned_accelerated( self, value: Bool32, ) -> Self
Set native field integerDotProductAccumulatingSaturating8BitUnsignedAccelerated without native effects.
Sourcepub fn set_integer_dot_product_accumulating_saturating8_bit_signed_accelerated(
self,
value: Bool32,
) -> Self
pub fn set_integer_dot_product_accumulating_saturating8_bit_signed_accelerated( self, value: Bool32, ) -> Self
Set native field integerDotProductAccumulatingSaturating8BitSignedAccelerated without native effects.
Sourcepub fn set_integer_dot_product_accumulating_saturating8_bit_mixed_signedness_accelerated(
self,
value: Bool32,
) -> Self
pub fn set_integer_dot_product_accumulating_saturating8_bit_mixed_signedness_accelerated( self, value: Bool32, ) -> Self
Set native field integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated without native effects.
Sourcepub fn set_integer_dot_product_accumulating_saturating4x8_bit_packed_unsigned_accelerated(
self,
value: Bool32,
) -> Self
pub fn set_integer_dot_product_accumulating_saturating4x8_bit_packed_unsigned_accelerated( self, value: Bool32, ) -> Self
Set native field integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated without native effects.
Sourcepub fn set_integer_dot_product_accumulating_saturating4x8_bit_packed_signed_accelerated(
self,
value: Bool32,
) -> Self
pub fn set_integer_dot_product_accumulating_saturating4x8_bit_packed_signed_accelerated( self, value: Bool32, ) -> Self
Set native field integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated without native effects.
Sourcepub fn set_integer_dot_product_accumulating_saturating4x8_bit_packed_mixed_signedness_accelerated(
self,
value: Bool32,
) -> Self
pub fn set_integer_dot_product_accumulating_saturating4x8_bit_packed_mixed_signedness_accelerated( self, value: Bool32, ) -> Self
Set native field integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated without native effects.
Sourcepub fn set_integer_dot_product_accumulating_saturating16_bit_unsigned_accelerated(
self,
value: Bool32,
) -> Self
pub fn set_integer_dot_product_accumulating_saturating16_bit_unsigned_accelerated( self, value: Bool32, ) -> Self
Set native field integerDotProductAccumulatingSaturating16BitUnsignedAccelerated without native effects.
Sourcepub fn set_integer_dot_product_accumulating_saturating16_bit_signed_accelerated(
self,
value: Bool32,
) -> Self
pub fn set_integer_dot_product_accumulating_saturating16_bit_signed_accelerated( self, value: Bool32, ) -> Self
Set native field integerDotProductAccumulatingSaturating16BitSignedAccelerated without native effects.
Sourcepub fn set_integer_dot_product_accumulating_saturating16_bit_mixed_signedness_accelerated(
self,
value: Bool32,
) -> Self
pub fn set_integer_dot_product_accumulating_saturating16_bit_mixed_signedness_accelerated( self, value: Bool32, ) -> Self
Set native field integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated without native effects.
Sourcepub fn set_integer_dot_product_accumulating_saturating32_bit_unsigned_accelerated(
self,
value: Bool32,
) -> Self
pub fn set_integer_dot_product_accumulating_saturating32_bit_unsigned_accelerated( self, value: Bool32, ) -> Self
Set native field integerDotProductAccumulatingSaturating32BitUnsignedAccelerated without native effects.
Sourcepub fn set_integer_dot_product_accumulating_saturating32_bit_signed_accelerated(
self,
value: Bool32,
) -> Self
pub fn set_integer_dot_product_accumulating_saturating32_bit_signed_accelerated( self, value: Bool32, ) -> Self
Set native field integerDotProductAccumulatingSaturating32BitSignedAccelerated without native effects.
Sourcepub fn set_integer_dot_product_accumulating_saturating32_bit_mixed_signedness_accelerated(
self,
value: Bool32,
) -> Self
pub fn set_integer_dot_product_accumulating_saturating32_bit_mixed_signedness_accelerated( self, value: Bool32, ) -> Self
Set native field integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated without native effects.
Sourcepub fn set_integer_dot_product_accumulating_saturating64_bit_unsigned_accelerated(
self,
value: Bool32,
) -> Self
pub fn set_integer_dot_product_accumulating_saturating64_bit_unsigned_accelerated( self, value: Bool32, ) -> Self
Set native field integerDotProductAccumulatingSaturating64BitUnsignedAccelerated without native effects.
Sourcepub fn set_integer_dot_product_accumulating_saturating64_bit_signed_accelerated(
self,
value: Bool32,
) -> Self
pub fn set_integer_dot_product_accumulating_saturating64_bit_signed_accelerated( self, value: Bool32, ) -> Self
Set native field integerDotProductAccumulatingSaturating64BitSignedAccelerated without native effects.
Sourcepub fn set_integer_dot_product_accumulating_saturating64_bit_mixed_signedness_accelerated(
self,
value: Bool32,
) -> Self
pub fn set_integer_dot_product_accumulating_saturating64_bit_mixed_signedness_accelerated( self, value: Bool32, ) -> Self
Set native field integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated without native effects.
Sourcepub fn set_storage_texel_buffer_offset_alignment_bytes(
self,
value: DeviceSize,
) -> Self
pub fn set_storage_texel_buffer_offset_alignment_bytes( self, value: DeviceSize, ) -> Self
Set native field storageTexelBufferOffsetAlignmentBytes without native effects.
Sourcepub fn set_storage_texel_buffer_offset_single_texel_alignment(
self,
value: Bool32,
) -> Self
pub fn set_storage_texel_buffer_offset_single_texel_alignment( self, value: Bool32, ) -> Self
Set native field storageTexelBufferOffsetSingleTexelAlignment without native effects.
Sourcepub fn set_uniform_texel_buffer_offset_alignment_bytes(
self,
value: DeviceSize,
) -> Self
pub fn set_uniform_texel_buffer_offset_alignment_bytes( self, value: DeviceSize, ) -> Self
Set native field uniformTexelBufferOffsetAlignmentBytes without native effects.
Sourcepub fn set_uniform_texel_buffer_offset_single_texel_alignment(
self,
value: Bool32,
) -> Self
pub fn set_uniform_texel_buffer_offset_single_texel_alignment( self, value: Bool32, ) -> Self
Set native field uniformTexelBufferOffsetSingleTexelAlignment without native effects.
Sourcepub fn set_max_buffer_size(self, value: DeviceSize) -> Self
pub fn set_max_buffer_size(self, value: DeviceSize) -> Self
Set native field maxBufferSize without native effects.
Sourcepub fn push_next<T: Extends<Self>>(
self,
next: &'a mut T,
) -> Result<Self, ConstructionError>
pub fn push_next<T: Extends<Self>>( self, next: &'a mut T, ) -> Result<Self, ConstructionError>
Prepend one registry-compatible node, retaining its exclusive borrow.
The node must have a null p_next and both headers must have canonical tags.
Existing links are never traversed and remain written after the borrow ends.
Type compatibility does not establish enabled extensions or Vulkan valid usage.
§Errors
Returns a construction error for a changed structure tag or already-linked node.