diff --git a/.version b/.version index 3969b469..dec49901 100644 --- a/.version +++ b/.version @@ -1 +1 @@ -1.3.296 \ No newline at end of file +1.3.298 \ 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 8e1143d9..9251e17a 100644 --- a/src/Exomia.Vulkan.Api.Core/Enums/VkStructureType.cs +++ b/src/Exomia.Vulkan.Api.Core/Enums/VkStructureType.cs @@ -4117,6 +4117,12 @@ public enum VkStructureType /// VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT = 1000356000, + /// + /// VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_EXT
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType + ///
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_EXT = 1000361000, + /// /// VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA
/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_display_surface_counter/VkSurfaceCapabilities2EXT.cs b/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_display_surface_counter/VkSurfaceCapabilities2EXT.cs index 5399bcac..394252b4 100644 --- a/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_display_surface_counter/VkSurfaceCapabilities2EXT.cs +++ b/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_display_surface_counter/VkSurfaceCapabilities2EXT.cs @@ -99,10 +99,10 @@ public unsafe struct VkSurfaceCapabilities2EXT /// /// supportedUsageFlags is a bitmask of VkImageUsageFlagBitsrepresenting the ways the application can use the - /// presentable images of a swapchain created with VkPresentModeKHR set to VK_PRESENT_MODE_IMMEDIATE_KHR, - /// VK_PRESENT_MODE_MAILBOX_KHR, VK_PRESENT_MODE_FIFO_KHR or VK_PRESENT_MODE_FIFO_RELAXED_KHRfor the surface on the - /// specified device. VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT must be included in the set. Implementations may support - /// additional usages. + /// presentable images of a swapchain created with VkPresentModeKHR set to VK_PRESENT_MODE_FIFO_LATEST_READY_EXT, + /// VK_PRESENT_MODE_IMMEDIATE_KHR, VK_PRESENT_MODE_MAILBOX_KHR, VK_PRESENT_MODE_FIFO_KHR or + /// VK_PRESENT_MODE_FIFO_RELAXED_KHRfor the surface on the specified device. VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT must + /// be included in the set. Implementations may support additional usages. /// public VkImageUsageFlags supportedUsageFlags; diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_present_mode_fifo_latest_ready/VkExtPresentModeFifoLatestReady.cs b/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_present_mode_fifo_latest_ready/VkExtPresentModeFifoLatestReady.cs new file mode 100644 index 00000000..ef9134ca --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_present_mode_fifo_latest_ready/VkExtPresentModeFifoLatestReady.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.VkExtPresentModeFifoLatestReady; + +#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_EXT_present_mode_fifo_latest_ready - device extension (nr. 362) - author 'EXT' [platform '' | contact 'Lionel +/// Duc @nvlduc']
+/// +/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VK_EXT_present_mode_fifo_latest_ready.html +/// +///
+[VkDepends("VK_KHR_swapchain")] +[VkDeviceExt] +public static class VkExtPresentModeFifoLatestReady +{ + /// The spec version. + public const uint VK_EXT_PRESENT_MODE_FIFO_LATEST_READY_SPEC_VERSION = 1; + + /// The extension name. + public const string VK_EXT_PRESENT_MODE_FIFO_LATEST_READY_EXTENSION_NAME = "VK_EXT_present_mode_fifo_latest_ready"; + + /// + /// An UTF8 null terminated version of + /// represented by an UTF16 string. + /// + /// + /// Example usage:
+ ///
+ /// fixed(char* ptr = VK_EXT_PRESENT_MODE_FIFO_LATEST_READY_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_EXT_PRESENT_MODE_FIFO_LATEST_READY_EXTENSION_NAME_UTF8_NT = + "\u4b56\u455f\u5458\u505f\u4552\u4553\u544e\u4d5f\u444f\u5f45\u4946\u4f46\u4c5f\u5441\u5345\u5f54\u4552\u4441\u5f59\u5845\u4554\u534e\u4f49\u5f4e\u414e\u454d\u0000"; +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_present_mode_fifo_latest_ready/VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT.cs b/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_present_mode_fifo_latest_ready/VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT.cs new file mode 100644 index 00000000..62b9325b --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_present_mode_fifo_latest_ready/VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT.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 + +// ReSharper disable UnusedMember.Global +// ReSharper disable InconsistentNaming +// ReSharper disable once CheckNamespace +namespace Exomia.Vulkan.Api.Core; + +/// +/// VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT - Structure describing support for +/// VK_PRESENT_MODE_FIFO_LATEST_READY_EXT - +/// +/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT.html +/// +/// +/// +/// +/// +/// structextendsVkPhysicalDeviceFeatures2,VkDeviceCreateInfo +/// +/// +/// +[VkStructExtends("VkPhysicalDeviceFeatures2,VkDeviceCreateInfo")] +[StructLayout(LayoutKind.Sequential)] +public unsafe struct VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT +{ + /// The stype of this structure. + public const VkStructureType STYPE = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_EXT; + + /// 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; + + /// + /// presentModeFifoLatestReadyspecifies whether the implementation supports the + /// VK_PRESENT_MODE_FIFO_LATEST_READY_EXT present mode. + /// + public VkBool32 presentModeFifoLatestReady; +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance5/VkPipelineCreateFlagBits2KHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance5/VkPipelineCreateFlagBits2KHR.cs index a992ff03..03ab4fea 100644 --- a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance5/VkPipelineCreateFlagBits2KHR.cs +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance5/VkPipelineCreateFlagBits2KHR.cs @@ -38,6 +38,12 @@ public enum VkPipelineCreateFlagBits2KHR : ulong ///
VK_PIPELINE_CREATE_2_DERIVATIVE_BIT_KHR = 0x4, + /// + /// VK_PIPELINE_CREATE_2_EXECUTION_GRAPH_BIT_AMDX specifies that the pipeline will be used in an + /// execution graph + /// + VK_PIPELINE_CREATE_2_EXECUTION_GRAPH_BIT_AMDX = 0x100000000, + /// /// VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT specifies that the pipeline will be used in a render pass /// that is begun with VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT. diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_surface/VkPresentModeKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_surface/VkPresentModeKHR.cs index b88c70fe..80f69eae 100644 --- a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_surface/VkPresentModeKHR.cs +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_surface/VkPresentModeKHR.cs @@ -76,5 +76,17 @@ public enum VkPresentModeKHR /// presentation request, but this does not guarantee the timing of when it will be updated. This mode may result in /// visible tearing if rendering to the image is not timed correctly. /// - VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001 + VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001, + + /// + /// VK_PRESENT_MODE_FIFO_LATEST_READY_EXT specifies that the presentation engine waits for the next vertical + /// blanking period to update the current image. Tearing cannot be observed. An internal queue is used to hold pending + /// presentation requests. New requests are appended to the end of the queue. At each vertical blanking period, the + /// presentation engine dequeues all successive requests that are ready to be presented from the beginning of the + /// queue. If using VK_GOOGLE_display_timing to provide a target present time, the presentation engine will check the + /// specified time for each image. If the target present time is less-than or equal-to the current time, the + /// presentation engine will dequeue the image and check the next one. The image of the last dequeued request will be + /// presented. The other dequeued requests will be dropped. + /// + VK_PRESENT_MODE_FIFO_LATEST_READY_EXT = 1000361000 } \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_surface/VkSurfaceCapabilitiesKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_surface/VkSurfaceCapabilitiesKHR.cs index 8ee72e96..239aaccf 100644 --- a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_surface/VkSurfaceCapabilitiesKHR.cs +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_surface/VkSurfaceCapabilitiesKHR.cs @@ -90,10 +90,10 @@ public struct VkSurfaceCapabilitiesKHR /// /// supportedUsageFlags is a bitmask of VkImageUsageFlagBitsrepresenting the ways the application can use the - /// presentable images of a swapchain created with VkPresentModeKHR set to VK_PRESENT_MODE_IMMEDIATE_KHR, - /// VK_PRESENT_MODE_MAILBOX_KHR, VK_PRESENT_MODE_FIFO_KHR or VK_PRESENT_MODE_FIFO_RELAXED_KHRfor the surface on the - /// specified device. VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT must be included in the set. Implementations may support - /// additional usages. + /// presentable images of a swapchain created with VkPresentModeKHR set to VK_PRESENT_MODE_FIFO_LATEST_READY_EXT, + /// VK_PRESENT_MODE_IMMEDIATE_KHR, VK_PRESENT_MODE_MAILBOX_KHR, VK_PRESENT_MODE_FIFO_KHR or + /// VK_PRESENT_MODE_FIFO_RELAXED_KHRfor the surface on the specified device. VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT must + /// be included in the set. Implementations may support additional usages. /// public VkImageUsageFlags supportedUsageFlags; } \ No newline at end of file