diff --git a/.version b/.version
index 0168d648..fe4fd42d 100644
--- a/.version
+++ b/.version
@@ -1 +1 @@
-1.3.294
\ No newline at end of file
+1.3.295
\ No newline at end of file
diff --git a/analyzer/Exomia.Vulkan.Api.Core.SourceGenerator/Extensions/NV/VK_NV_compute_shader_derivatives/VkNvComputeShaderDerivatives.global-alias.cs b/analyzer/Exomia.Vulkan.Api.Core.SourceGenerator/Extensions/NV/VK_NV_compute_shader_derivatives/VkNvComputeShaderDerivatives.global-alias.cs
new file mode 100644
index 00000000..6c77cc7a
--- /dev/null
+++ b/analyzer/Exomia.Vulkan.Api.Core.SourceGenerator/Extensions/NV/VK_NV_compute_shader_derivatives/VkNvComputeShaderDerivatives.global-alias.cs
@@ -0,0 +1 @@
+global using VkPhysicalDeviceComputeShaderDerivativesFeaturesNV = Exomia.Vulkan.Api.Core.VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR;
diff --git a/src/Exomia.Vulkan.Api.Core/Enums/VkStructureType.cs b/src/Exomia.Vulkan.Api.Core/Enums/VkStructureType.cs
index 8d4ce9a0..16ffe551 100644
--- a/src/Exomia.Vulkan.Api.Core/Enums/VkStructureType.cs
+++ b/src/Exomia.Vulkan.Api.Core/Enums/VkStructureType.cs
@@ -2881,12 +2881,6 @@ public enum VkStructureType
///
VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP = 1000191000,
- ///
- /// VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV
- /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType
- ///
- VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV = 1000201000,
-
///
/// VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV
/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType
@@ -5191,6 +5185,18 @@ public enum VkStructureType
///
VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM = 1000510001,
+ ///
+ /// VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType
+ ///
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR = 1000201000,
+
+ ///
+ /// VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_PROPERTIES_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType
+ ///
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_PROPERTIES_KHR = 1000511000,
+
///
/// VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_CAPABILITIES_KHR
/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType
@@ -6187,6 +6193,12 @@ public enum VkStructureType
///
VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE,
+ ///
+ /// VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType
+ ///
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR,
+
///
/// VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV
/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_compute_shader_derivatives/VkKhrComputeShaderDerivatives.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_compute_shader_derivatives/VkKhrComputeShaderDerivatives.cs
new file mode 100644
index 00000000..baabb72e
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_compute_shader_derivatives/VkKhrComputeShaderDerivatives.cs
@@ -0,0 +1,53 @@
+#region License
+
+// Copyright (c) 2018-2024, exomia
+// All rights reserved.
+//
+// This source code is licensed under the BSD-style license found in the
+// LICENSE file in the root directory of this source tree.
+
+#endregion
+
+global using static Exomia.Vulkan.Api.Core.VkKhrComputeShaderDerivatives;
+
+#pragma warning disable CA2211 // Non-constant fields should not be visible
+#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member
+
+// ReSharper disable UnusedMember.Global
+// ReSharper disable InconsistentNaming
+// ReSharper disable once CheckNamespace
+namespace Exomia.Vulkan.Api.Core;
+
+///
+/// VK_KHR_compute_shader_derivatives - device extension (nr. 512) - author 'KHR' [platform '' | contact 'Jean-Noe
+/// Morissette @MagicPoncho']
+///
+/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VK_KHR_compute_shader_derivatives.html
+///
+///
+[VkDepends("VK_KHR_get_physical_device_properties2")]
+[VkDeviceExt]
+public static class VkKhrComputeShaderDerivatives
+{
+ /// The spec version.
+ public const uint VK_KHR_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION = 1;
+
+ /// The extension name.
+ public const string VK_KHR_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME = "VK_KHR_compute_shader_derivatives";
+
+ ///
+ /// An UTF8 null terminated version of
+ /// represented by an UTF16 string.
+ ///
+ ///
+ /// Example usage:
+ ///
+ /// fixed(char* ptr = VK_KHR_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME_UTF8_NT) {
+ /// sbyte* utf8NtPtr = (sbyte*)ptr; // utf8NtPtr - can now be passed and used directly as a utf8_nt string for
+ /// unmanaged code.
+ /// }
+ ///
+ public const string VK_KHR_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME_UTF8_NT =
+ "\u4b56\u4b5f\u5248\u435f\u4d4f\u5550\u4554\u535f\u4148\u4544\u5f52\u4544\u4952\u4156\u4954\u4556\u5f53\u5845\u4554\u534e\u4f49\u5f4e\u414e\u454d\u0000";
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_compute_shader_derivatives/VkPhysicalDeviceComputeShaderDerivativesFeaturesNV.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_compute_shader_derivatives/VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR.cs
similarity index 85%
rename from src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_compute_shader_derivatives/VkPhysicalDeviceComputeShaderDerivativesFeaturesNV.cs
rename to src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_compute_shader_derivatives/VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR.cs
index c2616a87..6d92c3ab 100644
--- a/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_compute_shader_derivatives/VkPhysicalDeviceComputeShaderDerivativesFeaturesNV.cs
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_compute_shader_derivatives/VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR.cs
@@ -14,11 +14,11 @@
namespace Exomia.Vulkan.Api.Core;
///
-/// VkPhysicalDeviceComputeShaderDerivativesFeaturesNV - Structure describing compute shader derivative features that
+/// VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR - Structure describing compute shader derivative features that
/// can be supported by an implementation -
///
-/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceComputeShaderDerivativesFeaturesNV.html
+/// href="https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR.html">
+/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR.html
///
///
///
@@ -30,10 +30,10 @@ namespace Exomia.Vulkan.Api.Core;
///
[VkStructExtends("VkPhysicalDeviceFeatures2,VkDeviceCreateInfo")]
[StructLayout(LayoutKind.Sequential)]
-public unsafe struct VkPhysicalDeviceComputeShaderDerivativesFeaturesNV
+public unsafe struct VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR
{
/// The stype of this structure.
- public const VkStructureType STYPE = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV;
+ public const VkStructureType STYPE = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR;
/// sType is a VkStructureType value identifying this structure.
public VkStructureType sType;
@@ -42,13 +42,13 @@ public unsafe struct VkPhysicalDeviceComputeShaderDerivativesFeaturesNV
public void* pNext;
///
- /// computeDerivativeGroupQuads indicates that the implementation supports the ComputeDerivativeGroupQuadsNV
+ /// computeDerivativeGroupQuads indicates that the implementation supports the ComputeDerivativeGroupQuadsKHR
/// SPIR-V capability.
///
public VkBool32 computeDerivativeGroupQuads;
///
- /// computeDerivativeGroupLinear indicates that the implementation supports the ComputeDerivativeGroupLinearNV
+ /// computeDerivativeGroupLinear indicates that the implementation supports the ComputeDerivativeGroupLinearKHR
/// SPIR-V capability.
///
public VkBool32 computeDerivativeGroupLinear;
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_compute_shader_derivatives/VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_compute_shader_derivatives/VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR.cs
new file mode 100644
index 00000000..b1b2a067
--- /dev/null
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_compute_shader_derivatives/VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR.cs
@@ -0,0 +1,58 @@
+#region License
+
+// Copyright (c) 2018-2024, exomia
+// All rights reserved.
+//
+// This source code is licensed under the BSD-style license found in the
+// LICENSE file in the root directory of this source tree.
+
+#endregion
+
+// ReSharper disable UnusedMember.Global
+// ReSharper disable InconsistentNaming
+// ReSharper disable once CheckNamespace
+namespace Exomia.Vulkan.Api.Core;
+
+///
+/// VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR - Structure describing compute shader derivative operations
+/// supported by an implementation -
+///
+/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR.html
+///
+///
+///
+///
+/// -
+/// structextendsVkPhysicalDeviceProperties2
+///
+/// -
+/// returnedonlytrue
+///
+///
+///
+[VkStructExtends("VkPhysicalDeviceProperties2")]
+[StructLayout(LayoutKind.Sequential)]
+public unsafe struct VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR
+{
+ /// The stype of this structure.
+ public const VkStructureType STYPE = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_PROPERTIES_KHR;
+
+ ///
+ /// sType
+ ///
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR
+ ///
+ ///
+ public VkStructureType sType;
+
+ /// pNext is NULL or a pointer to a structure extending this structure.
+ public void* pNext;
+
+ ///
+ /// meshAndTaskShaderDerivatives indicates whether the mesh and task shader stages support the
+ /// ComputeDerivativeGroupQuadsKHR and ComputeDerivativeGroupLinearKHR SPIR-V capabilities.
+ ///
+ public VkBool32 meshAndTaskShaderDerivatives;
+}
\ No newline at end of file
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkKhrPipelineBinary.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkKhrPipelineBinary.cs
index 21055274..4756f7c8 100644
--- a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkKhrPipelineBinary.cs
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkKhrPipelineBinary.cs
@@ -46,6 +46,15 @@ public static unsafe class VkKhrPipelineBinary
///
public const string VK_KHR_PIPELINE_BINARY_EXTENSION_NAME_UTF8_NT = "\u4b56\u4b5f\u5248\u505f\u5049\u4c45\u4e49\u5f45\u4942\u414e\u5952\u455f\u5458\u4e45\u4953\u4e4f\u4e5f\u4d41\u0045";
+ ///
+ /// VK_MAX_PIPELINE_BINARY_KEY_SIZE_KHR - Maximum length of binary key -
+ ///
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VK_MAX_PIPELINE_BINARY_KEY_SIZE_KHR.html
+ ///
+ ///
+ public const uint VK_MAX_PIPELINE_BINARY_KEY_SIZE_KHR = 32;
+
///
/// vkCreatePipelineBinariesKHR - Create pipeline binaries from a pipeline or previously retrieved data -
/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCreatePipelineBinariesKHR.html
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_ray_tracing_pipeline/VkRayTracingPipelineCreateInfoKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_ray_tracing_pipeline/VkRayTracingPipelineCreateInfoKHR.cs
index d9f92dde..bd7ea3ca 100644
--- a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_ray_tracing_pipeline/VkRayTracingPipelineCreateInfoKHR.cs
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_ray_tracing_pipeline/VkRayTracingPipelineCreateInfoKHR.cs
@@ -20,14 +20,6 @@ namespace Exomia.Vulkan.Api.Core;
/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkRayTracingPipelineCreateInfoKHR.html
///
///
-///
-///
-/// -
-/// structextendsVkPipelineCreateInfoKHR
-///
-///
-///
-[VkStructExtends("VkPipelineCreateInfoKHR")]
[StructLayout(LayoutKind.Sequential)]
public unsafe struct VkRayTracingPipelineCreateInfoKHR
{
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_surface/VkColorSpaceKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_surface/VkColorSpaceKHR.cs
index 11e055b3..92c965de 100644
--- a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_surface/VkColorSpaceKHR.cs
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_surface/VkColorSpaceKHR.cs
@@ -75,9 +75,8 @@ public enum VkColorSpaceKHR
VK_COLOR_SPACE_HDR10_ST2084_EXT = 1000104008,
///
- /// VK_COLOR_SPACE_DOLBYVISION_EXT specifies support for the images in Dolby Vision (BT2020) color space, encoded
- /// according to SMPTE ST2084 Perceptual Quantizer (PQ) specification. The presentation engine is expected to use Dolby
- /// ’s proprietary techniques to display the image.
+ /// VK_COLOR_SPACE_DOLBYVISION_EXT
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkColorSpaceKHR
///
VK_COLOR_SPACE_DOLBYVISION_EXT = 1000104009,
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_compute_shader_derivatives/VkNvComputeShaderDerivatives.cs b/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_compute_shader_derivatives/VkNvComputeShaderDerivatives.cs
index 4a2d9100..5bbaeab3 100644
--- a/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_compute_shader_derivatives/VkNvComputeShaderDerivatives.cs
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_compute_shader_derivatives/VkNvComputeShaderDerivatives.cs
@@ -28,6 +28,9 @@ namespace Exomia.Vulkan.Api.Core;
///
[VkDepends("VK_KHR_get_physical_device_properties2,VK_VERSION_1_1")]
[VkDeviceExt]
+[Obsolete(
+ "promoted to VK_KHR_compute_shader_derivatives", false,
+ UrlFormat = "https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VK_NV_compute_shader_derivatives.html#_deprecation_state")]
public static class VkNvComputeShaderDerivatives
{
/// The spec version.
diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_ray_tracing/VkRayTracingPipelineCreateInfoNV.cs b/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_ray_tracing/VkRayTracingPipelineCreateInfoNV.cs
index 2bf2e159..60bbddc6 100644
--- a/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_ray_tracing/VkRayTracingPipelineCreateInfoNV.cs
+++ b/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_ray_tracing/VkRayTracingPipelineCreateInfoNV.cs
@@ -20,14 +20,6 @@ namespace Exomia.Vulkan.Api.Core;
/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkRayTracingPipelineCreateInfoNV.html
///
///
-///
-///
-/// -
-/// structextendsVkPipelineCreateInfoKHR
-///
-///
-///
-[VkStructExtends("VkPipelineCreateInfoKHR")]
[StructLayout(LayoutKind.Sequential)]
public unsafe struct VkRayTracingPipelineCreateInfoNV
{
diff --git a/src/Exomia.Vulkan.Api.Core/Structs/VkComputePipelineCreateInfo.cs b/src/Exomia.Vulkan.Api.Core/Structs/VkComputePipelineCreateInfo.cs
index 431f677d..95589e05 100644
--- a/src/Exomia.Vulkan.Api.Core/Structs/VkComputePipelineCreateInfo.cs
+++ b/src/Exomia.Vulkan.Api.Core/Structs/VkComputePipelineCreateInfo.cs
@@ -17,14 +17,6 @@ namespace Exomia.Vulkan.Api.Core;
/// VkComputePipelineCreateInfo - Structure specifying parameters of a newly created compute pipeline -
/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkComputePipelineCreateInfo.html
///
-///
-///
-/// -
-/// structextendsVkPipelineCreateInfoKHR
-///
-///
-///
-[VkStructExtends("VkPipelineCreateInfoKHR")]
[StructLayout(LayoutKind.Sequential)]
public unsafe struct VkComputePipelineCreateInfo
{
diff --git a/src/Exomia.Vulkan.Api.Core/Structs/VkGraphicsPipelineCreateInfo.cs b/src/Exomia.Vulkan.Api.Core/Structs/VkGraphicsPipelineCreateInfo.cs
index 8fd9c5c4..54866345 100644
--- a/src/Exomia.Vulkan.Api.Core/Structs/VkGraphicsPipelineCreateInfo.cs
+++ b/src/Exomia.Vulkan.Api.Core/Structs/VkGraphicsPipelineCreateInfo.cs
@@ -17,14 +17,6 @@ namespace Exomia.Vulkan.Api.Core;
/// VkGraphicsPipelineCreateInfo - Structure specifying parameters of a newly created graphics pipeline -
/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkGraphicsPipelineCreateInfo.html
///
-///
-///
-/// -
-/// structextendsVkPipelineCreateInfoKHR
-///
-///
-///
-[VkStructExtends("VkPipelineCreateInfoKHR")]
[StructLayout(LayoutKind.Sequential)]
public unsafe struct VkGraphicsPipelineCreateInfo
{
diff --git a/src/Exomia.Vulkan.Api.Core/vk.0.0.constants.cs b/src/Exomia.Vulkan.Api.Core/vk.0.0.constants.cs
deleted file mode 100644
index 01ff7866..00000000
--- a/src/Exomia.Vulkan.Api.Core/vk.0.0.constants.cs
+++ /dev/null
@@ -1,21 +0,0 @@
-#region License
-
-// Copyright (c) 2018-2024, exomia
-// All rights reserved.
-//
-// This source code is licensed under the BSD-style license found in the
-// LICENSE file in the root directory of this source tree.
-
-#endregion
-
-// ReSharper disable InconsistentNaming
-// ReSharper disable UnusedMember.Global
-namespace Exomia.Vulkan.Api.Core;
-
-///
-/// VK_VERSION_0_0.constants - vulkan
-///
-public static partial class Vk
-{
- public const uint VK_MAX_PIPELINE_BINARY_KEY_SIZE_KHR = 32;
-}