From 42099e27c022f82884d34e39cdb9ee4aa4581f90 Mon Sep 17 00:00:00 2001 From: exomia-bot Date: Thu, 4 May 2023 10:20:24 +0000 Subject: [PATCH] v1.3.250 --- .version | 2 +- .../Enums/VkDynamicState.cs | 6 ++ .../Enums/VkFormatFeatureFlagBits2.cs | 6 +- .../Enums/VkPipelineCreateFlagBits.cs | 6 +- .../Enums/VkStructureType.cs | 6 ++ ...VkExtAttachmentFeedbackLoopDynamicState.cs | 89 +++++++++++++++++++ ...mentFeedbackLoopDynamicStateFeaturesEXT.cs | 46 ++++++++++ .../VkPipelineColorBlendStateCreateInfo.cs | 5 +- 8 files changed, 158 insertions(+), 8 deletions(-) create mode 100644 src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_attachment_feedback_loop_dynamic_state/VkExtAttachmentFeedbackLoopDynamicState.cs create mode 100644 src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_attachment_feedback_loop_dynamic_state/VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT.cs diff --git a/.version b/.version index 0eb751fc..57f8de71 100644 --- a/.version +++ b/.version @@ -1 +1 @@ -1.3.249 \ No newline at end of file +1.3.250 \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Enums/VkDynamicState.cs b/src/Exomia.Vulkan.Api.Core/Enums/VkDynamicState.cs index 3c10b359..86d8e236 100644 --- a/src/Exomia.Vulkan.Api.Core/Enums/VkDynamicState.cs +++ b/src/Exomia.Vulkan.Api.Core/Enums/VkDynamicState.cs @@ -1016,6 +1016,12 @@ public enum VkDynamicState /// VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV = 1000455032, + /// + /// VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkDynamicState + ///
+ VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT = 1000524000, + /// /// VK_DYNAMIC_STATE_CULL_MODE specifies that the cullMode state in /// - /// VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV specifies that the format is supported as a renderable + /// VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV specifies that the format is supported as a renderable /// /// Linear /// Color Attachment /// - /// . This bit will be set for renderable color formats in the linearTilingFeatures. This - /// must not be set in the optimalTilingFeatures or bufferFeatures members. + /// . This bit will be set for renderable color formats in the linearTilingFeatures. This must + /// not be set in the optimalTilingFeatures or bufferFeatures members. /// VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV = 0x4000000000, diff --git a/src/Exomia.Vulkan.Api.Core/Enums/VkPipelineCreateFlagBits.cs b/src/Exomia.Vulkan.Api.Core/Enums/VkPipelineCreateFlagBits.cs index 99469588..c402d164 100644 --- a/src/Exomia.Vulkan.Api.Core/Enums/VkPipelineCreateFlagBits.cs +++ b/src/Exomia.Vulkan.Api.Core/Enums/VkPipelineCreateFlagBits.cs @@ -212,13 +212,15 @@ public enum VkPipelineCreateFlagBits /// /// VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXTspecifies that the pipeline may be used with an - /// attachment feedback loop including color attachments. + /// attachment feedback loop including color attachments. It is ignored if + /// VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT is set in pDynamicStates. /// VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x2000000, /// /// VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXTspecifies that the pipeline may be used with - /// an attachment feedback loop including depth-stencil attachments. + /// an attachment feedback loop including depth-stencil attachments. It is ignored if + /// VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT is set in pDynamicStates. /// VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x4000000, diff --git a/src/Exomia.Vulkan.Api.Core/Enums/VkStructureType.cs b/src/Exomia.Vulkan.Api.Core/Enums/VkStructureType.cs index d01a4265..09140839 100644 --- a/src/Exomia.Vulkan.Api.Core/Enums/VkStructureType.cs +++ b/src/Exomia.Vulkan.Api.Core/Enums/VkStructureType.cs @@ -4603,6 +4603,12 @@ public enum VkStructureType /// VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM = 1000510001, + /// + /// VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType + ///
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT = 1000524000, + /// /// VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES
/// 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_attachment_feedback_loop_dynamic_state/VkExtAttachmentFeedbackLoopDynamicState.cs b/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_attachment_feedback_loop_dynamic_state/VkExtAttachmentFeedbackLoopDynamicState.cs new file mode 100644 index 00000000..7ef34d5c --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_attachment_feedback_loop_dynamic_state/VkExtAttachmentFeedbackLoopDynamicState.cs @@ -0,0 +1,89 @@ +#region License + +// Copyright (c) 2018-2023, 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.VkExtAttachmentFeedbackLoopDynamicState; + +#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_attachment_feedback_loop_dynamic_state - device extension (nr. 525) - author 'EXT' [platform '' | contact +/// 'Mike Blumenkrantz @zmike']
+/// +/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VK_EXT_attachment_feedback_loop_dynamic_state.html +/// +///
+[VkDepends("VK_KHR_get_physical_device_properties2+VK_EXT_attachment_feedback_loop_layout")] +public static unsafe class VkExtAttachmentFeedbackLoopDynamicState +{ + /// The spec version. + public const uint VK_EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_SPEC_VERSION = 1; + + /// The extension name. + public const string VK_EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_EXTENSION_NAME = "VK_EXT_attachment_feedback_loop_dynamic_state"; + + /// + /// An UTF8 null terminated version of + /// represented by an UTF16 string. + /// + /// + /// Example usage:
+ ///
+ /// fixed(char* ptr = VK_EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_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_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_EXTENSION_NAME_UTF8_NT = + "\u4b56\u455f\u5458\u415f\u5454\u4341\u4d48\u4e45\u5f54\u4546\u4445\u4142\u4b43\u4c5f\u4f4f\u5f50\u5944\u414e\u494d\u5f43\u5453\u5441\u5f45\u5845\u4554\u534e\u4f49\u5f4e\u414e\u454d\u0000"; + + /// + /// vkCmdSetAttachmentFeedbackLoopEnableEXT - Specify whether attachment feedback loops are enabled dynamically on a + /// command buffer - + /// + /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCmdSetAttachmentFeedbackLoopEnableEXT.html + /// + /// + /// commandBuffer is the command buffer into which the command will be recorded. + /// + /// aspectMask specifies the types of attachments for which feedback loops will be enabled. + /// Attachment types whose aspects are not included in aspectMask will have feedback loops disabled. + /// + public static readonly delegate*< + VkCommandBuffer /*commandBuffer*/, + VkImageAspectFlags /*aspectMask*/, + void> vkCmdSetAttachmentFeedbackLoopEnableEXT = null; + + /// Loads all function pointer based on the device for this extension. (see remarks!) + /// The device that the function pointers will be compatible with. + /// + /// This load method makes the following function pointers available:
+ /// + /// + /// vkCmdSetAttachmentFeedbackLoopEnableEXT + /// + /// + ///
+ public static void Load(VkDevice device) + { + fixed (delegate** pvkCmdSetAttachmentFeedbackLoopEnableEXT = &vkCmdSetAttachmentFeedbackLoopEnableEXT) + { + *pvkCmdSetAttachmentFeedbackLoopEnableEXT = (delegate*)GetVkFunction( + device, "\u6b76\u6d43\u5364\u7465\u7441\u6174\u6863\u656d\u746e\u6546\u6465\u6162\u6b63\u6f4c\u706f\u6e45\u6261\u656c\u5845\u0054"); + } + } +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_attachment_feedback_loop_dynamic_state/VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT.cs b/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_attachment_feedback_loop_dynamic_state/VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT.cs new file mode 100644 index 00000000..f99065b6 --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/Extensions/EXT/VK_EXT_attachment_feedback_loop_dynamic_state/VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT.cs @@ -0,0 +1,46 @@ +#region License + +// Copyright (c) 2018-2023, 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; + +/// +/// VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT - Structure describing if dynamic feedback loops can +/// be used - +/// +/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT.html +/// +/// +/// +/// +/// +/// structextendsVkPhysicalDeviceFeatures2,VkDeviceCreateInfo +/// +/// +/// +[VkStructExtends("VkPhysicalDeviceFeatures2,VkDeviceCreateInfo")] +[StructLayout(LayoutKind.Sequential)] +public unsafe struct VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT +{ + /// The stype of this structure. + public const VkStructureType STYPE = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT; + + /// sType is the type of this structure. + public VkStructureType sType; + + /// pNext is NULL or a pointer to a structure extending this structure. + public void* pNext; + + /// attachmentFeedbackLoopDynamicState specifies whether dynamic feedback loops are supported. + public VkBool32 attachmentFeedbackLoopDynamicState; +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Structs/VkPipelineColorBlendStateCreateInfo.cs b/src/Exomia.Vulkan.Api.Core/Structs/VkPipelineColorBlendStateCreateInfo.cs index cd609055..b516aef3 100644 --- a/src/Exomia.Vulkan.Api.Core/Structs/VkPipelineColorBlendStateCreateInfo.cs +++ b/src/Exomia.Vulkan.Api.Core/Structs/VkPipelineColorBlendStateCreateInfo.cs @@ -50,8 +50,9 @@ public unsafe struct VkPipelineColorBlendStateCreateInfo /// /// pAttachments is a pointer to an array of VkPipelineColorBlendAttachmentState structures defining blend state - /// for each color attachment. It is ignored if the pipeline is created with VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT, - /// VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT, and VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic states set. + /// for each color attachment. It is ignored if the pipeline is created with VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT, + /// VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT, VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT, and + /// VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic states set. /// public VkPipelineColorBlendAttachmentState* pAttachments;