diff --git a/.version b/.version index 8ce23651..4fd638b5 100644 --- a/.version +++ b/.version @@ -1 +1 @@ -1.3.288 \ No newline at end of file +1.3.289 \ No newline at end of file diff --git a/README.md b/README.md index e7eee759..eafa3a5a 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ It is meant to be as close as possible to the original Vulkan API written in C. ![](https://img.shields.io/github/languages/top/exomia/vulkan-api.svg) ![](https://img.shields.io/github/languages/count/exomia/vulkan-api.svg) ![](https://img.shields.io/github/license/exomia/vulkan-api.svg) -[![](https://img.shields.io/nuget/v/Exomia.Vulkan.Api.Core?logo=nuget)](https://www.nuget.org/packages/Exomia.Vulkan.Api.Core) + ## Features - Vulkan 1.0, 1.1, 1.2, 1.3, 0.0 diff --git a/src/Exomia.Vulkan.Api.Core/Enums/VkRenderingFlagBits.cs b/src/Exomia.Vulkan.Api.Core/Enums/VkRenderingFlagBits.cs index f55ce765..409e158a 100644 --- a/src/Exomia.Vulkan.Api.Core/Enums/VkRenderingFlagBits.cs +++ b/src/Exomia.Vulkan.Api.Core/Enums/VkRenderingFlagBits.cs @@ -41,17 +41,6 @@ public enum VkRenderingFlagBits /// VK_RENDERING_RESUMING_BIT = 0x4, - /// - /// VK_RENDERING_CONTENTS_INLINE_BIT_EXT specifies that draw calls for the render pass instance can be recorded inline - /// within the current command buffer. When the - /// - /// nestedCommandBuffer - /// - /// feature is enabled this can be combined with the VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT bit to allow - /// draw calls to be recorded both inline and in secondary command buffers. - /// - VK_RENDERING_CONTENTS_INLINE_BIT_EXT = 0x10, - /// /// VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT specifies that /// @@ -62,6 +51,14 @@ public enum VkRenderingFlagBits /// VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT = 0x8, + /// + /// VK_RENDERING_CONTENTS_INLINE_BIT_KHR specifies that draw calls for the render pass instance can be recorded + /// inline within the current command buffer. This can be combined with the + /// VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT bit to allow draw calls to be recorded both inline and in + /// secondary command buffers. + /// + VK_RENDERING_CONTENTS_INLINE_BIT_KHR = 0x10, + /// /// VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT specifies that draw calls for the render pass instance will be /// recorded in secondary command buffers. If the @@ -81,5 +78,13 @@ public enum VkRenderingFlagBits /// VK_RENDERING_RESUMING_BIT specifies that the render pass instance is resuming an earlier suspended render pass /// instance. /// - VK_RENDERING_RESUMING_BIT_KHR = VK_RENDERING_RESUMING_BIT + VK_RENDERING_RESUMING_BIT_KHR = VK_RENDERING_RESUMING_BIT, + + /// + /// VK_RENDERING_CONTENTS_INLINE_BIT_KHR specifies that draw calls for the render pass instance can be recorded + /// inline within the current command buffer. This can be combined with the + /// VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT bit to allow draw calls to be recorded both inline and in + /// secondary command buffers. + /// + VK_RENDERING_CONTENTS_INLINE_BIT_EXT = VK_RENDERING_CONTENTS_INLINE_BIT_KHR } \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Enums/VkStructureType.cs b/src/Exomia.Vulkan.Api.Core/Enums/VkStructureType.cs index 123a3afb..422e87fb 100644 --- a/src/Exomia.Vulkan.Api.Core/Enums/VkStructureType.cs +++ b/src/Exomia.Vulkan.Api.Core/Enums/VkStructureType.cs @@ -5389,6 +5389,36 @@ public enum VkStructureType /// VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR = 1000558000, + /// + /// VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_FEATURES_KHR
+ ///
https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType + ///
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_FEATURES_KHR = 1000562000, + + /// + /// VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_PROPERTIES_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType + ///
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_PROPERTIES_KHR = 1000562001, + + /// + /// VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_LIST_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType + ///
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_LIST_KHR = 1000562002, + + /// + /// VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType + ///
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_KHR = 1000562003, + + /// + /// VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_VULKAN_PROPERTIES_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType + ///
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_VULKAN_PROPERTIES_KHR = 1000562004, + /// /// VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV
/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType diff --git a/src/Exomia.Vulkan.Api.Core/Enums/VkSubpassContents.cs b/src/Exomia.Vulkan.Api.Core/Enums/VkSubpassContents.cs index bca95968..0c204a79 100644 --- a/src/Exomia.Vulkan.Api.Core/Enums/VkSubpassContents.cs +++ b/src/Exomia.Vulkan.Api.Core/Enums/VkSubpassContents.cs @@ -38,10 +38,18 @@ public enum VkSubpassContents VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 1, /// - /// VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXTspecifies that the contents of the subpass can be + /// VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHRspecifies that the contents of the subpass can be /// recorded both inline and in secondary command buffers executed from this command buffer with /// vkCmdExecuteCommands /// . /// - VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT = 1000451000 + VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHR = 1000451000, + + /// + /// VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHRspecifies that the contents of the subpass can be + /// recorded both inline and in secondary command buffers executed from this command buffer with + /// vkCmdExecuteCommands + /// . + /// + VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT = VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHR } \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance7/VkKhrMaintenance7.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance7/VkKhrMaintenance7.cs new file mode 100644 index 00000000..95a53b3d --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance7/VkKhrMaintenance7.cs @@ -0,0 +1,49 @@ +#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.VkKhrMaintenance7; + +#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_maintenance7 - device extension (nr. 563) - author 'KHR' [platform '' | contact 'Mike Blumenkrantz @zmike'] +///
+/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VK_KHR_maintenance7.html +///
+[VkDepends("VK_VERSION_1_1")] +[VkDeviceExt] +public static class VkKhrMaintenance7 +{ + /// The spec version. + public const uint VK_KHR_MAINTENANCE_7_SPEC_VERSION = 1; + + /// The extension name. + public const string VK_KHR_MAINTENANCE_7_EXTENSION_NAME = "VK_KHR_maintenance7"; + + /// + /// An UTF8 null terminated version of represented by an UTF16 + /// string. + /// + /// + /// Example usage:
+ ///
+ /// fixed(char* ptr = VK_KHR_MAINTENANCE_7_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_MAINTENANCE_7_EXTENSION_NAME_UTF8_NT = "\u4b56\u4b5f\u5248\u4d5f\u4941\u544e\u4e45\u4e41\u4543\u375f\u455f\u5458\u4e45\u4953\u4e4f\u4e5f\u4d41\u0045"; +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance7/VkPhysicalDeviceLayeredApiKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance7/VkPhysicalDeviceLayeredApiKHR.cs new file mode 100644 index 00000000..3a4b5712 --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance7/VkPhysicalDeviceLayeredApiKHR.cs @@ -0,0 +1,36 @@ +#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; + +/// +/// VkPhysicalDeviceLayeredApiKHR - API implemented by the layered implementation - +/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceLayeredApiKHR.html +/// +public enum VkPhysicalDeviceLayeredApiKHR +{ + /// VK_PHYSICAL_DEVICE_LAYERED_API_VULKAN_KHR - the device implements the Vulkan API. + VK_PHYSICAL_DEVICE_LAYERED_API_VULKAN_KHR = 0, + + /// VK_PHYSICAL_DEVICE_LAYERED_API_D3D12_KHR - the device implements the D3D12 API. + VK_PHYSICAL_DEVICE_LAYERED_API_D3D12_KHR = 1, + + /// VK_PHYSICAL_DEVICE_LAYERED_API_METAL_KHR - the device implements the Metal API. + VK_PHYSICAL_DEVICE_LAYERED_API_METAL_KHR = 2, + + /// VK_PHYSICAL_DEVICE_LAYERED_API_OPENGL_KHR - the device implements the OpenGL API. + VK_PHYSICAL_DEVICE_LAYERED_API_OPENGL_KHR = 3, + + /// VK_PHYSICAL_DEVICE_LAYERED_API_OPENGLES_KHR - the device implements the OpenGL ES API. + VK_PHYSICAL_DEVICE_LAYERED_API_OPENGLES_KHR = 4 +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance7/VkPhysicalDeviceLayeredApiPropertiesKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance7/VkPhysicalDeviceLayeredApiPropertiesKHR.cs new file mode 100644 index 00000000..53ad0e0a --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance7/VkPhysicalDeviceLayeredApiPropertiesKHR.cs @@ -0,0 +1,57 @@ +#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; + +/// +/// VkPhysicalDeviceLayeredApiPropertiesKHR - Structure describing a single layered implementation underneath the +/// Vulkan physical device - +/// +/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceLayeredApiPropertiesKHR.html +/// +/// +/// +/// +/// +/// returnedonlytrue +/// +/// +/// +[StructLayout(LayoutKind.Sequential)] +public unsafe struct VkPhysicalDeviceLayeredApiPropertiesKHR +{ + /// The stype of this structure. + public const VkStructureType STYPE = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_KHR; + + /// sType is a VkStructureType value identifying this structure. + public VkStructureType sType; + + /// pNext is NULL or a pointer to a structure extending this structure. + public void* pNext; + + /// vendorID is a unique identifier for the vendor of the layered implementation. + public uint vendorID; + + /// deviceID is a unique identifier for the layered implementation among devices available from the vendor. + public uint deviceID; + + /// layeredAPI is a VkPhysicalDeviceLayeredApiKHR specifying the API implemented by the layered implementation. + public VkPhysicalDeviceLayeredApiKHR layeredAPI; + + /// + /// deviceName is an array of VK_MAX_PHYSICAL_DEVICE_NAME_SIZEchar containing a null-terminated UTF-8 string which + /// is the name of the device. + /// + public fixed byte deviceName[(int)VK_MAX_PHYSICAL_DEVICE_NAME_SIZE]; +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance7/VkPhysicalDeviceLayeredApiPropertiesListKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance7/VkPhysicalDeviceLayeredApiPropertiesListKHR.cs new file mode 100644 index 00000000..becaa70d --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance7/VkPhysicalDeviceLayeredApiPropertiesListKHR.cs @@ -0,0 +1,55 @@ +#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; + +/// +/// VkPhysicalDeviceLayeredApiPropertiesListKHR - Structure describing layered implementations underneath the Vulkan +/// physical device - +/// +/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceLayeredApiPropertiesListKHR.html +/// +/// +/// +/// +/// +/// structextendsVkPhysicalDeviceProperties2 +/// +/// +/// +[VkStructExtends("VkPhysicalDeviceProperties2")] +[StructLayout(LayoutKind.Sequential)] +public unsafe struct VkPhysicalDeviceLayeredApiPropertiesListKHR +{ + /// The stype of this structure. + public const VkStructureType STYPE = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_LIST_KHR; + + /// sType is a VkStructureType value identifying this structure. + public VkStructureType sType; + + /// pNext is NULL or a pointer to a structure extending this structure. + public void* pNext; + + /// + /// layeredApiCount is an integer related to the number of layered implementations underneath the Vulkan physical + /// device, as described below. + /// + public uint layeredApiCount; + + /// + /// pLayeredApis is a pointer to an array of VkPhysicalDeviceLayeredApiPropertiesKHR in which information + /// regarding the layered implementations underneath the Vulkan physical device are returned. + /// + public VkPhysicalDeviceLayeredApiPropertiesKHR* pLayeredApis; +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance7/VkPhysicalDeviceLayeredApiVulkanPropertiesKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance7/VkPhysicalDeviceLayeredApiVulkanPropertiesKHR.cs new file mode 100644 index 00000000..8f785880 --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance7/VkPhysicalDeviceLayeredApiVulkanPropertiesKHR.cs @@ -0,0 +1,52 @@ +#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; + +/// +/// VkPhysicalDeviceLayeredApiVulkanPropertiesKHR - Structure describing physical device properties of a layered Vulkan +/// implementation underneath the Vulkan physical device - +/// +/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceLayeredApiVulkanPropertiesKHR.html +/// +/// +/// +/// +/// +/// structextendsVkPhysicalDeviceLayeredApiPropertiesKHR +/// +/// +/// returnedonlytrue +/// +/// +/// +[VkStructExtends("VkPhysicalDeviceLayeredApiPropertiesKHR")] +[StructLayout(LayoutKind.Sequential)] +public unsafe struct VkPhysicalDeviceLayeredApiVulkanPropertiesKHR +{ + /// The stype of this structure. + public const VkStructureType STYPE = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_VULKAN_PROPERTIES_KHR; + + /// sType is a VkStructureType value identifying this structure. + public VkStructureType sType; + + /// pNext is NULL or a pointer to a structure extending this structure. + public void* pNext; + + /// + /// properties is a VkPhysicalDeviceProperties2 in which properties of the underlying layered Vulkan + /// implementation are returned. + /// + public VkPhysicalDeviceProperties2 properties; +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance7/VkPhysicalDeviceMaintenance7FeaturesKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance7/VkPhysicalDeviceMaintenance7FeaturesKHR.cs new file mode 100644 index 00000000..26bb067b --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance7/VkPhysicalDeviceMaintenance7FeaturesKHR.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; + +/// +/// VkPhysicalDeviceMaintenance7FeaturesKHR - Structure describing whether the implementation supports maintenance7 +/// functionality - +/// +/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceMaintenance7FeaturesKHR.html +/// +/// +/// +/// +/// +/// structextendsVkPhysicalDeviceFeatures2,VkDeviceCreateInfo +/// +/// +/// +[VkStructExtends("VkPhysicalDeviceFeatures2,VkDeviceCreateInfo")] +[StructLayout(LayoutKind.Sequential)] +public unsafe struct VkPhysicalDeviceMaintenance7FeaturesKHR +{ + /// The stype of this structure. + public const VkStructureType STYPE = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_FEATURES_KHR; + + /// sType is a VkStructureType value identifying this structure. + public VkStructureType sType; + + /// pNext is NULL or a pointer to a structure extending this structure. + public void* pNext; + + /// + /// maintenance7 indicates that the implementation supports the following:The + /// VK_RENDERING_CONTENTS_INLINE_BIT_KHR and VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHRflags can be + /// used to record commands in render pass instances both inline and in secondary command buffers executed with + /// vkCmdExecuteCommands for dynamic rendering and legacy render passes respectively.Querying information regarding the + /// underlying devices in environments where the Vulkan implementation is provided through layered implementations. + /// This is done by chaining VkPhysicalDeviceLayeredApiPropertiesListKHR to VkPhysicalDeviceProperties2.New limits + /// which indicate the maximum total count of dynamic uniform buffers and dynamic storage buffers that can be included + /// in a pipeline layout.32-bit timestamp queries must wrap on overflowA property that indicates whether a fragment + /// shading rate attachment can have a size that is too small to cover a specified render area.A property that + /// indicates support for writing to one aspect of a depth/stencil attachment without performing a read-modify-write + /// operation on the other aspect + /// + public VkBool32 maintenance7; +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance7/VkPhysicalDeviceMaintenance7PropertiesKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance7/VkPhysicalDeviceMaintenance7PropertiesKHR.cs new file mode 100644 index 00000000..6383129b --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance7/VkPhysicalDeviceMaintenance7PropertiesKHR.cs @@ -0,0 +1,115 @@ +#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; + +/// +/// VkPhysicalDeviceMaintenance7PropertiesKHR - Structure describing various implementation-defined properties +/// introduced with VK_KHR_maintenance7 - +/// +/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceMaintenance7PropertiesKHR.html +/// +/// +/// +/// +/// +/// structextendsVkPhysicalDeviceProperties2 +/// +/// +/// returnedonlytrue +/// +/// +/// +[VkStructExtends("VkPhysicalDeviceProperties2")] +[StructLayout(LayoutKind.Sequential)] +public unsafe struct VkPhysicalDeviceMaintenance7PropertiesKHR +{ + /// The stype of this structure. + public const VkStructureType STYPE = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_PROPERTIES_KHR; + + /// sType is a VkStructureType value identifying this structure. + public VkStructureType sType; + + /// pNext is NULL or a pointer to a structure extending this structure. + public void* pNext; + + /// + /// robustFragmentShadingRateAttachmentAccess indicates whether the scaled size of a fragment shading rate + /// attachment can be less than the size of the render area. If robustFragmentShadingRateAttachmentAccess is VK_FALSE, + /// the size of the attachment multiplied by the texel size must be greater than or equal to the size of the render + /// area. If it is VK_TRUE and the fragment shading rate attachment was created with + /// VkImageSubresourceRange::baseMipLevel equal to 0, the scaled size can be smaller than the render area, and shading + /// rates for missing texels are defined by texel replacement for invalid texels. + /// + public VkBool32 robustFragmentShadingRateAttachmentAccess; + + /// + /// separateDepthStencilAttachmentAccess indicates support for writing to one aspect of a depth/stencil attachment + /// without performing read-modify-write operations on the other aspect. If this property is VK_TRUE, writes to one + /// aspect must not result in read-modify-write operations on the other aspect. If VK_FALSE, writes to one aspect may + /// result in writes to the other aspect as defined by render pass load operations, render pass store operations and + /// render pass resolve operations. + /// + public VkBool32 separateDepthStencilAttachmentAccess; + + /// + /// maxDescriptorSetTotalUniformBuffersDynamic is the maximum total count of dynamic uniform buffers that can be + /// included in a pipeline layout. Descriptors with a type of VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC count against + /// this limit. Only descriptors in descriptor set layouts created without the + /// VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set count against this limit. See + /// https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformbufferdynamic. + /// + public uint maxDescriptorSetTotalUniformBuffersDynamic; + + /// + /// maxDescriptorSetTotalStorageBuffersDynamic is the maximum total count of dynamic storage buffers that can be + /// included in a pipeline layout. Descriptors with a type of VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC count against + /// this limit. Only descriptors in descriptor set layouts created without the + /// VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set count against this limit. See + /// https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagebufferdynamic. + /// + public uint maxDescriptorSetTotalStorageBuffersDynamic; + + /// + /// maxDescriptorSetTotalBuffersDynamic is the maximum total count of dynamic uniform buffers and storage buffers + /// that can be included in a pipeline layout. Descriptors with a type of VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC or + /// VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC count against this limit. Only descriptors in descriptor set layouts + /// created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set count against this limit. + /// + public uint maxDescriptorSetTotalBuffersDynamic; + + /// + /// maxDescriptorSetUpdateAfterBindTotalUniformBuffersDynamic is similar to + /// maxDescriptorSetTotalUniformBuffersDynamic but counts descriptors from descriptor sets created with or without the + /// VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set. + /// + public uint maxDescriptorSetUpdateAfterBindTotalUniformBuffersDynamic; + + /// + /// maxDescriptorSetUpdateAfterBindTotalStorageBuffersDynamic is similar to + /// maxDescriptorSetTotalStorageBuffersDynamic but counts descriptors from descriptor sets created with or without the + /// VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set. + /// + public uint maxDescriptorSetUpdateAfterBindTotalStorageBuffersDynamic; + + /// + /// maxDescriptorSetUpdateAfterBindTotalBuffersDynamic is similar to maxDescriptorSetTotalBuffersDynamic but + /// counts descriptors from descriptor sets created with or without the + /// VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set. While an application can allocate dynamic + /// storage buffer descriptors from a pool created with the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT, + /// bindings for these descriptors must not be present in any descriptor set layout that includes bindings created with + /// VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT. + /// + public uint maxDescriptorSetUpdateAfterBindTotalBuffersDynamic; +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_h265/VkVideoEncodeH265RateControlInfoKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_h265/VkVideoEncodeH265RateControlInfoKHR.cs index fed9d528..2cb7e949 100644 --- a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_h265/VkVideoEncodeH265RateControlInfoKHR.cs +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_video_encode_h265/VkVideoEncodeH265RateControlInfoKHR.cs @@ -60,12 +60,6 @@ public unsafe struct VkVideoEncodeH265RateControlInfoKHR /// consecutiveBFrameCount is the number of consecutive B frames between I and/or P frames within the GOP. public uint consecutiveBFrameCount; - /// - /// subLayerCount
- /// - /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkVideoEncodeH265RateControlInfoKHR - /// - ///
+ /// subLayerCount specifies the number of H.265 sub-layers that the application intends to use. public uint subLayerCount; } \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/QCOM/VK_QCOM_fragment_density_map_offset/VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM.cs b/src/Exomia.Vulkan.Api.Core/Extensions/QCOM/VK_QCOM_fragment_density_map_offset/VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM.cs index a501c8a0..9c5a1275 100644 --- a/src/Exomia.Vulkan.Api.Core/Extensions/QCOM/VK_QCOM_fragment_density_map_offset/VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM.cs +++ b/src/Exomia.Vulkan.Api.Core/Extensions/QCOM/VK_QCOM_fragment_density_map_offset/VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM.cs @@ -41,12 +41,6 @@ public unsafe struct VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM /// pNext is NULL or a pointer to a structure extending this structure. public void* pNext; - /// - /// fragmentDensityMapOffset
- /// - /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM - /// - ///
+ /// fragmentDensityMapOffsetspecifies whether the implementation supports fragment density map offsets public VkBool32 fragmentDensityMapOffset; } \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/QCOM/VK_QCOM_fragment_density_map_offset/VkQcomFragmentDensityMapOffset.cs b/src/Exomia.Vulkan.Api.Core/Extensions/QCOM/VK_QCOM_fragment_density_map_offset/VkQcomFragmentDensityMapOffset.cs index 815d4d8b..7eab8117 100644 --- a/src/Exomia.Vulkan.Api.Core/Extensions/QCOM/VK_QCOM_fragment_density_map_offset/VkQcomFragmentDensityMapOffset.cs +++ b/src/Exomia.Vulkan.Api.Core/Extensions/QCOM/VK_QCOM_fragment_density_map_offset/VkQcomFragmentDensityMapOffset.cs @@ -31,7 +31,7 @@ namespace Exomia.Vulkan.Api.Core; public static class VkQcomFragmentDensityMapOffset { /// The spec version. - public const uint VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION = 1; + public const uint VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION = 2; /// The extension name. public const string VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME = "VK_QCOM_fragment_density_map_offset";