Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .commits
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
KhronosGroup/Vulkan-Docs/main/xml/vk.xml => 6aefabc0ad51073cf060e384ce43a59250d4d69c
KhronosGroup/Vulkan-Docs/main/xml/vk.xml => b0b699e446e3eab9bc0d6b192599871eecf25e1e
KhronosGroup/Vulkan-Headers/main/include/vk_video => 0777a3ad88bad5f4b11cfd509458bbc0ddadc773
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@
- [Removing extra double-quote at the end of a comment in `VkFormatFeatureFlagBits2` (#2680)](https://github.com/KhronosGroup/Vulkan-Docs/commit/5caf874c0d1ec519494beea83703c5478bfe92a1)
- [Close #2675](https://github.com/KhronosGroup/Vulkan-Docs/commit/33eff7c90483e5d8ff66e15c06683a9d19772ea3)
- [February 20, 2026 Vulkan 1.4.344 spec update](https://github.com/KhronosGroup/Vulkan-Docs/commit/6aefabc0ad51073cf060e384ce43a59250d4d69c)
- [Reserve extension 678 (#2693)](https://github.com/KhronosGroup/Vulkan-Docs/commit/61ec2c24c40b6cc31a55e600d8bd3b33a7c7a307)
- [docs: Fix types tag example (#2688)](https://github.com/KhronosGroup/Vulkan-Docs/commit/f27d8836e8ca5055e847115a3c83fb4c7ba99013)
- [March 6, 2026 Vulkan 1.4.345 spec update](https://github.com/KhronosGroup/Vulkan-Docs/commit/b0b699e446e3eab9bc0d6b192599871eecf25e1e)

## [0.35.0] - 2026-02-15

Expand Down
9 changes: 9 additions & 0 deletions vulkanalia-sys/src/bitmasks.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1558,6 +1558,7 @@ bitflags! {
const DESCRIPTOR_HEAP_EXT = 1 << 36;
const DISALLOW_OPACITY_MICROMAP_ARM = 1 << 37;
const INDIRECT_BINDABLE_EXT = 1 << 38;
const INSTRUMENT_SHADERS_ARM = 1 << 39;
const PER_LAYER_FRAGMENT_DENSITY_VALVE = 1 << 40;
const _64_BIT_INDEXING_EXT = 1 << 43;
}
Expand Down Expand Up @@ -2047,10 +2048,18 @@ bitflags! {
const FRAGMENT_DENSITY_MAP_ATTACHMENT = 1 << 6;
const INDIRECT_BINDABLE = 1 << 7;
const DESCRIPTOR_HEAP = 1 << 10;
const INSTRUMENT_SHADER_ARM = 1 << 11;
const _64_BIT_INDEXING = 1 << 15;
}
}

bitflags! {
/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkShaderInstrumentationValuesFlagsARM.html>
#[repr(transparent)]
#[derive(Default)]
pub struct ShaderInstrumentationValuesFlagsARM: Flags { }
}

bitflags! {
/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkShaderModuleCreateFlags.html>
#[repr(transparent)]
Expand Down
46 changes: 46 additions & 0 deletions vulkanalia-sys/src/commands.rs
Original file line number Diff line number Diff line change
Expand Up @@ -197,6 +197,10 @@ pub type PFN_vkBuildMicromapsEXT = unsafe extern "system" fn(
_infos: *const MicromapBuildInfoEXT,
) -> Result;

/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/vkClearShaderInstrumentationMetricsARM.html>
pub type PFN_vkClearShaderInstrumentationMetricsARM =
unsafe extern "system" fn(_device: Device, _instrumentation: ShaderInstrumentationARM);

/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/vkCmdBeginConditionalRenderingEXT.html>
pub type PFN_vkCmdBeginConditionalRenderingEXT = unsafe extern "system" fn(
_command_buffer: CommandBuffer,
Expand Down Expand Up @@ -264,6 +268,12 @@ pub type PFN_vkCmdBeginRendering = unsafe extern "system" fn(
/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/vkCmdBeginRenderingKHR.html>
pub type PFN_vkCmdBeginRenderingKHR = PFN_vkCmdBeginRendering;

/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/vkCmdBeginShaderInstrumentationARM.html>
pub type PFN_vkCmdBeginShaderInstrumentationARM = unsafe extern "system" fn(
_command_buffer: CommandBuffer,
_instrumentation: ShaderInstrumentationARM,
);

/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/vkCmdBeginTransformFeedbackEXT.html>
pub type PFN_vkCmdBeginTransformFeedbackEXT = unsafe extern "system" fn(
_command_buffer: CommandBuffer,
Expand Down Expand Up @@ -1052,6 +1062,10 @@ pub type PFN_vkCmdEndRendering2KHR = unsafe extern "system" fn(
/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/vkCmdEndRenderingKHR.html>
pub type PFN_vkCmdEndRenderingKHR = PFN_vkCmdEndRendering;

/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/vkCmdEndShaderInstrumentationARM.html>
pub type PFN_vkCmdEndShaderInstrumentationARM =
unsafe extern "system" fn(_command_buffer: CommandBuffer);

/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/vkCmdEndTransformFeedbackEXT.html>
pub type PFN_vkCmdEndTransformFeedbackEXT = unsafe extern "system" fn(
_command_buffer: CommandBuffer,
Expand Down Expand Up @@ -2572,6 +2586,14 @@ pub type PFN_vkCreateSemaphoreSciSyncPoolNV = unsafe extern "system" fn(
_semaphore_pool: *mut SemaphoreSciSyncPoolNV,
) -> Result;

/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/vkCreateShaderInstrumentationARM.html>
pub type PFN_vkCreateShaderInstrumentationARM = unsafe extern "system" fn(
_device: Device,
_create_info: *const ShaderInstrumentationCreateInfoARM,
_allocator: *const AllocationCallbacks,
_instrumentation: *mut ShaderInstrumentationARM,
) -> Result;

/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/vkCreateShaderModule.html>
pub type PFN_vkCreateShaderModule = unsafe extern "system" fn(
_device: Device,
Expand Down Expand Up @@ -3035,6 +3057,13 @@ pub type PFN_vkDestroyShaderEXT = unsafe extern "system" fn(
_allocator: *const AllocationCallbacks,
);

/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/vkDestroyShaderInstrumentationARM.html>
pub type PFN_vkDestroyShaderInstrumentationARM = unsafe extern "system" fn(
_device: Device,
_instrumentation: ShaderInstrumentationARM,
_allocator: *const AllocationCallbacks,
);

/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/vkDestroyShaderModule.html>
pub type PFN_vkDestroyShaderModule = unsafe extern "system" fn(
_device: Device,
Expand Down Expand Up @@ -3167,6 +3196,14 @@ pub type PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR =
_counter_descriptions: *mut PerformanceCounterDescriptionKHR,
) -> Result;

/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/vkEnumeratePhysicalDeviceShaderInstrumentationMetricsARM.html>
pub type PFN_vkEnumeratePhysicalDeviceShaderInstrumentationMetricsARM =
unsafe extern "system" fn(
_physical_device: PhysicalDevice,
_description_count: *mut u32,
_descriptions: *mut ShaderInstrumentationMetricDescriptionARM,
) -> Result;

/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/vkEnumeratePhysicalDevices.html>
pub type PFN_vkEnumeratePhysicalDevices = unsafe extern "system" fn(
_instance: Instance,
Expand Down Expand Up @@ -4693,6 +4730,15 @@ pub type PFN_vkGetShaderInfoAMD = unsafe extern "system" fn(
_info: *mut c_void,
) -> Result;

/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/vkGetShaderInstrumentationValuesARM.html>
pub type PFN_vkGetShaderInstrumentationValuesARM = unsafe extern "system" fn(
_device: Device,
_instrumentation: ShaderInstrumentationARM,
_metric_block_count: *mut u32,
_metric_values: *mut c_void,
_flags: ShaderInstrumentationValuesFlagsARM,
) -> Result;

/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/vkGetShaderModuleCreateInfoIdentifierEXT.html>
pub type PFN_vkGetShaderModuleCreateInfoIdentifierEXT = unsafe extern "system" fn(
_device: Device,
Expand Down
10 changes: 10 additions & 0 deletions vulkanalia-sys/src/enums.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4152,6 +4152,7 @@ impl ObjectType {
pub const EXTERNAL_COMPUTE_QUEUE_NV: Self = Self(1000556000);
pub const INDIRECT_COMMANDS_LAYOUT_EXT: Self = Self(1000572000);
pub const INDIRECT_EXECUTION_SET_EXT: Self = Self(1000572001);
pub const SHADER_INSTRUMENTATION_ARM: Self = Self(1000607000);

/// Constructs an instance of this enum with the supplied underlying value.
#[inline]
Expand Down Expand Up @@ -4228,6 +4229,7 @@ impl fmt::Debug for ObjectType {
1000556000 => write!(f, "EXTERNAL_COMPUTE_QUEUE_NV"),
1000572000 => write!(f, "INDIRECT_COMMANDS_LAYOUT_EXT"),
1000572001 => write!(f, "INDIRECT_EXECUTION_SET_EXT"),
1000607000 => write!(f, "SHADER_INSTRUMENTATION_ARM"),
_ => self.0.fmt(f),
}
}
Expand Down Expand Up @@ -7498,6 +7500,10 @@ impl StructureType {
pub const PERFORMANCE_COUNTER_ARM: Self = Self(1000605002);
pub const PERFORMANCE_COUNTER_DESCRIPTION_ARM: Self = Self(1000605003);
pub const RENDER_PASS_PERFORMANCE_COUNTERS_BY_REGION_BEGIN_INFO_ARM: Self = Self(1000605004);
pub const PHYSICAL_DEVICE_SHADER_INSTRUMENTATION_FEATURES_ARM: Self = Self(1000607000);
pub const PHYSICAL_DEVICE_SHADER_INSTRUMENTATION_PROPERTIES_ARM: Self = Self(1000607001);
pub const SHADER_INSTRUMENTATION_CREATE_INFO_ARM: Self = Self(1000607002);
pub const SHADER_INSTRUMENTATION_METRIC_DESCRIPTION_ARM: Self = Self(1000607003);
pub const PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_ROBUSTNESS_FEATURES_EXT: Self = Self(1000608000);
pub const PHYSICAL_DEVICE_FORMAT_PACK_FEATURES_ARM: Self = Self(1000609000);
pub const PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_LAYERED_FEATURES_VALVE: Self = Self(1000611000);
Expand Down Expand Up @@ -8972,6 +8978,10 @@ impl fmt::Debug for StructureType {
f,
"RENDER_PASS_PERFORMANCE_COUNTERS_BY_REGION_BEGIN_INFO_ARM"
),
1000607000 => write!(f, "PHYSICAL_DEVICE_SHADER_INSTRUMENTATION_FEATURES_ARM"),
1000607001 => write!(f, "PHYSICAL_DEVICE_SHADER_INSTRUMENTATION_PROPERTIES_ARM"),
1000607002 => write!(f, "SHADER_INSTRUMENTATION_CREATE_INFO_ARM"),
1000607003 => write!(f, "SHADER_INSTRUMENTATION_METRIC_DESCRIPTION_ARM"),
1000608000 => write!(
f,
"PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_ROBUSTNESS_FEATURES_EXT"
Expand Down
26 changes: 17 additions & 9 deletions vulkanalia-sys/src/extensions.rs
Original file line number Diff line number Diff line change
Expand Up @@ -651,6 +651,22 @@ pub const ARM_SHADER_CORE_PROPERTIES_EXTENSION: Extension = Extension {
promoted_to: None,
};

/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VK_ARM_shader_instrumentation.html>
#[allow(deprecated)]
pub const ARM_SHADER_INSTRUMENTATION_EXTENSION: Extension = Extension {
name: ExtensionName::from_bytes(b"VK_ARM_shader_instrumentation"),
number: 608,
type_: "device",
author: "ARM",
contact: "Jan-Harald Fredriksen @janharaldfredriksen-arm",
platform: None,
required_extensions: None,
required_version: None,
deprecated_by: None,
obsoleted_by: None,
promoted_to: None,
};

/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VK_ARM_tensors.html>
#[allow(deprecated)]
pub const ARM_TENSORS_EXTENSION: Extension = Extension {
Expand Down Expand Up @@ -6565,22 +6581,14 @@ pub const NV_PRESENT_BARRIER_EXTENSION: Extension = Extension {
};

/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VK_NV_present_metering.html>
///
/// ## WARNING
///
/// This is a
/// [provisional extension](https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/provisional-headers.html).
/// Provisional extensions are not guaranteed to be backwards compatible and are
/// not intended to be used in production applications.
#[cfg(feature = "provisional")]
#[allow(deprecated)]
pub const NV_PRESENT_METERING_EXTENSION: Extension = Extension {
name: ExtensionName::from_bytes(b"VK_NV_present_metering"),
number: 614,
type_: "device",
author: "NV",
contact: "Charles Hansen @chansen",
platform: Some("provisional"),
platform: None,
required_extensions: None,
required_version: None,
deprecated_by: None,
Expand Down
44 changes: 44 additions & 0 deletions vulkanalia-sys/src/handles.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2287,6 +2287,50 @@ impl fmt::Debug for ShaderEXT {
}
}

/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkShaderInstrumentationARM.html>
#[repr(transparent)]
#[derive(Copy, Clone, PartialEq, Eq, Hash)]
pub struct ShaderInstrumentationARM(u64);

impl Handle for ShaderInstrumentationARM {
type Repr = u64;

const TYPE: ObjectType = ObjectType::SHADER_INSTRUMENTATION_ARM;

#[inline]
fn null() -> Self {
Self(0)
}

#[inline]
fn from_raw(value: Self::Repr) -> Self {
Self(value)
}

#[inline]
fn as_raw(self) -> Self::Repr {
self.0
}

#[inline]
fn is_null(self) -> bool {
self.0 == 0
}
}

impl Default for ShaderInstrumentationARM {
#[inline]
fn default() -> Self {
Self::null()
}
}

impl fmt::Debug for ShaderInstrumentationARM {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "ShaderInstrumentationARM({:p})", self.0 as *const u8)
}
}

/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkShaderModule.html>
#[repr(transparent)]
#[derive(Copy, Clone, PartialEq, Eq, Hash)]
Expand Down
104 changes: 104 additions & 0 deletions vulkanalia-sys/src/structs.rs
Original file line number Diff line number Diff line change
Expand Up @@ -21975,6 +21975,54 @@ impl Default for PhysicalDeviceShaderImageFootprintFeaturesNV {
unsafe impl Send for PhysicalDeviceShaderImageFootprintFeaturesNV {}
unsafe impl Sync for PhysicalDeviceShaderImageFootprintFeaturesNV {}

/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderInstrumentationFeaturesARM.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceShaderInstrumentationFeaturesARM {
pub s_type: StructureType,
pub next: *mut c_void,
pub shader_instrumentation: Bool32,
}

impl Default for PhysicalDeviceShaderInstrumentationFeaturesARM {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_SHADER_INSTRUMENTATION_FEATURES_ARM,
next: ptr::null_mut(),
shader_instrumentation: Bool32::default(),
}
}
}

unsafe impl Send for PhysicalDeviceShaderInstrumentationFeaturesARM {}
unsafe impl Sync for PhysicalDeviceShaderInstrumentationFeaturesARM {}

/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderInstrumentationPropertiesARM.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct PhysicalDeviceShaderInstrumentationPropertiesARM {
pub s_type: StructureType,
pub next: *mut c_void,
pub num_metrics: u32,
pub per_basic_block_granularity: Bool32,
}

impl Default for PhysicalDeviceShaderInstrumentationPropertiesARM {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::PHYSICAL_DEVICE_SHADER_INSTRUMENTATION_PROPERTIES_ARM,
next: ptr::null_mut(),
num_metrics: u32::default(),
per_basic_block_granularity: Bool32::default(),
}
}
}

unsafe impl Send for PhysicalDeviceShaderInstrumentationPropertiesARM {}
unsafe impl Sync for PhysicalDeviceShaderInstrumentationPropertiesARM {}

/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkPhysicalDeviceShaderIntegerDotProductFeatures.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
Expand Down Expand Up @@ -29173,6 +29221,62 @@ impl Default for ShaderDescriptorSetAndBindingMappingInfoEXT {
unsafe impl Send for ShaderDescriptorSetAndBindingMappingInfoEXT {}
unsafe impl Sync for ShaderDescriptorSetAndBindingMappingInfoEXT {}

/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkShaderInstrumentationCreateInfoARM.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ShaderInstrumentationCreateInfoARM {
pub s_type: StructureType,
pub next: *mut c_void,
}

impl Default for ShaderInstrumentationCreateInfoARM {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::SHADER_INSTRUMENTATION_CREATE_INFO_ARM,
next: ptr::null_mut(),
}
}
}

unsafe impl Send for ShaderInstrumentationCreateInfoARM {}
unsafe impl Sync for ShaderInstrumentationCreateInfoARM {}

/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkShaderInstrumentationMetricDataHeaderARM.html>
#[repr(C)]
#[derive(Copy, Clone, Default, Debug, Eq, Hash, PartialEq)]
pub struct ShaderInstrumentationMetricDataHeaderARM {
pub result_index: u32,
pub result_sub_index: u32,
pub stages: ShaderStageFlags,
pub basic_block_index: u32,
}

/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkShaderInstrumentationMetricDescriptionARM.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
pub struct ShaderInstrumentationMetricDescriptionARM {
pub s_type: StructureType,
pub next: *mut c_void,
pub name: StringArray<MAX_DESCRIPTION_SIZE>,
pub description: StringArray<MAX_DESCRIPTION_SIZE>,
}

impl Default for ShaderInstrumentationMetricDescriptionARM {
#[inline]
fn default() -> Self {
Self {
s_type: StructureType::SHADER_INSTRUMENTATION_METRIC_DESCRIPTION_ARM,
next: ptr::null_mut(),
name: StringArray::default(),
description: StringArray::default(),
}
}
}

unsafe impl Send for ShaderInstrumentationMetricDescriptionARM {}
unsafe impl Sync for ShaderInstrumentationMetricDescriptionARM {}

/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkShaderModuleCreateInfo.html>
#[repr(C)]
#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq)]
Expand Down
Loading