diff --git a/vulkano-shaders/Cargo.toml b/vulkano-shaders/Cargo.toml index 0c7402d6..07b5ceb4 100644 --- a/vulkano-shaders/Cargo.toml +++ b/vulkano-shaders/Cargo.toml @@ -2,10 +2,7 @@ name = "vulkano-shaders" version = "0.33.0" edition = "2021" -authors = [ - "Pierre Krieger ", - "The vulkano contributors", -] +authors = ["Pierre Krieger ", "The vulkano contributors"] repository = "https://github.com/vulkano-rs/vulkano" description = "Shaders rust code generation macro" license = "MIT/Apache-2.0" @@ -23,7 +20,7 @@ heck = "0.4" proc-macro2 = "1.0" quote = "1.0" shaderc = "0.8" -syn = { version = "1.0", features = ["full", "extra-traits"] } +syn = { version = "2.0", features = ["full", "extra-traits"] } vulkano = { version = "0.33.0", path = "../vulkano", default-features = false } [features] diff --git a/vulkano/Cargo.toml b/vulkano/Cargo.toml index 6ac8ff80..6de20ca0 100644 --- a/vulkano/Cargo.toml +++ b/vulkano/Cargo.toml @@ -2,10 +2,7 @@ name = "vulkano" version = "0.33.0" edition = "2021" -authors = [ - "Pierre Krieger ", - "The vulkano contributors", -] +authors = ["Pierre Krieger ", "The vulkano contributors"] repository = "https://github.com/vulkano-rs/vulkano" description = "Safe wrapper for the Vulkan graphics API" license = "MIT/Apache-2.0" @@ -20,11 +17,11 @@ build = "build.rs" ahash = "0.8" # When updating Ash, also update vk.xml to the same Vulkan patch version that Ash uses. # All versions of vk.xml can be found at https://github.com/KhronosGroup/Vulkan-Headers/commits/main/registry/vk.xml. -ash = "^0.37.2" +ash = "^0.37.3" bytemuck = { version = "1.9", features = ["min_const_generics"] } crossbeam-queue = "0.3" half = { version = "2", features = ["bytemuck"] } -libloading = "0.7" +libloading = "0.8" once_cell = "1.17" parking_lot = { version = "0.12", features = ["send_guard"] } raw-window-handle = "0.5" @@ -40,14 +37,14 @@ core-graphics-types = "0.1" [build-dependencies] ahash = "0.8" heck = "0.4" -indexmap = "1.8" +indexmap = "2.0" once_cell = "1.16" proc-macro2 = "1.0" quote = "1.0" regex = "1.0" serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" -vk-parse = "0.8" +vk-parse = "0.12" [dev-dependencies] cgmath = "0.18" diff --git a/vulkano/autogen/extensions.rs b/vulkano/autogen/extensions.rs index 6889dc59..f041986e 100644 --- a/vulkano/autogen/extensions.rs +++ b/vulkano/autogen/extensions.rs @@ -9,9 +9,11 @@ use super::{write_file, IndexMap, VkRegistryData}; use heck::ToSnakeCase; +use once_cell::sync::Lazy; use proc_macro2::{Ident, Literal, TokenStream}; use quote::{format_ident, quote}; -use std::{cmp::Ordering, fmt::Write as _}; +use regex::Regex; +use std::{cmp::min, fmt::Write as _, ops::BitOrAssign}; use vk_parse::Extension; // This is not included in vk.xml, so it's added here manually @@ -54,44 +56,24 @@ pub struct RequiresOneOf { pub instance_extensions: Vec, } -#[derive(Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord)] -pub struct RequiresAllOf(pub Vec); +impl BitOrAssign<&Self> for RequiresOneOf { + fn bitor_assign(&mut self, rhs: &Self) { + self.api_version = match (self.api_version, rhs.api_version) { + (None, None) => None, + (None, Some(x)) | (Some(x), None) => Some(x), + (Some(lhs), Some(rhs)) => Some(min(lhs, rhs)), + }; -#[derive(Clone, Debug, PartialEq, Eq, Hash)] -pub enum Requires { - APIVersion(u32, u32), - DeviceExtension(String), - InstanceExtension(String), -} - -impl PartialOrd for Requires { - fn partial_cmp(&self, other: &Self) -> Option { - Some(self.cmp(other)) - } -} - -impl Ord for Requires { - fn cmp(&self, other: &Self) -> Ordering { - match (self, other) { - ( - Requires::APIVersion(self_major, self_minor), - Requires::APIVersion(other_major, other_minor), - ) => self_major - .cmp(other_major) - .then_with(|| self_minor.cmp(other_minor)) - .reverse(), - (Requires::DeviceExtension(self_ext), Requires::DeviceExtension(other_ext)) => { - self_ext.cmp(other_ext) + for rhs_ext in &rhs.device_extensions { + if !self.device_extensions.contains(rhs_ext) { + self.device_extensions.push(rhs_ext.to_owned()); } - (Requires::InstanceExtension(self_ext), Requires::InstanceExtension(other_ext)) => { - self_ext.cmp(other_ext) + } + + for rhs_ext in &rhs.instance_extensions { + if !self.instance_extensions.contains(rhs_ext) { + self.instance_extensions.push(rhs_ext.to_owned()); } - (Requires::APIVersion(_, _), Requires::DeviceExtension(_)) - | (Requires::APIVersion(_, _), Requires::InstanceExtension(_)) - | (Requires::DeviceExtension(_), Requires::InstanceExtension(_)) => Ordering::Less, - (Requires::DeviceExtension(_), Requires::APIVersion(_, _)) - | (Requires::InstanceExtension(_), Requires::APIVersion(_, _)) - | (Requires::InstanceExtension(_), Requires::DeviceExtension(_)) => Ordering::Greater, } } } @@ -102,6 +84,13 @@ enum ExtensionStatus { DeprecatedBy(Option), } +#[derive(Clone, Debug, PartialEq, Eq, Hash)] +pub enum Requires { + APIVersion(u32, u32), + DeviceExtension(String), + InstanceExtension(String), +} + fn write_device_extensions(vk_data: &VkRegistryData) { write_file( "device_extensions.rs", @@ -749,66 +738,49 @@ fn extensions_members(ty: &str, extensions: &IndexMap<&str, &Extension>) -> Vec< extensions .values() .filter(|ext| ext.ext_type.as_ref().unwrap() == ty) - .map(|ext| { - let raw = ext.name.to_owned(); + .map(|extension| { + let raw = extension.name.to_owned(); let name = raw.strip_prefix("VK_").unwrap().to_snake_case(); - let requires_all_of = { - let mut requires_all_of = Vec::new(); + let requires_all_of = extension.depends.as_ref().map_or_else(Vec::new, |depends| { + let depends_panic = |err| -> ! { + panic!( + "couldn't parse `depends=` attribute for extension `{}`: {}", + extension.name, err + ) + }; - if let Some(core) = ext.requires_core.as_ref() { - let (major, minor) = core.split_once('.').unwrap(); - requires_all_of.push(RequiresOneOf { - api_version: Some((major.parse().unwrap(), minor.parse().unwrap())), - ..Default::default() - }); - } - - if let Some(req) = ext.requires.as_ref() { - requires_all_of.extend(req.split(',').map(|mut vk_name| { - let mut requires_one_of = RequiresOneOf::default(); - - loop { - if let Some(version) = vk_name.strip_prefix("VK_VERSION_") { - let (major, minor) = version.split_once('_').unwrap(); - requires_one_of.api_version = - Some((major.parse().unwrap(), minor.parse().unwrap())); - break; - } else { - let ext_name = vk_name.strip_prefix("VK_").unwrap().to_snake_case(); - let extension = extensions[vk_name]; - - match extension.ext_type.as_deref() { - Some("device") => &mut requires_one_of.device_extensions, - Some("instance") => &mut requires_one_of.instance_extensions, - _ => unreachable!(), - } - .push(ext_name); - - if let Some(promotedto) = extension.promotedto.as_ref() { - vk_name = promotedto.as_str(); - } else { - break; - } + match parse_depends(depends).unwrap_or_else(|err| depends_panic(err)) { + expr @ DependsExpression::Name(_) => { + from_one_of(vec![expr], extensions).unwrap_or_else(|err| depends_panic(err)) + } + DependsExpression::OneOf(one_of) => { + from_one_of(one_of, extensions).unwrap_or_else(|err| depends_panic(err)) + } + DependsExpression::AllOf(all_of) => all_of + .into_iter() + .flat_map(|expr| match expr { + expr @ DependsExpression::Name(_) => { + from_one_of(vec![expr], extensions) + .unwrap_or_else(|err| depends_panic(err)) } - } - - requires_one_of.device_extensions.reverse(); - requires_one_of.instance_extensions.reverse(); - requires_one_of - })); + DependsExpression::AllOf(_) => { + depends_panic("AllOf inside another AllOf".into()) + } + DependsExpression::OneOf(one_of) => from_one_of(one_of, extensions) + .unwrap_or_else(|err| depends_panic(err)), + }) + .collect(), } + }); - requires_all_of - }; - - let conflicts_extensions = conflicts_extensions(&ext.name); + let conflicts_extensions = conflicts_extensions(&extension.name); let mut member = ExtensionsMember { name: format_ident!("{}", name), doc: String::new(), raw, - required_if_supported: required_if_supported(ext.name.as_str()), + required_if_supported: required_if_supported(extension.name.as_str()), requires_all_of, conflicts_device_extensions: conflicts_extensions .iter() @@ -817,7 +789,7 @@ fn extensions_members(ty: &str, extensions: &IndexMap<&str, &Extension>) -> Vec< format_ident!("{}", vk_name.strip_prefix("VK_").unwrap().to_snake_case()) }) .collect(), - status: ext + status: extension .promotedto .as_deref() .and_then(|pr| { @@ -841,7 +813,7 @@ fn extensions_members(ty: &str, extensions: &IndexMap<&str, &Extension>) -> Vec< } }) .or_else(|| { - ext.deprecatedby.as_deref().and_then(|depr| { + extension.deprecatedby.as_deref().and_then(|depr| { if depr.is_empty() { Some(ExtensionStatus::DeprecatedBy(None)) } else if let Some(version) = depr.strip_prefix("VK_VERSION_") { @@ -871,6 +843,196 @@ fn extensions_members(ty: &str, extensions: &IndexMap<&str, &Extension>) -> Vec< .collect() } +fn from_one_of( + one_of: Vec, + extensions: &IndexMap<&str, &Extension>, +) -> Result, String> { + let mut requires_all_of = vec![RequiresOneOf::default()]; + + for expr in one_of { + match expr { + DependsExpression::Name(vk_name) => { + let new = dependency_chain(vk_name, extensions); + + for requires_one_of in &mut requires_all_of { + *requires_one_of |= &new; + } + } + DependsExpression::OneOf(_) => return Err("OneOf inside another OneOf".into()), + DependsExpression::AllOf(all_of) => { + let mut new_requires_all_of = Vec::new(); + + for expr in all_of { + match expr { + DependsExpression::Name(vk_name) => { + let new = dependency_chain(vk_name, extensions); + let mut requires_all_of = requires_all_of.clone(); + + for requires_one_of in &mut requires_all_of { + *requires_one_of |= &new; + } + + new_requires_all_of.extend(requires_all_of); + } + _ => return Err("More than three levels of nesting".into()), + } + } + + requires_all_of = new_requires_all_of; + } + } + } + + Ok(requires_all_of) +} + +fn dependency_chain<'a>( + mut vk_name: &'a str, + extensions: &IndexMap<&str, &'a Extension>, +) -> RequiresOneOf { + let mut requires_one_of = RequiresOneOf::default(); + + loop { + if let Some(version) = vk_name.strip_prefix("VK_VERSION_") { + let (major, minor) = version.split_once('_').unwrap(); + requires_one_of.api_version = Some((major.parse().unwrap(), minor.parse().unwrap())); + break; + } else { + let ext_name = vk_name.strip_prefix("VK_").unwrap().to_snake_case(); + let extension = extensions[vk_name]; + + match extension.ext_type.as_deref() { + Some("device") => &mut requires_one_of.device_extensions, + Some("instance") => &mut requires_one_of.instance_extensions, + _ => unreachable!(), + } + .push(ext_name); + + if let Some(promotedto) = extension.promotedto.as_ref() { + vk_name = promotedto.as_str(); + } else { + break; + } + } + } + + requires_one_of.device_extensions.reverse(); + requires_one_of.instance_extensions.reverse(); + requires_one_of +} + +#[derive(Debug)] +enum DependsExpression<'a> { + Name(&'a str), + OneOf(Vec), + AllOf(Vec), +} + +fn parse_depends(mut depends: &str) -> Result, String> { + #[derive(Debug, PartialEq)] + enum Token<'a> { + Name(&'a str), + Plus, + Comma, + POpen, + PClose, + } + + static NAME: Lazy = Lazy::new(|| Regex::new(r"^[A-Za-z0-9_]+").unwrap()); + + let mut next_token = move || { + if let Some(m) = NAME.find(depends) { + depends = &depends[m.len()..]; + Ok(Some(Token::Name(m.as_str()))) + } else { + depends + .chars() + .next() + .map(|c| { + let token = match c { + '+' => Token::Plus, + ',' => Token::Comma, + '(' => Token::POpen, + ')' => Token::PClose, + _ => return Err(format!("unexpected character: {}", c)), + }; + depends = &depends[1..]; + Ok(token) + }) + .transpose() + } + }; + + fn parse_expression<'a>( + next_token: &mut impl FnMut() -> Result>, String>, + expect_pclose: bool, + ) -> Result, String> { + let first = match next_token()? { + Some(Token::Name(name)) => DependsExpression::Name(name), + Some(Token::POpen) => parse_expression(next_token, true)?, + Some(token) => return Err(format!("unexpected token: {:?}", token)), + None => return Err("unexpected end of string".into()), + }; + + match next_token()? { + Some(separator @ (Token::Plus | Token::Comma)) => { + let mut subexpr = vec![first]; + + loop { + match next_token()? { + Some(Token::Name(name)) => subexpr.push(DependsExpression::Name(name)), + Some(Token::POpen) => subexpr.push(parse_expression(next_token, true)?), + Some(token) => return Err(format!("unexpected token: {:?}", token)), + None => return Err("unexpected end of string".into()), + } + + match next_token()? { + Some(Token::PClose) => { + if expect_pclose { + break; + } else { + return Err(format!("unexpected token: {:?}", Token::PClose)); + } + } + Some(token) if token == separator => (), + Some(token) => return Err(format!("unexpected token: {:?}", token)), + None => { + if expect_pclose { + return Err("unexpected end of string".into()); + } else { + break; + } + } + } + } + + Ok(match separator { + Token::Plus => DependsExpression::AllOf(subexpr), + Token::Comma => DependsExpression::OneOf(subexpr), + _ => unreachable!(), + }) + } + Some(Token::PClose) => { + if expect_pclose { + Ok(first) + } else { + Err(format!("unexpected token: {:?}", Token::PClose)) + } + } + Some(token) => Err(format!("unexpected token: {:?}", token)), + None => { + if expect_pclose { + Err("unexpected end of string".into()) + } else { + Ok(first) + } + } + } + } + + parse_expression(&mut next_token, false) +} + fn make_doc(ext: &mut ExtensionsMember) { let writer = &mut ext.doc; write!(writer, "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/{}.html)", ext.raw).unwrap(); diff --git a/vulkano/autogen/mod.rs b/vulkano/autogen/mod.rs index fbc3bd77..ff39a6f9 100644 --- a/vulkano/autogen/mod.rs +++ b/vulkano/autogen/mod.rs @@ -239,7 +239,12 @@ impl<'r> VkRegistryData<'r> { .filter_map(|child| { if let RegistryChild::Extensions(ext) = child { return Some(ext.children.iter().filter(|ext| { - if ext.supported.as_deref() == Some("vulkan") && ext.obsoletedby.is_none() { + if ext + .supported + .as_deref() + .map_or(false, |s| s.split(',').any(|s| s == "vulkan")) + && ext.obsoletedby.is_none() + { return true; } false @@ -271,7 +276,9 @@ impl<'r> VkRegistryData<'r> { .iter() .filter_map(|child| { if let RegistryChild::Feature(feat) = child { - return Some((feat.name.as_str(), feat)); + if feat.api.split(',').any(|s| s == "vulkan") { + return Some((feat.name.as_str(), feat)); + } } None diff --git a/vulkano/src/device/mod.rs b/vulkano/src/device/mod.rs index 6ac1048f..6c439fcc 100644 --- a/vulkano/src/device/mod.rs +++ b/vulkano/src/device/mod.rs @@ -304,26 +304,6 @@ impl Device { }) .collect(); - // Device layers were deprecated in Vulkan 1.0.13, and device layer requests should be - // ignored by the driver. For backwards compatibility, the spec recommends passing the - // exact instance layers to the device as well. There's no need to support separate - // requests at device creation time for legacy drivers: the spec claims that "[at] the - // time of deprecation there were no known device-only layers." - // - // Because there's no way to query the list of layers enabled for an instance, we need - // to save it alongside the instance. (`vkEnumerateDeviceLayerProperties` should get - // the right list post-1.0.13, but not pre-1.0.13, so we can't use it here.) - let enabled_layers_vk: Vec = physical_device - .instance() - .enabled_layers() - .iter() - .map(|name| CString::new(name.clone()).unwrap()) - .collect(); - let enabled_layers_ptrs_vk = enabled_layers_vk - .iter() - .map(|layer| layer.as_ptr()) - .collect::>(); - let enabled_extensions_strings_vk = Vec::::from(enabled_extensions); let enabled_extensions_ptrs_vk = enabled_extensions_strings_vk .iter() @@ -349,8 +329,6 @@ impl Device { flags: ash::vk::DeviceCreateFlags::empty(), queue_create_info_count: queue_create_infos_vk.len() as u32, p_queue_create_infos: queue_create_infos_vk.as_ptr(), - enabled_layer_count: enabled_layers_ptrs_vk.len() as u32, - pp_enabled_layer_names: enabled_layers_ptrs_vk.as_ptr(), enabled_extension_count: enabled_extensions_ptrs_vk.len() as u32, pp_enabled_extension_names: enabled_extensions_ptrs_vk.as_ptr(), p_enabled_features: ptr::null(), diff --git a/vulkano/src/lib.rs b/vulkano/src/lib.rs index 1982f5c1..6a96892d 100644 --- a/vulkano/src/lib.rs +++ b/vulkano/src/lib.rs @@ -647,6 +647,10 @@ impl Display for RuntimeError { "a surface has changed in such a way that it is no longer compatible with the \ swapchain, and further presentation requests using the swapchain will fail" } + RuntimeError::InvalidVideoStdParameters => { + "the provided Video Std parameters do not adhere to the requirements of the used \ + video compression standard" + } RuntimeError::ValidationFailed => "validation failed", RuntimeError::FullScreenExclusiveModeLost => { "an operation on a swapchain created with application controlled full-screen \ diff --git a/vulkano/vk.xml b/vulkano/vk.xml index ca2ca438..d3907eb9 100644 --- a/vulkano/vk.xml +++ b/vulkano/vk.xml @@ -1,7 +1,7 @@ -Copyright 2015-2022 The Khronos Group Inc. +Copyright 2015-2023 The Khronos Group Inc. SPDX-License-Identifier: Apache-2.0 OR MIT @@ -32,6 +32,7 @@ branch of the member gitlab server. + @@ -66,14 +67,15 @@ branch of the member gitlab server. - + - + + @@ -90,6 +92,8 @@ branch of the member gitlab server. + + In the current header structure, each platform's interfaces are confined to a platform-specific header (vulkan_xlib.h, @@ -130,41 +134,58 @@ branch of the member gitlab server. + + + + + - // DEPRECATED: This define is deprecated. VK_MAKE_API_VERSION should be used instead. + // DEPRECATED: This define is deprecated. VK_MAKE_API_VERSION should be used instead. #define VK_MAKE_VERSION(major, minor, patch) \ - ((((uint32_t)(major)) << 22) | (((uint32_t)(minor)) << 12) | ((uint32_t)(patch))) - // DEPRECATED: This define is deprecated. VK_API_VERSION_MAJOR should be used instead. -#define VK_VERSION_MAJOR(version) ((uint32_t)(version) >> 22) - // DEPRECATED: This define is deprecated. VK_API_VERSION_MINOR should be used instead. -#define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3FFU) - // DEPRECATED: This define is deprecated. VK_API_VERSION_PATCH should be used instead. + ((((uint32_t)(major)) << 22U) | (((uint32_t)(minor)) << 12U) | ((uint32_t)(patch))) + // DEPRECATED: This define is deprecated. VK_API_VERSION_MAJOR should be used instead. +#define VK_VERSION_MAJOR(version) ((uint32_t)(version) >> 22U) + // DEPRECATED: This define is deprecated. VK_API_VERSION_MINOR should be used instead. +#define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12U) & 0x3FFU) + // DEPRECATED: This define is deprecated. VK_API_VERSION_PATCH should be used instead. #define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xFFFU) #define VK_MAKE_API_VERSION(variant, major, minor, patch) \ - ((((uint32_t)(variant)) << 29) | (((uint32_t)(major)) << 22) | (((uint32_t)(minor)) << 12) | ((uint32_t)(patch))) - #define VK_API_VERSION_VARIANT(version) ((uint32_t)(version) >> 29) - #define VK_API_VERSION_MAJOR(version) (((uint32_t)(version) >> 22) & 0x7FU) - #define VK_API_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3FFU) + ((((uint32_t)(variant)) << 29U) | (((uint32_t)(major)) << 22U) | (((uint32_t)(minor)) << 12U) | ((uint32_t)(patch))) + #define VK_API_VERSION_VARIANT(version) ((uint32_t)(version) >> 29U) + #define VK_API_VERSION_MAJOR(version) (((uint32_t)(version) >> 22U) & 0x7FU) + #define VK_API_VERSION_MINOR(version) (((uint32_t)(version) >> 12U) & 0x3FFU) #define VK_API_VERSION_PATCH(version) ((uint32_t)(version) & 0xFFFU) + // Vulkan SC variant number +#define VKSC_API_VARIANT 1 + // DEPRECATED: This define has been removed. Specific version defines (e.g. VK_API_VERSION_1_0), or the VK_MAKE_VERSION macro, should be used instead. -//#define VK_API_VERSION VK_MAKE_VERSION(1, 0, 0) // Patch version should always be set to 0 - // Vulkan 1.0 version number +//#define VK_API_VERSION VK_MAKE_API_VERSION(0, 1, 0, 0) // Patch version should always be set to 0 + // Vulkan 1.0 version number #define VK_API_VERSION_1_0 VK_MAKE_API_VERSION(0, 1, 0, 0)// Patch version should always be set to 0 - // Vulkan 1.1 version number + // Vulkan 1.1 version number #define VK_API_VERSION_1_1 VK_MAKE_API_VERSION(0, 1, 1, 0)// Patch version should always be set to 0 - // Vulkan 1.2 version number + // Vulkan 1.2 version number #define VK_API_VERSION_1_2 VK_MAKE_API_VERSION(0, 1, 2, 0)// Patch version should always be set to 0 // Vulkan 1.3 version number #define VK_API_VERSION_1_3 VK_MAKE_API_VERSION(0, 1, 3, 0)// Patch version should always be set to 0 - // Version of this file -#define VK_HEADER_VERSION 238 - // Complete version of this file -#define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 3, VK_HEADER_VERSION) + // Vulkan SC 1.0 version number +#define VKSC_API_VERSION_1_0 VK_MAKE_API_VERSION(VKSC_API_VARIANT, 1, 0, 0)// Patch version should always be set to 0 - + // Version of this file +#define VK_HEADER_VERSION 251 + // Complete version of this file +#define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 3, VK_HEADER_VERSION) + // Version of this file +#define VK_HEADER_VERSION 12 + // Complete version of this file +#define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(VKSC_API_VARIANT, 1, 0, VK_HEADER_VERSION) + + #define VK_DEFINE_HANDLE(object) typedef struct object##_T* object; + +#define VK_DEFINE_HANDLE(object) typedef struct object##_T* (object); #ifndef VK_USE_64_BIT_PTR_DEFINES @@ -189,7 +210,7 @@ branch of the member gitlab server. #ifndef VK_NULL_HANDLE #define VK_NULL_HANDLE 0 #endif - + #ifndef VK_DEFINE_NON_DISPATCHABLE_HANDLE #if (VK_USE_64_BIT_PTR_DEFINES==1) #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object; @@ -197,6 +218,14 @@ branch of the member gitlab server. #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object; #endif #endif + +#ifndef VK_DEFINE_NON_DISPATCHABLE_HANDLE + #if (VK_USE_64_BIT_PTR_DEFINES==1) + #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *(object); + #else + #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t (object); + #endif +#endif struct ANativeWindow; struct AHardwareBuffer; @@ -267,9 +296,11 @@ typedef void* MTLSharedEvent_id; typedef VkFlags VkSamplerCreateFlags; typedef VkFlags VkPipelineLayoutCreateFlags; typedef VkFlags VkPipelineCacheCreateFlags; - typedef VkFlags VkPipelineDepthStencilStateCreateFlags; + typedef VkFlags VkPipelineDepthStencilStateCreateFlags; + typedef VkFlags VkPipelineDepthStencilStateCreateFlags; typedef VkFlags VkPipelineDynamicStateCreateFlags; - typedef VkFlags VkPipelineColorBlendStateCreateFlags; + typedef VkFlags VkPipelineColorBlendStateCreateFlags; + typedef VkFlags VkPipelineColorBlendStateCreateFlags; typedef VkFlags VkPipelineMultisampleStateCreateFlags; typedef VkFlags VkPipelineRasterizationStateCreateFlags; typedef VkFlags VkPipelineViewportStateCreateFlags; @@ -342,6 +373,7 @@ typedef void* MTLSharedEvent_id; typedef VkFlags VkPipelineCompilerControlFlagsAMD; typedef VkFlags VkShaderCorePropertiesFlagsAMD; typedef VkFlags VkDeviceDiagnosticsConfigFlagsNV; + typedef VkFlags VkRefreshObjectFlagsKHR; typedef VkFlags64 VkAccessFlags2; typedef VkFlags64 VkPipelineStageFlags2; @@ -443,6 +475,7 @@ typedef void* MTLSharedEvent_id; typedef VkFlags VkOpticalFlowExecuteFlagsNV; typedef VkFlags VkPresentScalingFlagsEXT; typedef VkFlags VkPresentGravityFlagsEXT; + typedef VkFlags VkShaderCreateFlagsEXT; Video Core extension typedef VkFlags VkVideoCodecOperationFlagsKHR; @@ -466,6 +499,7 @@ typedef void* MTLSharedEvent_id; typedef VkFlags VkVideoEncodeUsageFlagsKHR; typedef VkFlags VkVideoEncodeContentFlagsKHR; typedef VkFlags VkVideoEncodeCapabilityFlagsKHR; + typedef VkFlags VkVideoEncodeFeedbackFlagsKHR; typedef VkFlags VkVideoEncodeRateControlFlagsKHR; typedef VkFlags VkVideoEncodeRateControlModeFlagsKHR; typedef VkFlags VkVideoChromaSubsamplingFlagsKHR; @@ -473,15 +507,12 @@ typedef void* MTLSharedEvent_id; Video Encode H.264 extension typedef VkFlags VkVideoEncodeH264CapabilityFlagsEXT; - typedef VkFlags VkVideoEncodeH264InputModeFlagsEXT; - typedef VkFlags VkVideoEncodeH264OutputModeFlagsEXT; Video Encode H.265 extension typedef VkFlags VkVideoEncodeH265CapabilityFlagsEXT; - typedef VkFlags VkVideoEncodeH265InputModeFlagsEXT; - typedef VkFlags VkVideoEncodeH265OutputModeFlagsEXT; typedef VkFlags VkVideoEncodeH265CtbSizeFlagsEXT; typedef VkFlags VkVideoEncodeH265TransformBlockSizeFlagsEXT; + typedef VkFlags VkMemoryUnmapFlagsKHR; Types which can be void pointers or class pointers, selected at compile time VK_DEFINE_HANDLE(VkInstance) @@ -526,6 +557,7 @@ typedef void* MTLSharedEvent_id; VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCuFunctionNVX) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkOpticalFlowSessionNV) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkMicromapEXT) + VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderEXT) WSI extensions VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayKHR) @@ -539,6 +571,9 @@ typedef void* MTLSharedEvent_id; VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkVideoSessionKHR) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkVideoSessionParametersKHR) + VK_NV_external_sci_sync2 + VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSemaphoreSciSyncPoolNV) + Types generated from corresponding enums tags below @@ -692,6 +727,13 @@ typedef void* MTLSharedEvent_id; + + + + + + + @@ -702,6 +744,7 @@ typedef void* MTLSharedEvent_id; + @@ -727,6 +770,9 @@ typedef void* MTLSharedEvent_id; + + + WSI extensions @@ -832,18 +878,15 @@ typedef void* MTLSharedEvent_id; + Video H.264 Encode extensions - - Video H.265 Encode extensions - - @@ -895,6 +938,12 @@ typedef void* MTLSharedEvent_id; const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData, void* pUserData); + The PFN_vkFaultCallbackFunction type is used by VKSC_VERSION_1_0 + typedef void (VKAPI_PTR *PFN_vkFaultCallbackFunction)( + VkBool32 unrecordedFaults, + uint32_t faultCount, + const VkFaultData* pFaults); + The PFN_vkDeviceMemoryReportCallbackEXT type is used by the VK_EXT_device_memory_report extension typedef void (VKAPI_PTR *PFN_vkDeviceMemoryReportCallbackEXT)( const VkDeviceMemoryReportCallbackDataEXT* pCallbackData, @@ -1011,8 +1060,8 @@ typedef void* MTLSharedEvent_id; VkDeviceCreateFlags flags uint32_t queueCreateInfoCount const VkDeviceQueueCreateInfo* pQueueCreateInfos - uint32_t enabledLayerCount - const char* const* ppEnabledLayerNamesOrdered list of layer names to be enabled + uint32_t enabledLayerCount + const char* const* ppEnabledLayerNamesOrdered list of layer names to be enabled uint32_t enabledExtensionCount const char* const* ppEnabledExtensionNames const VkPhysicalDeviceFeatures* pEnabledFeatures @@ -1368,8 +1417,9 @@ typedef void* MTLSharedEvent_id; const void* pNext VkPipelineShaderStageCreateFlags flags VkShaderStageFlagBits stageShader stage - VkShaderModule moduleModule containing entry point - const char* pNameNull-terminated entry point name + VkShaderModule moduleModule containing entry point + const char* pNameNull-terminated entry point name + const char* pNameNull-terminated entry point name const VkSpecializationInfo* pSpecializationInfo @@ -1503,8 +1553,9 @@ typedef void* MTLSharedEvent_id; VkStructureType sType const void* pNext VkPipelineCreateFlags flagsPipeline creation flags - uint32_t stageCount - const VkPipelineShaderStageCreateInfo* pStagesOne entry for each active shader stage + uint32_t stageCount + const VkPipelineShaderStageCreateInfo* pStagesOne entry for each active shader stage + const VkPipelineShaderStageCreateInfo* pStagesOne entry for each active shader stage const VkPipelineVertexInputStateCreateInfo* pVertexInputState const VkPipelineInputAssemblyStateCreateInfo* pInputAssemblyState const VkPipelineTessellationStateCreateInfo* pTessellationState @@ -1524,7 +1575,8 @@ typedef void* MTLSharedEvent_id; VkStructureType sType const void* pNext VkPipelineCacheCreateFlags flags - size_t initialDataSizeSize of initial data to populate cache, in bytes + size_t initialDataSizeSize of initial data to populate cache, in bytes + size_t initialDataSizeSize of initial data to populate cache, in bytes const void* pInitialDataInitial data to populate cache @@ -1535,6 +1587,30 @@ typedef void* MTLSharedEvent_id; uint32_t deviceID uint8_t pipelineCacheUUID[VK_UUID_SIZE] + + The fields in this structure are non-normative since structure packing is implementation-defined in C. The specification defines the normative layout. + uint64_t codeSize + uint64_t codeOffset + + + The fields in this structure are non-normative since structure packing is implementation-defined in C. The specification defines the normative layout. + uint8_t pipelineIdentifier[VK_UUID_SIZE] + uint64_t pipelineMemorySize + uint64_t jsonSize + uint64_t jsonOffset + uint32_t stageIndexCount + uint32_t stageIndexStride + uint64_t stageIndexOffset + + + The fields in this structure are non-normative since structure packing is implementation-defined in C. The specification defines the normative layout. + VkPipelineCacheHeaderVersionOne headerVersionOne + VkPipelineCacheValidationVersion validationVersion + uint32_t implementationData + uint32_t pipelineIndexCount + uint32_t pipelineIndexStride + uint64_t pipelineIndexOffset + VkShaderStageFlags stageFlagsWhich stages use the range uint32_t offsetStart of the range, in bytes @@ -2083,7 +2159,8 @@ typedef void* MTLSharedEvent_id; VkCompositeAlphaFlagBitsKHR compositeAlphaThe alpha blending mode used when compositing this surface with other surfaces in the window system VkPresentModeKHR presentModeWhich presentation mode to use for presents on this swap chain VkBool32 clippedSpecifies whether presentable images may be affected by window clip regions - VkSwapchainKHR oldSwapchainExisting swap chain to replace, if any + VkSwapchainKHR oldSwapchainExisting swap chain to replace, if any + VkSwapchainKHR oldSwapchainExisting swap chain to replace, if any VkStructureType sType @@ -2116,6 +2193,14 @@ typedef void* MTLSharedEvent_id; uint32_t disabledValidationFeatureCountNumber of validation features to disable const VkValidationFeatureDisableEXT* pDisabledValidationFeaturesValidation features to disable + + VkStructureType sType + const void* pNext + uint32_t vendorID + uint32_t deviceID + uint32_t key + uint64_t value + VkStructureType sType const void* pNext @@ -2187,6 +2272,35 @@ typedef void* MTLSharedEvent_id; const SECURITY_ATTRIBUTES* pAttributes DWORD dwAccess + + VkStructureType sType + const void* pNext + NvSciBufAttrList pAttributes + + + VkStructureType sType + const void* pNext + VkExternalMemoryHandleTypeFlagBits handleType + NvSciBufObj handle + + + VkStructureType sType + const void* pNext + VkDeviceMemory memory + VkExternalMemoryHandleTypeFlagBits handleType + + + VkStructureType sType + const void* pNext + uint32_t memoryTypeBits + + + VkStructureType sType + void* pNext + VkBool32 sciBufImport + VkBool32 sciBufExport + + VkStructureType sType const void* pNext @@ -2698,6 +2812,80 @@ typedef void* MTLSharedEvent_id; VkFence fence VkExternalFenceHandleTypeFlagBits handleType + + VkStructureType sType + const void* pNext + NvSciSyncAttrList pAttributes + + + VkStructureType sType + const void* pNext + VkFence fence + VkExternalFenceHandleTypeFlagBits handleType + void* handle + + + VkStructureType sType + const void* pNext + VkFence fence + VkExternalFenceHandleTypeFlagBits handleType + + + VkStructureType sType + const void* pNext + NvSciSyncAttrList pAttributes + + + VkStructureType sType + const void* pNext + VkSemaphore semaphore + VkExternalSemaphoreHandleTypeFlagBits handleType + void* handle + + + VkStructureType sType + const void* pNext + VkSemaphore semaphore + VkExternalSemaphoreHandleTypeFlagBits handleType + + + VkStructureType sType + const void* pNext + VkSciSyncClientTypeNV clientType + VkSciSyncPrimitiveTypeNV primitiveType + + + VkStructureType sType + void* pNext + VkBool32 sciSyncFence + VkBool32 sciSyncSemaphore + VkBool32 sciSyncImport + VkBool32 sciSyncExport + + + VkStructureType sType + void* pNext + VkBool32 sciSyncFence + VkBool32 sciSyncSemaphore2 + VkBool32 sciSyncImport + VkBool32 sciSyncExport + + + VkStructureType sType + const void* pNext + NvSciSyncObj handle + + + VkStructureType sType + const void* pNext + VkSemaphoreSciSyncPoolNV semaphorePool + const NvSciSyncFence* pFence + + + VkStructureType sType + const void* pNext + uint32_t semaphoreSciSyncPoolRequestCount + VkStructureType sType void* pNext @@ -3180,6 +3368,12 @@ typedef void* MTLSharedEvent_id; const void* pNext VkImageUsageFlags usage + + VkStructureType sType + const void* pNext + uint32_t sliceOffset + uint32_t sliceCount + VkStructureType sType @@ -4834,6 +5028,11 @@ typedef void* MTLSharedEvent_id; const void* pNext uint32_t counterPassIndexIndex for which counter pass to submit + + VkStructureType sType + const void* pNext + uint32_t maxPerformanceQueriesPerPoolMaximum number of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR queries in a query pool + VkStructureType sType const void* pNext @@ -5045,12 +5244,13 @@ typedef void* MTLSharedEvent_id; VkShaderStageFlags requiredSubgroupSizeStagesThe shader stages that support specifying a subgroup size - + VkStructureType sType void* pNext uint32_t requiredSubgroupSize + VkStructureType sType void* pNext @@ -5062,6 +5262,14 @@ typedef void* MTLSharedEvent_id; void* pNext uint32_t maxSubpassShadingWorkgroupSizeAspectRatio + + VkStructureType sType + void* pNext + uint32_t maxWorkGroupCount[3] + uint32_t maxWorkGroupSize[3] + uint32_t maxOutputClusterCount + VkDeviceSize indirectBufferOffsetAlignment + VkStructureType sType const void* pNext @@ -5323,6 +5531,19 @@ typedef void* MTLSharedEvent_id; void* pNext VkBool32 deviceCoherentMemory + + VkStructureType sType + void* pNext + VkFaultLevel faultLevel + VkFaultType faultType + + + VkStructureType sType + void* pNext + uint32_t faultCount + VkFaultData*pFaults + PFN_vkFaultCallbackFunction pfnFaultCallback + VkStructureType sType void* pNext @@ -5500,6 +5721,17 @@ typedef void* MTLSharedEvent_id; uint32_t libraryCount const VkPipeline* pLibraries + + VkObjectType objectType + uint64_t objectHandle + VkRefreshObjectFlagsKHR flags + + + VkStructureType sType + const void* pNext + uint32_t objectCount + const VkRefreshObjectKHR* pObjects + VkStructureType sType void* pNext @@ -5593,6 +5825,13 @@ typedef void* MTLSharedEvent_id; const void* pNext VkDeviceDiagnosticsConfigFlagsNV flags + + VkStructureType sType + const void* pNext + uint8_t pipelineIdentifier[VK_UUID_SIZE] + VkPipelineMatchControl matchControl + VkDeviceSize poolEntrySize + VkStructureType sType void* pNext @@ -5666,6 +5905,12 @@ typedef void* MTLSharedEvent_id; void* pNext VkBool32 subpassShading + + VkStructureType sType + void*pNext + VkBool32 clustercullingShader + VkBool32 multiviewClusterCullingShader + VkStructureType sType const void* pNext @@ -5867,6 +6112,16 @@ typedef void* MTLSharedEvent_id; VkBool32 image2DViewOf3D VkBool32 sampler2DViewOf3D + + VkStructureType sType + void* pNext + VkBool32 imageSlicedViewOf3D + + + VkStructureType sType + void* pNext + VkBool32 attachmentFeedbackLoopDynamicState + VkStructureType sType void* pNext @@ -6027,6 +6282,97 @@ typedef void* MTLSharedEvent_id; VkBool32 synchronization2 + + VkStructureType sType + void* pNext + VkBool32 deviceNoDynamicHostAllocations + VkBool32 deviceDestroyFreesMemory + VkBool32 commandPoolMultipleCommandBuffersRecording + VkBool32 commandPoolResetCommandBuffer + VkBool32 commandBufferSimultaneousUse + VkBool32 secondaryCommandBufferNullOrImagelessFramebuffer + VkBool32 recycleDescriptorSetMemory + VkBool32 recyclePipelineMemory + uint32_t maxRenderPassSubpasses + uint32_t maxRenderPassDependencies + uint32_t maxSubpassInputAttachments + uint32_t maxSubpassPreserveAttachments + uint32_t maxFramebufferAttachments + uint32_t maxDescriptorSetLayoutBindings + uint32_t maxQueryFaultCount + uint32_t maxCallbackFaultCount + uint32_t maxCommandPoolCommandBuffers + VkDeviceSize maxCommandBufferSize + + + VkStructureType sType + const void* pNext + VkDeviceSize poolEntrySize + uint32_t poolEntryCount + + + VkStructureType sType + const void* pNext + uint32_t pipelineCacheCreateInfoCount + const VkPipelineCacheCreateInfo* pPipelineCacheCreateInfos + uint32_t pipelinePoolSizeCount + const VkPipelinePoolSize* pPipelinePoolSizes + uint32_t semaphoreRequestCount + uint32_t commandBufferRequestCount + uint32_t fenceRequestCount + uint32_t deviceMemoryRequestCount + uint32_t bufferRequestCount + uint32_t imageRequestCount + uint32_t eventRequestCount + uint32_t queryPoolRequestCount + uint32_t bufferViewRequestCount + uint32_t imageViewRequestCount + uint32_t layeredImageViewRequestCount + uint32_t pipelineCacheRequestCount + uint32_t pipelineLayoutRequestCount + uint32_t renderPassRequestCount + uint32_t graphicsPipelineRequestCount + uint32_t computePipelineRequestCount + uint32_t descriptorSetLayoutRequestCount + uint32_t samplerRequestCount + uint32_t descriptorPoolRequestCount + uint32_t descriptorSetRequestCount + uint32_t framebufferRequestCount + uint32_t commandPoolRequestCount + uint32_t samplerYcbcrConversionRequestCount + uint32_t surfaceRequestCount + uint32_t swapchainRequestCount + uint32_t displayModeRequestCount + uint32_t subpassDescriptionRequestCount + uint32_t attachmentDescriptionRequestCount + uint32_t descriptorSetLayoutBindingRequestCount + uint32_t descriptorSetLayoutBindingLimit + uint32_t maxImageViewMipLevels + uint32_t maxImageViewArrayLayers + uint32_t maxLayeredImageViewMipLevels + uint32_t maxOcclusionQueriesPerPool + uint32_t maxPipelineStatisticsQueriesPerPool + uint32_t maxTimestampQueriesPerPool + uint32_t maxImmutableSamplersPerDescriptorSetLayout + + + VkStructureType sType + const void* pNext + VkDeviceSize commandPoolReservedSize + uint32_t commandPoolMaxCommandBuffers + + + VkStructureType sType + void* pNext + VkDeviceSize commandPoolAllocated + VkDeviceSize commandPoolReservedSize + VkDeviceSize commandBufferAllocated + + + VkStructureType sType + void* pNext + VkBool32 shaderAtomicInstructions + VkStructureType sType void* pNext @@ -6282,10 +6628,10 @@ typedef void* MTLSharedEvent_id; VkStructureType sType - const void* pNext - StdVideoDecodeH265PictureInfo* pStdPictureInfo - uint32_t sliceSegmentCount - const uint32_t* pSliceSegmentOffsets + const void* pNext + const StdVideoDecodeH265PictureInfo* pStdPictureInfo + uint32_t sliceSegmentCount + const uint32_t* pSliceSegmentOffsets VkStructureType sType @@ -6348,28 +6694,33 @@ typedef void* MTLSharedEvent_id; const void* pNext VkVideoEncodeFlagsKHR flags uint32_t qualityLevel - VkBuffer dstBitstreamBuffer - VkDeviceSize dstBitstreamBufferOffset - VkDeviceSize dstBitstreamBufferMaxRange + VkBuffer dstBuffer + VkDeviceSize dstBufferOffset + VkDeviceSize dstBufferRange VkVideoPictureResourceInfoKHR srcPictureResource const VkVideoReferenceSlotInfoKHR* pSetupReferenceSlot uint32_t referenceSlotCount const VkVideoReferenceSlotInfoKHR* pReferenceSlots uint32_t precedingExternallyEncodedBytes + + VkStructureType sType + const void* pNext + VkVideoEncodeFeedbackFlagsKHR encodeFeedbackFlags + VkStructureType sType const void* pNext VkVideoEncodeRateControlFlagsKHR flags - VkVideoEncodeRateControlModeFlagBitsKHR rateControlMode - uint8_t layerCount - const VkVideoEncodeRateControlLayerInfoKHR* pLayerConfigs + VkVideoEncodeRateControlModeFlagBitsKHR rateControlMode + uint32_t layerCount + const VkVideoEncodeRateControlLayerInfoKHR* pLayers VkStructureType sType - const void* pNext - uint32_t averageBitrate - uint32_t maxBitrate + const void* pNext + uint64_t averageBitrate + uint64_t maxBitrate uint32_t frameRateNumerator uint32_t frameRateDenominator uint32_t virtualBufferSizeInMs @@ -6380,19 +6731,18 @@ typedef void* MTLSharedEvent_id; void* pNext VkVideoEncodeCapabilityFlagsKHR flags VkVideoEncodeRateControlModeFlagsKHR rateControlModes - uint8_t rateControlLayerCount - uint8_t qualityLevelCount + uint32_t maxRateControlLayers + uint32_t maxQualityLevels VkExtent2D inputImageDataFillAlignment + VkVideoEncodeFeedbackFlagsKHR supportedEncodeFeedbackFlags VkStructureType sType void* pNext VkVideoEncodeH264CapabilityFlagsEXT flags - VkVideoEncodeH264InputModeFlagsEXT inputModeFlags - VkVideoEncodeH264OutputModeFlagsEXT outputModeFlags - uint8_t maxPPictureL0ReferenceCount - uint8_t maxBPictureL0ReferenceCount - uint8_t maxL1ReferenceCount + uint32_t maxPPictureL0ReferenceCount + uint32_t maxBPictureL0ReferenceCount + uint32_t maxL1ReferenceCount VkBool32 motionVectorsOverPicBoundariesFlag uint32_t maxBytesPerPicDenom uint32_t maxBitsPerMbDenom @@ -6404,7 +6754,7 @@ typedef void* MTLSharedEvent_id; - + @@ -6420,41 +6770,23 @@ typedef void* MTLSharedEvent_id; VkStructureType sType - const void* pNext + const void* pNext uint32_t maxStdSPSCount uint32_t maxStdPPSCount const VkVideoEncodeH264SessionParametersAddInfoEXT* pParametersAddInfo - + VkStructureType sType - const void* pNext - int8_t slotIndex + const void* pNext const StdVideoEncodeH264ReferenceInfo* pStdReferenceInfo VkStructureType sType const void* pNext - const VkVideoEncodeH264ReferenceListsInfoEXT* pReferenceFinalLists + const StdVideoEncodeH264ReferenceListsInfo* pStdReferenceFinalLists uint32_t naluSliceEntryCount const VkVideoEncodeH264NaluSliceInfoEXT* pNaluSliceEntries - const StdVideoEncodeH264PictureInfo* pCurrentPictureInfo - - - VkStructureType sType - const void* pNext - uint8_t referenceList0EntryCount - const VkVideoEncodeH264DpbSlotInfoEXT* pReferenceList0Entries - uint8_t referenceList1EntryCount - const VkVideoEncodeH264DpbSlotInfoEXT* pReferenceList1Entries - const StdVideoEncodeH264RefMemMgmtCtrlOperations* pMemMgmtCtrlOperations - - - VkStructureType sType - const void* pNext - uint8_t spsId - VkBool32 emitSpsEnable - uint32_t ppsIdEntryCount - const uint8_t* ppsIdEntries + const StdVideoEncodeH264PictureInfo* pStdPictureInfo VkStructureType sType @@ -6465,8 +6797,8 @@ typedef void* MTLSharedEvent_id; VkStructureType sType const void* pNext uint32_t mbCount - const VkVideoEncodeH264ReferenceListsInfoEXT* pReferenceFinalLists - const StdVideoEncodeH264SliceHeader* pSliceHeaderStd + const StdVideoEncodeH264ReferenceListsInfo* pStdReferenceFinalLists + const StdVideoEncodeH264SliceHeader* pStdSliceHeader VkStructureType sType @@ -6475,7 +6807,7 @@ typedef void* MTLSharedEvent_id; uint32_t idrPeriod uint32_t consecutiveBFrameCount VkVideoEncodeH264RateControlStructureEXT rateControlStructure - uint8_t temporalLayerCount + uint32_t temporalLayerCount int32_t qpI @@ -6490,7 +6822,7 @@ typedef void* MTLSharedEvent_id; VkStructureType sType const void* pNext - uint8_t temporalLayerId + uint32_t temporalLayerId VkBool32 useInitialRcQp VkVideoEncodeH264QpEXT initialRcQp VkBool32 useMinQp @@ -6504,32 +6836,30 @@ typedef void* MTLSharedEvent_id; VkStructureType sType void* pNext VkVideoEncodeH265CapabilityFlagsEXT flags - VkVideoEncodeH265InputModeFlagsEXT inputModeFlags - VkVideoEncodeH265OutputModeFlagsEXT outputModeFlags VkVideoEncodeH265CtbSizeFlagsEXT ctbSizes VkVideoEncodeH265TransformBlockSizeFlagsEXT transformBlockSizes - uint8_t maxPPictureL0ReferenceCount - uint8_t maxBPictureL0ReferenceCount - uint8_t maxL1ReferenceCount - uint8_t maxSubLayersCount - uint8_t minLog2MinLumaCodingBlockSizeMinus3 - uint8_t maxLog2MinLumaCodingBlockSizeMinus3 - uint8_t minLog2MinLumaTransformBlockSizeMinus2 - uint8_t maxLog2MinLumaTransformBlockSizeMinus2 - uint8_t minMaxTransformHierarchyDepthInter - uint8_t maxMaxTransformHierarchyDepthInter - uint8_t minMaxTransformHierarchyDepthIntra - uint8_t maxMaxTransformHierarchyDepthIntra - uint8_t maxDiffCuQpDeltaDepth - uint8_t minMaxNumMergeCand - uint8_t maxMaxNumMergeCand + uint32_t maxPPictureL0ReferenceCount + uint32_t maxBPictureL0ReferenceCount + uint32_t maxL1ReferenceCount + uint32_t maxSubLayersCount + uint32_t minLog2MinLumaCodingBlockSizeMinus3 + uint32_t maxLog2MinLumaCodingBlockSizeMinus3 + uint32_t minLog2MinLumaTransformBlockSizeMinus2 + uint32_t maxLog2MinLumaTransformBlockSizeMinus2 + uint32_t minMaxTransformHierarchyDepthInter + uint32_t maxMaxTransformHierarchyDepthInter + uint32_t minMaxTransformHierarchyDepthIntra + uint32_t maxMaxTransformHierarchyDepthIntra + uint32_t maxDiffCuQpDeltaDepth + uint32_t minMaxNumMergeCand + uint32_t maxMaxNumMergeCand #include "vk_video/vulkan_video_codec_h265std_encode.h" - + @@ -6554,27 +6884,17 @@ typedef void* MTLSharedEvent_id; VkStructureType sType const void* pNext - const VkVideoEncodeH265ReferenceListsInfoEXT* pReferenceFinalLists + const StdVideoEncodeH265ReferenceListsInfo* pStdReferenceFinalLists uint32_t naluSliceSegmentEntryCount const VkVideoEncodeH265NaluSliceSegmentInfoEXT* pNaluSliceSegmentEntries - const StdVideoEncodeH265PictureInfo* pCurrentPictureInfo - - - VkStructureType sType - const void* pNext - uint8_t vpsId - uint8_t spsId - VkBool32 emitVpsEnable - VkBool32 emitSpsEnable - uint32_t ppsIdEntryCount - const uint8_t* ppsIdEntries + const StdVideoEncodeH265PictureInfo* pStdPictureInfo VkStructureType sType const void* pNext uint32_t ctbCount - const VkVideoEncodeH265ReferenceListsInfoEXT* pReferenceFinalLists - const StdVideoEncodeH265SliceSegmentHeader* pSliceSegmentHeaderStd + const StdVideoEncodeH265ReferenceListsInfo* pStdReferenceFinalLists + const StdVideoEncodeH265SliceSegmentHeader* pStdSliceSegmentHeader VkStructureType sType @@ -6583,7 +6903,7 @@ typedef void* MTLSharedEvent_id; uint32_t idrPeriod uint32_t consecutiveBFrameCount VkVideoEncodeH265RateControlStructureEXT rateControlStructure - uint8_t subLayerCount + uint32_t subLayerCount int32_t qpI @@ -6598,7 +6918,7 @@ typedef void* MTLSharedEvent_id; VkStructureType sType const void* pNext - uint8_t temporalId + uint32_t temporalId VkBool32 useInitialRcQp VkVideoEncodeH265QpEXT initialRcQp VkBool32 useMinQp @@ -6613,21 +6933,11 @@ typedef void* MTLSharedEvent_id; const void* pNext StdVideoH265ProfileIdc stdProfileIdc - + VkStructureType sType const void* pNext - int8_t slotIndex const StdVideoEncodeH265ReferenceInfo* pStdReferenceInfo - - VkStructureType sType - const void* pNext - uint8_t referenceList0EntryCount - const VkVideoEncodeH265DpbSlotInfoEXT* pReferenceList0Entries - uint8_t referenceList1EntryCount - const VkVideoEncodeH265DpbSlotInfoEXT* pReferenceList1Entries - const StdVideoEncodeH265ReferenceModifications* pReferenceModifications - VkStructureType sType void* pNext @@ -7114,7 +7424,8 @@ typedef void* MTLSharedEvent_id; const void* pNext VkRenderingFlags flags uint32_t viewMask - uint32_t colorAttachmentCount + uint32_t colorAttachmentCount + uint32_t colorAttachmentCount const VkFormat* pColorAttachmentFormats VkFormat depthAttachmentFormat VkFormat stencilAttachmentFormat @@ -7365,7 +7676,42 @@ typedef void* MTLSharedEvent_id; uint32_t usageCountsCount const VkMicromapUsageEXT* pUsageCounts const VkMicromapUsageEXT* const* ppUsageCounts - VkMicromapEXT micromap + VkMicromapEXT micromap + + + VkStructureType sType + void* pNext + VkBool32 displacementMicromap + + + VkStructureType sType + void* pNext + uint32_t maxDisplacementMicromapSubdivisionLevel + + + VkStructureType sType + void* pNext + + VkFormat displacementBiasAndScaleFormat + VkFormat displacementVectorFormat + + VkDeviceOrHostAddressConstKHR displacementBiasAndScaleBuffer + VkDeviceSize displacementBiasAndScaleStride + VkDeviceOrHostAddressConstKHR displacementVectorBuffer + VkDeviceSize displacementVectorStride + VkDeviceOrHostAddressConstKHR displacedMicromapPrimitiveFlags + VkDeviceSize displacedMicromapPrimitiveFlagsStride + VkIndexType indexType + VkDeviceOrHostAddressConstKHR indexBuffer + VkDeviceSize indexStride + + uint32_t baseTriangle + + uint32_t usageCountsCount + const VkMicromapUsageEXT* pUsageCounts + const VkMicromapUsageEXT* const* ppUsageCounts + + VkMicromapEXT micromap VkStructureType sType @@ -7644,6 +7990,13 @@ typedef void* MTLSharedEvent_id; uint32_t applicationNameOffset uint32_t applicationVersion uint32_t engineNameOffset + uint32_t engineVersion + uint32_t apiVersion + + + VkStructureType sType + void* pNext + VkBool32 pipelineLibraryGroupHandles VkDeviceAddress srcAddress @@ -7664,6 +8017,11 @@ typedef void* MTLSharedEvent_id; void* pNext VkBool32 shaderCoreBuiltins + + VkStructureType sType + void* pNext + VkBool32 dynamicRenderingUnusedAttachments + VkStructureType sType void* pNext @@ -7691,19 +8049,19 @@ typedef void* MTLSharedEvent_id; VkStructureType sType - void* pNext + const void* pNext uint32_t swapchainCountCopy of VkPresentInfoKHR::swapchainCount const VkFence* pFencesFence to signal for each swapchain VkStructureType sType - void* pNext + const void* pNext uint32_t presentModeCountLength of the pPresentModes array const VkPresentModeKHR* pPresentModesPresentation modes which will be usable with this swapchain VkStructureType sType - void* pNext + const void* pNext uint32_t swapchainCountCopy of VkPresentInfoKHR::swapchainCount const VkPresentModeKHR* pPresentModesPresentation mode for each swapchain @@ -7749,6 +8107,89 @@ typedef void* MTLSharedEvent_id; void* pNext VkBool32 multiviewPerViewViewports + + VkStructureType sType + void* pNext + VkBool32 rayTracingPositionFetch + + + VkStructureType sType + void* pNext + uint32_t pixelRate + uint32_t texelRate + uint32_t fmaRate + + + VkStructureType sType + void* pNext + VkBool32 multiviewPerViewRenderAreas + + + VkStructureType sType + const void* pNext + uint32_t perViewRenderAreaCount + const VkRect2D* pPerViewRenderAreas + + + VkStructureType sType + const void* pNext + void* pQueriedLowLatencyData + + + VkStructureType sType + const void* pNext + VkMemoryMapFlags flags + VkDeviceMemory memory + VkDeviceSize offset + VkDeviceSize size + + + VkStructureType sType + const void* pNext + VkMemoryUnmapFlagsKHR flags + VkDeviceMemory memory + + + VkStructureType sType + void* pNext + VkBool32 shaderObject + + + VkStructureType sType + void* pNext + uint8_t shaderBinaryUUID[VK_UUID_SIZE] + uint32_t shaderBinaryVersion + + + VkStructureType sType + const void* pNext + VkShaderCreateFlagsEXT flags + VkShaderStageFlagBits stage + VkShaderStageFlags nextStage + VkShaderCodeTypeEXT codeType + size_t codeSize + const void* pCode + const char* pName + uint32_t setLayoutCount + const VkDescriptorSetLayout* pSetLayouts + uint32_t pushConstantRangeCount + const VkPushConstantRange* pPushConstantRanges + const VkSpecializationInfo* pSpecializationInfo + + + VkStructureType sType + void* pNext + VkBool32 shaderTileImageColorReadAccess + VkBool32 shaderTileImageDepthReadAccess + VkBool32 shaderTileImageStencilReadAccess + + + VkStructureType sType + void* pNext + VkBool32 shaderTileImageCoherentReadAccelerated + VkBool32 shaderTileImageReadSampleFromPixelRateInvocation + VkBool32 shaderTileImageReadFromHelperInvocation + @@ -7766,6 +8207,7 @@ typedef void* MTLSharedEvent_id; + @@ -8548,7 +8990,7 @@ typedef void* MTLSharedEvent_id; - + @@ -8573,7 +9015,7 @@ typedef void* MTLSharedEvent_id; - + @@ -8644,7 +9086,7 @@ typedef void* MTLSharedEvent_id; - + NVX_device_generated_commands formerly used these enum values, but that extension has been removed @@ -8652,7 +9094,7 @@ typedef void* MTLSharedEvent_id; value 32 / name VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT - + @@ -8773,7 +9215,7 @@ typedef void* MTLSharedEvent_id; - + @@ -8912,7 +9354,8 @@ typedef void* MTLSharedEvent_id; - + + Driver IDs are now represented as enums instead of the old @@ -8942,6 +9385,7 @@ typedef void* MTLSharedEvent_id; + @@ -9089,9 +9533,9 @@ typedef void* MTLSharedEvent_id; - - - + + + @@ -9119,14 +9563,16 @@ typedef void* MTLSharedEvent_id; - + - + + + @@ -9169,6 +9615,24 @@ typedef void* MTLSharedEvent_id; + + + + + + + + + + + + + + + + + + @@ -9181,6 +9645,9 @@ typedef void* MTLSharedEvent_id; + + + @@ -9330,10 +9797,22 @@ typedef void* MTLSharedEvent_id; + + + + + + + + + + + + @@ -9436,10 +9915,15 @@ typedef void* MTLSharedEvent_id; + + + + - - - + + + + @@ -9452,7 +9936,7 @@ typedef void* MTLSharedEvent_id; - + @@ -9467,16 +9951,7 @@ typedef void* MTLSharedEvent_id; - - - - - - - - - - + @@ -9583,16 +10058,7 @@ typedef void* MTLSharedEvent_id; - - - - - - - - - - + @@ -9749,6 +10215,19 @@ typedef void* MTLSharedEvent_id; + + + + + + + + + + + + + VkResult vkCreateInstance @@ -9817,7 +10296,14 @@ typedef void* MTLSharedEvent_id; VkImageCreateFlags flags VkImageFormatProperties* pImageFormatProperties - + + VkResult vkCreateDevice + VkPhysicalDevice physicalDevice + const VkDeviceCreateInfo* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkDevice* pDevice + + VkResult vkCreateDevice VkPhysicalDevice physicalDevice const VkDeviceCreateInfo* pCreateInfo @@ -9847,7 +10333,13 @@ typedef void* MTLSharedEvent_id; uint32_t* pPropertyCount VkExtensionProperties* pProperties - + + VkResult vkEnumerateDeviceLayerProperties + VkPhysicalDevice physicalDevice + uint32_t* pPropertyCount + VkLayerProperties* pProperties + + VkResult vkEnumerateDeviceLayerProperties VkPhysicalDevice physicalDevice uint32_t* pPropertyCount @@ -10158,7 +10650,14 @@ typedef void* MTLSharedEvent_id; VkShaderModule shaderModule const VkAllocationCallbacks* pAllocator - + + VkResult vkCreatePipelineCache + VkDevice device + const VkPipelineCacheCreateInfo* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkPipelineCache* pPipelineCache + + VkResult vkCreatePipelineCache VkDevice device const VkPipelineCacheCreateInfo* pCreateInfo @@ -10185,7 +10684,7 @@ typedef void* MTLSharedEvent_id; uint32_t srcCacheCount const VkPipelineCache* pSrcCaches - + VkResult vkCreateGraphicsPipelines VkDevice device VkPipelineCache pipelineCache @@ -10194,7 +10693,16 @@ typedef void* MTLSharedEvent_id; const VkAllocationCallbacks* pAllocator VkPipeline* pPipelines - + + VkResult vkCreateGraphicsPipelines + VkDevice device + VkPipelineCache pipelineCache + uint32_t createInfoCount + const VkGraphicsPipelineCreateInfo* pCreateInfos + const VkAllocationCallbacks* pAllocator + VkPipeline* pPipelines + + VkResult vkCreateComputePipelines VkDevice device VkPipelineCache pipelineCache @@ -10203,6 +10711,15 @@ typedef void* MTLSharedEvent_id; const VkAllocationCallbacks* pAllocator VkPipeline* pPipelines + + VkResult vkCreateComputePipelines + VkDevice device + VkPipelineCache pipelineCache + uint32_t createInfoCount + const VkComputePipelineCreateInfo* pCreateInfos + const VkAllocationCallbacks* pAllocator + VkPipeline* pPipelines + VkResult vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI VkDevice device @@ -10369,7 +10886,7 @@ typedef void* MTLSharedEvent_id; the sname:VkCommandPool that pname:commandBuffer was allocated from - + VkResult vkEndCommandBuffer VkCommandBuffer commandBuffer @@ -10390,6 +10907,11 @@ typedef void* MTLSharedEvent_id; VkPipelineBindPoint pipelineBindPoint VkPipeline pipeline + + void vkCmdSetAttachmentFeedbackLoopEnableEXT + VkCommandBuffer commandBuffer + VkImageAspectFlags aspectMask + void vkCmdSetViewport VkCommandBuffer commandBuffer @@ -10540,6 +11062,19 @@ typedef void* MTLSharedEvent_id; void vkCmdSubpassShadingHUAWEI VkCommandBuffer commandBuffer + + void vkCmdDrawClusterHUAWEI + VkCommandBuffer commandBuffer + uint32_t groupCountX + uint32_t groupCountY + uint32_t groupCountZ + + + void vkCmdDrawClusterIndirectHUAWEI + VkCommandBuffer commandBuffer + VkBuffer buffer + VkDeviceSize offset + void vkCmdCopyBuffer VkCommandBuffer commandBuffer @@ -10831,7 +11366,8 @@ typedef void* MTLSharedEvent_id; VkResult vkCreateSharedSwapchainsKHR VkDevice device uint32_t swapchainCount - const VkSwapchainCreateInfoKHR* pCreateInfos + const VkSwapchainCreateInfoKHR* pCreateInfos + const VkSwapchainCreateInfoKHR* pCreateInfos const VkAllocationCallbacks* pAllocator VkSwapchainKHR* pSwapchains @@ -10871,7 +11407,8 @@ typedef void* MTLSharedEvent_id; VkResult vkCreateSwapchainKHR VkDevice device - const VkSwapchainCreateInfoKHR* pCreateInfo + const VkSwapchainCreateInfoKHR* pCreateInfo + const VkSwapchainCreateInfoKHR* pCreateInfo const VkAllocationCallbacks* pAllocator VkSwapchainKHR* pSwapchain @@ -11220,6 +11757,24 @@ typedef void* MTLSharedEvent_id; const VkMemoryGetRemoteAddressInfoNV* pMemoryGetRemoteAddressInfo VkRemoteAddressNV* pAddress + + VkResult vkGetMemorySciBufNV + VkDevice device + const VkMemoryGetSciBufInfoNV* pGetSciBufInfo + NvSciBufObj* pHandle + + + VkResult vkGetPhysicalDeviceExternalMemorySciBufPropertiesNV + VkPhysicalDevice physicalDevice + VkExternalMemoryHandleTypeFlagBits handleType + NvSciBufObj handle + VkMemorySciBufPropertiesNV* pMemorySciBufProperties + + + VkResult vkGetPhysicalDeviceSciBufAttributesNV + VkPhysicalDevice physicalDevice + NvSciBufAttrList pAttributes + void vkGetPhysicalDeviceExternalSemaphoreProperties VkPhysicalDevice physicalDevice @@ -11289,6 +11844,58 @@ typedef void* MTLSharedEvent_id; VkDevice device const VkImportFenceFdInfoKHR* pImportFenceFdInfo + + VkResult vkGetFenceSciSyncFenceNV + VkDevice device + const VkFenceGetSciSyncInfoNV* pGetSciSyncHandleInfo + void* pHandle + + + VkResult vkGetFenceSciSyncObjNV + VkDevice device + const VkFenceGetSciSyncInfoNV* pGetSciSyncHandleInfo + void* pHandle + + + VkResult vkImportFenceSciSyncFenceNV + VkDevice device + const VkImportFenceSciSyncInfoNV* pImportFenceSciSyncInfo + + + VkResult vkImportFenceSciSyncObjNV + VkDevice device + const VkImportFenceSciSyncInfoNV* pImportFenceSciSyncInfo + + + VkResult vkGetSemaphoreSciSyncObjNV + VkDevice device + const VkSemaphoreGetSciSyncInfoNV* pGetSciSyncInfo + void* pHandle + + + VkResult vkImportSemaphoreSciSyncObjNV + VkDevice device + const VkImportSemaphoreSciSyncInfoNV* pImportSemaphoreSciSyncInfo + + + VkResult vkGetPhysicalDeviceSciSyncAttributesNV + VkPhysicalDevice physicalDevice + const VkSciSyncAttributesInfoNV* pSciSyncAttributesInfo + NvSciSyncAttrList pAttributes + + + VkResult vkCreateSemaphoreSciSyncPoolNV + VkDevice device + const VkSemaphoreSciSyncPoolCreateInfoNV* pCreateInfo + const VkAllocationCallbacks* pAllocator + VkSemaphoreSciSyncPoolNV* pSemaphorePool + + + void vkDestroySemaphoreSciSyncPoolNV + VkDevice device + VkSemaphoreSciSyncPoolNV semaphorePool + const VkAllocationCallbacks* pAllocator + VkResult vkReleaseDisplayEXT VkPhysicalDevice physicalDevice @@ -11514,6 +12121,16 @@ typedef void* MTLSharedEvent_id; uint32_t discardRectangleCount const VkRect2D* pDiscardRectangles + + void vkCmdSetDiscardRectangleEnableEXT + VkCommandBuffer commandBuffer + VkBool32 discardRectangleEnable + + + void vkCmdSetDiscardRectangleModeEXT + VkCommandBuffer commandBuffer + VkDiscardRectangleModeEXT discardRectangleMode + void vkCmdSetSampleLocationsEXT VkCommandBuffer commandBuffer @@ -11948,6 +12565,13 @@ typedef void* MTLSharedEvent_id; uint32_t exclusiveScissorCount const VkRect2D* pExclusiveScissors + + void vkCmdSetExclusiveScissorEnableNV + VkCommandBuffer commandBuffer + uint32_t firstExclusiveScissor + uint32_t exclusiveScissorCount + const VkBool32* pExclusiveScissorEnables + void vkCmdBindShadingRateImageNV VkCommandBuffer commandBuffer @@ -12195,7 +12819,7 @@ typedef void* MTLSharedEvent_id; size_t dataSize void* pData - + VkResult vkCreateRayTracingPipelinesNV VkDevice device VkPipelineCache pipelineCache @@ -12204,7 +12828,16 @@ typedef void* MTLSharedEvent_id; const VkAllocationCallbacks* pAllocator VkPipeline* pPipelines - + + VkResult vkCreateRayTracingPipelinesNV + VkDevice device + VkPipelineCache pipelineCache + uint32_t createInfoCount + const VkRayTracingPipelineCreateInfoNV* pCreateInfos + const VkAllocationCallbacks* pAllocator + VkPipeline* pPipelines + + VkResult vkCreateRayTracingPipelinesKHR VkDevice device VkDeferredOperationKHR deferredOperation @@ -12214,6 +12847,16 @@ typedef void* MTLSharedEvent_id; const VkAllocationCallbacks* pAllocator VkPipeline* pPipelines + + VkResult vkCreateRayTracingPipelinesKHR + VkDevice device + VkDeferredOperationKHR deferredOperation + VkPipelineCache pipelineCache + uint32_t createInfoCount + const VkRayTracingPipelineCreateInfoKHR* pCreateInfos + const VkAllocationCallbacks* pAllocator + VkPipeline* pPipelines + VkResult vkGetPhysicalDeviceCooperativeMatrixPropertiesNV VkPhysicalDevice physicalDevice @@ -12420,6 +13063,14 @@ typedef void* MTLSharedEvent_id; uint32_t lineStippleFactor uint16_t lineStipplePattern + + VkResult vkGetFaultData + VkDevice device + VkFaultQueryBehavior faultQueryBehavior + VkBool32* pUnrecordedFaults + uint32_t* pFaultCount + VkFaultData* pFaults + VkResult vkGetPhysicalDeviceToolProperties VkPhysicalDevice physicalDevice @@ -12837,6 +13488,17 @@ typedef void* MTLSharedEvent_id; const VkResolveImageInfo2* pResolveImageInfo + + void vkCmdRefreshObjectsKHR + VkCommandBuffer commandBuffer + const VkRefreshObjectListKHR* pRefreshObjects + + + VkResult vkGetPhysicalDeviceRefreshableObjectTypesKHR + VkPhysicalDevice physicalDevice + uint32_t* pRefreshableObjectTypeCount + VkObjectType* pRefreshableObjectTypes + void vkCmdSetFragmentShadingRateKHR VkCommandBuffer commandBuffer @@ -12935,6 +13597,13 @@ typedef void* MTLSharedEvent_id; uint32_t* pCheckpointDataCount VkCheckpointData2NV* pCheckpointData + + void vkGetCommandPoolMemoryConsumption + VkDevice device + VkCommandPool commandPool + VkCommandBuffer commandBuffer + VkCommandPoolMemoryConsumption* pConsumption + VkResult vkGetPhysicalDeviceVideoCapabilitiesKHR VkPhysicalDevice physicalDevice @@ -12948,7 +13617,7 @@ typedef void* MTLSharedEvent_id; uint32_t* pVideoFormatPropertyCount VkVideoFormatPropertiesKHR* pVideoFormatProperties - + VkResult vkCreateVideoSessionKHR VkDevice device const VkVideoSessionCreateInfoKHR* pCreateInfo @@ -12961,14 +13630,14 @@ typedef void* MTLSharedEvent_id; VkVideoSessionKHR videoSession const VkAllocationCallbacks* pAllocator - + VkResult vkCreateVideoSessionParametersKHR VkDevice device const VkVideoSessionParametersCreateInfoKHR* pCreateInfo const VkAllocationCallbacks* pAllocator VkVideoSessionParametersKHR* pVideoSessionParameters - + VkResult vkUpdateVideoSessionParametersKHR VkDevice device VkVideoSessionParametersKHR videoSessionParameters @@ -13396,9 +14065,48 @@ typedef void* MTLSharedEvent_id; VkDevice device const VkReleaseSwapchainImagesInfoEXT* pReleaseInfo + + VkResult vkMapMemory2KHR + VkDevice device + const VkMemoryMapInfoKHR* pMemoryMapInfo + void** ppData + + + VkResult vkUnmapMemory2KHR + VkDevice device + const VkMemoryUnmapInfoKHR* pMemoryUnmapInfo + + + VkResult vkCreateShadersEXT + VkDevice device + uint32_t createInfoCount + const VkShaderCreateInfoEXT* pCreateInfos + const VkAllocationCallbacks* pAllocator + VkShaderEXT* pShaders + + + void vkDestroyShaderEXT + VkDevice device + VkShaderEXT shader + const VkAllocationCallbacks* pAllocator + + + VkResult vkGetShaderBinaryDataEXT + VkDevice device + VkShaderEXT shader + size_t* pDataSize + void* pData + + + void vkCmdBindShadersEXT + VkCommandBuffer commandBuffer + uint32_t stageCount + const VkShaderStageFlagBits* pStages + const VkShaderEXT* pShaders + - + @@ -13912,7 +14620,7 @@ typedef void* MTLSharedEvent_id; - + @@ -14066,7 +14774,7 @@ typedef void* MTLSharedEvent_id; - + @@ -14239,12 +14947,12 @@ typedef void* MTLSharedEvent_id; - + - + @@ -14439,7 +15147,7 @@ typedef void* MTLSharedEvent_id; - + @@ -14704,8 +15412,144 @@ typedef void* MTLSharedEvent_id; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -14727,7 +15571,7 @@ typedef void* MTLSharedEvent_id; - + @@ -14748,7 +15592,7 @@ typedef void* MTLSharedEvent_id; - + This duplicates definitions in VK_KHR_device_group below @@ -14772,7 +15616,7 @@ typedef void* MTLSharedEvent_id; - + @@ -14803,7 +15647,7 @@ typedef void* MTLSharedEvent_id; - + @@ -14813,7 +15657,7 @@ typedef void* MTLSharedEvent_id; - + @@ -14824,7 +15668,7 @@ typedef void* MTLSharedEvent_id; - + @@ -14835,7 +15679,7 @@ typedef void* MTLSharedEvent_id; - + @@ -14846,13 +15690,13 @@ typedef void* MTLSharedEvent_id; - + - + @@ -14863,7 +15707,7 @@ typedef void* MTLSharedEvent_id; - + @@ -14901,8 +15745,9 @@ typedef void* MTLSharedEvent_id; - - + + + @@ -14914,7 +15759,7 @@ typedef void* MTLSharedEvent_id; - + This duplicates definitions in other extensions, below @@ -14927,18 +15772,18 @@ typedef void* MTLSharedEvent_id; - + - + - + @@ -14988,7 +15833,7 @@ typedef void* MTLSharedEvent_id; - + @@ -15006,7 +15851,7 @@ typedef void* MTLSharedEvent_id; - + @@ -15095,7 +15940,7 @@ typedef void* MTLSharedEvent_id; - + @@ -15131,7 +15976,7 @@ typedef void* MTLSharedEvent_id; - + @@ -15160,7 +16005,7 @@ typedef void* MTLSharedEvent_id; - + @@ -15272,9 +16117,9 @@ typedef void* MTLSharedEvent_id; - + - + @@ -15282,25 +16127,17 @@ typedef void* MTLSharedEvent_id; - - - - - - - - @@ -15311,9 +16148,9 @@ typedef void* MTLSharedEvent_id; - + - + @@ -15321,19 +16158,13 @@ typedef void* MTLSharedEvent_id; - - - - - - @@ -15343,11 +16174,9 @@ typedef void* MTLSharedEvent_id; - - @@ -15355,7 +16184,7 @@ typedef void* MTLSharedEvent_id; - + @@ -15376,7 +16205,7 @@ typedef void* MTLSharedEvent_id; - + @@ -15400,7 +16229,7 @@ typedef void* MTLSharedEvent_id; - + @@ -15420,27 +16249,27 @@ typedef void* MTLSharedEvent_id; - + - + - + - + - + - + - + @@ -15469,7 +16298,7 @@ typedef void* MTLSharedEvent_id; - + @@ -15479,7 +16308,7 @@ typedef void* MTLSharedEvent_id; - + @@ -15488,10 +16317,11 @@ typedef void* MTLSharedEvent_id; - + - - + + + @@ -15500,7 +16330,7 @@ typedef void* MTLSharedEvent_id; - + @@ -15539,7 +16369,7 @@ typedef void* MTLSharedEvent_id; - + @@ -15549,7 +16379,7 @@ typedef void* MTLSharedEvent_id; - + @@ -15560,7 +16390,7 @@ typedef void* MTLSharedEvent_id; - + @@ -15568,7 +16398,7 @@ typedef void* MTLSharedEvent_id; - + @@ -15599,7 +16429,7 @@ typedef void* MTLSharedEvent_id; - + @@ -15629,14 +16459,14 @@ typedef void* MTLSharedEvent_id; - + - + @@ -15645,7 +16475,7 @@ typedef void* MTLSharedEvent_id; - + @@ -15669,7 +16499,7 @@ typedef void* MTLSharedEvent_id; - + @@ -15679,7 +16509,7 @@ typedef void* MTLSharedEvent_id; - + @@ -15697,7 +16527,7 @@ typedef void* MTLSharedEvent_id; - + @@ -15719,7 +16549,7 @@ typedef void* MTLSharedEvent_id; - + @@ -15729,7 +16559,7 @@ typedef void* MTLSharedEvent_id; - + @@ -15743,12 +16573,12 @@ typedef void* MTLSharedEvent_id; - + - - + + @@ -15757,7 +16587,7 @@ typedef void* MTLSharedEvent_id; - + @@ -15770,7 +16600,7 @@ typedef void* MTLSharedEvent_id; - + @@ -15803,7 +16633,7 @@ typedef void* MTLSharedEvent_id; - + @@ -15817,7 +16647,7 @@ typedef void* MTLSharedEvent_id; - + @@ -15833,7 +16663,7 @@ typedef void* MTLSharedEvent_id; - + @@ -15847,7 +16677,7 @@ typedef void* MTLSharedEvent_id; - + @@ -15855,7 +16685,7 @@ typedef void* MTLSharedEvent_id; - + @@ -15880,7 +16710,7 @@ typedef void* MTLSharedEvent_id; - + @@ -15891,7 +16721,7 @@ typedef void* MTLSharedEvent_id; - + @@ -15907,7 +16737,7 @@ typedef void* MTLSharedEvent_id; - + @@ -15919,7 +16749,7 @@ typedef void* MTLSharedEvent_id; - + @@ -15928,16 +16758,16 @@ typedef void* MTLSharedEvent_id; - + - + - + @@ -15956,7 +16786,7 @@ typedef void* MTLSharedEvent_id; - + @@ -15966,7 +16796,7 @@ typedef void* MTLSharedEvent_id; - + @@ -15974,7 +16804,7 @@ typedef void* MTLSharedEvent_id; - + @@ -15984,7 +16814,7 @@ typedef void* MTLSharedEvent_id; - + @@ -16000,11 +16830,11 @@ typedef void* MTLSharedEvent_id; - + - + @@ -16025,14 +16855,14 @@ typedef void* MTLSharedEvent_id; - + - + @@ -16040,19 +16870,19 @@ typedef void* MTLSharedEvent_id; - + - + - + @@ -16073,7 +16903,7 @@ typedef void* MTLSharedEvent_id; - + @@ -16113,11 +16943,11 @@ typedef void* MTLSharedEvent_id; - - + + - + @@ -16138,18 +16968,22 @@ typedef void* MTLSharedEvent_id; - + - + + + + + @@ -16158,7 +16992,7 @@ typedef void* MTLSharedEvent_id; - + @@ -16170,7 +17004,7 @@ typedef void* MTLSharedEvent_id; - + @@ -16185,9 +17019,10 @@ typedef void* MTLSharedEvent_id; + - + @@ -16205,10 +17040,10 @@ typedef void* MTLSharedEvent_id; - + - + @@ -16230,7 +17065,7 @@ typedef void* MTLSharedEvent_id; - + @@ -16245,7 +17080,7 @@ typedef void* MTLSharedEvent_id; - + @@ -16275,7 +17110,7 @@ typedef void* MTLSharedEvent_id; - + @@ -16287,7 +17122,7 @@ typedef void* MTLSharedEvent_id; - + @@ -16311,7 +17146,7 @@ typedef void* MTLSharedEvent_id; - + @@ -16322,7 +17157,7 @@ typedef void* MTLSharedEvent_id; - + @@ -16336,7 +17171,7 @@ typedef void* MTLSharedEvent_id; - + @@ -16348,7 +17183,7 @@ typedef void* MTLSharedEvent_id; - + @@ -16380,13 +17215,17 @@ typedef void* MTLSharedEvent_id; + + + + - + - - + + @@ -16414,7 +17253,7 @@ typedef void* MTLSharedEvent_id; - + @@ -16428,7 +17267,7 @@ typedef void* MTLSharedEvent_id; - + @@ -16438,7 +17277,7 @@ typedef void* MTLSharedEvent_id; - + @@ -16458,7 +17297,7 @@ typedef void* MTLSharedEvent_id; - + @@ -16468,7 +17307,7 @@ typedef void* MTLSharedEvent_id; - + @@ -16484,21 +17323,21 @@ typedef void* MTLSharedEvent_id; - + - + - + @@ -16508,7 +17347,7 @@ typedef void* MTLSharedEvent_id; - + @@ -16544,7 +17383,7 @@ typedef void* MTLSharedEvent_id; - + @@ -16565,12 +17404,12 @@ typedef void* MTLSharedEvent_id; - + - + @@ -16585,7 +17424,7 @@ typedef void* MTLSharedEvent_id; - + @@ -16628,7 +17467,7 @@ typedef void* MTLSharedEvent_id; - + @@ -16649,7 +17488,7 @@ typedef void* MTLSharedEvent_id; - + @@ -16667,7 +17506,7 @@ typedef void* MTLSharedEvent_id; - + @@ -16690,7 +17529,7 @@ typedef void* MTLSharedEvent_id; - + @@ -16702,7 +17541,7 @@ typedef void* MTLSharedEvent_id; - + @@ -16721,7 +17560,7 @@ typedef void* MTLSharedEvent_id; - + @@ -16729,7 +17568,7 @@ typedef void* MTLSharedEvent_id; - + @@ -16798,7 +17637,7 @@ typedef void* MTLSharedEvent_id; - + @@ -16883,11 +17722,11 @@ typedef void* MTLSharedEvent_id; - + - + @@ -16932,7 +17771,7 @@ typedef void* MTLSharedEvent_id; - + @@ -16963,7 +17802,7 @@ typedef void* MTLSharedEvent_id; - + @@ -16973,13 +17812,13 @@ typedef void* MTLSharedEvent_id; - + - + @@ -17058,11 +17897,11 @@ typedef void* MTLSharedEvent_id; - + - + @@ -17075,7 +17914,7 @@ typedef void* MTLSharedEvent_id; - + @@ -17098,7 +17937,7 @@ typedef void* MTLSharedEvent_id; - + @@ -17128,7 +17967,7 @@ typedef void* MTLSharedEvent_id; - + @@ -17159,7 +17998,7 @@ typedef void* MTLSharedEvent_id; - + @@ -17169,7 +18008,7 @@ typedef void* MTLSharedEvent_id; - + @@ -17197,7 +18036,7 @@ typedef void* MTLSharedEvent_id; - + @@ -17293,7 +18132,7 @@ typedef void* MTLSharedEvent_id; - + @@ -17309,12 +18148,12 @@ typedef void* MTLSharedEvent_id; - + - - + + @@ -17322,7 +18161,7 @@ typedef void* MTLSharedEvent_id; - + @@ -17330,7 +18169,7 @@ typedef void* MTLSharedEvent_id; - + @@ -17365,17 +18204,17 @@ typedef void* MTLSharedEvent_id; - + - - + + - + @@ -17389,7 +18228,7 @@ typedef void* MTLSharedEvent_id; - + @@ -17397,7 +18236,7 @@ typedef void* MTLSharedEvent_id; - + @@ -17419,7 +18258,7 @@ typedef void* MTLSharedEvent_id; - + @@ -17427,7 +18266,7 @@ typedef void* MTLSharedEvent_id; - + @@ -17451,7 +18290,7 @@ typedef void* MTLSharedEvent_id; - + @@ -17462,7 +18301,7 @@ typedef void* MTLSharedEvent_id; - + @@ -17476,7 +18315,7 @@ typedef void* MTLSharedEvent_id; - + @@ -17497,7 +18336,7 @@ typedef void* MTLSharedEvent_id; - + @@ -17521,7 +18360,7 @@ typedef void* MTLSharedEvent_id; - + @@ -17534,7 +18373,7 @@ typedef void* MTLSharedEvent_id; - + @@ -17569,11 +18408,10 @@ typedef void* MTLSharedEvent_id; - + - + @@ -17597,7 +18435,7 @@ typedef void* MTLSharedEvent_id; - + @@ -17609,14 +18447,14 @@ typedef void* MTLSharedEvent_id; - + - + @@ -17633,14 +18471,14 @@ typedef void* MTLSharedEvent_id; - + - + @@ -17648,7 +18486,7 @@ typedef void* MTLSharedEvent_id; - + @@ -17666,7 +18504,7 @@ typedef void* MTLSharedEvent_id; - + @@ -17674,7 +18512,7 @@ typedef void* MTLSharedEvent_id; - + @@ -17682,19 +18520,21 @@ typedef void* MTLSharedEvent_id; - + - + - + + + - + @@ -17706,7 +18546,7 @@ typedef void* MTLSharedEvent_id; - + @@ -17739,7 +18579,7 @@ typedef void* MTLSharedEvent_id; - + @@ -17752,7 +18592,7 @@ typedef void* MTLSharedEvent_id; - + @@ -17786,7 +18626,7 @@ typedef void* MTLSharedEvent_id; - + @@ -17794,7 +18634,7 @@ typedef void* MTLSharedEvent_id; - + @@ -17802,7 +18642,7 @@ typedef void* MTLSharedEvent_id; - + @@ -17814,7 +18654,7 @@ typedef void* MTLSharedEvent_id; - + @@ -17824,7 +18664,7 @@ typedef void* MTLSharedEvent_id; - + @@ -17838,7 +18678,7 @@ typedef void* MTLSharedEvent_id; - + @@ -17849,7 +18689,7 @@ typedef void* MTLSharedEvent_id; - + @@ -17869,7 +18709,7 @@ typedef void* MTLSharedEvent_id; - + @@ -17886,7 +18726,7 @@ typedef void* MTLSharedEvent_id; - + @@ -17904,8 +18744,8 @@ typedef void* MTLSharedEvent_id; - - + + @@ -17914,7 +18754,7 @@ typedef void* MTLSharedEvent_id; - + @@ -17928,7 +18768,7 @@ typedef void* MTLSharedEvent_id; - + @@ -17952,11 +18792,11 @@ typedef void* MTLSharedEvent_id; - + - + @@ -17972,7 +18812,7 @@ typedef void* MTLSharedEvent_id; - + @@ -18006,7 +18846,7 @@ typedef void* MTLSharedEvent_id; - + @@ -18020,13 +18860,13 @@ typedef void* MTLSharedEvent_id; - + - + @@ -18034,7 +18874,7 @@ typedef void* MTLSharedEvent_id; - + @@ -18044,7 +18884,7 @@ typedef void* MTLSharedEvent_id; - + @@ -18052,7 +18892,7 @@ typedef void* MTLSharedEvent_id; - + @@ -18060,7 +18900,7 @@ typedef void* MTLSharedEvent_id; - + @@ -18089,7 +18929,7 @@ typedef void* MTLSharedEvent_id; - + @@ -18117,13 +18957,13 @@ typedef void* MTLSharedEvent_id; - + - + - + @@ -18136,7 +18976,7 @@ typedef void* MTLSharedEvent_id; - + @@ -18146,7 +18986,7 @@ typedef void* MTLSharedEvent_id; - + @@ -18155,7 +18995,7 @@ typedef void* MTLSharedEvent_id; - + @@ -18170,7 +19010,7 @@ typedef void* MTLSharedEvent_id; - + @@ -18185,7 +19025,7 @@ typedef void* MTLSharedEvent_id; - + @@ -18193,7 +19033,7 @@ typedef void* MTLSharedEvent_id; - + @@ -18201,7 +19041,7 @@ typedef void* MTLSharedEvent_id; - + @@ -18209,7 +19049,7 @@ typedef void* MTLSharedEvent_id; - + @@ -18222,7 +19062,7 @@ typedef void* MTLSharedEvent_id; - + @@ -18236,18 +19076,18 @@ typedef void* MTLSharedEvent_id; - + - + - + - + @@ -18257,7 +19097,7 @@ typedef void* MTLSharedEvent_id; - + @@ -18291,7 +19131,7 @@ typedef void* MTLSharedEvent_id; - + @@ -18306,7 +19146,7 @@ typedef void* MTLSharedEvent_id; - + @@ -18314,7 +19154,7 @@ typedef void* MTLSharedEvent_id; - + @@ -18341,7 +19181,7 @@ typedef void* MTLSharedEvent_id; - + @@ -18356,7 +19196,7 @@ typedef void* MTLSharedEvent_id; - + @@ -18388,7 +19228,7 @@ typedef void* MTLSharedEvent_id; - + @@ -18405,7 +19245,7 @@ typedef void* MTLSharedEvent_id; - + @@ -18430,26 +19270,34 @@ typedef void* MTLSharedEvent_id; - + + - + - - + + + + + + + + + - + - + @@ -18457,7 +19305,7 @@ typedef void* MTLSharedEvent_id; - + @@ -18473,7 +19321,7 @@ typedef void* MTLSharedEvent_id; - + @@ -18493,7 +19341,7 @@ typedef void* MTLSharedEvent_id; - + @@ -18501,7 +19349,7 @@ typedef void* MTLSharedEvent_id; - + This extension requires buffer_device_address functionality. @@ -18549,7 +19397,7 @@ typedef void* MTLSharedEvent_id; - + @@ -18565,7 +19413,7 @@ typedef void* MTLSharedEvent_id; - + @@ -18575,7 +19423,7 @@ typedef void* MTLSharedEvent_id; - + @@ -18585,7 +19433,7 @@ typedef void* MTLSharedEvent_id; - + @@ -18602,7 +19450,7 @@ typedef void* MTLSharedEvent_id; - + @@ -18617,7 +19465,7 @@ typedef void* MTLSharedEvent_id; - + @@ -18625,7 +19473,7 @@ typedef void* MTLSharedEvent_id; - + @@ -18635,7 +19483,7 @@ typedef void* MTLSharedEvent_id; - + @@ -18696,7 +19544,7 @@ typedef void* MTLSharedEvent_id; - + @@ -18711,7 +19559,7 @@ typedef void* MTLSharedEvent_id; - + @@ -18723,13 +19571,13 @@ typedef void* MTLSharedEvent_id; - + - + @@ -18739,7 +19587,7 @@ typedef void* MTLSharedEvent_id; - + @@ -18765,7 +19613,7 @@ typedef void* MTLSharedEvent_id; - + @@ -18779,18 +19627,15 @@ typedef void* MTLSharedEvent_id; - - - - - - - + + + + - + - + @@ -18801,6 +19646,7 @@ typedef void* MTLSharedEvent_id; + @@ -18814,7 +19660,9 @@ typedef void* MTLSharedEvent_id; - + + + @@ -18823,6 +19671,10 @@ typedef void* MTLSharedEvent_id; + + + + @@ -18838,12 +19690,12 @@ typedef void* MTLSharedEvent_id; - + - + @@ -18898,10 +19750,17 @@ typedef void* MTLSharedEvent_id; - + - - + + + + + + + + + @@ -18911,10 +19770,12 @@ typedef void* MTLSharedEvent_id; - + - - + + + + @@ -18968,7 +19829,7 @@ typedef void* MTLSharedEvent_id; - + @@ -19007,65 +19868,65 @@ typedef void* MTLSharedEvent_id; - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -19076,7 +19937,7 @@ typedef void* MTLSharedEvent_id; - + @@ -19128,7 +19989,7 @@ typedef void* MTLSharedEvent_id; - + @@ -19154,7 +20015,7 @@ typedef void* MTLSharedEvent_id; - + @@ -19172,7 +20033,7 @@ typedef void* MTLSharedEvent_id; - + @@ -19180,7 +20041,7 @@ typedef void* MTLSharedEvent_id; - + @@ -19190,7 +20051,7 @@ typedef void* MTLSharedEvent_id; - + @@ -19204,7 +20065,7 @@ typedef void* MTLSharedEvent_id; - + @@ -19212,7 +20073,7 @@ typedef void* MTLSharedEvent_id; - + @@ -19227,7 +20088,7 @@ typedef void* MTLSharedEvent_id; - + @@ -19250,7 +20111,7 @@ typedef void* MTLSharedEvent_id; - + @@ -19270,7 +20131,7 @@ typedef void* MTLSharedEvent_id; - + @@ -19280,7 +20141,7 @@ typedef void* MTLSharedEvent_id; - + VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT and @@ -19303,7 +20164,7 @@ typedef void* MTLSharedEvent_id; - + @@ -19314,7 +20175,7 @@ typedef void* MTLSharedEvent_id; - + @@ -19322,13 +20183,13 @@ typedef void* MTLSharedEvent_id; - + - + @@ -19336,7 +20197,7 @@ typedef void* MTLSharedEvent_id; - + @@ -19344,7 +20205,7 @@ typedef void* MTLSharedEvent_id; - + @@ -19378,7 +20239,7 @@ typedef void* MTLSharedEvent_id; - + @@ -19400,7 +20261,7 @@ typedef void* MTLSharedEvent_id; - + @@ -19413,7 +20274,7 @@ typedef void* MTLSharedEvent_id; - + VkPhysicalDevice4444FormatsFeaturesEXT and @@ -19428,9 +20289,9 @@ typedef void* MTLSharedEvent_id; - + - + @@ -19446,7 +20307,7 @@ typedef void* MTLSharedEvent_id; - + @@ -19466,7 +20327,7 @@ typedef void* MTLSharedEvent_id; - + @@ -19474,7 +20335,7 @@ typedef void* MTLSharedEvent_id; - + @@ -19482,7 +20343,7 @@ typedef void* MTLSharedEvent_id; - + @@ -19493,7 +20354,7 @@ typedef void* MTLSharedEvent_id; - + @@ -19505,7 +20366,7 @@ typedef void* MTLSharedEvent_id; - + @@ -19519,7 +20380,7 @@ typedef void* MTLSharedEvent_id; - + @@ -19533,7 +20394,7 @@ typedef void* MTLSharedEvent_id; - + @@ -19543,7 +20404,7 @@ typedef void* MTLSharedEvent_id; - + @@ -19557,7 +20418,7 @@ typedef void* MTLSharedEvent_id; - + @@ -19567,7 +20428,7 @@ typedef void* MTLSharedEvent_id; - + @@ -19593,7 +20454,7 @@ typedef void* MTLSharedEvent_id; - + @@ -19621,7 +20482,7 @@ typedef void* MTLSharedEvent_id; - + @@ -19636,7 +20497,7 @@ typedef void* MTLSharedEvent_id; - + @@ -19649,7 +20510,7 @@ typedef void* MTLSharedEvent_id; - + @@ -19699,7 +20560,7 @@ typedef void* MTLSharedEvent_id; - + @@ -19716,7 +20577,7 @@ typedef void* MTLSharedEvent_id; - + @@ -19728,7 +20589,7 @@ typedef void* MTLSharedEvent_id; - + @@ -19742,7 +20603,7 @@ typedef void* MTLSharedEvent_id; - + @@ -19755,20 +20616,60 @@ typedef void* MTLSharedEvent_id; - + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + + + + + + + + + + + + + + + + @@ -19777,7 +20678,7 @@ typedef void* MTLSharedEvent_id; - + @@ -19790,7 +20691,7 @@ typedef void* MTLSharedEvent_id; - + @@ -19808,7 +20709,7 @@ typedef void* MTLSharedEvent_id; - + @@ -19831,7 +20732,7 @@ typedef void* MTLSharedEvent_id; - + @@ -19843,7 +20744,7 @@ typedef void* MTLSharedEvent_id; - + @@ -19870,7 +20771,7 @@ typedef void* MTLSharedEvent_id; - + @@ -19879,14 +20780,14 @@ typedef void* MTLSharedEvent_id; - + - + - + @@ -19897,12 +20798,12 @@ typedef void* MTLSharedEvent_id; - + - - + + @@ -19920,7 +20821,7 @@ typedef void* MTLSharedEvent_id; - + @@ -19930,7 +20831,7 @@ typedef void* MTLSharedEvent_id; - + @@ -19944,7 +20845,7 @@ typedef void* MTLSharedEvent_id; - + @@ -19953,20 +20854,24 @@ typedef void* MTLSharedEvent_id; - + - + - - + + + + + + - + @@ -20032,13 +20937,20 @@ typedef void* MTLSharedEvent_id; - + - - - - - + + + + + + + + + + + + @@ -20079,12 +20991,19 @@ typedef void* MTLSharedEvent_id; - + - - - - + + + + + + + + + + + @@ -20123,7 +21042,7 @@ typedef void* MTLSharedEvent_id; - + @@ -20133,7 +21052,7 @@ typedef void* MTLSharedEvent_id; - + @@ -20142,7 +21061,7 @@ typedef void* MTLSharedEvent_id; - + @@ -20166,10 +21085,12 @@ typedef void* MTLSharedEvent_id; - + - - + + + + @@ -20184,11 +21105,15 @@ typedef void* MTLSharedEvent_id; - + - - - + + + + + + + @@ -20198,7 +21123,7 @@ typedef void* MTLSharedEvent_id; - + @@ -20212,7 +21137,7 @@ typedef void* MTLSharedEvent_id; - + @@ -20220,7 +21145,7 @@ typedef void* MTLSharedEvent_id; - + @@ -20241,7 +21166,7 @@ typedef void* MTLSharedEvent_id; - + @@ -20254,7 +21179,7 @@ typedef void* MTLSharedEvent_id; - + @@ -20268,7 +21193,7 @@ typedef void* MTLSharedEvent_id; - + @@ -20295,14 +21220,14 @@ typedef void* MTLSharedEvent_id; - + - + @@ -20318,7 +21243,7 @@ typedef void* MTLSharedEvent_id; - + @@ -20330,10 +21255,12 @@ typedef void* MTLSharedEvent_id; - + - - + + + + @@ -20342,7 +21269,7 @@ typedef void* MTLSharedEvent_id; - + @@ -20364,7 +21291,7 @@ typedef void* MTLSharedEvent_id; - + @@ -20380,7 +21307,7 @@ typedef void* MTLSharedEvent_id; - + @@ -20458,21 +21385,25 @@ typedef void* MTLSharedEvent_id; + + + + - + - + - + - + @@ -20546,19 +21477,19 @@ typedef void* MTLSharedEvent_id; - + - + - + @@ -20593,6 +21524,7 @@ typedef void* MTLSharedEvent_id; + @@ -20601,7 +21533,7 @@ typedef void* MTLSharedEvent_id; - + @@ -20618,7 +21550,7 @@ typedef void* MTLSharedEvent_id; - + @@ -20634,7 +21566,7 @@ typedef void* MTLSharedEvent_id; - + @@ -20679,7 +21611,7 @@ typedef void* MTLSharedEvent_id; - + @@ -20687,14 +21619,14 @@ typedef void* MTLSharedEvent_id; - + - + - + @@ -20714,6 +21646,7 @@ typedef void* MTLSharedEvent_id; + @@ -20788,19 +21721,108 @@ typedef void* MTLSharedEvent_id; - + - - + + + + + - + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -20809,7 +21831,7 @@ typedef void* MTLSharedEvent_id; - + @@ -20822,7 +21844,7 @@ typedef void* MTLSharedEvent_id; - + @@ -20844,7 +21866,7 @@ typedef void* MTLSharedEvent_id; - + @@ -20852,13 +21874,46 @@ typedef void* MTLSharedEvent_id; - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -20887,7 +21942,7 @@ typedef void* MTLSharedEvent_id; - + @@ -20913,7 +21968,7 @@ typedef void* MTLSharedEvent_id; - + @@ -20923,16 +21978,20 @@ typedef void* MTLSharedEvent_id; - + - - + + + + - + - - + + + + @@ -20971,6 +22030,178 @@ typedef void* MTLSharedEvent_id; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -22540,11 +23771,14 @@ typedef void* MTLSharedEvent_id; + + + - + @@ -22557,6 +23791,15 @@ typedef void* MTLSharedEvent_id; + + + + + + + + + @@ -22930,7 +24173,7 @@ typedef void* MTLSharedEvent_id; - + @@ -23028,5 +24271,20 @@ typedef void* MTLSharedEvent_id; + + + + + + + + + + + + + + +