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; -}