From 7a4c585658cd1d06d38bd0ebeb5a78eec09e5d3d Mon Sep 17 00:00:00 2001 From: exomia-bot Date: Fri, 23 Aug 2024 20:25:26 +0000 Subject: [PATCH] v1.3.294 --- .version | 2 +- .../Enums/VkObjectType.cs | 6 + src/Exomia.Vulkan.Api.Core/Enums/VkResult.cs | 9 + .../Enums/VkStructureType.cs | 60 +++++ .../VkPipelineCreateFlagBits2KHR.cs | 19 +- ...cePipelineBinaryInternalCacheControlKHR.cs | 46 ++++ .../VkKhrPipelineBinary.cs | 237 ++++++++++++++++++ ...PhysicalDevicePipelineBinaryFeaturesKHR.cs | 48 ++++ ...ysicalDevicePipelineBinaryPropertiesKHR.cs | 80 ++++++ .../VkPipelineBinaryCreateInfoKHR.cs | 46 ++++ .../VkPipelineBinaryDataInfoKHR.cs | 34 +++ .../VkPipelineBinaryDataKHR.cs | 31 +++ .../VkPipelineBinaryHandlesInfoKHR.cs | 43 ++++ .../VkPipelineBinaryInfoKHR.cs | 46 ++++ .../VkPipelineBinaryKHR.cs | 85 +++++++ .../VkPipelineBinaryKeyKHR.cs | 37 +++ .../VkPipelineBinaryKeysAndDataKHR.cs | 37 +++ .../VkPipelineCreateInfoKHR.cs | 31 +++ .../VkReleaseCapturedPipelineDataInfoKHR.cs | 37 +++ .../VkRayTracingPipelineCreateInfoKHR.cs | 8 + .../VkLatencySubmissionPresentIdNV.cs | 2 +- .../VkLatencyTimingsFrameReportNV.cs | 2 +- .../VkSetLatencyMarkerInfoNV.cs | 2 +- .../VkRayTracingPipelineCreateInfoNV.cs | 8 + ...ceMultiviewPerViewViewportsFeaturesQCOM.cs | 2 +- .../Structs/VkComputePipelineCreateInfo.cs | 8 + .../Structs/VkGraphicsPipelineCreateInfo.cs | 8 + ...hysicalDeviceDescriptorIndexingFeatures.cs | 24 +- ...sicalDeviceDescriptorIndexingProperties.cs | 20 +- .../VkPhysicalDeviceVulkan12Features.cs | 24 +- .../VkPhysicalDeviceVulkan12Properties.cs | 20 +- 31 files changed, 1012 insertions(+), 50 deletions(-) create mode 100644 src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkDevicePipelineBinaryInternalCacheControlKHR.cs create mode 100644 src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkKhrPipelineBinary.cs create mode 100644 src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPhysicalDevicePipelineBinaryFeaturesKHR.cs create mode 100644 src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPhysicalDevicePipelineBinaryPropertiesKHR.cs create mode 100644 src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPipelineBinaryCreateInfoKHR.cs create mode 100644 src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPipelineBinaryDataInfoKHR.cs create mode 100644 src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPipelineBinaryDataKHR.cs create mode 100644 src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPipelineBinaryHandlesInfoKHR.cs create mode 100644 src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPipelineBinaryInfoKHR.cs create mode 100644 src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPipelineBinaryKHR.cs create mode 100644 src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPipelineBinaryKeyKHR.cs create mode 100644 src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPipelineBinaryKeysAndDataKHR.cs create mode 100644 src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPipelineCreateInfoKHR.cs create mode 100644 src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkReleaseCapturedPipelineDataInfoKHR.cs diff --git a/.version b/.version index 982ae5fa..0168d648 100644 --- a/.version +++ b/.version @@ -1 +1 @@ -1.3.293 \ No newline at end of file +1.3.294 \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Enums/VkObjectType.cs b/src/Exomia.Vulkan.Api.Core/Enums/VkObjectType.cs index aa67a610..6e83f692 100644 --- a/src/Exomia.Vulkan.Api.Core/Enums/VkObjectType.cs +++ b/src/Exomia.Vulkan.Api.Core/Enums/VkObjectType.cs @@ -466,6 +466,12 @@ public enum VkObjectType /// VK_OBJECT_TYPE_SHADER_EXT = 1000482000, + /// + /// VK_OBJECT_TYPE_PIPELINE_BINARY_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkObjectType + ///
+ VK_OBJECT_TYPE_PIPELINE_BINARY_KHR = 1000483000, + /// /// /// diff --git a/src/Exomia.Vulkan.Api.Core/Enums/VkResult.cs b/src/Exomia.Vulkan.Api.Core/Enums/VkResult.cs index 72b79652..756c9fd3 100644 --- a/src/Exomia.Vulkan.Api.Core/Enums/VkResult.cs +++ b/src/Exomia.Vulkan.Api.Core/Enums/VkResult.cs @@ -250,6 +250,15 @@ public enum VkResult /// VK_INCOMPATIBLE_SHADER_BINARY_EXT The provided binary shader code is not compatible with this device. VK_INCOMPATIBLE_SHADER_BINARY_EXT = 1000482000, + /// + /// VK_PIPELINE_BINARY_MISSING_KHR The application attempted to create a pipeline binary by querying an internal + /// cache, but the internal cache entry did not exist. + /// + VK_PIPELINE_BINARY_MISSING_KHR = 1000483000, + + /// VK_ERROR_NOT_ENOUGH_SPACE_KHR The application did not provide enough space to return all the required data. + VK_ERROR_NOT_ENOUGH_SPACE_KHR = -1000483000, + /// /// VK_ERROR_OUT_OF_POOL_MEMORY A pool memory allocation has failed. This must only be returned if no attempt to /// allocate host or device memory was made to accommodate the new allocation. If the failure was definitely due to diff --git a/src/Exomia.Vulkan.Api.Core/Enums/VkStructureType.cs b/src/Exomia.Vulkan.Api.Core/Enums/VkStructureType.cs index d08067e7..8d4ce9a0 100644 --- a/src/Exomia.Vulkan.Api.Core/Enums/VkStructureType.cs +++ b/src/Exomia.Vulkan.Api.Core/Enums/VkStructureType.cs @@ -4939,6 +4939,66 @@ public enum VkStructureType /// VK_STRUCTURE_TYPE_SHADER_CREATE_INFO_EXT = 1000482002, + /// + /// VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType + ///
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHR = 1000483000, + + /// + /// VK_STRUCTURE_TYPE_PIPELINE_BINARY_CREATE_INFO_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType + ///
+ VK_STRUCTURE_TYPE_PIPELINE_BINARY_CREATE_INFO_KHR = 1000483001, + + /// + /// VK_STRUCTURE_TYPE_PIPELINE_BINARY_INFO_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType + ///
+ VK_STRUCTURE_TYPE_PIPELINE_BINARY_INFO_KHR = 1000483002, + + /// + /// VK_STRUCTURE_TYPE_PIPELINE_BINARY_KEY_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType + ///
+ VK_STRUCTURE_TYPE_PIPELINE_BINARY_KEY_KHR = 1000483003, + + /// + /// VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType + ///
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHR = 1000483004, + + /// + /// VK_STRUCTURE_TYPE_RELEASE_CAPTURED_PIPELINE_DATA_INFO_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType + ///
+ VK_STRUCTURE_TYPE_RELEASE_CAPTURED_PIPELINE_DATA_INFO_KHR = 1000483005, + + /// + /// VK_STRUCTURE_TYPE_PIPELINE_BINARY_DATA_INFO_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType + ///
+ VK_STRUCTURE_TYPE_PIPELINE_BINARY_DATA_INFO_KHR = 1000483006, + + /// + /// VK_STRUCTURE_TYPE_PIPELINE_CREATE_INFO_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType + ///
+ VK_STRUCTURE_TYPE_PIPELINE_CREATE_INFO_KHR = 1000483007, + + /// + /// VK_STRUCTURE_TYPE_DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType + ///
+ VK_STRUCTURE_TYPE_DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_KHR = 1000483008, + + /// + /// VK_STRUCTURE_TYPE_PIPELINE_BINARY_HANDLES_INFO_KHR
+ /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType + ///
+ VK_STRUCTURE_TYPE_PIPELINE_BINARY_HANDLES_INFO_KHR = 1000483009, + /// /// VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM
/// 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_maintenance5/VkPipelineCreateFlagBits2KHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_maintenance5/VkPipelineCreateFlagBits2KHR.cs index f754433a..17caa403 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 @@ -265,5 +265,22 @@ public enum VkPipelineCreateFlagBits2KHR : ulong /// descriptor sets /// . ///
- VK_PIPELINE_CREATE_2_DESCRIPTOR_BUFFER_BIT_EXT = 0x20000000 + VK_PIPELINE_CREATE_2_DESCRIPTOR_BUFFER_BIT_EXT = 0x20000000, + + /// + /// VK_PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR specifies that VkPipelineBinaryKHR objects can be created from the + /// pipeline. If VK_PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR is used, implementations should not store pipeline data to + /// an internal cache, if such a cache exists as stated by + /// + /// pipelineBinaryInternalCache + /// + /// . If + /// + /// pipelineBinaryPrefersInternalCache + /// + /// is VK_TRUE, applications should not use VK_PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR. + /// + VK_PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR = 0x80000000 } \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkDevicePipelineBinaryInternalCacheControlKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkDevicePipelineBinaryInternalCacheControlKHR.cs new file mode 100644 index 00000000..14de734b --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkDevicePipelineBinaryInternalCacheControlKHR.cs @@ -0,0 +1,46 @@ +#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; + +/// +/// VkDevicePipelineBinaryInternalCacheControlKHR - Structure specifying parameter to disable the internal pipeline +/// cache - +/// +/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDevicePipelineBinaryInternalCacheControlKHR.html +/// +/// +/// +/// +/// +/// structextendsVkDeviceCreateInfo +/// +/// +/// +[VkStructExtends("VkDeviceCreateInfo")] +[StructLayout(LayoutKind.Sequential)] +public unsafe struct VkDevicePipelineBinaryInternalCacheControlKHR +{ + /// The stype of this structure. + public const VkStructureType STYPE = VK_STRUCTURE_TYPE_DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_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; + + /// disableInternalCache specifies whether or not to disable the implementation’s internal pipeline cache. + public VkBool32 disableInternalCache; +} \ 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 new file mode 100644 index 00000000..21055274 --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkKhrPipelineBinary.cs @@ -0,0 +1,237 @@ +#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.VkKhrPipelineBinary; + +#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_pipeline_binary - device extension (nr. 484) - author 'KHR' [platform '' | contact 'Stu Smith @stu-s']
+/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VK_KHR_pipeline_binary.html +///
+[VkDepends("VK_KHR_maintenance5")] +[VkDeviceExt] +public static unsafe class VkKhrPipelineBinary +{ + /// The spec version. + public const uint VK_KHR_PIPELINE_BINARY_SPEC_VERSION = 1; + + /// The extension name. + public const string VK_KHR_PIPELINE_BINARY_EXTENSION_NAME = "VK_KHR_pipeline_binary"; + + /// + /// An UTF8 null terminated version of represented by an + /// UTF16 string. + /// + /// + /// Example usage:
+ ///
+ /// fixed(char* ptr = VK_KHR_PIPELINE_BINARY_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_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"; + + /// + /// 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 + /// + /// device is the logical device that creates the pipeline binary objects. + /// + /// pCreateInfo is a pointer to a VkPipelineBinaryCreateInfoKHRstructure that contains the data + /// to create the pipeline binaries from. + /// + /// pAllocator controls host memory allocation as described in the Memory Allocation chapter. + /// + /// pBinaries is a pointer to a VkPipelineBinaryHandlesInfoKHRstructure in which the resulting + /// pipeline binaries are returned. + /// + /// + /// + /// + /// successcodesVK_SUCCESS,VK_INCOMPLETE,VK_PIPELINE_BINARY_MISSING_KHR + /// + /// + /// errorcodes + /// VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_INITIALIZATION_FAILED + /// + /// + /// + public static readonly delegate*< + VkDevice /*device*/, + VkPipelineBinaryCreateInfoKHR* /*pCreateInfo*/, + VkAllocationCallbacks* /*pAllocator*/, + VkPipelineBinaryHandlesInfoKHR* /*pBinaries*/, + VkResult> vkCreatePipelineBinariesKHR = null; + + /// + /// vkDestroyPipelineBinaryKHR - Destroy a pipeline binary - + /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkDestroyPipelineBinaryKHR.html + /// + /// device is the logical device that created the pipeline binary object. + /// pipelineBinary is the handle of the pipeline binary object to destroy. + /// pAllocator controls host memory allocation as described in the Memory Allocation chapter. + public static readonly delegate*< + VkDevice /*device*/, + VkPipelineBinaryKHR /*pipelineBinary*/, + VkAllocationCallbacks* /*pAllocator*/, + void> vkDestroyPipelineBinaryKHR = null; + + /// + /// vkGetPipelineKeyKHR - Generate the pipeline key from pipeline creation info - + /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetPipelineKeyKHR.html + /// + /// device is the logical device that creates the pipeline object. + /// pPipelineCreateInfo is NULL or a pointer to a VkPipelineCreateInfoKHR structure. + /// + /// pPipelineKey is a pointer to a VkPipelineBinaryKeyKHRstructure in which the resulting key is + /// returned. + /// + /// + /// + /// + /// successcodesVK_SUCCESS + /// + /// + /// errorcodesVK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY + /// + /// + /// + public static readonly delegate*< + VkDevice /*device*/, + VkPipelineCreateInfoKHR* /*pPipelineCreateInfo*/, + VkPipelineBinaryKeyKHR* /*pPipelineKey*/, + VkResult> vkGetPipelineKeyKHR = null; + + /// + /// vkGetPipelineBinaryDataKHR - Get the data store from a pipeline binary - + /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetPipelineBinaryDataKHR.html + /// + /// device is the logical device that created the pipeline binary. + /// + /// pInfo is a pointer to a VkPipelineBinaryDataInfoKHRstructure which describes the pipeline binary to + /// get data from. + /// + /// + /// pPipelineBinaryKey is a pointer to a VkPipelineBinaryKeyKHRstructure where the key for + /// this binary will be written. + /// + /// + /// pPipelineBinaryDataSize is a pointer to a size_t value related to the amount of + /// data in the pipeline binary, as described below. + /// + /// pPipelineBinaryData is either NULL or a pointer to a buffer. + /// + /// + /// + /// successcodesVK_SUCCESS + /// + /// + /// errorcodes + /// VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_NOT_ENOUGH_SPACE_KHR + /// + /// + /// + public static readonly delegate*< + VkDevice /*device*/, + VkPipelineBinaryDataInfoKHR* /*pInfo*/, + VkPipelineBinaryKeyKHR* /*pPipelineBinaryKey*/, + nuint* /*pPipelineBinaryDataSize*/, + void* /*pPipelineBinaryData*/, + VkResult> vkGetPipelineBinaryDataKHR = null; + + /// + /// vkReleaseCapturedPipelineDataKHR - Release captured pipeline binary data - + /// + /// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkReleaseCapturedPipelineDataKHR.html + /// + /// + /// device is the logical device that created the pipeline object. + /// + /// pInfo is a pointer to a VkReleaseCapturedPipelineDataInfoKHRstructure which describes the pipeline + /// to release the data from. + /// + /// pAllocator controls host memory allocation as described in the Memory Allocation chapter. + /// + /// + /// + /// successcodesVK_SUCCESS + /// + /// + /// + public static readonly delegate*< + VkDevice /*device*/, + VkReleaseCapturedPipelineDataInfoKHR* /*pInfo*/, + VkAllocationCallbacks* /*pAllocator*/, + VkResult> vkReleaseCapturedPipelineDataKHR = 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:
+ /// + /// + /// vkCreatePipelineBinariesKHR + /// + /// + /// vkDestroyPipelineBinaryKHR + /// + /// + /// vkGetPipelineKeyKHR + /// + /// + /// vkGetPipelineBinaryDataKHR + /// + /// + /// vkReleaseCapturedPipelineDataKHR + /// + /// + ///
+ public static void Load(VkDevice device) + { + fixed (delegate** pvkCreatePipelineBinariesKHR = &vkCreatePipelineBinariesKHR) + { + *pvkCreatePipelineBinariesKHR = (delegate*)GetVkFunction( + device, "\u6b76\u7243\u6165\u6574\u6950\u6570\u696c\u656e\u6942\u616e\u6972\u7365\u484b\u0052"); + } + + fixed (delegate** pvkDestroyPipelineBinaryKHR = &vkDestroyPipelineBinaryKHR) + { + *pvkDestroyPipelineBinaryKHR = (delegate*)GetVkFunction( + device, "\u6b76\u6544\u7473\u6f72\u5079\u7069\u6c65\u6e69\u4265\u6e69\u7261\u4b79\u5248\u0000"); + } + + fixed (delegate** pvkGetPipelineKeyKHR = &vkGetPipelineKeyKHR) + { + *pvkGetPipelineKeyKHR = + (delegate*)GetVkFunction(device, "\u6b76\u6547\u5074\u7069\u6c65\u6e69\u4b65\u7965\u484b\u0052"); + } + + fixed (delegate** pvkGetPipelineBinaryDataKHR = &vkGetPipelineBinaryDataKHR) + { + *pvkGetPipelineBinaryDataKHR = (delegate*)GetVkFunction( + device, "\u6b76\u6547\u5074\u7069\u6c65\u6e69\u4265\u6e69\u7261\u4479\u7461\u4b61\u5248\u0000"); + } + + fixed (delegate** pvkReleaseCapturedPipelineDataKHR = &vkReleaseCapturedPipelineDataKHR) + { + *pvkReleaseCapturedPipelineDataKHR = (delegate*)GetVkFunction( + device, "\u6b76\u6552\u656c\u7361\u4365\u7061\u7574\u6572\u5064\u7069\u6c65\u6e69\u4465\u7461\u4b61\u5248\u0000"); + } + } +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPhysicalDevicePipelineBinaryFeaturesKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPhysicalDevicePipelineBinaryFeaturesKHR.cs new file mode 100644 index 00000000..da6fb13d --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPhysicalDevicePipelineBinaryFeaturesKHR.cs @@ -0,0 +1,48 @@ +#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; + +/// +/// VkPhysicalDevicePipelineBinaryFeaturesKHR - Structure describing support for pipeline binaries - +/// +/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDevicePipelineBinaryFeaturesKHR.html +/// +/// +/// +/// +/// +/// structextendsVkPhysicalDeviceFeatures2,VkDeviceCreateInfo +/// +/// +/// +[VkStructExtends("VkPhysicalDeviceFeatures2,VkDeviceCreateInfo")] +[StructLayout(LayoutKind.Sequential)] +public unsafe struct VkPhysicalDevicePipelineBinaryFeaturesKHR +{ + /// The stype of this structure. + public const VkStructureType STYPE = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_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; + + /// + /// pipelineBinaries indicates that the implementation supports + /// https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-binaries. + /// + public VkBool32 pipelineBinaries; +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPhysicalDevicePipelineBinaryPropertiesKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPhysicalDevicePipelineBinaryPropertiesKHR.cs new file mode 100644 index 00000000..d8f169f0 --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPhysicalDevicePipelineBinaryPropertiesKHR.cs @@ -0,0 +1,80 @@ +#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; + +/// +/// VkPhysicalDevicePipelineBinaryPropertiesKHR - Structure describing properties about the pipeline binary +/// implementation - +/// +/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDevicePipelineBinaryPropertiesKHR.html +/// +/// +/// +/// +/// +/// structextendsVkPhysicalDeviceProperties2 +/// +/// +/// +[VkStructExtends("VkPhysicalDeviceProperties2")] +[StructLayout(LayoutKind.Sequential)] +public unsafe struct VkPhysicalDevicePipelineBinaryPropertiesKHR +{ + /// The stype of this structure. + public const VkStructureType STYPE = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_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; + + /// + /// pipelineBinaryInternalCachespecifies that the implementation maintains a pipeline cache internal to the + /// implementation. If this is VK_TRUE, applications can create pipeline binaries with only a pipeline create info, and + /// in this case, an implementation may be able to create a pipeline binary directly without application needing to + /// capture the binary itself. + /// + public VkBool32 pipelineBinaryInternalCache; + + /// + /// pipelineBinaryInternalCacheControl specifies whether the driver’s internal cache can be disabled. If + /// this property is VK_TRUEVkDevicePipelineBinaryInternalCacheControlKHR::disableInternalCachecan be used to disable + /// the driver’s internal cache, allowing an application to take full control of both memory and disk usage. + /// + public VkBool32 pipelineBinaryInternalCacheControl; + + /// + /// pipelineBinaryPrefersInternalCache specifies that the implementation prefers to maintain an internal cache, + /// and applications should not store pipeline binaries in their own on-disk caches to avoid increased on-disk storage + /// requirements. Applications are encouraged to only store pipeline keys instead, and aim to create pipeline binaries + /// from key alone on subsequent runs of the application. + /// + public VkBool32 pipelineBinaryPrefersInternalCache; + + /// + /// pipelineBinaryPrecompiledInternalCache specifies that the implementation may have pipeline binaries in its + /// internal cache, which is populated without the application ever having generated that pipeline itself. Applications + /// can attempt to create binaries without extracting pipeline binary data from the pipeline prior for a set of + /// pipeline keys, including from previous runs of the application. + /// + public VkBool32 pipelineBinaryPrecompiledInternalCache; + + /// + /// pipelineBinaryCompressedData specifies that the binary data is already compressed and so applications should + /// not attempt to compress it. + /// + public VkBool32 pipelineBinaryCompressedData; +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPipelineBinaryCreateInfoKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPipelineBinaryCreateInfoKHR.cs new file mode 100644 index 00000000..592d7722 --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPipelineBinaryCreateInfoKHR.cs @@ -0,0 +1,46 @@ +#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; + +/// +/// VkPipelineBinaryCreateInfoKHR - Structure specifying where to retrieve data for pipeline binary creation - +/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineBinaryCreateInfoKHR.html +/// +[StructLayout(LayoutKind.Sequential)] +public unsafe struct VkPipelineBinaryCreateInfoKHR +{ + /// The stype of this structure. + public const VkStructureType STYPE = VK_STRUCTURE_TYPE_PIPELINE_BINARY_CREATE_INFO_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; + + /// + /// pKeysAndDataInfo is NULL or a pointer to a VkPipelineBinaryKeysAndDataKHR structure that contains keys and + /// data to create the pipeline binaries from. + /// + public VkPipelineBinaryKeysAndDataKHR* pKeysAndDataInfo; + + /// pipeline is VK_NULL_HANDLE or a VkPipeline that contains data to create the pipeline binaries from. + public VkPipeline pipeline; + + /// + /// pPipelineCreateInfo is NULL or a pointer to a VkPipelineCreateInfoKHR structure with the pipeline creation + /// info. This is used to probe the implementation’s internal cache for pipeline binaries. + /// + public VkPipelineCreateInfoKHR* pPipelineCreateInfo; +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPipelineBinaryDataInfoKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPipelineBinaryDataInfoKHR.cs new file mode 100644 index 00000000..082a16e3 --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPipelineBinaryDataInfoKHR.cs @@ -0,0 +1,34 @@ +#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; + +/// +/// VkPipelineBinaryDataInfoKHR - Structure specifying a pipeline binary to retrieve binary data from - +/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineBinaryDataInfoKHR.html +/// +[StructLayout(LayoutKind.Sequential)] +public unsafe struct VkPipelineBinaryDataInfoKHR +{ + /// The stype of this structure. + public const VkStructureType STYPE = VK_STRUCTURE_TYPE_PIPELINE_BINARY_DATA_INFO_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; + + /// pipelineBinary is the pipeline binary to get data from. + public VkPipelineBinaryKHR pipelineBinary; +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPipelineBinaryDataKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPipelineBinaryDataKHR.cs new file mode 100644 index 00000000..f4f3601d --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPipelineBinaryDataKHR.cs @@ -0,0 +1,31 @@ +#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; + +/// +/// VkPipelineBinaryDataKHR - Structure specifying data and length of a pipeline binary - +/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineBinaryDataKHR.html +/// +[StructLayout(LayoutKind.Sequential)] +public unsafe struct VkPipelineBinaryDataKHR +{ + /// dataSize is the size of the pData buffer in bytes. + public nuint dataSize; + + /// + /// pData is a pointer to a buffer of size bytes that contains pipeline binary data obtained from + /// vkGetPipelineBinaryDataKHR. + /// + public void* pData; +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPipelineBinaryHandlesInfoKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPipelineBinaryHandlesInfoKHR.cs new file mode 100644 index 00000000..b2eb0b01 --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPipelineBinaryHandlesInfoKHR.cs @@ -0,0 +1,43 @@ +#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; + +/// +/// VkPipelineBinaryHandlesInfoKHR - Structure containing newly created pipeline binaries - +/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineBinaryHandlesInfoKHR.html +/// +[StructLayout(LayoutKind.Sequential)] +public unsafe struct VkPipelineBinaryHandlesInfoKHR +{ + /// The stype of this structure. + public const VkStructureType STYPE = VK_STRUCTURE_TYPE_PIPELINE_BINARY_HANDLES_INFO_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; + + /// + /// pipelineBinaryCount is the number of binaries associated with this pipeline or the number of entries in the + /// pPipelineBinaries array. + /// + public uint pipelineBinaryCount; + + /// + /// pPipelineBinaries is NULL or a pointer to an array of VkPipelineBinaryKHR handles in which the resulting + /// pipeline binaries are returned. + /// + public VkPipelineBinaryKHR* pPipelineBinaries; +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPipelineBinaryInfoKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPipelineBinaryInfoKHR.cs new file mode 100644 index 00000000..954aa457 --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPipelineBinaryInfoKHR.cs @@ -0,0 +1,46 @@ +#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; + +/// +/// VkPipelineBinaryInfoKHR - Structure specifying pipeline binaries to use during pipeline creation - +/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineBinaryInfoKHR.html +/// +/// +/// +/// +/// structextends +/// VkGraphicsPipelineCreateInfo,VkComputePipelineCreateInfo,VkRayTracingPipelineCreateInfoKHR +/// +/// +/// +[VkStructExtends("VkGraphicsPipelineCreateInfo,VkComputePipelineCreateInfo,VkRayTracingPipelineCreateInfoKHR")] +[StructLayout(LayoutKind.Sequential)] +public unsafe struct VkPipelineBinaryInfoKHR +{ + /// The stype of this structure. + public const VkStructureType STYPE = VK_STRUCTURE_TYPE_PIPELINE_BINARY_INFO_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; + + /// binaryCount is the number of elements in the pPipelineBinaries array. + public uint binaryCount; + + /// pPipelineBinaries is a pointer to an array of VkPipelineBinaryKHR handles. + public VkPipelineBinaryKHR* pPipelineBinaries; +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPipelineBinaryKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPipelineBinaryKHR.cs new file mode 100644 index 00000000..c4dc4037 --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPipelineBinaryKHR.cs @@ -0,0 +1,85 @@ +#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 once CheckNamespace +namespace Exomia.Vulkan.Api.Core; + +/// +/// VkPipelineBinaryKHR - Opaque handle to a pipeline binary object - +/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineBinaryKHR.html +/// +public readonly unsafe struct VkPipelineBinaryKHR +{ + /// The null value. + public static readonly VkPipelineBinaryKHR Null = (VkPipelineBinaryKHR)null; +#pragma warning disable 649 + private readonly void* _ptr; +#pragma warning restore 649 + + /// Returns a hash code for this object. + /// A hash code for this object. + public override int GetHashCode() + { + return ((IntPtr)_ptr).GetHashCode(); + } + + /// Tests if this in VkPipelineBinaryKHR is considered equal to this instance. + /// The in VkPipelineBinaryKHR to compare to this instance. + /// True if the objects are considered equal, false if they are not. + public bool Equals(in VkPipelineBinaryKHR obj) + { + return obj._ptr == _ptr; + } + + /// Tests if the object is considered equal to this instance. + /// The object to compare to this instance. + /// True if the objects are considered equal, false if they are not. + public override bool Equals(object? obj) + { + return obj is VkPipelineBinaryKHR vkPipelineBinaryKHR && Equals(in vkPipelineBinaryKHR); + } + + /// Explicit cast that converts the given void* to a VkPipelineBinaryKHR. + /// [in,out] If non-null, the pointer. + /// The result of the operation. + public static explicit operator VkPipelineBinaryKHR(void* ptr) + { + VkPipelineBinaryKHR value; + *(void**)&value = ptr; + return value; + } + + /// Equality operator. + /// The left. + /// The right. + /// The result of the operation. + public static bool operator ==(VkPipelineBinaryKHR left, VkPipelineBinaryKHR right) + { + return left._ptr == right._ptr; + } + + /// Inequality operator. + /// The left. + /// The right. + /// The result of the operation. + public static bool operator !=(VkPipelineBinaryKHR left, VkPipelineBinaryKHR right) + { + return left._ptr != right._ptr; + } + + /// Explicit cast that converts the given VkPipelineBinaryKHR to a void*. + /// The value. + /// The result of the operation. + public static explicit operator void*(VkPipelineBinaryKHR value) + { + return value._ptr; + } +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPipelineBinaryKeyKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPipelineBinaryKeyKHR.cs new file mode 100644 index 00000000..ffabf3b9 --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPipelineBinaryKeyKHR.cs @@ -0,0 +1,37 @@ +#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; + +/// +/// VkPipelineBinaryKeyKHR - Structure specifying a key to a pipeline binary - +/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineBinaryKeyKHR.html +/// +[StructLayout(LayoutKind.Sequential)] +public unsafe struct VkPipelineBinaryKeyKHR +{ + /// The stype of this structure. + public const VkStructureType STYPE = VK_STRUCTURE_TYPE_PIPELINE_BINARY_KEY_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; + + /// keySize is the size, in bytes, of valid data returned in key. + public uint keySize; + + /// key is a buffer of opaque data specifying a pipeline binary key. + public fixed byte key[(int)VK_MAX_PIPELINE_BINARY_KEY_SIZE_KHR]; +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPipelineBinaryKeysAndDataKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPipelineBinaryKeysAndDataKHR.cs new file mode 100644 index 00000000..20034681 --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPipelineBinaryKeysAndDataKHR.cs @@ -0,0 +1,37 @@ +#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; + +/// +/// VkPipelineBinaryKeysAndDataKHR - Structure specifying arrays of key and data pairs - +/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineBinaryKeysAndDataKHR.html +/// +[StructLayout(LayoutKind.Sequential)] +public unsafe struct VkPipelineBinaryKeysAndDataKHR +{ + /// binaryCount is the size of the pPipelineBinaryKeys and pPipelineBinaryData arrays + public uint binaryCount; + + /// + /// pPipelineBinaryKeys is a pointer to an array of VkPipelineBinaryKeyKHR structures containing the pipeline + /// binary keys + /// + public VkPipelineBinaryKeyKHR* pPipelineBinaryKeys; + + /// + /// pPipelineBinaryData is a pointer to an array of VkPipelineBinaryDataKHR structures containing the pipeline + /// binary data + /// + public VkPipelineBinaryDataKHR* pPipelineBinaryData; +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPipelineCreateInfoKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPipelineCreateInfoKHR.cs new file mode 100644 index 00000000..92f40abe --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkPipelineCreateInfoKHR.cs @@ -0,0 +1,31 @@ +#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; + +/// +/// VkPipelineCreateInfoKHR - Structure specifying a pipeline createinfo chain - +/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineCreateInfoKHR.html +/// +[StructLayout(LayoutKind.Sequential)] +public unsafe struct VkPipelineCreateInfoKHR +{ + /// The stype of this structure. + public const VkStructureType STYPE = VK_STRUCTURE_TYPE_PIPELINE_CREATE_INFO_KHR; + + /// sType is a VkStructureType value identifying this structure. + public VkStructureType sType; + + /// pNext is a pointer to a structure extending this structure. + public void* pNext; +} \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkReleaseCapturedPipelineDataInfoKHR.cs b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkReleaseCapturedPipelineDataInfoKHR.cs new file mode 100644 index 00000000..d020b078 --- /dev/null +++ b/src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_pipeline_binary/VkReleaseCapturedPipelineDataInfoKHR.cs @@ -0,0 +1,37 @@ +#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; + +/// +/// VkReleaseCapturedPipelineDataInfoKHR - Structure specifying a pipeline whose captured data is to be released - +/// +/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkReleaseCapturedPipelineDataInfoKHR.html +/// +/// +[StructLayout(LayoutKind.Sequential)] +public unsafe struct VkReleaseCapturedPipelineDataInfoKHR +{ + /// The stype of this structure. + public const VkStructureType STYPE = VK_STRUCTURE_TYPE_RELEASE_CAPTURED_PIPELINE_DATA_INFO_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; + + /// pipeline the handle of the pipeline object to release the data from. + public VkPipeline pipeline; +} \ No newline at end of file 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 bd7ea3ca..d9f92dde 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,6 +20,14 @@ 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/NV/VK_NV_low_latency2/VkLatencySubmissionPresentIdNV.cs b/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_low_latency2/VkLatencySubmissionPresentIdNV.cs index 6329ce41..039e1ee5 100644 --- a/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_low_latency2/VkLatencySubmissionPresentIdNV.cs +++ b/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_low_latency2/VkLatencySubmissionPresentIdNV.cs @@ -38,7 +38,7 @@ public unsafe struct VkLatencySubmissionPresentIdNV public void* pNext; /// - /// presentId is used to associate the vkQueueSubmit with the presentId used for a given vkQueuePresentKHR via + /// presentID is used to associate the vkQueueSubmit with the presentId used for a given vkQueuePresentKHR via /// VkPresentIdKHR::pPresentIds. /// public ulong presentID; diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_low_latency2/VkLatencyTimingsFrameReportNV.cs b/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_low_latency2/VkLatencyTimingsFrameReportNV.cs index 18e2ee94..3efefa12 100644 --- a/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_low_latency2/VkLatencyTimingsFrameReportNV.cs +++ b/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_low_latency2/VkLatencyTimingsFrameReportNV.cs @@ -43,7 +43,7 @@ public unsafe struct VkLatencyTimingsFrameReportNV public void* pNext; /// - /// presentId is the application provided value that is used to associate the timestamp with a vkQueuePresentKHR + /// presentID is the application provided value that is used to associate the timestamp with a vkQueuePresentKHR /// command using VkPresentIdKHR::pPresentIds for a given present. /// public ulong presentID; diff --git a/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_low_latency2/VkSetLatencyMarkerInfoNV.cs b/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_low_latency2/VkSetLatencyMarkerInfoNV.cs index cd27dd81..51b51a24 100644 --- a/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_low_latency2/VkSetLatencyMarkerInfoNV.cs +++ b/src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_low_latency2/VkSetLatencyMarkerInfoNV.cs @@ -30,7 +30,7 @@ public unsafe struct VkSetLatencyMarkerInfoNV public void* pNext; /// - /// presentId is an application provided value that is used to associate the timestamp with a vkQueuePresentKHR + /// presentID is an application provided value that is used to associate the timestamp with a vkQueuePresentKHR /// command using VkPresentIdKHR::pPresentIds for a given present. /// public ulong presentID; 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 60bbddc6..2bf2e159 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,6 +20,14 @@ 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/Extensions/QCOM/VK_QCOM_multiview_per_view_viewports/VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM.cs b/src/Exomia.Vulkan.Api.Core/Extensions/QCOM/VK_QCOM_multiview_per_view_viewports/VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM.cs index e43088a7..ef4b64f0 100644 --- a/src/Exomia.Vulkan.Api.Core/Extensions/QCOM/VK_QCOM_multiview_per_view_viewports/VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM.cs +++ b/src/Exomia.Vulkan.Api.Core/Extensions/QCOM/VK_QCOM_multiview_per_view_viewports/VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM.cs @@ -47,6 +47,6 @@ public unsafe struct VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM /// pNext is NULL or a pointer to a structure extending this structure. public void* pNext; - /// multiviewPerViewViewports indicates that the implementation supports multiview per-view viewports. + /// multiviewPerViewViewportsindicates that the implementation supports multiview per-view viewports. public VkBool32 multiviewPerViewViewports; } \ No newline at end of file diff --git a/src/Exomia.Vulkan.Api.Core/Structs/VkComputePipelineCreateInfo.cs b/src/Exomia.Vulkan.Api.Core/Structs/VkComputePipelineCreateInfo.cs index 95589e05..431f677d 100644 --- a/src/Exomia.Vulkan.Api.Core/Structs/VkComputePipelineCreateInfo.cs +++ b/src/Exomia.Vulkan.Api.Core/Structs/VkComputePipelineCreateInfo.cs @@ -17,6 +17,14 @@ 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 54866345..8fd9c5c4 100644 --- a/src/Exomia.Vulkan.Api.Core/Structs/VkGraphicsPipelineCreateInfo.cs +++ b/src/Exomia.Vulkan.Api.Core/Structs/VkGraphicsPipelineCreateInfo.cs @@ -17,6 +17,14 @@ 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/Structs/VkPhysicalDeviceDescriptorIndexingFeatures.cs b/src/Exomia.Vulkan.Api.Core/Structs/VkPhysicalDeviceDescriptorIndexingFeatures.cs index 0a2bd220..eb4d3b39 100644 --- a/src/Exomia.Vulkan.Api.Core/Structs/VkPhysicalDeviceDescriptorIndexingFeatures.cs +++ b/src/Exomia.Vulkan.Api.Core/Structs/VkPhysicalDeviceDescriptorIndexingFeatures.cs @@ -43,28 +43,28 @@ public unsafe struct VkPhysicalDeviceDescriptorIndexingFeatures /// /// shaderInputAttachmentArrayDynamicIndexing indicates whether arrays of input attachments can be indexed by - /// dynamically uniform integer expressions in shader code. If this feature is not enabled, resources with a descriptor - /// type of VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT must be indexed only by constant integral expressions when aggregated - /// into arrays in shader code. This also indicates whether shader modules can declare the - /// InputAttachmentArrayDynamicIndexing capability. + /// integer expressions that are dynamically uniform within either the subgroup or the invocation group in shader code. + /// If this feature is not enabled, resources with a descriptor type of VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT must be + /// indexed only by constant integral expressions when aggregated into arrays in shader code. This also indicates + /// whether shader modules can declare the InputAttachmentArrayDynamicIndexing capability. /// public VkBool32 shaderInputAttachmentArrayDynamicIndexing; /// /// shaderUniformTexelBufferArrayDynamicIndexing indicates whether arrays of uniform texel buffers can be indexed - /// by dynamically uniform integer expressions in shader code. If this feature is not enabled, resources with a - /// descriptor type of VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER must be indexed only by constant integral expressions - /// when aggregated into arrays in shader code. This also indicates whether shader modules can declare the - /// UniformTexelBufferArrayDynamicIndexing capability. + /// by integer expressions that are dynamically uniform within either the subgroup or the invocation group in shader + /// code. If this feature is not enabled, resources with a descriptor type of VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER + /// must be indexed only by constant integral expressions when aggregated into arrays in shader code. This also + /// indicates whether shader modules can declare the UniformTexelBufferArrayDynamicIndexing capability. /// public VkBool32 shaderUniformTexelBufferArrayDynamicIndexing; /// /// shaderStorageTexelBufferArrayDynamicIndexing indicates whether arrays of storage texel buffers can be indexed - /// by dynamically uniform integer expressions in shader code. If this feature is not enabled, resources with a - /// descriptor type of VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER must be indexed only by constant integral expressions - /// when aggregated into arrays in shader code. This also indicates whether shader modules can declare the - /// StorageTexelBufferArrayDynamicIndexing capability. + /// by integer expressions that are dynamically uniform within either the subgroup or the invocation group in shader + /// code. If this feature is not enabled, resources with a descriptor type of VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER + /// must be indexed only by constant integral expressions when aggregated into arrays in shader code. This also + /// indicates whether shader modules can declare the StorageTexelBufferArrayDynamicIndexing capability. /// public VkBool32 shaderStorageTexelBufferArrayDynamicIndexing; diff --git a/src/Exomia.Vulkan.Api.Core/Structs/VkPhysicalDeviceDescriptorIndexingProperties.cs b/src/Exomia.Vulkan.Api.Core/Structs/VkPhysicalDeviceDescriptorIndexingProperties.cs index d3d7c138..87ab5f75 100644 --- a/src/Exomia.Vulkan.Api.Core/Structs/VkPhysicalDeviceDescriptorIndexingProperties.cs +++ b/src/Exomia.Vulkan.Api.Core/Structs/VkPhysicalDeviceDescriptorIndexingProperties.cs @@ -54,40 +54,40 @@ public unsafe struct VkPhysicalDeviceDescriptorIndexingProperties /// /// shaderUniformBufferArrayNonUniformIndexingNative is a boolean value indicating whether uniform buffer - /// descriptors natively support nonuniform indexing. If this is VK_FALSE, then a single dynamic instance of an - /// instruction that nonuniformly indexes an array of uniform buffers mayexecute multiple times in order to access all + /// descriptors natively support non-uniform indexing. If this is VK_FALSE, then a single dynamic instance of an + /// instruction that non-uniformly indexes an array of uniform buffers mayexecute multiple times in order to access all /// the descriptors. /// public VkBool32 shaderUniformBufferArrayNonUniformIndexingNative; /// /// shaderSampledImageArrayNonUniformIndexingNative is a boolean value indicating whether sampler and image - /// descriptors natively support nonuniform indexing. If this is VK_FALSE, then a single dynamic instance of an - /// instruction that nonuniformly indexes an array of samplers or images may execute multiple times in order to access + /// descriptors natively support non-uniform indexing. If this is VK_FALSE, then a single dynamic instance of an + /// instruction that non-uniformly indexes an array of samplers or images may execute multiple times in order to access /// all the descriptors. /// public VkBool32 shaderSampledImageArrayNonUniformIndexingNative; /// /// shaderStorageBufferArrayNonUniformIndexingNative is a boolean value indicating whether storage buffer - /// descriptors natively support nonuniform indexing. If this is VK_FALSE, then a single dynamic instance of an - /// instruction that nonuniformly indexes an array of storage buffers mayexecute multiple times in order to access all + /// descriptors natively support non-uniform indexing. If this is VK_FALSE, then a single dynamic instance of an + /// instruction that non-uniformly indexes an array of storage buffers mayexecute multiple times in order to access all /// the descriptors. /// public VkBool32 shaderStorageBufferArrayNonUniformIndexingNative; /// /// shaderStorageImageArrayNonUniformIndexingNative is a boolean value indicating whether storage image - /// descriptors natively support nonuniform indexing. If this is VK_FALSE, then a single dynamic instance of an - /// instruction that nonuniformly indexes an array of storage images mayexecute multiple times in order to access all + /// descriptors natively support non-uniform indexing. If this is VK_FALSE, then a single dynamic instance of an + /// instruction that non-uniformly indexes an array of storage images mayexecute multiple times in order to access all /// the descriptors. /// public VkBool32 shaderStorageImageArrayNonUniformIndexingNative; /// /// shaderInputAttachmentArrayNonUniformIndexingNative is a boolean value indicating whether input attachment - /// descriptors natively support nonuniform indexing. If this is VK_FALSE, then a single dynamic instance of an - /// instruction that nonuniformly indexes an array of input attachments mayexecute multiple times in order to access + /// descriptors natively support non-uniform indexing. If this is VK_FALSE, then a single dynamic instance of an + /// instruction that non-uniformly indexes an array of input attachments may execute multiple times in order to access /// all the descriptors. /// public VkBool32 shaderInputAttachmentArrayNonUniformIndexingNative; diff --git a/src/Exomia.Vulkan.Api.Core/Structs/VkPhysicalDeviceVulkan12Features.cs b/src/Exomia.Vulkan.Api.Core/Structs/VkPhysicalDeviceVulkan12Features.cs index 1788c1d3..520da1f3 100644 --- a/src/Exomia.Vulkan.Api.Core/Structs/VkPhysicalDeviceVulkan12Features.cs +++ b/src/Exomia.Vulkan.Api.Core/Structs/VkPhysicalDeviceVulkan12Features.cs @@ -117,28 +117,28 @@ public unsafe struct VkPhysicalDeviceVulkan12Features /// /// shaderInputAttachmentArrayDynamicIndexing indicates whether arrays of input attachments can be indexed by - /// dynamically uniform integer expressions in shader code. If this feature is not enabled, resources with a descriptor - /// type of VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT must be indexed only by constant integral expressions when aggregated - /// into arrays in shader code. This also indicates whether shader modules can declare the - /// InputAttachmentArrayDynamicIndexing capability. + /// integer expressions that are dynamically uniform within either the subgroup or the invocation group in shader code. + /// If this feature is not enabled, resources with a descriptor type of VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT must be + /// indexed only by constant integral expressions when aggregated into arrays in shader code. This also indicates + /// whether shader modules can declare the InputAttachmentArrayDynamicIndexing capability. /// public VkBool32 shaderInputAttachmentArrayDynamicIndexing; /// /// shaderUniformTexelBufferArrayDynamicIndexing indicates whether arrays of uniform texel buffers can be indexed - /// by dynamically uniform integer expressions in shader code. If this feature is not enabled, resources with a - /// descriptor type of VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER must be indexed only by constant integral expressions - /// when aggregated into arrays in shader code. This also indicates whether shader modules can declare the - /// UniformTexelBufferArrayDynamicIndexing capability. + /// by integer expressions that are dynamically uniform within either the subgroup or the invocation group in shader + /// code. If this feature is not enabled, resources with a descriptor type of VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER + /// must be indexed only by constant integral expressions when aggregated into arrays in shader code. This also + /// indicates whether shader modules can declare the UniformTexelBufferArrayDynamicIndexing capability. /// public VkBool32 shaderUniformTexelBufferArrayDynamicIndexing; /// /// shaderStorageTexelBufferArrayDynamicIndexing indicates whether arrays of storage texel buffers can be indexed - /// by dynamically uniform integer expressions in shader code. If this feature is not enabled, resources with a - /// descriptor type of VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER must be indexed only by constant integral expressions - /// when aggregated into arrays in shader code. This also indicates whether shader modules can declare the - /// StorageTexelBufferArrayDynamicIndexing capability. + /// by integer expressions that are dynamically uniform within either the subgroup or the invocation group in shader + /// code. If this feature is not enabled, resources with a descriptor type of VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER + /// must be indexed only by constant integral expressions when aggregated into arrays in shader code. This also + /// indicates whether shader modules can declare the StorageTexelBufferArrayDynamicIndexing capability. /// public VkBool32 shaderStorageTexelBufferArrayDynamicIndexing; diff --git a/src/Exomia.Vulkan.Api.Core/Structs/VkPhysicalDeviceVulkan12Properties.cs b/src/Exomia.Vulkan.Api.Core/Structs/VkPhysicalDeviceVulkan12Properties.cs index df7ab8e4..d553e0b6 100644 --- a/src/Exomia.Vulkan.Api.Core/Structs/VkPhysicalDeviceVulkan12Properties.cs +++ b/src/Exomia.Vulkan.Api.Core/Structs/VkPhysicalDeviceVulkan12Properties.cs @@ -192,40 +192,40 @@ public unsafe struct VkPhysicalDeviceVulkan12Properties /// /// shaderUniformBufferArrayNonUniformIndexingNative is a boolean value indicating whether uniform buffer - /// descriptors natively support nonuniform indexing. If this is VK_FALSE, then a single dynamic instance of an - /// instruction that nonuniformly indexes an array of uniform buffers mayexecute multiple times in order to access all + /// descriptors natively support non-uniform indexing. If this is VK_FALSE, then a single dynamic instance of an + /// instruction that non-uniformly indexes an array of uniform buffers mayexecute multiple times in order to access all /// the descriptors. /// public VkBool32 shaderUniformBufferArrayNonUniformIndexingNative; /// /// shaderSampledImageArrayNonUniformIndexingNative is a boolean value indicating whether sampler and image - /// descriptors natively support nonuniform indexing. If this is VK_FALSE, then a single dynamic instance of an - /// instruction that nonuniformly indexes an array of samplers or images may execute multiple times in order to access + /// descriptors natively support non-uniform indexing. If this is VK_FALSE, then a single dynamic instance of an + /// instruction that non-uniformly indexes an array of samplers or images may execute multiple times in order to access /// all the descriptors. /// public VkBool32 shaderSampledImageArrayNonUniformIndexingNative; /// /// shaderStorageBufferArrayNonUniformIndexingNative is a boolean value indicating whether storage buffer - /// descriptors natively support nonuniform indexing. If this is VK_FALSE, then a single dynamic instance of an - /// instruction that nonuniformly indexes an array of storage buffers mayexecute multiple times in order to access all + /// descriptors natively support non-uniform indexing. If this is VK_FALSE, then a single dynamic instance of an + /// instruction that non-uniformly indexes an array of storage buffers mayexecute multiple times in order to access all /// the descriptors. /// public VkBool32 shaderStorageBufferArrayNonUniformIndexingNative; /// /// shaderStorageImageArrayNonUniformIndexingNative is a boolean value indicating whether storage image - /// descriptors natively support nonuniform indexing. If this is VK_FALSE, then a single dynamic instance of an - /// instruction that nonuniformly indexes an array of storage images mayexecute multiple times in order to access all + /// descriptors natively support non-uniform indexing. If this is VK_FALSE, then a single dynamic instance of an + /// instruction that non-uniformly indexes an array of storage images mayexecute multiple times in order to access all /// the descriptors. /// public VkBool32 shaderStorageImageArrayNonUniformIndexingNative; /// /// shaderInputAttachmentArrayNonUniformIndexingNative is a boolean value indicating whether input attachment - /// descriptors natively support nonuniform indexing. If this is VK_FALSE, then a single dynamic instance of an - /// instruction that nonuniformly indexes an array of input attachments mayexecute multiple times in order to access + /// descriptors natively support non-uniform indexing. If this is VK_FALSE, then a single dynamic instance of an + /// instruction that non-uniformly indexes an array of input attachments may execute multiple times in order to access /// all the descriptors. /// public VkBool32 shaderInputAttachmentArrayNonUniformIndexingNative;